找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

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

    [复制链接]

6

主题

34

帖子

55

积分

二级会员(20)

Rank: 2Rank: 2

积分
55
166#
发表于 2012-3-13 22:05 | 只看该作者
必须参加,我要报名!目前正在学习做xilinx spartan3系列的采集卡,硬件设计还行,就是verilog还不会,迫切需要进一步学习,希望版主继续讨论!!!
! U( X/ s% d  {

6

主题

34

帖子

55

积分

二级会员(20)

Rank: 2Rank: 2

积分
55
167#
发表于 2012-3-13 22:13 | 只看该作者
下面是FPGA内部FIFO的一段verilog代码,抛砖引玉,希望版主把学习项目继续,一起提高。* |# W, Y) I  ~: a. ]8 P* w
module fpga_fifo(
9 u- g% ]6 {( F' E                        rst_n,
( E9 l0 j& @$ ^8 |) v' O" d& J                        iclk,& E" A7 o( R' I
                        idata,, S. ]% a0 Q) H6 S* I5 j  Q7 G
                        oclk,3 x; e6 h$ N9 ?; W
                        odata,
0 r" }4 V  C0 B                        fifo_empty,' |" k/ h& J4 \
                        fifo_full,
& U  e- ?8 w( _' m7 W3 u) v% A$ w                        stop,$ a1 W2 y8 ]  D2 ]  v
                        flag
- u  I! L8 ]# m0 b$ y4 t                        );
) r$ T# Q& d" e2 A; A/ _5 K+ I       
# B4 H5 O' c9 {* F) w9 J        parameter length=10'b1000000000;
7 q1 |+ V- I$ a# y) @) p        parameter width=16;. V, S! T+ z6 \8 @3 x" V
        //parameter dimin=6'b000100;6 ^+ g0 I  Q0 E2 l. v
                       
! E1 \5 _* B' |4 V        input rst_n;    //启动1 Y; f# u. X9 X  H# c7 X, x
        input iclk;   //输入数据时钟
0 q/ n* T6 H- z7 `  M+ F/ b        input [1 :0] idata;   //输入数据# k. t% n+ ]. I
        input oclk;   //输出时钟--接USB同步时钟/ U* Z" z! ~% L2 ?; e: ^
        input [2:0] flag;
7 H& c9 D) e* i( Y9 f7 J1 t/ a) A1 L7 G$ w1 U* J
5 R: _; e3 ^$ J# k0 T6 K2 u9 k
        output [width-1 :0] odata;
0 |+ T5 k9 q  i        output fifo_empty, fifo_full;
: J& k! T7 }  s8 f. z" I; s1 |2 U        output stop;
/ k2 @( \, d+ U
! c/ A2 t8 q: ^% D        wire        [2:0]                data_set;
" E4 w( z3 g; H* J( w
" z' f1 ]% ^; t$ A1 S) O7 g        reg [width-1:0] fifo[length-1:0];
, i  Y7 Z: |: W8 Q8 i3 M% t        reg [width-1:0] idatabuf,idatabuf2,odata;- x1 b$ Z  u5 x
        //reg [1:0]                idatabuf1,idatabuf3;
: ~8 w4 {) W& U- n9 P( r% `+ h2 ]! V        reg [9:0]                 reddr,wrddr,wrddri,wrddro,wrddro1,wrddro2,reddri,reddri1;  j( s% O8 f& Y7 C4 x# ~& h
        reg                         fifo_empty, fifo_full;
& T# ]! e5 Y- Y1 s0 n9 l5 ?        reg [1:0]                 clk_set;( l; p( H" C8 a3 J
        reg                         fifo_empty_tmp0;
! M# |! D$ h! S$ y) i        reg                         fifo_empty_tmp1;
# z+ S! [2 s. \' I        reg                         fifo_empty_tmp2;7 l4 D; `  J: o8 \" A* ]
        reg                         fifo_empty_tmp3;' ?0 i% G1 a, ~( [
        reg                         stop;( R6 ~; @$ x: [4 d# A% b4 P
        reg [31:0]                stop_counter;! Y+ b; H0 H7 J
2 ^  O$ l7 R. ^) }
        assign        data_set        =        flag - 1'b1;9 @$ `+ u' W" I; B- G
5 W- Q2 _3 Q, x. z5 e4 a$ D8 n
//-----------------------------------------------------------------
+ s5 G. h6 I; F! Q        % G+ s3 V# {1 z5 z1 V+ R
        always@(posedge iclk, negedge rst_n)//输入时钟域3 z- N4 w+ `9 c  K* ^: T
        begin$ _- p  w5 ^0 j+ O
                 if(rst_n==0)2 n# E$ M8 X: b5 t
                begin1 C! ~' o$ Q/ f- [0 j- H
                        wrddr                <=0;
/ u3 P( ^; i- N; _                        wrddri                <=0;
7 a3 B+ \; l( @6 @: `                        reddri                <=0;
; y4 F! g# q3 k2 |1 Q( G: C3 @                        reddri1                <=0;6 O) Z# U( Y1 A/ O
                //        data_set        <=0;: ~. v$ C: X, d7 f
                        idatabuf        <=0;7 K3 q/ r5 `( k' ~# e
                        idatabuf2        <=0;+ z$ X% [( ^/ M5 w8 y0 O
                        fifo_full        <=0;
. Q9 y2 x! N( w! r; Z                        stop                <=0;/ j3 C. o* c/ q4 l5 s2 `2 l
                        stop_counter<=0;
/ n" `  c3 q& K: r                end- {: C, G7 m! w$ e8 U; W) ?/ x
                else
! ]9 ?3 W, V+ x                begin
! |: J9 F. L1 ^) Z8 [                        stop_counter<=stop_counter+1'b1;  g7 s6 ?! ?9 @/ R9 U
                        if(stop_counter==1800*1024*1024)stop<=1;
1 A% a8 ]3 L7 f" E9 i) B- |                        case(data_set)
% H$ M+ K% D7 ~# l' o6 V( u                        3'b000:idatabuf[7:6]<=idata;2 z! x! k0 W3 X
                        3'b001:idatabuf[5:4]<=idata;
) K; ]: ^- I. l8 I: n' ~                        3'b010:idatabuf[3:2]<=idata;; M: O& H0 |% S6 s7 F8 E2 O
                        3'b011:idatabuf[1:0]<=idata;; r( V( e. d* i8 F, ^3 k3 c
                        3'b100:idatabuf[15:14]<=idata;
+ w+ S) W  p* w% E  y* A: C4 r                        3'b101:idatabuf[13:12]<=idata;
, _/ G/ M8 }  S7 O0 G: j                        3'b110:idatabuf[11:10]<=idata;9 U' S: j# l1 C- |3 p
                        3'b111:idatabuf[9:8]<=idata;+ {* m! R. w/ n3 o
                        endcase9 t. r' I; l, E! s) k  c
                        //data_set<=data_set+1'b1;
9 X5 V3 ?, U( K1 f                        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 | 只看该作者
没看完~~~~~~ 先顶,好同志5 D2 N, \  n, \& v0 F
3 S  V, I, P) u. V4 [  T3 b8 M2 _

! c9 }2 _$ M' p! F( {- U9 l% h( N
" Q( n' x) S5 n4 H8 [. L' D5 }6 G1 X7 k

5 `" u- `3 M% k& c$ I, j- f& h3 }
, D7 d& B# m0 A1 o
: |% _/ w+ g/ _) B9 z( P! ^, |5 |! c# g8 @  E3 A/ L6 t( _

. ]/ q' g) O7 E+ i
: O( ^! G  j) E* T$ ~; O4 i% \
' D5 s& H) D0 X& z* I1 h0 V& c. h5 \3 K: a" x
好看电视剧2012 好看头像

