找回密码
 注册
关于网站域名变更的通知
楼主: yoghourt
打印 上一主题 下一主题

一起来学FPGA [学员召集中...]

    [复制链接]

该用户从未签到

166#
发表于 2012-3-13 10:43 | 只看该作者
我学的是VHDL,毕业设计做这个,PicoBlaze正在学,呵呵。

该用户从未签到

167#
发表于 2012-3-13 22:05 | 只看该作者
必须参加,我要报名!目前正在学习做xilinx spartan3系列的采集卡,硬件设计还行,就是verilog还不会,迫切需要进一步学习,希望版主继续讨论!!!
' P7 L4 f5 u' E% o% L! v

该用户从未签到

168#
发表于 2012-3-13 22:13 | 只看该作者
下面是FPGA内部FIFO的一段verilog代码,抛砖引玉,希望版主把学习项目继续,一起提高。7 S1 e' _! t/ X5 z7 C: H
module fpga_fifo(, C8 w6 e# I; y/ F. o, G& ^
                        rst_n,4 _& N: [" ]. G
                        iclk,' T% M3 p4 k9 H$ n4 {3 j1 C
                        idata,
5 d% n' Q2 B/ r                        oclk,' Q6 e4 K# C4 H/ j
                        odata,
1 }: E5 x% @" w* M: c& }; C                        fifo_empty,
& M1 S. ?+ z! b  K8 {                        fifo_full,
! g+ A: P6 @: s. K8 Z" l                        stop,
6 F: M0 ]6 d4 Y" |3 |% r0 F                        flag, q/ [! U5 p6 `. h6 a  J) g7 O
                        );5 w2 I: A. Q$ J, O4 c" b
       
