找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

电巢直播8月计划
楼主: yoghourt
打印 上一主题 下一主题

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

    [复制链接]

6

主题

34

帖子

55

积分

二级会员(20)

Rank: 2Rank: 2

积分
55
166#
发表于 2012-3-13 22:05 | 只看该作者
必须参加,我要报名!目前正在学习做xilinx spartan3系列的采集卡,硬件设计还行,就是verilog还不会,迫切需要进一步学习,希望版主继续讨论!!!
) D( \% @% x$ \1 U3 B; K+ l

6

主题

34

帖子

55

积分

二级会员(20)

Rank: 2Rank: 2

积分
55
167#
发表于 2012-3-13 22:13 | 只看该作者
下面是FPGA内部FIFO的一段verilog代码,抛砖引玉,希望版主把学习项目继续,一起提高。$ X3 e6 M7 f% G) I# ]& q  H# f
module fpga_fifo(; U( X8 g, R! b& i( P! Y" ]
                        rst_n,
  K9 t* L4 @2 B$ {                        iclk,9 Q5 N  o+ \( d, t; \/ X
                        idata,
: \% I9 N% V1 p& p# \- p                        oclk,
6 J: Z' k$ Y) z% W: {8 R+ h# y                        odata,
0 r8 k* |* }, \) s                        fifo_empty,
- ?3 c; H' C+ \- }; q) Y                        fifo_full,- n9 N! Z+ \3 |$ h4 R
                        stop,! j% w! P+ }4 ]) Q$ W. A' I
                        flag! u2 O; y1 p5 e3 }1 F
                        );
9 M( G8 }/ j& m( v' M1 e# K$ P$ R5 b          C9 }1 M! u% i1 L
        parameter length=10'b1000000000;
" n2 {: }* s: g5 w        parameter width=16;
7 r5 z# [" D% I: E        //parameter dimin=6'b000100;4 C' A, U( H9 X) y! V
                       
5 U9 c+ Y/ r: R) f        input rst_n;    //启动
) W, N6 |! ?3 r& K9 J/ ^) A        input iclk;   //输入数据时钟- \: Z$ e0 d, W+ K
        input [1 :0] idata;   //输入数据
9 c! s5 P( ]8 B/ x! C9 X6 O7 N        input oclk;   //输出时钟--接USB同步时钟: {/ {/ i. d( _  F$ e) [
        input [2:0] flag;
; _" J: Z* e  D0 G" ?5 ?8 @$ z! x; b$ b
1 \$ N$ h) I0 M! j: ]2 N8 f
        output [width-1 :0] odata;. ]' k9 L" D/ e$ F+ W$ F
        output fifo_empty, fifo_full;* Y, U( R  \/ p6 h3 `  o
        output stop;
6 A! J/ f  H% |7 B( q/ Z
6 l; k. ~9 f1 f) @' i        wire        [2:0]                data_set;
' f& r+ Z2 B0 E  x6 `; N# z8 ]& P. S7 l. ~- `
        reg [width-1:0] fifo[length-1:0];" y$ \; M1 X; y# b- x" p
        reg [width-1:0] idatabuf,idatabuf2,odata;. I. w: s6 q! E# ~, I3 c  j5 g
        //reg [1:0]                idatabuf1,idatabuf3;
* k3 ]0 r; W* u2 n4 R        reg [9:0]                 reddr,wrddr,wrddri,wrddro,wrddro1,wrddro2,reddri,reddri1;8 k$ p3 e% |1 C
        reg                         fifo_empty, fifo_full;
3 F4 O4 y4 F/ c" J        reg [1:0]                 clk_set;- S7 s! f( J8 B
        reg                         fifo_empty_tmp0;
* }1 l, N' w# v$ V6 _3 m        reg                         fifo_empty_tmp1;
: I4 h$ J: O, d5 q        reg                         fifo_empty_tmp2;" b( J9 h1 k" D3 u+ w. j# H
        reg                         fifo_empty_tmp3;
