找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

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

    [复制链接]

6

主题

34

帖子

55

积分

二级会员(20)

Rank: 2Rank: 2

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

6

主题

34

帖子

55

积分

二级会员(20)

Rank: 2Rank: 2

积分
55
167#
发表于 2012-3-13 22:13 | 只看该作者
下面是FPGA内部FIFO的一段verilog代码,抛砖引玉,希望版主把学习项目继续,一起提高。4 h. ^/ v, F, X
module fpga_fifo(
7 I2 N' J# q8 X, U& t                        rst_n,/ T# a3 a1 z; ?
                        iclk,
$ \- [% U$ A2 _& S7 r5 T3 H                        idata," E6 A; Z0 w: E5 j  ~  N
                        oclk,
, z( L& J% P# L3 s' d; x                        odata,
9 s& L9 \5 x0 m6 b1 P8 Q9 m9 s- `3 U1 l                        fifo_empty,
; S  ^: P5 n  ^; \$ f* Z* l                        fifo_full,; O1 ~& ~% j1 u4 W3 C$ I$ {
                        stop,
# c0 v/ a7 L2 g7 `8 a. f                        flag
% `+ i0 y6 Q9 O                        );8 m( M  Z8 @1 A- [1 k
       
# x2 L: v! y5 [% s9 `" @9 t        parameter length=10'b1000000000;
  \, b/ M' |# v0 q4 f: o% T        parameter width=16;4 o! L: x! V/ x/ _
        //parameter dimin=6'b000100;
3 L' @& t! t; o% _2 _" i                        * f+ N: `9 @; z3 g6 w' E/ I3 s
        input rst_n;    //启动; _* |: K% g* ]/ f
        input iclk;   //输入数据时钟
/ h4 B4 J4 C( w0 a& [        input [1 :0] idata;   //输入数据
0 Q4 @; T0 p' E  x. E7 ~( `$ S        input oclk;   //输出时钟--接USB同步时钟
5 @# t# Y& g+ B0 C% p        input [2:0] flag;3 @  `; ]$ c& D6 ~9 E4 T

" D3 J) d: X/ \* G. u1 I# q' Z( v. E9 L! I* u
        output [width-1 :0] odata;$ n0 }+ E: z; G, N5 z& a& _
        output fifo_empty, fifo_full;
2 R$ ?$ v6 O" h0 |        output stop;
1 T5 W  I3 T% `: t0 s
2 _9 T4 B: y' ?( X" G9 ?5 ^0 r        wire        [2:0]                data_set;6 G* j, e8 G; j5 g. A1 Q- g2 H
8 v5 x3 V2 N5 h# K+ y
        reg [width-1:0] fifo[length-1:0];6 A/ X) h$ Q% P3 R2 t
        reg [width-1:0] idatabuf,idatabuf2,odata;
% ]1 N6 [* u0 b4 W        //reg [1:0]                idatabuf1,idatabuf3;
' s( M2 a: |$ |" N/ R- d* i        reg [9:0]                 reddr,wrddr,wrddri,wrddro,wrddro1,wrddro2,reddri,reddri1;
: ?. e" t; s$ @; |- `        reg                         fifo_empty, fifo_full;$ A8 `6 T, \& q0 C
        reg [1:0]                 clk_set;5 N: V' T0 I+ i' Q* o
        reg                         fifo_empty_tmp0;
  S( M. p* ^6 Z# s* X4 x        reg                         fifo_empty_tmp1;
7 U/ q; q) q8 }        reg                         fifo_empty_tmp2;
# ]# ~* Q, i5 `% P% R        reg                         fifo_empty_tmp3;) e( V( q' S7 g/ e% ?) O1 E# j3 M7 a
        reg                         stop;$ S  c# u* f- u1 J
        reg [31:0]                stop_counter;
* R1 F2 |" p# l. \+ F
  q/ F; Z' ~- G+ r1 S: |; h        assign        data_set        =        flag - 1'b1;
" A/ R- G2 b! V8 f& Q  {: p
" {" V2 B  ]( @+ M//-----------------------------------------------------------------) ^8 U+ S; Y1 Z# H# o
       
; F! V  d( @# R' g! w/ l8 `; P, b        always@(posedge iclk, negedge rst_n)//输入时钟域: W+ G) S5 B' h
        begin( ], Z% s' v" E3 m, I
                 if(rst_n==0)
* Q4 d$ j1 m/ ?+ k) T                begin
4 G3 g4 ]/ _" L                        wrddr                <=0;% ?3 G$ ~7 r+ P
                        wrddri                <=0;/ n1 q1 ~2 o7 x) _0 E& j/ t
                        reddri                <=0;
) l' z, k- O+ H                        reddri1                <=0;
3 @) S6 z0 e2 y+ Z: O1 E                //        data_set        <=0;4 @7 Q  a, o, c$ k: y
                        idatabuf        <=0;& N& a) s/ K; v  h( z& V
                        idatabuf2        <=0;
; N9 ]* a) s4 c% \1 p+ N                        fifo_full        <=0;
+ e8 B6 }; S+ \" v                        stop                <=0;5 h2 j1 n3 a6 C; d) M& F
                        stop_counter<=0;; f6 D- ^/ v) K4 i
                end- D4 P" ~$ x3 J7 r
                else
