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

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

    [复制链接]

该用户从未签到

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

该用户从未签到

167#
发表于 2012-3-13 22:05 | 只看该作者
必须参加,我要报名!目前正在学习做xilinx spartan3系列的采集卡,硬件设计还行,就是verilog还不会,迫切需要进一步学习,希望版主继续讨论!!!
- E+ j2 ~/ J1 F+ d* T/ ~) Z1 J

该用户从未签到

168#
发表于 2012-3-13 22:13 | 只看该作者
下面是FPGA内部FIFO的一段verilog代码,抛砖引玉,希望版主把学习项目继续,一起提高。! i  u* }- u) m% U* g5 ^  _
module fpga_fifo(' I# b" C& {' s
                        rst_n,
4 H/ V+ {/ t, [+ a  |! t                        iclk,. S# ]2 [3 v  m# G2 ^1 _
                        idata,
: J) D1 Y1 p! w                        oclk,8 d! t8 P+ P) W; O. G; ]
                        odata,0 N. ^# r+ ]" @! N: V
                        fifo_empty,
5 l$ y1 B7 F( ^) x/ j0 W: I5 z4 h                        fifo_full,3 ^! N6 Q6 l: J5 O+ ?7 Y3 a, Z$ n7 F
                        stop,) P0 ~0 Z$ y2 Y/ Q* l" A  ~
                        flag
* c/ l/ J9 i0 A, I7 D( C                        );
1 s! R, N4 F) o  G' E8 f5 {+ p        : j( D" r) m& o$ {4 s# m3 @; K
        parameter length=10'b1000000000;' G# B) ]0 R* D2 p/ j" O
        parameter width=16;# c9 U8 j9 G) v1 L
        //parameter dimin=6'b000100;" ^8 U( m5 T  j9 M
                       
