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

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

    [复制链接]

该用户从未签到

166#
发表于 2012-3-8 21:24 | 只看该作者
我有兴趣 ,不过这 学期刚上单片机 。  还没接触  

该用户从未签到

167#
发表于 2012-3-11 15:41 | 只看该作者
初学,我觉得将最简单的东西(如器件的工作时序、概念)弄清楚最重要。

该用户从未签到

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

该用户从未签到

169#
发表于 2012-3-13 22:05 | 只看该作者
必须参加,我要报名!目前正在学习做xilinx spartan3系列的采集卡,硬件设计还行,就是verilog还不会,迫切需要进一步学习,希望版主继续讨论!!!
0 f' v7 r- X% C6 ~- p

该用户从未签到

170#
发表于 2012-3-13 22:13 | 只看该作者
下面是FPGA内部FIFO的一段verilog代码,抛砖引玉,希望版主把学习项目继续,一起提高。7 [/ e9 K1 v$ Q; P
module fpga_fifo(% C/ e# T$ k; u1 n) u2 c
                        rst_n,/ U5 b+ y" F: P: X" ?* A! Z9 f# t
                        iclk,
$ Y; |& T) Z# H1 n& B% I                        idata,
! u! K: _  J' G* F% ~                        oclk,
7 m9 g) l. z4 ^4 a                        odata,
; k# q" R7 ~5 i" z                        fifo_empty,, h6 y! n' `* C5 f5 u4 k5 Y
                        fifo_full,
, f' Q: S: J3 z                        stop,7 i; G" |$ \; t. W1 W
                        flag, |6 s% E1 G+ z# y" ~9 g1 R
                        );