4 Y. _4 A- P" S6 Z        parameter length=10'b1000000000;  T7 B6 J( B, Z2 E9 ]5 g. S
        parameter width=16;
  N9 X  V) {5 B& W8 x        //parameter dimin=6'b000100;
5 [2 E6 b8 s  U; }- n                       
9 j$ {" ?; x! v' N7 C        input rst_n;    //启动
3 _7 A/ z! _2 \* {! q* L; s8 K        input iclk;   //输入数据时钟
' y/ X% C, B& E: r8 D- y" E" Q        input [1 :0] idata;   //输入数据
' u8 `6 _) Z" {% O; r5 q, w        input oclk;   //输出时钟--接USB同步时钟" y, U; M0 c7 S2 f
        input [2:0] flag;
, B# ~# i# ?* z3 v2 i6 Z
. I: L- f, |1 `' w
* A' F) C# x8 B$ {! u        output [width-1 :0] odata;
* |9 q& Y( k- ?9 ?2 ~        output fifo_empty, fifo_full;1 U8 ]1 e. k' ~" e# f' M
        output stop;
8 p7 l3 |, [& \7 Z/ O
2 _( [( ~& r  ]4 ]4 i        wire        [2:0]                data_set;
# y- p; P( ]2 L/ `7 t+ ?( I8 m. ?8 j5 _7 Z2 h
        reg [width-1:0] fifo[length-1:0];
* Z9 h- u0 Y8 t3 @7 _/ M9 O        reg [width-1:0] idatabuf,idatabuf2,odata;6 P( o) v( W" [  `6 w+ V4 Z' [
        //reg [1:0]                idatabuf1,idatabuf3;
  r: d+ H) }" `) T: u" K        reg [9:0]                 reddr,wrddr,wrddri,wrddro,wrddro1,wrddro2,reddri,reddri1;
! n9 ^) I9 G$ N* G        reg                         fifo_empty, fifo_full;
! y  H, B2 K  l3 I+ |        reg [1:0]                 clk_set;
) O, G$ l& A2 j& i. i        reg                         fifo_empty_tmp0;' j$ H- p& d1 A
        reg                         fifo_empty_tmp1;
+ M" R; P+ z1 ]. H9 o% H        reg                         fifo_empty_tmp2;
" p& j( i5 l7 |7 k( `; C/ |9 V# f        reg                         fifo_empty_tmp3;, R0 X# `9 k7 n: @
        reg                         stop;
; O" }, B  q0 b- |' i        reg [31:0]                stop_counter;: c* b+ J5 P5 \5 ^
0 R: V9 x6 h* n8 N
        assign        data_set        =        flag - 1'b1;
9 E1 x+ A" {) i$ P$ b- ?' x
' ]6 _3 i+ W4 O3 I//-----------------------------------------------------------------9 k' E! A6 P% l1 D+ u
       
! H! S' _0 }5 E7 x! t; u        always@(posedge iclk, negedge rst_n)//输入时钟域
1 |+ {4 m$ k  w& B3 Q/ Z        begin6 @! D0 i8 Z$ Y& I& E- y9 ?& ]! ~
                 if(rst_n==0)
: A7 L: i4 s5 f' Z0 f$ d                begin( F9 c2 P4 }; I8 T
                        wrddr                <=0;" t5 f) g9 i( Y2 o* u7 Z
                        wrddri                <=0;
9 @- o: Y( ^, P% t% N                        reddri                <=0;( C7 J$ V; Q! {; g. `6 O2 N- _7 i
                        reddri1                <=0;+ C6 m: R/ B) g( Z
                //        data_set        <=0;
1 d! L7 I3 \) h6 H3 ]                        idatabuf        <=0;' P6 q) \& y$ L. D
                        idatabuf2        <=0;
1 n# G6 n3 ]$ i" s1 l, K% _                        fifo_full        <=0;
' E* j5 N2 M1 i6 G                        stop                <=0;
2 Z2 u3 W1 Y/ U& z- J3 o6 B                        stop_counter<=0;
( W! ~" c: P9 B- {                end" N1 S" u, N$ C* w) _! r
                else . F+ c9 S/ Q7 f# R* L1 U- V
                begin
0 [" n- A7 T' E/ k) j, k9 T% f                        stop_counter<=stop_counter+1'b1;
% }0 i( `0 ?& b$ B* G                        if(stop_counter==1800*1024*1024)stop<=1;5 H( u6 u( P3 r) |+ p$ H  `$ M# J
                        case(data_set)
( q# R( }8 p/ Q- t) c                        3'b000:idatabuf[7:6]<=idata;
, \& ?4 b5 b4 m) i( b, `0 Z3 v                        3'b001:idatabuf[5:4]<=idata;
- o6 y7 t$ C  g4 }                        3'b010:idatabuf[3:2]<=idata;/ [3 j+ z$ D5 J2 V& }/ e$ @$ @
                        3'b011:idatabuf[1:0]<=idata;# K" `" B8 v. r; K! g$ ^' a
                        3'b100:idatabuf[15:14]<=idata;
' y- Z" r) T+ {: R                        3'b101:idatabuf[13:12]<=idata;6 O& [) X, d2 N
                        3'b110:idatabuf[11:10]<=idata;
9 O/ x6 W* P0 g/ Q" y8 u                        3'b111:idatabuf[9:8]<=idata;
5 F7 A* `; f; ~; _                        endcase  U/ \* M6 J$ T7 v% z
                        //data_set<=data_set+1'b1;3 i1 G+ S- p; X3 q' a
                        if(data_set==0)、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

该用户从未签到

169#
发表于 2012-3-17 12:41 | 只看该作者
我最近再搞一个I2C总线的协议,但是只能写第一个字节数据,后面的就写不进去了,很郁闷,我怀疑是不是停止位没停止好呢,大家有没有搞过的啊~~~

该用户从未签到

170#
发表于 2012-3-18 13:57 | 只看该作者
没看完~~~~~~ 先顶,好同志( X0 v8 g. m4 J# _9 W9 a* N0 R

+ S. F- W& b* @9 c% @6 b
! r* M9 n' h* Y- |6 s, ^
, m/ h3 @" R1 m! z9 ^7 y* a9 }: ?3 d- q* W7 w5 s
1 K/ [: }  U* T6 r, U
. {" D; y1 V1 s

4 s8 @" s( X# S. z( b/ p3 [' D9 E2 ~& n, I5 E2 l
4 `6 M- R% ^9 _
# J' W7 H  h& D# `' \

' K. [6 f2 l" i' X) I) O: L
- b* S3 f9 f2 s7 L- B+ ~8 r! i9 g; A好看电视剧2012 好看头像

该用户从未签到

171#
发表于 2012-4-24 14:56 | 只看该作者
我也想学,希望多多指教
6 F  q6 e6 w- h- t) } 你的i2c的应答位有吗
7 [9 {8 n! |/ P

该用户从未签到

172#
发表于 2012-4-25 10:02 | 只看该作者
我也是在学校学了点有关数字时钟类型还有交通灯等方面,也很想往这方面发展,就是不知道从哪里开始,感觉硬件条件不够还有就是没有方向!

该用户从未签到

173#
发表于 2012-4-25 10:13 | 只看该作者
我能加入吗?我也想加入……

该用户从未签到

174#
发表于 2012-4-27 22:56 | 只看该作者
我最近参考alter公司的源程序做了一个自己的I2C总线控制器,使用的是vhdl语言,做完之后,我对于数据总线的输出高电平始终搞不定,最后只能使用高阻态“Z”,不知道有没有朋友做过这方面的设计,希望能够帮忙解答下

该用户从未签到

175#
发表于 2012-5-16 23:21 | 只看该作者
我是学习集成电路设计、芯片反向技术,我也想学习一下这个,可是不知道从哪里入手,求高手指点!!!

该用户从未签到

176#
发表于 2012-6-2 10:52 | 只看该作者
求高人指点下   学习学习  迫切迫切

该用户从未签到

177#
发表于 2012-7-4 14:30 | 只看该作者
同样的感觉,不知道如何深入下去了

该用户从未签到

178#
发表于 2012-7-15 15:34 | 只看该作者
verilog编写的程序有四段数码管分别显示1234,然后又显示5678,就这样循环下去?/ W% i: D# v! M; u5 |/ r0 [/ U
module s4_7seg(clk,rst,% H+ Y' n, K+ k0 p# z* D+ m

) c, z9 _4 b& b* P   s0,s1,s2,s3,
' C5 ~" ~0 N" _: q$ M; h# T* q) V! f! K, T
   d0,d1,d2,d3,d4,d5,d6,d7& l  O6 d- Q4 `
* [6 L5 h! `( G, t+ P
   );( a/ r  N0 \& C0 {
0 S$ r- [2 ~' R. X1 G
input      clk,rst       ;8 H9 q; r* |7 C2 [
8 J0 Z* ^; d$ [3 t8 w& I
output     s0,s1,s2,s3   ;5 ^# O$ z+ u7 e3 H5 ^7 X0 Y9 l

% r4 M" p: y# h output     d0,d1,d2,d3,d4,d5,d6,d7 ;3 D* `7 w3 _( D6 Z2 e; r

% @! Z6 \  Q- [' j. U% Y reg [2 :0 ] state ;- C# [/ d9 o1 J

  h! A& i# L+ Z8 \* J1 V, b reg [2 :0 ] sn ;) u4 x6 \, E, U6 r: p) [; k( x1 f1 l
) P9 i- u1 B' }# v3 E, q. a
reg [7 :0 ] data ;# i' m4 N: I2 L5 c5 z

0 B  b) q& V* |0 U5 L. f reg [23:0 ] cnt ;
6 i# C3 r  X# I3 x! U& P9 G# F: y7 P. p' X5 k+ r3 D% o

6 x6 I# Y# x" c6 r7 T# V
8 [: K2 i# A5 E; s' e$ y wire       s0,s1,s2,s3   ;
( S; v3 S4 Q3 e. u$ E
) q% N& T  ]. U. _ wire       d0,d1,d2,d3,d4,d5,d6,d7 ;
4 U: W1 e& V- f4 D- U
' ]; h3 A& @9 s1 @ assign     {s3,s2,s1,s0} = sn ;4 v3 v6 p" \" M
* k  b5 T4 [- v" ]1 |$ p
assign     {d7,d6,d5,d4,d3,d2,d1,d0} = data ;; G+ E0 M( f8 F' C1 U3 U/ g$ k
$ E* W. i1 P  w% F/ W! y
always @ ( posedge clk )
$ t& S9 z5 _% `. x- Z/ z2 E  O
& {8 x; h% ~: X  if( !rst )' m' U0 Q9 G. d# B
0 F1 h* a6 L' i. U' Y9 _
   cnt<=16'b0;
* j8 M  n5 U( f1 K
% S# m( ~# o6 O7 S  else
" v3 w5 U' b8 L8 k# M
6 ]8 }8 X4 [: O* C9 F3 T; }   cnt<=cnt+3'b1;
* e1 v' O& I6 h( Z& l( \6 E6 K) _/ E1 f
wire clk_slow = cnt[24] ;
9 J+ F$ l, {* B. B) Z& O9 n( I2 x* _( [1 s: ~" p0 v9 L' \4 w) t
always @ ( posedge clk_slow or negedge rst )( Q" B- ]. ^4 M5 ]) e4 Y
6 k+ n" A. k9 t3 a; g
  if( !rst )) C. u. O2 R- m

9 h8 W! Z6 k/ O3 F: e% p3 }: s   state<=3'b000;
$ j( g( }, V: V* C4 p
0 N! M" M( A3 N/ l  else
- p, i( o" [: W( W* _8 h+ g5 N# Z# O/ x3 o2 G% r; p
   state<=state+3'b001;6 ~3 C/ {; B7 R

* }  a* n. h5 W- |# R7 f always @ ( posedge clk_slow or negedge rst )
  o1 }. ]8 H' _
% d1 E1 Q3 [3 O8 h! k0 Q  if( !rst )  B/ K3 W1 o4 R  Z8 q
# X+ }' g% @4 V3 E+ @' h5 _
   begin
4 j7 G: k+ a5 C; J9 y9 j7 Y7 H6 B6 p
    sn<=4'b0;- U" o- }/ {7 X

( O9 e" K2 p. A  _    data<=8'b0;
! e4 ^7 W& |1 [8 k% x$ ~9 t- q7 z  M  S
   end! n5 M3 T# x, e

8 i( r& ^5 |7 }4 Q. X  else( T6 b* V) |; G5 M
0 b/ S+ W5 @7 M) j
   case(state), O  F' d, @9 ^7 n: S& o1 W
- j4 G+ ^; ]/ p1 e$ d8 W) q1 ~
    3'b000:$ t6 h# u1 S7 k- [8 c) G' v# T

  Y6 y' ^8 {6 m1 h$ b5 M: r, V     begin
+ q/ W5 N/ e# m1 t. u. K
4 G1 k6 h  z6 V; }7 t& i0 Q- e      sn<=4'b0001;
; P7 f) X5 D! R" |! w- i  z) q1 B" P: b- P  d9 W( o0 j
      data<=8'b0110_0000;
6 Y2 u1 s# e0 ?& p7 d+ U
  S: j) ?  _  u( ^. R8 M# H/ w! v8 @  \/ w     end
# _, W  [% o0 `( G! i3 O6 i+ q% l, W+ [
    3'b001:
' J9 i+ ]* l( k; z9 w+ I, R0 C6 F, Q- u
     begin# K4 _6 H. E  e
% z) H0 b' \5 g7 }. v
      sn<=4'b0010;5 f' z1 s0 f& B

$ n; l8 `$ R/ H, a4 F+ U7 r6 k      data<=8'b1101_1010;. x, h! F7 {: f) b0 q# l: L
8 [$ s) G( z4 r! f/ C2 G3 D
     end
! n' H" L/ n# N2 z6 S
+ ^( P5 U* |% o; a    3'b010:( g! k: H6 x6 L% R3 L0 x& F

9 D! `% K% {0 w5 f* l     begin
: T- ]' W4 L: U! K. N; P6 [: F) P$ c& A' b& b
      sn<=4'b0100;5 ]0 V0 ?3 P/ `, q7 L
1 [! L8 R2 u/ E  y
      data<=8'b1111_0010;7 k4 u* p% u6 X7 W1 C
/ n) L2 U1 h/ W; G0 T
     end; r4 D& M( U( _
  F* Y# p, d! h2 S  k: W& i: d
    3'b011:3 d/ I0 I# l$ b8 H
4 M; p8 p6 N+ G2 {% n" W4 x. g: a0 H
     begin
1 k! r" ?+ a- v7 I) j, _
4 D3 s3 C2 d- V- \& B6 X- r      sn<=4'b1000;+ l# x2 w1 q( ]" z4 {

, @, C  I7 h3 I      data<=8'b0110_0110;, x- @2 P$ [: H  V
! b( [3 S$ U1 U! c5 `' C
     end
" j' U7 `' M: I  G$ ?; A+ z, E; x7 P3 H$ ]5 p2 J
      3'b100:
- E& T6 ]' p. r
, x+ q* v$ l( m* w5 _3 u     begin
- j( E4 R5 Z$ J: z; U* v+ G$ p0 I; w
7 G' U/ j4 I6 @7 F; w      sn<=4'b0001;) q' ~& A5 v+ H# i1 j. d: n
7 `7 t' W4 H" b" S8 G
      data<=8'b1011_0110;, I# }8 b2 ?, v1 B$ R: @

( x+ W- z- m6 X* G( t     end8 i2 U% \% {: v# i# V& D

9 x/ Y9 _8 r7 t" }9 G    3'b101:
; N1 b" v2 j+ f; u. j. `# L; c
+ B6 ]0 M0 J( w6 K3 A% E+ P     begin" K" t, E; H( l; a/ l2 B' T
% {4 Z' ]" k. w# E* C+ V7 U/ g
      sn<=4'b0010;
  @! `2 ^, f' d4 H% R* n% _% K  @# h, y8 `+ W/ W! `! a+ @" v5 K
      data<=8'b1011_1110;8 Z2 u! D8 x( P8 m6 X) }- o( ]' b/ k
: s0 p7 Q1 W" X  ?. I
     end% j( Z* D5 h3 D0 y, O. I+ U

: ]# h# k3 M; L1 x$ ^* ^1 E( Q    3'b110:
; \. v" D$ {( N% C$ f
" r, z0 Z2 V* q! }2 N     begin, U6 Z3 a% Y: ~6 `" w
  @* J1 [1 h$ H3 u" ?0 q
      sn<=4'b0100;
6 h" l2 g5 K4 [  I/ B  K) Q$ ^" _) O  V* B$ Q3 e2 A" C9 e# J" W
      data<=8'b1110_0000;
4 a) n3 y% |, z9 S+ t( F
" {& f  k0 j* p3 {, \& a4 S     end! r( K1 Q4 O4 ?% C( c  I2 P6 b, ?/ h
( D' D; K9 Z0 Y, f# q5 Q2 [
    3'b111:( \$ ]% j% X- a8 U

5 n6 E3 f! M, x7 W! g  i& k     begin
9 L- A- a2 s. _" \. c& O+ Q' M% l0 {2 P7 Z/ h7 n0 o
      sn<=4'b1000;
% }1 Z% l9 N5 T7 f: n7 W% r5 k
! z1 g$ w* M3 |9 ?      data<=8'b1111_1110;# |- @$ c; `. M
5 I1 N; m% a4 ^! y# C5 C
   
; L0 Q4 F% v8 ^6 R
% [7 _& p1 o1 b6 F0 V     end
; r8 K& A, Z1 C, ~. E# g5 F6 Z  c5 V& I" ^! C
   endcase. V: z; V  i, Y: |/ W
4 f" v2 B4 o( i! ^
endmodule
: {' Y1 e/ [" e
7 C5 _0 D" P* g/ J# |+ V5 ?这是我自己编写的一段程序,但只有前三个数码管显示123,567,第四个数码管不显示,按照程序应该显示1234,5678的,请哪个大神帮帮忙看看是哪出了问题?
# i" b, K& k9 m4 w+ u: o

该用户从未签到

179#
发表于 2012-7-15 19:22 | 只看该作者
支持一下!

该用户从未签到

180#
发表于 2012-9-2 23:30 | 只看该作者
为什么大家不报报自己地址,有可能的话现实里凑一起利用空闲时间做点什么,应该比发帖讨论效率高,我在上海莘庄和徐泾这俩地方来回跑的,FPGA是初学者,玩过的跟楼主差不多,所以现在就感觉好像卡在瓶颈似的,不知道怎么好
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-10-12 22:19 , Processed in 0.125000 second(s), 20 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表