- J+ n( {2 z! v& Q7 z        input rst_n;    //启动
6 D9 ]. G/ R0 ?- v5 v" G8 X+ H. J' p        input iclk;   //输入数据时钟8 D$ m$ C1 ~' Z8 U
        input [1 :0] idata;   //输入数据
: W2 B$ h( z! s+ |, q; i# S8 L        input oclk;   //输出时钟--接USB同步时钟, Q; g" F2 D, z4 j
        input [2:0] flag;/ C. V6 @$ ]- q, b

, J! ^1 e5 W5 T8 {. ]5 Q' R! ]2 {
) |7 `, k# o8 H7 R& a1 n        output [width-1 :0] odata;6 ~- h# z7 a) L+ {2 M
        output fifo_empty, fifo_full;; O+ T- T  x  k- |* n9 B- Z% F
        output stop;* F- U$ |. j! k6 y. E- u6 e2 @

# {; j% _( y( H8 D0 K" f        wire        [2:0]                data_set;
& Y  A% O: A( y0 {' t) f' V: {( k' Y% C. Y5 V$ H7 u
        reg [width-1:0] fifo[length-1:0];) W. e- M' a% [6 P+ B
        reg [width-1:0] idatabuf,idatabuf2,odata;* `. }' n' o+ \+ o/ x/ D0 U
        //reg [1:0]                idatabuf1,idatabuf3;5 k. x2 b4 J0 h; e) q# c4 A
        reg [9:0]                 reddr,wrddr,wrddri,wrddro,wrddro1,wrddro2,reddri,reddri1;+ n- v9 z+ V% z- e
        reg                         fifo_empty, fifo_full;& G7 I2 d% I+ a$ [! H+ [
        reg [1:0]                 clk_set;" m  b; l2 f6 _+ o1 Y0 X% Z
        reg                         fifo_empty_tmp0;
5 s3 |6 J5 m5 C. Z7 H8 O( n% H        reg                         fifo_empty_tmp1;
8 Y5 l! V$ Z) I& l        reg                         fifo_empty_tmp2;" F" B5 T$ M3 n1 P+ K
        reg                         fifo_empty_tmp3;4 B1 u; s/ W5 i$ F0 |" s
        reg                         stop;
, N: [& o7 T( g# N  G. P2 G( _        reg [31:0]                stop_counter;
" u% h; a/ l3 ?4 \  G* S1 S- A  Y) ]1 t
        assign        data_set        =        flag - 1'b1;# i  i. t& A# F' l: }0 \5 u
) `, ]  R# x0 u) B6 ^  ~! P
//-----------------------------------------------------------------2 l4 Z* A$ z) Q! o2 x  f
       
! M( [7 L/ \7 r! p0 F5 L        always@(posedge iclk, negedge rst_n)//输入时钟域# o6 n- V* e1 F2 q3 [  t
        begin
7 x0 [% {* h. m" C! n3 T                 if(rst_n==0)  o/ L8 g2 i8 c8 o4 o8 p# {
                begin8 H7 N+ F3 o0 C
                        wrddr                <=0;: X$ R5 j# F. G1 R* Q
                        wrddri                <=0;
+ A. R2 B- Q' G/ a# B                        reddri                <=0;
, ?5 ^1 {& K1 j                        reddri1                <=0;8 c" p8 D$ z1 J
                //        data_set        <=0;8 x! M) N5 ^! a, [8 b; ?( i8 U
                        idatabuf        <=0;
. R! e: U3 v, t# U1 u6 r                        idatabuf2        <=0;( ?% B! `0 f  X, Z) @! e
                        fifo_full        <=0;0 n; H( Q+ v( P6 C0 a3 y. z1 b
                        stop                <=0;
7 i1 ~# r  N. l! q" w                        stop_counter<=0;
! [! c2 C9 \! @0 k                end
$ n1 }9 i! i& A- {) C                else " M0 |5 d* T+ K# ]9 o
                begin8 g4 J- I* m2 u+ {5 }' b
                        stop_counter<=stop_counter+1'b1;
6 b% @! k( h5 m                        if(stop_counter==1800*1024*1024)stop<=1;
7 _! G, L2 L) c5 _7 f/ F                        case(data_set)
- ~$ K* L4 O( p) T                        3'b000:idatabuf[7:6]<=idata;
. p9 c$ m, v1 R$ l/ w, g* r% V. x6 Z( s                        3'b001:idatabuf[5:4]<=idata;
. i8 p  [" r1 a5 m+ L: L% N& m                        3'b010:idatabuf[3:2]<=idata;5 S+ [* S2 p9 g0 I' p0 g/ A% C
                        3'b011:idatabuf[1:0]<=idata;
/ K* L* Z; X/ N4 K                        3'b100:idatabuf[15:14]<=idata;
# r2 i1 j* F) l* t% e! i& q+ X) Z8 a                        3'b101:idatabuf[13:12]<=idata;" [; Y) }: _" V( ?" M
                        3'b110:idatabuf[11:10]<=idata;
9 k/ s1 B4 R: S3 w                        3'b111:idatabuf[9:8]<=idata;# Q  m; Q# d+ J
                        endcase$ m+ N6 U1 A, }, q
                        //data_set<=data_set+1'b1;/ A+ S  y/ [# d$ O" K* \: `
                        if(data_set==0)、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

该用户从未签到

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

该用户从未签到

170#
发表于 2012-3-18 13:57 | 只看该作者
没看完~~~~~~ 先顶,好同志
: |! C! S/ Q* y  z+ D% i& a$ k9 c, c; i# W7 \/ Z2 {

4 W0 \) Y& L/ r$ Q3 c! v. w: S8 k/ B  t4 ^" c

; w: q! ^0 Y& [+ D
! R, r9 V8 _% s& q1 N$ q% ^
9 ]7 |% s' N* @- H4 f- p+ D5 Y  \8 C4 X, H( I4 ]
9 H4 o. o( R7 K5 @3 c

5 {" [( M, X& U' s! t1 k1 g  h* V8 w( O+ c, u3 ]

, Z0 U  v2 O+ U- U; B9 r; g
4 C' r, A: ]2 v: V0 k好看电视剧2012 好看头像

该用户从未签到

171#
发表于 2012-4-24 14:56 | 只看该作者
我也想学,希望多多指教
6 r" h& w% \% Z* F 你的i2c的应答位有吗. Y* {1 T, r! H" G1 R% P' X

该用户从未签到

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,就这样循环下去?! ~  Y( k/ F0 I
module s4_7seg(clk,rst,
/ F' J" k% }: q3 i4 l  ~2 k: r! A0 z. f1 v
   s0,s1,s2,s3,/ ~$ I' }4 w5 f7 B, I. a
8 g. A+ a1 V6 Z: p4 J
   d0,d1,d2,d3,d4,d5,d6,d7
# v; a8 L/ v- M/ }/ T& ^( [
4 Q, x- X* E; R% \   );2 C5 Z- k4 \, F; T

' r1 Q# J! G5 e, S' G4 |. n$ ^& V input      clk,rst       ;' s' H5 s* E( {  Z8 d& _6 c

: X+ Q& Q$ K' V: _% y3 J+ P output     s0,s1,s2,s3   ;2 Q; k) P( Z; `% ]
' `+ t. d  ~" z8 }* M& f  H) q# \& T
output     d0,d1,d2,d3,d4,d5,d6,d7 ;6 M* M+ Z" M: ~$ O1 z
7 j) S5 }: p* Z, Y: O" Y
reg [2 :0 ] state ;
! K: a# ~% W# m7 b( v/ E8 j) R
6 d9 `" [" g2 `% }$ V reg [2 :0 ] sn ;, z6 P7 _  Z& g  t9 B% [

3 n% W. \6 P, _+ r- @/ b) D reg [7 :0 ] data ;& g* n" S& p- v3 |" \
5 z9 g2 i# O9 }. R! I
reg [23:0 ] cnt ;
- l$ v  i9 F8 H
/ A0 W' _9 q0 v 2 O3 p# G& x  k( D; D
) p; f- u/ p2 w1 {
wire       s0,s1,s2,s3   ;
- C7 c  {, d9 _& @, l
  I) e6 V/ Q% N( ^, O# Y wire       d0,d1,d2,d3,d4,d5,d6,d7 ;
; H* u0 C* K3 y1 ?  v6 a  m* h' Z/ b) [! l/ c: b
assign     {s3,s2,s1,s0} = sn ;; I0 w: `0 ?/ D/ i7 J5 M

% l. n. z& X! }4 o assign     {d7,d6,d5,d4,d3,d2,d1,d0} = data ;" B* h) [6 c7 N9 v+ K
' m# ~# }. ]7 Y% \( R8 R
always @ ( posedge clk )9 M4 Z" p3 E, N$ U2 Z: n7 Z1 O
+ T, a# v$ C& E8 C: [
  if( !rst ). a  a, I  b# t% V. q0 d

: p* u. Z( B+ l" {% B* z) R" z( c   cnt<=16'b0;) Z2 s% i5 K/ b: d, D! D( a6 T2 I# S

" x4 \8 t8 J" D+ s. Z7 W- {3 V  else
! p' u, g0 X% _9 U9 V6 c. H0 G: X( ~
   cnt<=cnt+3'b1;; `' h7 X) R9 K4 m- J& l  I

5 b0 B5 ]0 ?* b$ r) ] wire clk_slow = cnt[24] ;
' ^9 p; }" o' u1 A3 h
: k9 n" P: ?6 H always @ ( posedge clk_slow or negedge rst )& O; ^9 p- z/ x
# S6 ?3 D' b' B5 \' L; q
  if( !rst )
1 A) I$ r$ }/ ^! v  C- B+ X( Z3 ]
   state<=3'b000;, ]# f2 \9 H1 w: z: w

$ r8 j, C% j0 ?" T: E  else
; [& u1 y; B0 n! N3 h" B2 j
( L+ ?* D% p0 ]4 R& o) |   state<=state+3'b001;
" a4 S+ T) `' V- v) K5 l4 b8 T" c1 L% s0 Y7 [
always @ ( posedge clk_slow or negedge rst )
& s2 E7 f, A1 s9 H2 D5 o! l) g. S; m2 q0 ]* O1 u  n# A$ a
  if( !rst )6 I( J% y6 r1 [" m5 ~+ ^

5 e6 X3 _' M. ?) `   begin* U5 ~1 x2 ^! E

7 X1 ^" s/ T5 Z4 v    sn<=4'b0;
" Z9 [2 m$ n9 F' ?) M
5 j4 N+ B" ?1 k" O3 t/ @    data<=8'b0;
% {+ p+ a/ a' z0 ~8 b4 h: W& O, O: g- y6 z; C3 O) g
   end
* Z; ]! K1 w4 E! A. Y! u7 e/ W% b" \" P; i
  else4 m4 u: P) p7 D% I* U6 x9 t

+ Y' w! d" x4 h4 F0 o& E* m" Q   case(state)
: g. M* N7 g4 X2 t; g8 V7 g+ ]) B. K0 ?& T. c
    3'b000:$ p2 C8 Q: j/ u' |: W! d! c