3

主题

82

帖子

107

积分

二级会员(20)

Rank: 2Rank: 2

积分
107
170#
发表于 2012-4-24 14:56 | 只看该作者
我也想学,希望多多指教
) N! P8 T1 k$ J4 A  [! z- s 你的i2c的应答位有吗
$ V$ p7 l9 }& [9 S

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,就这样循环下去?
; c. Y- `; W. @* |/ t$ Mmodule s4_7seg(clk,rst,
, M( Z* G0 i, f# b7 w4 Q
2 R$ W) C* n" \; G   s0,s1,s2,s3,
1 r9 }" U% `9 v0 q: k( ]) r) Y5 ?6 ?+ t/ O7 K, l# |
   d0,d1,d2,d3,d4,d5,d6,d7' x) q/ A' q0 M* l! E. _6 s) Z  Q
4 s- g  Z  ~" ~. v- [! W, x
   );8 R( H9 U& e: o+ O

# H$ x) q! u3 P& {% W# a; y& K input      clk,rst       ;% `0 R. x% o) W# Y) V
" s( k- H9 l* M/ m( z
output     s0,s1,s2,s3   ;
& m( E9 F% g4 Z3 y" y, W1 b! r5 O3 ^: d5 C: t
output     d0,d1,d2,d3,d4,d5,d6,d7 ;
5 W" y7 V' D$ i* l0 W8 i$ D% e5 l+ K( [! j* o! H9 }/ d( V
reg [2 :0 ] state ;/ E! z! y0 J3 a: ^5 W/ {) l* {2 [+ }

4 R: |  m% P& g* b+ h reg [2 :0 ] sn ;6 K* A$ E0 `+ q2 a3 ]
1 `, N  k9 I/ D( E. x9 r
reg [7 :0 ] data ;; \$ f8 C7 s2 r# I! W0 R- a

% |3 ~( }& |" Y reg [23:0 ] cnt ;
+ H8 T) L; w$ t8 g* ^* v9 }* Z2 [2 V: S  R
/ e# a  {5 k5 J/ i, }1 B

2 v& U/ n$ V7 e1 i wire       s0,s1,s2,s3   ;' f/ I. t0 P. Q" D( G& m0 z0 `  z

: R$ P, H+ r$ [& V wire       d0,d1,d2,d3,d4,d5,d6,d7 ;
, [  c  v: c9 |/ f; f0 E* c
8 o3 G' E4 u( C$ o$ j4 e. o. O assign     {s3,s2,s1,s0} = sn ;" Z/ G/ Q/ m  y+ L

" D" ^! @/ }0 }0 g5 ~ assign     {d7,d6,d5,d4,d3,d2,d1,d0} = data ;
7 A( w! G% t; @
, g* k$ _: K" [+ z* e always @ ( posedge clk )
; C0 k0 p" ~8 S  E1 w" Q/ p6 P: T1 J9 g: O3 W, `
  if( !rst )' u2 M5 r, I2 i% s. I

) t+ m2 K( i, q   cnt<=16'b0;. V% k# l- @' S0 e

' c8 N' g( E( l( [8 \* w! X  else( o3 ?, v' a' r- R% y1 I

1 e) C. _) W: F# N8 f# y   cnt<=cnt+3'b1;
( g7 l" C1 x; e9 g* p# j5 z6 s: G1 Y1 p" h* M" K0 h
wire clk_slow = cnt[24] ;6 A8 T9 g# d- \  U/ |7 x
6 @1 ~1 V9 y0 v8 U! d" l" l
always @ ( posedge clk_slow or negedge rst )
# E# g, R0 x: o7 e* X$ i& j. z, G( N' {7 d8 V4 V8 Q/ O
  if( !rst )
6 P( z, ]9 k: A5 ~. l- b  V% u  s; D1 G
   state<=3'b000;1 Q8 S, ?$ R: _2 _: o% Y
* s% P' _% _5 c7 v# U$ ?8 X
  else' U- j( I1 [2 z" T" v2 Y

# n1 O# q9 B" V   state<=state+3'b001;
* ?1 x  V% }( O- K5 x' i: Q
2 j( U& h( E, y( w0 q6 ]+ d always @ ( posedge clk_slow or negedge rst )
; C7 _' R' Q' T4 Q3 K1 }9 x6 a* n, d3 ~% ~
  if( !rst )
1 u# Q' ~* A' I5 J; |
/ O, e3 [8 B) I# \. z0 G   begin8 {/ z6 ?# z" @" m
2 {7 _0 S0 E0 y7 |
    sn<=4'b0;* P: d' y" ]2 t
6 D8 ?- X5 H- t6 O! `4 E
    data<=8'b0;7 d' ~" v2 a) b# c
, b8 D3 C* ~& N0 t/ z5 h1 Q
   end# Y& b0 h8 v/ V+ R

% }3 A! ~% Y& ~9 i2 \5 }! b1 z  else5 d/ Q* e, I" N( _* Z, @# F9 a

& R( F" t  O! I$ d; M5 |4 Z   case(state)! Z8 k* c. V: d( j& Q. T

1 d: k0 v3 m6 a  w* Q    3'b000:
) c% E: x6 p& i/ F, |% Z3 Y" w) M% f: Y6 a( X! _& \" |3 M8 S3 u
     begin
% B9 k6 H+ q  X! T: N' l+ j$ x4 n, P1 `, ]
      sn<=4'b0001;
5 H" w$ F! H- d$ s+ a8 |8 G$ u5 T5 m! T
      data<=8'b0110_0000; ' B& h9 C; R( _# r6 ^+ J9 A: l

/ {- B" y3 j9 D- D: u( \     end' k( Z; `7 }' ^9 C
7 q; s$ x9 r! l3 e
    3'b001:- `6 y5 K4 ^% @' i
% h% M4 E; o" G
     begin
0 D- G5 C6 d) W. x) p( U3 X  z% ]4 u. p4 ^
      sn<=4'b0010;, M8 e% _# Z7 q/ N4 ^3 m+ @" H  Y* z6 z
5 g) ^9 d8 X- V  t# F- G
      data<=8'b1101_1010;* Y) O7 f/ k1 Q
6 Y& U/ \" m  W+ p0 L$ H) y3 Z
     end) F% S% U* k& z  E$ A