3 h4 Y6 J! ^) \9 O        reg                         stop;# @0 I  F- c: n
        reg [31:0]                stop_counter;! p. g- r, |+ g: `& v( Q
+ X' A6 ^  \5 Y6 }
        assign        data_set        =        flag - 1'b1;4 h, P8 e/ j6 g6 k) ^/ i' M% \3 j
" q0 q+ M* j  V8 q
//-----------------------------------------------------------------
7 b$ E7 E; t1 Z0 B$ ~" q        5 J9 t6 ^' o- j5 X
        always@(posedge iclk, negedge rst_n)//输入时钟域/ s  P! Y, a5 \: F* E
        begin
. q- z% U. f3 I8 b$ ^& I                 if(rst_n==0)( z3 f2 E& \3 V
                begin% B. k- U+ s0 o+ k0 _  B
                        wrddr                <=0;
# u3 o6 _7 v5 G4 W! a                        wrddri                <=0;! ~/ [0 y: P, ]: X) d8 U4 f
                        reddri                <=0;
' J0 L, V( Z- s, i4 u9 M# v- b                        reddri1                <=0;( D$ p( U. D5 x) J2 w
                //        data_set        <=0;
: P+ h8 j+ e* e                        idatabuf        <=0;
# {( b2 N6 o3 {0 O- ?                        idatabuf2        <=0;# ~3 M9 v7 `' H$ E' |: _
                        fifo_full        <=0;
! R' ~8 R( {! z5 M% C* ?. r) U                        stop                <=0;; Y- R9 ^0 |. L- W6 n' R: b
                        stop_counter<=0;
8 o6 N/ q1 u% q: D. \0 ^! h; q                end) x+ ?7 a( Y6 h8 g! ~  v
                else ) f9 V# Y& L* \; f
                begin9 j) x% L* h9 W0 F+ [: C
                        stop_counter<=stop_counter+1'b1;  g& c5 g5 P$ O+ f. j
                        if(stop_counter==1800*1024*1024)stop<=1;1 b/ H+ m! X; F$ l# I/ @, t
                        case(data_set)
$ `# Z) D9 ^% ^+ H: B8 i- s                        3'b000:idatabuf[7:6]<=idata;& [2 Z' B3 H9 v6 K4 y6 m
                        3'b001:idatabuf[5:4]<=idata;
* N' V- ^% X9 S  A: m8 D( }                        3'b010:idatabuf[3:2]<=idata;! B" C5 U2 O7 t* ?- M
                        3'b011:idatabuf[1:0]<=idata;
8 t& S+ O5 ]- \, X                        3'b100:idatabuf[15:14]<=idata;
1 |5 Y2 ^" \( d0 c6 @                        3'b101:idatabuf[13:12]<=idata;
6 J. J4 o% Z. M% T, \3 n$ v                        3'b110:idatabuf[11:10]<=idata;
/ ^' M9 F3 }9 Y                        3'b111:idatabuf[9:8]<=idata;' J5 F; s2 `" i9 a
                        endcase
3 A4 J: @" G6 H+ q& b                        //data_set<=data_set+1'b1;' `7 F: @& A5 P6 o+ o
                        if(data_set==0)、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

2

主题

8

帖子

4

积分

初级新手(9)

Rank: 1

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

0

主题

2

帖子

-988

积分

未知游客(0)

积分
-988
169#
发表于 2012-3-18 13:57 | 只看该作者
没看完~~~~~~ 先顶,好同志6 E; V/ }6 @  R1 t6 {

6 l- o) v+ C' [" L# F, w8 J. D; \