! S; t- D2 }: _" L, t                begin6 N2 h  H# K' c6 o9 ?0 e
                        stop_counter<=stop_counter+1'b1;$ y' t# c: b+ \9 p; Q8 x" w. G
                        if(stop_counter==1800*1024*1024)stop<=1;% k, N# M- n  @. o7 a7 {
                        case(data_set)
% o5 U: l+ m: D                        3'b000:idatabuf[7:6]<=idata;
4 e: z) M) n3 s                        3'b001:idatabuf[5:4]<=idata;8 p  T* y9 |, Z- r' O6 s2 g* n
                        3'b010:idatabuf[3:2]<=idata;
: B, E6 Y$ G" V( A                        3'b011:idatabuf[1:0]<=idata;
2 w4 ~9 x/ q; h  @' r7 Z                        3'b100:idatabuf[15:14]<=idata;2 f& L8 A8 v8 e' W4 ~" a
                        3'b101:idatabuf[13:12]<=idata;, X( q+ T1 \: P" m' R# E
                        3'b110:idatabuf[11:10]<=idata;7 n1 i$ w2 _: J/ c% y7 `) r
                        3'b111:idatabuf[9:8]<=idata;/ N1 \. x% B4 s/ B# e
                        endcase
6 ^- G) ?0 z8 r" _6 u7 g                        //data_set<=data_set+1'b1;
6 m# O, C2 _' O! {, [$ R' ?3 P                        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 | 只看该作者
没看完~~~~~~ 先顶,好同志
* u5 I! Q1 C; W( x7 X. r$ x/ Z0 X2 r9 ^' w" U0 j( N
- t8 _7 e. _! A* E, H

# M6 e* |7 A4 y
( U+ n* I0 {7 F$ D$ `
. D/ }- J0 `/ y* w% @+ v
' S8 H0 S- b9 b4 y- C5 Q4 {* u
% _# `# S4 K0 ]# x) [4 `" m6 p/ n$ Z" g, H6 D& X

7 p* U3 i0 Z0 k7 W* q! Y+ i8 o" ?. d
4 [3 \6 e; @5 G1 A, M3 O2 o
! ~7 f0 t. M0 C* Q- Y, S
好看电视剧2012 好看头像

3

主题

82

帖子

107

积分

二级会员(20)

Rank: 2Rank: 2

积分
107
170#
发表于 2012-4-24 14:56 | 只看该作者
我也想学,希望多多指教
. \. A8 w8 R1 W) l, |: L  _ 你的i2c的应答位有吗% Q! ?% X; ?! Y& O( ]8 K( m* b

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,就这样循环下去?2 S  u5 g# H' X: U* X7 R
module s4_7seg(clk,rst,+ T0 k4 g& o& S5 c  D
6 Q- c5 D1 f9 f: B4 M
   s0,s1,s2,s3,
/ K+ a3 q7 D/ t% B/ ?
' \! @- O% _! y: a" F   d0,d1,d2,d3,d4,d5,d6,d7) T+ }( \1 Q9 t" _% r7 v* q0 a+ I
/ l$ S6 Y; O3 o5 u3 t
   );& F8 f7 [9 v) X) P/ f

% H$ _: c4 x- d4 U input      clk,rst       ;
0 Z* }% O; {- _* n; \/ W0 P4 J6 _& I# L7 X- l* r
output     s0,s1,s2,s3   ;: S5 X; `+ |6 n$ r! B. `
) t( c  h6 C# T5 {8 q3 i1 _7 z+ S
output     d0,d1,d2,d3,d4,d5,d6,d7 ;
& a& V' y9 T% [, `3 Z, `; v+ b! A9 ], a# G
reg [2 :0 ] state ;
$ m6 z* W. ^8 T7 {/ X) h" n
* {& a3 I( l+ o) E reg [2 :0 ] sn ;+ i( }6 e8 E- Z- l5 G: M
  A; T/ `. k- [) f2 t
reg [7 :0 ] data ;, _2 r* l' U+ G" z3 ?
# f# p) Z; x  v
reg [23:0 ] cnt ;
/ l; x  G' b( C# ]% e6 B8 @
( Q: s% I) p, n9 R, n$ I* ~
- h( j: j8 M# W5 |9 R+ }
+ g1 o7 |$ g0 u7 i9 n wire       s0,s1,s2,s3   ;
& X- S! I, e# M8 u6 @. M; O
, P  q- B* k8 M: K* v* s wire       d0,d1,d2,d3,d4,d5,d6,d7 ;
9 W. u; s6 |) i. j- M1 J
* y8 \. f; ?0 D, M( O: O6 q assign     {s3,s2,s1,s0} = sn ;
/ E+ E- F) |1 d; Q2 o1 Y! ^# e
' C! M+ f) [' F$ B7 M assign     {d7,d6,d5,d4,d3,d2,d1,d0} = data ;
/ A/ r; c% k; \# C/ W+ v
+ l6 p0 [  G% B always @ ( posedge clk )! T/ Z- i' q, U9 I4 q
, U. i% h' O- c6 D0 {3 f- w
  if( !rst )( Q7 g; x# E' w

+ {, H/ n; N0 y& J   cnt<=16'b0;$ h6 m) h  `0 Q5 B+ Y! g3 H6 m

1 j+ l  T8 M( a& C  else9 T# J3 G+ H- i# j$ C& m0 ]
. w- V) @0 C: j3 e; z
   cnt<=cnt+3'b1;
. J3 r+ P3 ~: d& R& a- o* |4 X7 k6 v" c6 Q7 w! ^% e0 J
wire clk_slow = cnt[24] ;
4 s) w6 i8 i/ H' p' x( h
+ m* Z0 D! Q7 y: L# x6 ~! N always @ ( posedge clk_slow or negedge rst )  m9 ~* [  r1 \

3 |* ]8 x7 q+ ]2 ]0 S& [  if( !rst )3 d8 [9 B+ l' E2 N/ J
' m- @4 ~9 N4 S
   state<=3'b000;, x  V. G+ c3 C0 L" ~% C( N
* }3 b3 a/ {+ ]/ l  I% _% @
  else
2 W+ }; V! i" O+ Z
( _) q1 H9 ^0 k' t: e# l$ p/ Q   state<=state+3'b001;  G! N/ m! Q* @& d

, D3 j" w; f0 r5 F. Y always @ ( posedge clk_slow or negedge rst )
, Q( {0 }9 x$ K/ z8 M3 P- y& h" `( n1 ~# N
  if( !rst ), O# Y5 u! S2 ]
6 d0 \7 Y/ w' t9 \8 j6 ~
   begin7 z# a5 y7 y! B0 e' ?; }

2 U3 ]) F; ]; R- j9 `( P    sn<=4'b0;5 O4 ]: u1 A  j$ G" x- C; E
+ T9 C2 T$ e0 M/ c
    data<=8'b0;9 o$ _) e9 i$ }! E
( ?$ f4 L% ^3 H$ k8 K5 w
   end
% k; o9 ~# z% z# u0 V
- Z% }. R. g% Q4 l* e5 i: m  else
8 B5 `- K9 N3 U' Z: c+ s! [* X$ Y5 L5 c- K
   case(state)" b% i3 v# g9 H