: h6 T5 X& r& Z       
0 Q; ~# L1 Q- D* G        parameter length=10'b1000000000;
7 H8 D1 R5 E, h" I: J        parameter width=16;" I  ~* V1 t) o, G4 ^1 f2 S6 [
        //parameter dimin=6'b000100;) t, l$ h+ T4 J- q2 D
                        / p( b. V! A0 V
        input rst_n;    //启动+ r' B, i, L8 O2 _
        input iclk;   //输入数据时钟& v: V" S) I7 ?3 r& i
        input [1 :0] idata;   //输入数据* m1 ^: Z( S; V
        input oclk;   //输出时钟--接USB同步时钟
& e* q! {1 W& N/ p! G5 l        input [2:0] flag;
0 W7 V1 X" `+ `' F# Q2 r0 {$ H
. }& e: F4 M) j3 V8 \
+ j6 G0 C& i" [( y! e- t! J        output [width-1 :0] odata;$ H2 e! r: D. Z* l2 ?. J8 ~8 q
        output fifo_empty, fifo_full;4 T/ y6 \( b/ B7 X0 ]
        output stop;, {7 k+ A- t; J; T, q8 x
8 o8 `! g1 X0 ~, o" E  X
        wire        [2:0]                data_set;) D5 X# U$ t* ]$ P  H+ R
9 B! b& S; F" w, H7 E/ S0 Q' d
        reg [width-1:0] fifo[length-1:0];
" m# ~% \( T/ X) [( r        reg [width-1:0] idatabuf,idatabuf2,odata;
, m2 y/ \# f: c) ^$ E        //reg [1:0]                idatabuf1,idatabuf3;3 @" X4 S: P7 h( K
        reg [9:0]                 reddr,wrddr,wrddri,wrddro,wrddro1,wrddro2,reddri,reddri1;+ r- h4 l2 I$ m% _, a& I
        reg                         fifo_empty, fifo_full;9 i* C% B& y5 O) P" O# O
        reg [1:0]                 clk_set;
4 E4 [& G7 R- O4 v& _        reg                         fifo_empty_tmp0;. Z: w- M4 C4 p1 L8 ^
        reg                         fifo_empty_tmp1;
. m+ H. }8 E2 `  R- E        reg                         fifo_empty_tmp2;# |2 v' F! R1 ^. T: D
        reg                         fifo_empty_tmp3;% [$ g2 a  [) z$ S0 N9 Z
        reg                         stop;
7 e; e9 X( [/ ]( e: I* v        reg [31:0]                stop_counter;6 d) \* s; a8 R/ c3 k8 ?( }
2 d8 }9 K+ M0 y7 M+ P8 S( A9 M
        assign        data_set        =        flag - 1'b1;- ^+ b8 G1 H7 w8 s/ X

# p" m& a4 r# s, L//-----------------------------------------------------------------+ P# ?2 P7 k! z: ?% z2 s! y
       
8 t8 ^/ Y& u# L  |% H8 w        always@(posedge iclk, negedge rst_n)//输入时钟域% A6 |6 A/ J, q5 M* w' L, c, H4 `
        begin* K; X! |1 T: b! a& a
                 if(rst_n==0)/ B5 A* H6 y4 Z- a( m6 f
                begin# M! ], t' k$ |" X( T3 `
                        wrddr                <=0;4 g6 J2 j- P: b% ]6 H0 N
                        wrddri                <=0;
# p% X  g2 Q9 _8 R' Q4 a& R                        reddri                <=0;
. e; S* j" V% q- m3 k. ~" X/ f                        reddri1                <=0;
) V: y0 v+ W( O/ z                //        data_set        <=0;
0 w/ B& e9 V) H" a% E$ P                        idatabuf        <=0;
& R6 k" Y# O3 P, i" Z                        idatabuf2        <=0;3 e' @, G! N% n. C
                        fifo_full        <=0;; ]3 t9 d% P" t2 x7 g% `
                        stop                <=0;
1 F$ T+ s* q% A. g# L' v5 d                        stop_counter<=0;* E  m: C- _8 D2 a9 G
                end
9 f& G5 f! D6 X                else
0 ^1 e0 f& L$ h( v' u$ |                begin+ G- y% m1 g% L. ]" M
                        stop_counter<=stop_counter+1'b1;
3 T: x$ G( K- C# |3 n% ?" \                        if(stop_counter==1800*1024*1024)stop<=1;
9 c- r% M2 |7 Z; x7 {3 f6 ]1 L. a                        case(data_set), m& y6 P2 I, P1 u: T
                        3'b000:idatabuf[7:6]<=idata;
" Q0 P% B4 O  |. z" W9 g                        3'b001:idatabuf[5:4]<=idata;4 O9 }) n2 U% H* t9 B# ~$ }' C4 s/ e3 G
                        3'b010:idatabuf[3:2]<=idata;
7 @7 @: `( t% k4 h                        3'b011:idatabuf[1:0]<=idata;9 X/ E1 p' D6 q  P
                        3'b100:idatabuf[15:14]<=idata;5 c+ u* E. t0 v; @! Y" J
                        3'b101:idatabuf[13:12]<=idata;; x- q0 F" |% t' ]
                        3'b110:idatabuf[11:10]<=idata;! @  @  u. I( l: m' d& z
                        3'b111:idatabuf[9:8]<=idata;" f# b- E# n) h0 f
                        endcase8 \; q$ R2 {! N$ R; s
                        //data_set<=data_set+1'b1;# }9 D9 Y% N- Y: [, Y
                        if(data_set==0)、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

该用户从未签到

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

该用户从未签到

172#
发表于 2012-3-18 13:57 | 只看该作者
没看完~~~~~~ 先顶,好同志
; n& A1 p9 R- C8 l# C
( ]1 D1 y6 Z$ E+ @: R1 l. a! Q
5 M4 N- t# I! L. B
) W/ u1 I2 v- C; W+ C% a# D" T5 l3 G! {/ Y1 q

/ M$ k* y6 N% l7 K1 m
3 p( Q: \2 c  B) K( @$ b0 [0 V. a6 X: \' n. N
1 u* M+ I& Z0 t; d$ q7 x
" |3 N) q! ?* ~
' |8 e2 m; q" \. V# {: s. F  |2 s
" s# X# O3 |6 _
8 ^4 g, v0 g2 ~: A3 ^7 T8 H( b% @
好看电视剧2012 好看头像

该用户从未签到

173#
发表于 2012-4-24 14:56 | 只看该作者
我也想学,希望多多指教9 R7 X/ \3 d% G2 @! L
你的i2c的应答位有吗
, N0 w& F$ \2 u9 z! {

该用户从未签到

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

该用户从未签到

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

该用户从未签到

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

该用户从未签到

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

该用户从未签到

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

该用户从未签到

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

该用户从未签到

180#
发表于 2012-7-15 15:34 | 只看该作者
verilog编写的程序有四段数码管分别显示1234,然后又显示5678,就这样循环下去?! X: }( t2 Y7 @3 Y3 x7 F
module s4_7seg(clk,rst,
+ D" I# e4 Z* L* e5 J
5 l+ m+ u. Z$ g7 b2 {' W   s0,s1,s2,s3,
$ t* r- P7 n  [  R; ?. E( G( ~0 Z- t7 X9 D4 L
   d0,d1,d2,d3,d4,d5,d6,d7
2 I& Y! l) Q; ]7 o- u. I4 {5 `8 I1 J: ~$ _' M: z6 u" b
   );6 K( T, i' s  j+ j" L( F) U

8 t: D$ u5 F4 P0 Q7 U. @) I9 u* m5 b input      clk,rst       ;
# Z6 L0 C6 B' X0 ?1 K8 Z. N' ]
6 i4 y6 v' d$ V% t1 j9 T output     s0,s1,s2,s3   ;! y% `/ O. e0 }4 e3 b6 g( w" u, V
5 W1 o; R( D  [( C+ ]! y  a9 u
output     d0,d1,d2,d3,d4,d5,d6,d7 ;
& w# {% K# H1 g' y2 J6 ~+ Q3 ^4 x: {
reg [2 :0 ] state ;
7 [! @, S$ Y/ s
& l% d- [6 h6 x* i0 \& `. w! z reg [2 :0 ] sn ;' d4 j  F4 j# ~2 B/ s
6 E' ?& e4 y5 w- C0 I, L0 k$ W
reg [7 :0 ] data ;( E0 t2 ]! s/ l% I

1 X2 C% f) u, N$ S; s2 F reg [23:0 ] cnt ;" X& X. t2 @" H' k; I, A

" ?! j5 l7 l+ u' o" P9 g0 D2 ?
* f. y7 f2 V7 C& E
1 [2 Z0 d" M7 C5 X; u. @$ l7 G wire       s0,s1,s2,s3   ;
0 V7 N: u* h- R4 v9 W: U" x7 L2 ^' H
wire       d0,d1,d2,d3,d4,d5,d6,d7 ;
# s" ~, g  I# f3 A* K$ r
, y  a+ @, P7 p$ _! N5 r. n, Q assign     {s3,s2,s1,s0} = sn ;
/ s* m1 k. ^8 e% X( D5 ?& Y
+ h% i5 M  O/ e# m& B assign     {d7,d6,d5,d4,d3,d2,d1,d0} = data ;
; ]. I+ M/ d/ l8 }
) h7 \! I; y1 w7 b' t; I3 d always @ ( posedge clk )
* g, n" R3 |* o0 e# _8 v  r3 c6 _- e* r. A4 V" K
  if( !rst )
" |- `5 L' t, P( }7 R$ B% s8 s1 b
3 S2 X7 m' X2 @+ ~( K! }   cnt<=16'b0;% w) O) M: b) L
% D' [) T# [0 e; A, M
  else
/ F0 e6 ], U8 D8 [8 [2 |- N; ~, p( l8 `9 E, Z7 K) {3 G
   cnt<=cnt+3'b1;, y- c  T8 C, j3 P0 @

! k% K+ X( d8 m( m# S wire clk_slow = cnt[24] ;; ?/ G1 b# ^6 X' f: ^; n

! X$ ^' M/ ]" T: I' s always @ ( posedge clk_slow or negedge rst )% ]& J+ [+ _# s: J% P
. h/ ~2 N' i2 f0 j5 v) d  v% A% Y
  if( !rst ); q* \& z) U  a6 F8 I
  A4 H8 L! U. N, h! q  V, @! k
   state<=3'b000;) O9 R! r; U# J: E  x# M) V

: L4 y' l7 U5 |% H- U3 ?( }, r! ^; |  else
- U  M3 _$ z$ b* d0 f" k8 q' N4 B* H+ W' |& n; u
   state<=state+3'b001;
, k; W+ V0 H6 l3 j4 S* X2 ?* ^7 d! O5 `3 R' t4 Y3 N
always @ ( posedge clk_slow or negedge rst )  f4 W) F$ h8 `( G% c
6 ?% e5 U, G" m( C2 O/ i
  if( !rst )  G- l' K% M, P; v1 E

7 @9 N' Q+ r0 j* a   begin2 a* w% i; |, O
, v. ^1 D) [$ j  x  M8 F  v) e, o* h
    sn<=4'b0;
( Q! @$ Z' p  a& E- N
- l# w. V6 D" j; N8 L3 S    data<=8'b0;7 F8 V4 Y5 T2 `' S" U: d3 k& w

/ n% Q3 O  u0 F# X6 A. |- M+ ]3 U   end
  ]6 p7 L" H. T: f, F* V# J6 t$ S. H! ^" X. r; ^/ m' r/ D
  else: `7 }5 G9 T* e  Y

' q# h9 f7 Q5 L: g$ U4 t   case(state)
% t$ n, n5 H) n4 {
% q" W# }% L) q1 U; a/ v    3'b000:$ n/ R2 [0 \1 t' S; Q

8 j1 D: U5 K( U7 _) j& U     begin( Y+ `8 z, s! u/ w

. L4 }# i7 d; K4 l8 @      sn<=4'b0001;& [% O1 M, X  |1 }" H- q3 |

( `8 y) Q) O" ]7 ]7 c% S& B$ ?/ r2 ^      data<=8'b0110_0000;
9 e& C- N) k( G$ A) }$ X$ S. ^- H2 Y1 A' ~( F
     end
, B6 X; E. l; S% ]$ Z: a
2 w4 w3 x+ n  i; r3 d$ D* m" C    3'b001:
, s0 T3 \/ ^7 ^3 r' G  c
9 P" p+ U5 h" k& n2 Q2 T# U( z" J2 u     begin1 d2 X. W7 U3 O  Y) ^0 ^
" U' A& j# ^7 ], |( h1 l! v6 D
      sn<=4'b0010;7 _! G' h/ x& k

& B' t( R2 w" g; T' p      data<=8'b1101_1010;
) U+ l2 }* Z& s2 ]7 q! P, C/ U" S) y$ f1 w9 }& ?) |' z# o
     end- D3 i% v  J# U( H8 Y! h+ {1 ^2 D

  ?. H6 B4 z/ K, U  ]    3'b010:
+ f0 s4 R* Q3 h) l3 M6 T/ z7 a8 a/ Y0 t; P/ H6 {
     begin
- q4 |* w: l6 {" A/ i* d
. Z4 R  k4 o; N+ I9 l8 q      sn<=4'b0100;* c% L' k9 j7 X% v
, F3 O2 H" `8 [$ z- i5 A  X
      data<=8'b1111_0010;  n) q% I+ M7 V2 Y8 W  L
5 q5 `" S, N; b! b4 N
     end5 @" i$ i4 F( Z2 r7 l+ @

! j) ~7 J: L) ]4 Q+ {3 X( d* O    3'b011:( G1 i" b' ?6 O, `4 y" y3 v
& T& _. d! G) M% `# o
     begin7 }9 P3 g" J/ _" H

# i  P% c9 y* F" ?, T1 w      sn<=4'b1000;; H$ E, N1 a  q5 i4 o% Y1 P
0 g) J6 e8 t6 M: s
      data<=8'b0110_0110;  J- u" |) R0 \' A; L8 Q

4 ~/ J# z* A: l4 j; i8 c- B+ j     end  m% R+ F0 {( \4 B4 l' A: E
$ [- W* R3 O  W. s
      3'b100:( P* W8 I1 O9 W: w
: V1 D' s* S& G1 _0 ~+ k
     begin# C' `7 Q* ?% R" x9 _
) _- A7 q, q4 v. ^& o' R6 P
      sn<=4'b0001;& j$ \: n9 S$ _2 p7 ^% I
5 Z7 X( ~$ D( `0 l& L7 N0 n
      data<=8'b1011_0110;( x' m3 f5 o1 @7 G- I) V. }/ B1 B

$ O# ~' ^+ }0 \5 r% j! {     end
0 O( |: P& V7 s& \, M& V  r: \; n5 D" c$ W1 }  y9 W
    3'b101:
/ V% `' x' L. a- j8 b+ g; E7 ]. d* I; A5 V; q: a: e8 u4 H
     begin$ `4 t+ [0 Q5 G- h: `

9 g7 s; D; z- v% {/ A      sn<=4'b0010;  _( F1 N  Q  s1 Q, E  h
  O# L6 B# V! W$ [5 ~
      data<=8'b1011_1110;
; ]8 Y& H1 @  m0 M  C
$ Y/ R4 o+ g- Y5 N# L3 `: B3 G2 K- n     end
4 d( s6 u$ n! S6 [' d  K; g6 ?7 }! n2 X+ O2 f
    3'b110:- X, p4 k0 L/ |1 g( f; M# M1 ]
( n7 k9 d( m+ e$ h6 ~# L, c( l' E
     begin
' [+ O- S$ L9 ]7 q- u4 _9 K. K5 U. e- D6 ]& {
      sn<=4'b0100;
" v2 Z0 W: A  J) l/ C8 w1 {3 A$ r' r  a% X  t$ M* c, y* M) e
      data<=8'b1110_0000;
: ~; X$ S) M% Z3 Z  M+ ], b% t3 A8 X4 m8 m; @# c  w/ k
     end
3 S* F- Y7 _& e/ n7 b- E  j5 Y7 b6 o7 d
    3'b111:
9 w4 A1 ]% K/ A7 o. u% B- R
9 V5 e, M+ Q- z2 ~; r     begin
; |" z& e1 D( x: g
* q* e, V, U+ `+ q: u      sn<=4'b1000;2 d7 w  `. l' V& E4 z
9 }8 U4 b5 G( V1 B( b) |6 P3 c
      data<=8'b1111_1110;- b  f, w& i  P5 j; m" L

. r: K. _. s- P   7 {2 w7 m+ u3 n) G+ I
: g1 o! H. H: Q3 V. A3 Z, b* `
     end  A+ y0 M. G( v/ P4 w1 a. ]" ~3 z) `

7 p; r  p+ x6 u9 C4 y   endcase
3 e, S8 ~+ n. I, p8 z$ d
3 a. L  \( r% l( F5 w: _endmodule
- {9 k$ l5 M# Y* t
, Q* X& z. Q$ s; w2 m8 I& c% P这是我自己编写的一段程序,但只有前三个数码管显示123,567,第四个数码管不显示,按照程序应该显示1234,5678的,请哪个大神帮帮忙看看是哪出了问题?
* S  `% H2 w' i8 S8 Q
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-8-20 14:43 , Processed in 0.109375 second(s), 20 queries , Gzip On.

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

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

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