5 O) y4 p( ]0 g+ `; S, R* [) q: Y! F% l' p

% |  Z8 }: o) [; ]+ u3 V: O. P
' ~7 R5 ~( w2 N  _# ]8 O, F
& M. C8 |4 R3 f" |2 F
- o# s" V. z( y4 t8 B1 J- U  {$ o
" x: c2 \# i4 H% G8 S' }3 b9 N
! G1 ?( q4 M# N  ?9 \# |& T# Q: }% s3 l

: B: g$ C1 a# \+ _/ Q好看电视剧2012 好看头像

3

主题

82

帖子

107

积分

二级会员(20)

Rank: 2Rank: 2

积分
107
170#
发表于 2012-4-24 14:56 | 只看该作者
我也想学,希望多多指教, i) z) ]6 A: h7 }8 F$ P3 M
你的i2c的应答位有吗+ y1 r3 H3 c0 v) ~8 Q1 X

15

主题

167

帖子

145

积分

二级会员(20)

Rank: 2Rank: 2

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

15

主题

167

帖子

145

积分

二级会员(20)

Rank: 2Rank: 2

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

2

主题

18

帖子

24

积分

二级会员(20)

Rank: 2Rank: 2

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

5

主题

47

帖子

108

积分

二级会员(20)

Rank: 2Rank: 2

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

2

主题

79

帖子

887

积分

三级会员(30)

Rank: 3Rank: 3Rank: 3

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

13

主题

41

帖子

22

积分

二级会员(20)

Rank: 2Rank: 2

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

0

主题

2

帖子

1

积分

初级新手(9)

Rank: 1

积分
1
177#
发表于 2012-7-15 15:34 | 只看该作者
verilog编写的程序有四段数码管分别显示1234,然后又显示5678,就这样循环下去?
$ K* W. C+ F0 Y! j5 t; r% t! D+ hmodule s4_7seg(clk,rst,
7 r* y5 S6 b" [3 {, A. ~* T0 y4 x* B; ]
   s0,s1,s2,s3,& N6 p! g& H; ^+ S. S& |( g
5 O' [8 `6 P! r/ Y- V8 k0 z* N6 I! G
   d0,d1,d2,d3,d4,d5,d6,d7
7 \/ @( s, U5 R/ x
: h/ @5 z2 N. K( ?   );' E' c7 z+ h% x8 g# r
0 a/ G) i. v, L& W# k' B
input      clk,rst       ;
! D8 I5 ]. W- f. C; [3 g+ v# P
" ~( m# c. k3 _# t+ @ output     s0,s1,s2,s3   ;
0 T' _; }" X* P1 z! k/ W# k
" [$ r# ]) A7 J output     d0,d1,d2,d3,d4,d5,d6,d7 ;
  @% g" `' p: D. O& l
3 y5 p3 V# _: B5 B, ? reg [2 :0 ] state ;
1 R3 E4 s/ z  q  D, H+ V2 G) r
reg [2 :0 ] sn ;
7 |$ I# T# \  K5 o9 ]* [. N
# T- t8 [% N1 J3 _! {/ N4 R+ |, [9 S reg [7 :0 ] data ;
2 E; s( ]/ K$ z# G. z7 G/ a$ r- Q1 @: Z4 p0 Z3 M+ g  M
reg [23:0 ] cnt ;* O5 b" w* q/ B- T6 [

1 K. v4 Y$ b/ j8 k  w, `& G  d * w& n" W: y* d

9 u) k0 l6 n, H- ^! `& A wire       s0,s1,s2,s3   ;% H* z% p+ f5 j, d