% L7 Z: w$ G9 |0 M    3'b000:0 q2 o+ ]% c- O- r& y) h4 Q

0 X- J$ o3 k' `# G     begin2 w; g0 D7 N4 q  D) U; o9 |4 A

% d; E1 m5 |  F0 u! R* R0 b# r* h      sn<=4'b0001;; g. r( V) }0 ~+ Q+ ~) |

6 B3 b8 s8 W; Y$ Z  n      data<=8'b0110_0000; 4 v( k5 H7 J, ^* U7 q" L; ^
( X6 b7 O! F/ ?+ i6 h0 f
     end
5 @0 s  m9 t( F% `
6 l& T6 G$ P  Z9 ^1 D& ~; [% z    3'b001:
* H8 t. `, E; l
" L/ X, q$ a9 x2 \. n     begin
" X' w; h* M5 E% I0 C3 M/ {- o; X9 W; z
      sn<=4'b0010;
8 b/ G+ z, Q# H/ E% N7 R
# b- [# m5 G7 d' m4 w      data<=8'b1101_1010;
0 ~' [2 t$ I: q5 B$ V7 Q4 b  S6 i' V" P
     end7 o6 g8 _) |* S1 b

5 B/ A2 n/ v$ i3 e. O    3'b010:; k. }$ ^! w9 o7 T

' S4 s% }: A; g5 u5 j, d8 Y     begin5 n8 Y  ?6 j2 L
3 i) k7 p4 Z. h( J$ V1 }+ m6 O8 r
      sn<=4'b0100;9 [0 d( k4 \0 t7 I+ |) l, C

  z4 d' U+ X4 F$ w5 q      data<=8'b1111_0010;+ @4 C8 z& z- o1 J; o