: n7 I: e% R: ?
    3'b010:. ]  P" `3 {4 Z# a2 O* i! r
" n+ U# G* T; N% O  a
     begin& t) w. V0 ?- \$ i  B7 Z' \

/ M  D& g& e' w$ @$ l      sn<=4'b0100;
' Y( ~9 K7 @$ L, L8 J, b4 X/ F, h' ^* D2 K4 o
      data<=8'b1111_0010;: x3 W/ J* z8 b5 e6 M# H: h
4 h, [7 R  v" }) j+ e; a
     end* m; ^3 O" I2 _/ t' v
/ R8 c- ~. K4 h% y. i5 K) h
    3'b011:/ F2 S2 A9 ]7 r, H6 s4 g

* c3 D. ?( ~* ~3 P6 d5 ]     begin' T0 r: v. O3 n9 Q) z" \

8 @- A; f% V6 D3 G0 F2 C) {      sn<=4'b1000;: L+ Q9 Q) X/ q. Q. H, s  X) r

  I; o$ L9 ~2 h; z1 h      data<=8'b0110_0110;
' `: s8 t& A: s
: R9 h$ b' r7 W     end
/ ^, U. s5 X8 B* V- `- L  l5 E: G2 P0 ]! D/ Y( b8 {  r
      3'b100:
% x$ k/ A+ L$ A/ @1 e' a! e
/ s! R* p2 i1 N9 j     begin
/ I0 {6 m$ {; v  {+ r' B
5 ?2 s( N7 j( M2 u      sn<=4'b0001;3 \# h# |5 d2 l7 n% h
9 b1 ^& o: J) R" r. E% r
      data<=8'b1011_0110;) X+ ?4 R1 N/ B# a% k6 o% F' n1 q
8 U0 E7 n9 O' a; F. R
     end
$ I7 D. d0 \. B7 U4 y6 `. |+ t# u- r: c, J
    3'b101:
$ q# k& u& {* Z7 T1 Q6 T0 c6 X9 x5 |" _( S7 H6 S
     begin
5 m  b* i  x! @' L7 G! P/ W" F4 l* a5 o) v
      sn<=4'b0010;, ^0 E% R# ]% w3 l( W+ v
6 @- T7 n, x1 }( o7 p' m; D
      data<=8'b1011_1110;5 ?! g+ @4 D) m

  m# d+ Y! {) [3 u8 D# q( M0 m; |' z     end% b7 {  t7 u, d
- P0 z! H) H$ s7 i; S
    3'b110:
: G% U5 v* ^, u: n; |! O
$ f& A) s; C8 ~* \     begin/ M" Q0 U" W% |) ?0 p

8 m+ t' N; G; j& Z+ u& g% W      sn<=4'b0100;
, d8 ?$ E% S: F% j7 D/ U6 @5 q* A) K
      data<=8'b1110_0000;  e- H( U+ s0 y) n6 w
- i+ p5 _) k5 V- _% g; L# v
     end
, S: Y( E8 r8 d  f$ {& o) y' I( E1 Y& G5 W8 s# s
    3'b111:- L5 a' }5 ]+ Q
# _. Y' ]& t' x9 }" |4 x; ?* F( R- k
     begin4 U: V. K% U  x4 e1 ]

+ t2 I: T8 Z9 ~3 @6 J9 R6 w% R# G      sn<=4'b1000;
3 Y5 ~' @! {4 n' X; Z
- }3 z7 T+ r5 e      data<=8'b1111_1110;
9 v4 b* Q- A8 q! O- D4 @9 `/ M$ D" c7 l% b
   ! {  z; _5 m& d' y; Q6 ]" w
! x5 M: R% M. Z  V
     end
' ?0 y9 F7 O& s& H, }  S% ?7 _/ g- q! A0 _5 `
   endcase
8 e$ j0 E8 C+ D; z# P1 T
; U. f5 N/ s- Q. m/ Y& A# I& ?: rendmodule
+ X6 Z# e  B# @: y; A, `( {* Q: `- N, o6 i! J% J* K5 z
这是我自己编写的一段程序,但只有前三个数码管显示123,567,第四个数码管不显示,按照程序应该显示1234,5678的,请哪个大神帮帮忙看看是哪出了问题?- \7 i) ?0 R4 X) ?" Z

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-8 17:26 , Processed in 0.067079 second(s), 31 queries , Gzip On.

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

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

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