& |& @$ Z9 F; W' q9 J1 N* J* V  k wire       d0,d1,d2,d3,d4,d5,d6,d7 ;
+ n8 w) r! K9 U: C
1 h' ~( d6 \! q% _: I9 s/ V assign     {s3,s2,s1,s0} = sn ;
. X: h9 ~4 R7 I4 k1 c: H9 V! ^6 |& [4 {
assign     {d7,d6,d5,d4,d3,d2,d1,d0} = data ;
+ ~  b# P4 @" i2 P& |2 e8 }1 y0 h7 Z7 t# V( l# C4 v% j
always @ ( posedge clk )
- w1 b* d( i- k: a7 B
! B) H8 l" p, R+ s  k3 a+ S  if( !rst )6 G( `. _) b& A8 E6 M  T5 V

2 g$ a: D0 I# r; V4 C( C, p4 F$ w9 r   cnt<=16'b0;0 \- a8 W. P. D

: V" r  d; d% ?: U8 }8 c- e  else: J1 J' g$ h/ I6 b: S- ?

5 c$ p' R1 t1 {   cnt<=cnt+3'b1;6 J6 C( U& Q; R, K2 d, B' F4 v& R
: N  u* W" Y. q" d3 S
wire clk_slow = cnt[24] ;* K9 X$ C8 P( i, ]

9 w; o2 k' c8 A5 l always @ ( posedge clk_slow or negedge rst )
3 }! R7 V4 P  s9 T. O. c0 F+ g3 U+ |: J9 x3 n+ `- b8 g
  if( !rst )
! s! w4 R7 h+ g, Y/ ]! J! m& Z
, o( o+ S! k7 b   state<=3'b000;
( V5 n. w& }3 Z2 o" N* z: p) X$ w3 L% s
  else/ ~, `8 g( p9 e- u- y

* w, b; e0 \9 ~% d   state<=state+3'b001;2 U) W7 J! e  S' ?  i# P5 u
/ d6 O& j! y. E( y) @
always @ ( posedge clk_slow or negedge rst )
0 Z3 ]+ ?, ]3 \: J- r
2 E$ V7 G( h1 b# n; \  if( !rst )  G5 K2 V; Q% ]

( m) J" f, R- a( T' @   begin7 t8 R6 k; S$ N/ m- Z1 e' ?

& ]% J1 }# R6 k& S    sn<=4'b0;! l0 u) p. u4 E9 ]

0 V/ h9 k# L! m4 A2 F    data<=8'b0;7 T( h+ F1 a$ |& D/ F) Q

; Q+ g7 }1 r1 h. N- J   end# T4 U( ]. u" p9 ]3 o

* s$ I$ V, i3 O! i  else
+ p5 C3 X2 E. ]2 Y" U, l! J4 P8 X; j, K$ o5 w
   case(state)
7 r8 ~' k% B( g3 ^; ?1 X+ j5 i& A6 X6 R# T
    3'b000:) \/ ?% ~& I  N+ x  L

1 B# c9 _1 k4 }- d$ `, C" k% T     begin
0 v  ~2 S% D# b  F* k
2 i, i, w% k9 W$ |+ @- f      sn<=4'b0001;
3 z) p9 t: [9 P
6 a& `$ ^8 Z$ u  }      data<=8'b0110_0000;
9 t0 Y% }" I3 `! t1 L
9 U/ Q$ d6 ~2 o; c  {8 }     end7 R- m1 F' ^$ F+ r  `! H  |1 a- Y

$ y: q! \% _' _    3'b001:8 C' L( N+ ?# u
5 U, N9 q0 ?* G, L: x* @, f
     begin
& t" R& r& v/ J7 M, B+ }3 ]- P/ K: T5 t! ~# F
      sn<=4'b0010;
' r! T) C' J! N4 o: N7 N3 U" U* m6 e: y2 ]& Z
      data<=8'b1101_1010;. c* G) r8 m0 i- |( [

! z+ ]% {" e2 o" D) D1 \, \     end
0 x1 a. r8 Z5 Y, ]8 Z& L/ W# o  x8 R2 j5 D- Q
    3'b010:# \& f+ l( t7 O/ u7 X3 f: T

, ~- Q! q$ j" R: Y/ M. E5 B# f     begin
& U! j  Q& W) T, H' q, T- K4 R% h& l# f4 w+ A3 x; Q
      sn<=4'b0100;
+ R1 c! v) v# M. M4 w  v' \$ O; h8 ]
      data<=8'b1111_0010;