! l- {7 M0 Q2 P! T2 y     end
9 ^! I. R' ]0 r; V! k/ o4 o0 C( v( w7 j9 X' U* `
    3'b011:
( v4 G/ s7 d1 x3 I, Z( Y
5 U0 U, m: F: p0 M, ?     begin
& a; g- s0 ^6 i' \# m- }" j( {* _7 [0 G  ~6 d
      sn<=4'b1000;2 f* e3 W$ q" K$ d9 v

# U: r& G, O2 f8 G( ^; B! N2 Y: E& D      data<=8'b0110_0110;# n; a+ A/ K$ d1 X8 V# q
* |5 X# D/ ^% }7 d! v
     end
! s2 G/ B5 K0 u# I) e8 E5 z  M" l& h) P/ d% A
      3'b100:, K' F0 V6 b' ?0 t% H3 [  P, n* y1 x

1 l  b& E, y0 B: F: _     begin
2 u) I. _5 u- A5 ~+ y( E: B+ n* `: H, {; q- U4 }
      sn<=4'b0001;7 T, j7 a5 W' a

& `; D' T5 t! ^1 K      data<=8'b1011_0110;
8 K2 W( q4 H4 F/ J
& c+ q/ d8 d- O& M* b. k4 M     end1 x5 D- ~1 L4 [/ {7 G8 s

8 {( P, \8 e0 o* b    3'b101:
. p0 Z* V( A5 y4 F# V
+ K- D2 D3 R9 k( }6 z; T9 d     begin
& f( ?& i( D- R$ v+ E( T) e1 ?6 P9 W: s4 ]5 k
      sn<=4'b0010;* b. |/ M. P# k9 E( I/ `

, S+ r2 x$ i% k: F5 i! k* }      data<=8'b1011_1110;
$ {8 W* u/ T! m! l/ r1 b& Y4 u, n$ v: @# a4 l
     end+ U7 Z. L& u* G6 }' x5 ^; J
, o9 g9 y; y! a: e# Y6 w5 Z
    3'b110:
! s9 O  }( ^: P5 M3 ~, B! o
( @/ w5 ^# A; W3 y, g     begin
% b4 L  e$ ]# B' m: w1 Q8 A! U* T- l
      sn<=4'b0100;# d7 s, a" S3 H. O  R4 r7 z

) p2 t! P* ]3 X% s8 n      data<=8'b1110_0000;
, p4 x- L% C( j% d# y8 Y0 o; i
- k. w" c! @) [' i. U& |     end, M/ g8 \. I: M7 X

) h2 D$ T1 G) C' e1 r8 Z    3'b111:, q" V7 `/ [& q& n0 t
6 p+ t3 @6 I8 e/ O/ E* l1 H6 e1 Q
     begin
' ~5 {# C( b- O9 G% P
! M0 q% U% O- L      sn<=4'b1000;- o! E& w! ?/ y' X2 I: v

) a$ P/ {" r6 v  \  F3 n      data<=8'b1111_1110;/ O) d$ c0 ]. C0 F& |$ C) a3 G

" `9 ]3 q8 @/ Q6 Y! c% w! M( M   4 L, G; L4 @' b2 U) f+ T. ^0 B/ u

; J% {4 o+ z- Q9 d     end
7 U6 U$ L( l1 x, r7 _, R
5 \$ g" q9 _8 H' a: p, L   endcase
, v9 H% ~% m& Y9 w5 R
$ r; R$ h" S# T+ dendmodule5 Q" |+ N, J  }9 b) G

* [8 W2 V6 i( q这是我自己编写的一段程序,但只有前三个数码管显示123,567,第四个数码管不显示,按照程序应该显示1234,5678的,请哪个大神帮帮忙看看是哪出了问题?
5 _( T+ A$ j' V, E3 q

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-7-5 03:14 , Processed in 0.066675 second(s), 31 queries , Gzip On.

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

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

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