* u! @+ R2 @5 v7 `2 I     begin( f$ ?; ~, `* [( `5 E
" p) P' [1 {5 ]. F0 H
      sn<=4'b0001;
7 `5 S# K7 r1 a9 C7 m: ~; G$ f$ v1 y/ N& Q. }+ H4 ~# d. e
      data<=8'b0110_0000; + ]3 r$ C3 i# z: J- i% B, z6 z' j& j

$ g( a4 x- o7 s. u0 I$ L     end
7 w, T* T6 j) m2 u5 H' s- Z1 a. x5 A+ O# b& C9 Z0 N2 F  \" V
    3'b001:
! _4 a7 G- Q+ _5 J
! m: d; |; k& p: d     begin
9 n0 j" P3 Q; I, B7 b( z- x
$ t: k: E0 f/ b- S" ~2 Z      sn<=4'b0010;* O% Z) u) n3 a+ U

# o$ W7 t- S7 w7 Q! u$ \      data<=8'b1101_1010;
2 Q* \: j1 x" b$ R2 e5 R1 r8 [3 v' _" j+ U' Q6 ?8 r2 O" E
     end
  ?9 o  j- O( h: J$ p/ `  q3 w* \  G* Y9 u7 O: `" P. Z3 v0 U
    3'b010:
* p! l- [- b0 h) }& {4 }$ S# {- T
3 _" t5 o1 c$ w8 {     begin! D. r6 U) {% K' |

) m! F/ i9 w2 W3 e      sn<=4'b0100;
# o% d  O8 q4 R* J
7 }- Z2 z: ~; a/ ?      data<=8'b1111_0010;
" s7 O' \; x5 D
3 z: c8 h& f5 d) E     end
4 c; d1 h% J8 E' s/ R# S
& [' d. M5 T, L, D7 F    3'b011:' H* z+ K+ M: j5 A0 Z% K) B

) i7 [% c, L; c7 Y1 l4 U4 |     begin9 g& o  L5 ^/ h  ]