1 H: d# w1 V  h' [0 Q
0 }  H6 F8 x) c/ P! ~( }: l8 ]( Q1 `     end- i7 \! L, ?' o& N$ a

6 s2 W3 o% ?/ m" S! m    3'b011:
6 k5 X* \8 t6 A  O7 g+ C0 `* M0 n- C
     begin
* u: G: [/ l6 Q- }( S: l4 Z. S! g8 ^6 j# ^+ B
      sn<=4'b1000;" N0 O0 O6 j, W3 y* E0 W

% j2 \* x6 l( d3 }      data<=8'b0110_0110;
4 X5 k6 L; C/ b* E! L3 U( H; [* r: k/ S8 t9 T7 f9 j4 Q) i
     end) H4 Y. D9 G  F1 W4 X9 N
3 p' h: E$ P9 c4 v" V$ `
      3'b100:
+ \6 p. {& X) H) k$ k( |" [: J- k; a& M( b8 P3 l3 q4 x" r
     begin  a& p$ |7 \9 Q/ a& l1 ^" A9 d

( Q3 A. R% w7 B      sn<=4'b0001;; G/ u' W& e2 {. C
* h& r( j& Q2 C- w" p* A
      data<=8'b1011_0110;: m9 H  I- i2 E; _( i% E: B7 n

$ X" J" J2 }+ {% K" ?; T% w     end
) g' X; _7 }# T4 K/ J/ I$ T( Y! _% g! m# g* |8 k
    3'b101:
9 {- N1 o* P- T! t  x+ i+ J% u7 g$ K% v% G
     begin
3 }! B3 t2 E1 {8 _9 a) G! |: k, i! |, d+ |2 y
      sn<=4'b0010;
( u9 X  _' r3 U5 u3 ~( M) r
) |3 ]4 ]) z: W1 ?4 q6 |4 l      data<=8'b1011_1110;" P/ |" {+ e- m3 j/ S& n2 n) D! q5 X

9 W# k, v) N# y7 o     end, i8 e( \7 E7 f% d& l% Q

# c3 {* p5 M2 d    3'b110:
0 V. d! u7 N4 ^! t2 n& E/ C
# S# e5 X5 B% ~+ ]' ]     begin
, ^9 i0 j2 X/ u' ]0 z. v7 t5 ~5 M+ K, T+ m/ S
      sn<=4'b0100;4 ~5 G5 e/ H* A3 p% `) }) J
4 S; {8 G9 n! w; b5 y& o
      data<=8'b1110_0000;
- n' S' e7 |5 Z( F- Y% ^1 ~' J7 q/ S: U7 o  P5 B% D' M/ \* R
     end
* D+ O2 T5 v+ @' B
2 A5 y( k) k  r    3'b111:8 i! d2 T6 ?+ x  W  B( Z/ @4 z
( ?! H" a/ Q+ t: {0 Z3 Z
     begin! M% }: d' G! b- S
, w! I2 |- v/ D2 P7 Q$ C( S# _: P; v
      sn<=4'b1000;& o/ s) ^, {) [5 }
9 B- y/ _! ]6 @& b9 ^5 l' t
      data<=8'b1111_1110;
$ K$ z6 B+ X/ q; }$ b6 `8 j7 ?- a& o$ _3 _5 ]; z- t
   
8 @5 _/ {, B# K( K$ {
& o; C8 J% ]2 d3 K. U$ r     end
: e5 `8 H5 ~6 z1 ?* p/ N9 ^% Z- s
1 O/ N* r* P; ~7 F, _* `   endcase
4 {3 j& v) r; P' V, p2 k$ ]0 U' {# a8 N6 D
endmodule
& C5 W* B, l. O. D; x! P' N. L* Q/ [( I- e
这是我自己编写的一段程序,但只有前三个数码管显示123,567,第四个数码管不显示,按照程序应该显示1234,5678的,请哪个大神帮帮忙看看是哪出了问题?
8 L) s5 `% p& N" T9 Y# {& {) t2 _

3

主题

40

帖子

173

积分

二级会员(20)

Rank: 2Rank: 2

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

0

主题

4

帖子

24

积分

二级会员(20)

Rank: 2Rank: 2

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

1

主题

49

帖子

111

积分

二级会员(20)

Rank: 2Rank: 2

积分
111
180#
发表于 2012-11-3 14:19 | 只看该作者
这么老的帖子都翻出来了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

巢课

关于我们|手机版|EDA365 ( 粤ICP备18020198号 )

GMT+8, 2025-6-7 13:48 , Processed in 0.066885 second(s), 31 queries , Gzip On.

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

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

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