$ {  y) v9 I1 |7 A      sn<=4'b1000;' i' E2 R" ]6 R
9 n( x8 p3 s) k! k+ S' m7 o
      data<=8'b0110_0110;- X/ Z: Y, |) Z2 L$ k8 d

7 j, U1 t2 w! |% p$ I$ z/ A     end- K9 V$ r9 x$ O% W" P* L7 y8 N
3 K- a, E% c+ O% \/ ^; f
      3'b100:
6 O0 b8 D$ Y, N6 h( G) d$ n9 y' o! E! @, n
     begin
- z7 U# P1 z( s# G1 A9 {( p& a" R! k' \! W- T
      sn<=4'b0001;
/ D! V1 z9 u- x3 Z/ a9 C; v* B) q
      data<=8'b1011_0110;' M1 \! y8 t$ N% _

, J/ _) e% Y% C+ `     end1 Y) ~1 g! \7 [0 k) `

) R0 W/ E( M7 a5 [! i    3'b101:- R! H! ]3 Z1 X! C: E0 M: {

' x% [/ A- y6 o( y9 u  ^     begin
# h* n! T* H* Z! c1 A- k$ V7 v. \. p0 j1 {  |4 h9 s* k
      sn<=4'b0010;) P% v) p7 x7 s9 U+ f/ B3 u, y
5 n8 n5 M* U7 t& I1 I0 E
      data<=8'b1011_1110;6 W* }+ `: j7 @. E& j
" f* A+ k$ d2 X
     end
0 ]% @4 @2 h0 r8 l0 U* j; _1 _0 F) W. k' g
    3'b110:
9 U1 D. ]- l9 {" D4 [
, r& x6 S0 `9 e  _+ y     begin8 \; T- K" p$ r" R) @6 \
# f5 p2 `( M6 M! q( O3 ^
      sn<=4'b0100;9 e4 i' Z" `) B% v
7 O8 j  v% L! S. H! h
      data<=8'b1110_0000;
, d% }+ J6 x1 |2 _& l
& i- C, h2 o) N% D. J( n9 {- X     end% C: G. m8 I$ h; R( h) |
4 ]9 q! ~! D* E. S
    3'b111:; `( _6 ^5 v! w+ Z, P  e' e& o# ~
: [9 D9 t  U( ]3 D! i2 D7 p
     begin
6 ?- f$ T) ?  D4 w. K0 K0 Q+ X& `$ y. s2 f( ?# [. @. c2 l
      sn<=4'b1000;
# l: I/ ~+ ?$ z3 G  W+ l7 D8 y: d( A2 P+ C- j
      data<=8'b1111_1110;
4 V% k; d) G4 m/ [# S- o- F( _, u% p+ T  Q! Z" R. @
   
' s8 P7 j* R! o' H; \5 c3 R5 F7 a3 _/ |6 w/ [( J. M+ N* j
     end
. w9 p) H6 i0 W/ t
  ~% v: s# R/ @+ w; L7 l   endcase  `3 V# Z  g: l) O

0 L# B; D( U& kendmodule& Z. G4 C( w  v8 o' O5 }) d1 ?2 c& l
( j* d7 U2 F# s1 c: H
这是我自己编写的一段程序,但只有前三个数码管显示123,567,第四个数码管不显示,按照程序应该显示1234,5678的,请哪个大神帮帮忙看看是哪出了问题?
5 p, r7 g' C( Z3 r/ T

该用户从未签到

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

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-21 23:53 , Processed in 0.125000 second(s), 20 queries , Gzip On.

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

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

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