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

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

    [复制链接]

该用户从未签到

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

该用户从未签到

167#
发表于 2012-3-13 22:05 | 只看该作者
必须参加,我要报名!目前正在学习做xilinx spartan3系列的采集卡,硬件设计还行,就是verilog还不会,迫切需要进一步学习,希望版主继续讨论!!!
% g  P# q& e4 D6 i& M0 }

该用户从未签到

168#
发表于 2012-3-13 22:13 | 只看该作者
下面是FPGA内部FIFO的一段verilog代码,抛砖引玉,希望版主把学习项目继续,一起提高。
. V- P1 Z, ^! f% l# M& Tmodule fpga_fifo(
. k  @/ v# r# `. I+ c/ W8 z5 a                        rst_n,
0 j( l  T& T4 u" q- f/ c; s                        iclk,
6 X$ s' g& j+ Z; l                        idata,( |2 u% B- C! G* t1 m
                        oclk,
1 o2 h0 o5 r% `6 M) T* i3 |                        odata,
6 b% U$ i! d) `                        fifo_empty,
# @7 T8 @7 X3 R+ x( B9 {                        fifo_full,; p" Y  Z( n, o5 [  B
                        stop,
7 l( v  F! r' }6 z                        flag0 N& j" E& G# q' {7 G
                        );
9 W0 L3 ^3 r) l/ r: Q/ c1 h       
* n$ z0 K+ J, e3 V        parameter length=10'b1000000000;; h& L" J: N* I, Y& P% I% Q# `
        parameter width=16;
; y! V% s8 O7 r7 l9 X; X        //parameter dimin=6'b000100;
5 J, ]& M% }) E                        3 |5 A& U- U0 G% k" ?
        input rst_n;    //启动, u$ |2 N6 _) `  o' B6 I6 O- k! b
        input iclk;   //输入数据时钟
5 ~; c/ G8 y; b  t        input [1 :0] idata;   //输入数据
! p3 d9 F$ V+ x/ s        input oclk;   //输出时钟--接USB同步时钟1 R$ d6 s) I( u( {; `
        input [2:0] flag;! k2 f2 f; F* w8 M: }: M, M

$ R+ W9 G+ e+ G. R! |1 P0 x4 [6 B
! ~# o/ u% H& K/ z; l" H" b        output [width-1 :0] odata;$ D# ~  m! b3 E' q
        output fifo_empty, fifo_full;
# E( F; u  x7 U8 s/ s        output stop;
. W  F+ J" w2 b+ ?! Q$ H
- o( I# j1 X  t+ |. h: B        wire        [2:0]                data_set;- X1 E2 p* l9 B( e) m; W* z* }. g

4 s0 r8 l  o* ?3 N' ^3 ?        reg [width-1:0] fifo[length-1:0];, e( v/ m% j2 u  x
        reg [width-1:0] idatabuf,idatabuf2,odata;$ ~$ y2 N/ G1 I  e) J
        //reg [1:0]                idatabuf1,idatabuf3;
( P" p2 u& C% Z+ L7 ~        reg [9:0]                 reddr,wrddr,wrddri,wrddro,wrddro1,wrddro2,reddri,reddri1;
8 c: B  W7 t0 r        reg                         fifo_empty, fifo_full;
$ W# A/ R% l# [# m        reg [1:0]                 clk_set;3 y; |! p5 o# o9 z3 P
        reg                         fifo_empty_tmp0;4 l/ w1 T, r. N# x9 k  K
        reg                         fifo_empty_tmp1;
7 a1 T! ?: F6 j( ~$ _        reg                         fifo_empty_tmp2;4 i2 n7 d% ^4 z/ K
        reg                         fifo_empty_tmp3;
- X( ?( J8 i3 N8 ?* C3 k        reg                         stop;- u2 @* v9 G7 G& d
        reg [31:0]                stop_counter;) a7 H! r2 H3 H+ ^# m

& y2 c# \9 ?, R! G; l$ ~! p( l        assign        data_set        =        flag - 1'b1;& O0 R& S5 f( C2 ^9 Z' B" B$ X3 F6 I

/ V6 `$ q5 W- S8 A& O3 e//-----------------------------------------------------------------
$ U. O7 _4 _# k1 o1 J        : u) j  j/ ~" W& G
        always@(posedge iclk, negedge rst_n)//输入时钟域
% {- o1 K& o) V; i! R% p3 C        begin
1 c( T* c: }/ I! T$ {                 if(rst_n==0)8 J. @% k( q+ h) `1 i5 P
                begin, a0 B3 O+ G: k- K. d8 Q
                        wrddr                <=0;$ ?+ {, N) f6 G: X6 ^
                        wrddri                <=0;. A) {  o8 |4 o4 V3 K
                        reddri                <=0;9 V. }, J, [& G( Q5 L
                        reddri1                <=0;1 }" P. h- E6 \
                //        data_set        <=0;% \0 W- y, f% e5 E- _/ _% B3 J- U
                        idatabuf        <=0;. A: i3 ~& ?7 g8 r! T
                        idatabuf2        <=0;! b" H( w6 I' ~$ a0 \3 B
                        fifo_full        <=0;# x: W- k7 ?/ f& K! p
                        stop                <=0;9 m1 Q; b# y! t+ Z' Z' e7 y; O
                        stop_counter<=0;
5 K- }: j, {0 ]6 L9 f8 J7 H& E                end( X7 z+ _! X( m* D5 _6 L; @
                else ( u- ~% c4 E7 H5 U; d0 X0 W
                begin1 e% h5 J2 f* \: N) S7 ?, a
                        stop_counter<=stop_counter+1'b1;
, H; u5 @$ r, i4 H! \' d$ ?                        if(stop_counter==1800*1024*1024)stop<=1;
$ H5 J2 R( L0 L$ T                        case(data_set); h) j0 R/ t' _- R) l" V; D
                        3'b000:idatabuf[7:6]<=idata;. k# o& h. H0 [& J1 A
                        3'b001:idatabuf[5:4]<=idata;
' `$ m. q+ Z9 P5 u, ^                        3'b010:idatabuf[3:2]<=idata;
% K. h1 L  S, |# d/ a8 r* P& {. Z9 P                        3'b011:idatabuf[1:0]<=idata;
: }# S. G: F/ {* R( E8 d6 f                        3'b100:idatabuf[15:14]<=idata;
, {+ G- Z1 f' W4 U: ~$ Q8 W( l                        3'b101:idatabuf[13:12]<=idata;$ y! j# e7 C! a8 n. B: f
                        3'b110:idatabuf[11:10]<=idata;
. Q3 k# u  {0 k& K) k                        3'b111:idatabuf[9:8]<=idata;$ j. @1 f* A6 N+ i
                        endcase
/ S7 k+ ]# b1 H2 @/ b+ m$ m( x# ~! V0 `                        //data_set<=data_set+1'b1;9 O, |! w  y$ x8 Q) T) h9 L
                        if(data_set==0)、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

该用户从未签到

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

该用户从未签到

170#
发表于 2012-3-18 13:57 | 只看该作者
没看完~~~~~~ 先顶,好同志+ J* M" R0 X( G* Q
# h1 K/ A/ L9 |

6 [4 @) Y% ?5 B/ E% c* l
5 @7 U0 X% W7 R2 n+ a5 i
( i6 v  U1 {( E6 a0 O, @0 o# x$ R" ]* S- `5 M6 C" k
( i& G+ P3 R5 \: g
. L6 Y* M9 O9 Z& g7 A

( w; R5 O2 q) C
" V' W: z. S2 m: K$ P
+ m  a' e# z5 H! `
; W9 U* y" O; s, O0 I
! T8 Q, `  M4 b$ c1 o' ^* _好看电视剧2012 好看头像

该用户从未签到

171#
发表于 2012-4-24 14:56 | 只看该作者
我也想学,希望多多指教) Q5 e( R' [  B
你的i2c的应答位有吗' v* |6 ]$ B9 g( i) R/ {( Y

该用户从未签到

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,就这样循环下去?
! b2 M" v7 ^# w3 W: }! y9 @2 m' U5 |module s4_7seg(clk,rst,
- r& [4 \. Q4 s1 t$ s7 J9 _, z& G
- R! _. y. S. m) M% T% i, q* L9 |* _; q% w   s0,s1,s2,s3,) \- w$ V% b: f
9 {% c" c$ M; v: ?9 O4 i" U- ]0 m
   d0,d1,d2,d3,d4,d5,d6,d7$ G9 S4 ~- m" I* G$ w

+ J5 X- z# Y( L* R/ L1 ~9 G! A" ]2 l   );
* K& e7 [. S0 B8 W: e  \5 E7 O# L0 a% Q* g% ^
input      clk,rst       ;* p. o' E: K: L! ^; s( g

( ]% y' P( T/ }! } output     s0,s1,s2,s3   ;$ g" O  \# U& \2 {/ D6 m
% O$ F) ^& J: s" V. }# f% N  @
output     d0,d1,d2,d3,d4,d5,d6,d7 ;5 U8 \0 l  i( N8 O3 q' N

2 [8 J' v0 ]- D( H/ N9 V) J. N reg [2 :0 ] state ;, z0 W3 _2 g9 L3 q8 f  ?" ]

5 ]6 m. ~' {; C% x' v/ I! X reg [2 :0 ] sn ;
! r* P% a0 q/ Y
6 {, _, h0 R7 n/ H. o" W reg [7 :0 ] data ;
( A6 v3 q) B0 j  a  n
. g" v* v5 m, o5 C reg [23:0 ] cnt ;
* G5 \6 K; g' n: K, r
* j5 a" d( L) B) I. h" C5 U# B
6 q2 |9 {8 G# A8 S9 d, x2 ^9 G* r
wire       s0,s1,s2,s3   ;
7 N5 k7 W* f% W" ?
1 y  a4 Y8 M- `# o  D: S wire       d0,d1,d2,d3,d4,d5,d6,d7 ;
; n, r, W* q" h& D- w" |
# c: h+ T2 F% Z8 b2 e2 H assign     {s3,s2,s1,s0} = sn ;
3 y* H  |; g  T' Z$ M9 W! v: Z' L: H% n" N( n2 M- {% }
assign     {d7,d6,d5,d4,d3,d2,d1,d0} = data ;* d* q2 X# d$ m+ x6 t& `0 `7 s

* S" j3 Z, B, z; d) f# r0 a0 n always @ ( posedge clk )
  v) D+ b5 q8 h' U; P3 O1 p, ?( ]* @* W: f3 ^! o  V5 ]# I; n8 \, q
  if( !rst )
6 `8 Y2 d) X" S2 F  p: [+ t3 T. q2 t; C! I1 L( i. d- Q$ V
   cnt<=16'b0;5 h4 M3 O4 w5 m0 l/ A% Q. p' b( @& m
3 v+ e, F' Y% N, z0 n% y" q
  else, Y0 [9 C( S. O, Y- g5 H
4 ^0 |8 J; H# d* v2 q8 b
   cnt<=cnt+3'b1;9 w* F' k# j, z, p- T6 v0 E

) g5 ^0 z! s) g6 g wire clk_slow = cnt[24] ;7 e. Q+ o1 O  j% T

, T" [$ ~0 C2 t$ I( k9 m, Z/ M always @ ( posedge clk_slow or negedge rst ), @  G/ V5 s, g

8 D1 h6 `# Z6 ^9 e! Q9 ~6 H  if( !rst )$ H" |' V8 ?! v1 [" l1 {' N
( T5 i# ^3 q" J% Z! N+ [
   state<=3'b000;" l! k: ?7 Q; o6 V, W1 g6 v! j

' M  [' a5 i/ T0 l# E  else' {  a2 p" ]( X1 Y9 }
& U9 _! F0 t" c: r
   state<=state+3'b001;
8 c1 X: ~. ], w! l( i1 g
/ @: l3 F1 C+ c8 ^* a& d! d always @ ( posedge clk_slow or negedge rst )7 ~5 H% h% Q8 m7 Y5 F/ d! Q) a6 L: M
8 g- e$ s) l6 b$ b$ j
  if( !rst )1 V# s2 Y4 s/ `/ m1 k1 n$ D

3 I: u. ~5 {$ e5 o8 R" D+ Z   begin$ ^8 C( u! n& @2 C- r: [8 z8 m
3 N1 ]; _; ?' ?! H( ^% v+ Z9 q
    sn<=4'b0;+ h, ]* p* f" X. o6 j9 l8 P

( t5 u$ p. K$ I+ O# p: ]    data<=8'b0;
# P& z! j& ]$ G) h! e& |- @
6 M& c- ]# s" I/ |5 `. e% M1 t, V   end; ]# w& G, Z5 e9 n7 C9 z, L

6 x2 P$ ]5 a. Y2 V1 ]  x( y, m. T3 `$ ]" p  else6 r  B% a1 F1 X9 k

: \$ y. D" h  I& j- G' c   case(state)
1 N) f1 T. k: j- x8 I
; \! a3 v3 ]) M$ y) G( J( Z    3'b000:* Y6 m5 t6 v9 ]' q5 H1 U- X: V

6 Y( d  z- m1 _$ w( l! e6 l6 d     begin; [& v! q/ p) d3 g' L7 u

/ G% [9 J2 \4 o* R      sn<=4'b0001;
8 y6 |6 J0 X# i% O8 @' a6 N0 \9 Z0 K: }8 g! d
      data<=8'b0110_0000;
8 x7 t; i/ T) V9 m9 u# o! z1 C6 C5 m
     end
8 d+ d: {7 H$ a0 b' S0 u
1 m0 U' ]. Z' F# Y. r% ]9 f    3'b001:+ ~6 _; W1 {; ?
" A! P, y. Z% H# w* z
     begin
* h/ T8 c4 a# {" k  K, I: g
. }5 W0 W  D3 j: P+ D, m$ z4 a9 |) m      sn<=4'b0010;
/ A1 j$ a9 l3 `: x% P3 G7 ?  M8 z; {  R, A, c( S% P- l
      data<=8'b1101_1010;
5 x% y# }0 r: A! ?) n6 `$ I  [6 K# ]
: i9 E. j8 g0 F/ p     end
+ i; y" _* c. `/ @8 W: I0 K# ]
/ g; \4 j3 F0 _! e) O3 d    3'b010:
! h. L, m7 t" @! d) X! q( G& X- ]0 S$ ]
     begin
! G8 Z% M% i; p( g- }
6 o) N9 [2 _% a& i) L; D0 G7 X      sn<=4'b0100;4 U, g, m! x# U) m' ~! B, e

5 E$ K) R! ]- e: s) Y1 Y      data<=8'b1111_0010;6 T6 X; O# ~# g8 _$ D, i8 V/ l

  _! K4 q& |  [     end: J5 t% g0 M$ @4 a1 J
/ l) e7 A+ Q. V1 |% P( \* T
    3'b011:
' l9 O3 k9 J1 A. N0 {* P( [" i$ R8 k6 `2 Y! o  S
     begin+ r8 Y0 J& u* `( }/ O4 q6 o" u

$ A5 G9 [8 L2 \" @6 b      sn<=4'b1000;4 p6 g8 N2 a& U! y& t# b0 G9 k

: P  t/ l! U! R. O, o      data<=8'b0110_0110;* S1 F+ b5 |. i' l8 D/ n
. _0 I+ u7 I- c; ?
     end
+ y, Y% d' a) R% @. x3 g  U+ _7 |# }; j
      3'b100:
" |) @6 N  o8 A! j; }9 }
: O  x2 R& P' m& ]     begin
. ?8 c1 F* D' z* k
( {4 W* u+ |+ c2 j9 {1 D2 @      sn<=4'b0001;
& C$ T5 a. |" I3 h: W; U: V+ S: E' u0 K: s
      data<=8'b1011_0110;
2 f1 A% c, x4 V0 k# y' w7 s7 n
# q6 I! f& R. c9 o* i# w% c4 P     end
: ?0 y  ~& u2 P! h( B8 x( r3 B+ U) V3 z
    3'b101:3 |$ [1 H4 G2 l; C. _$ a
7 n/ |. [7 [  d! F; P* z8 e8 M
     begin, {9 t2 }" G; f, y& y, Q3 P
5 H2 K# @; z  @  \) [
      sn<=4'b0010;
! }* X  B* r7 S: n" E" O! H3 D5 f6 c
      data<=8'b1011_1110;
3 r9 B0 I5 K% S8 }
* j9 y$ r. D6 O" h     end
! G, X8 x: q& \6 r4 P
* _; r; c5 f. Y! L    3'b110:; i* x# r  T: d# H* M. [
, Q& D. x& ^9 G" u& c; N1 r. x+ B
     begin" N0 F$ r7 p* V) J! k6 O. l
+ B0 k4 p/ ~; |- R
      sn<=4'b0100;, m9 [( u6 q$ H4 p
8 @, l/ @- f9 J, ?
      data<=8'b1110_0000;
4 P4 K. C% e7 t9 a7 N/ G' e3 D+ o  m3 R( O8 G* W6 C+ a7 p1 }
     end4 }* J0 c& N) X5 `4 C  u

) q4 R- u* K( `8 u3 C    3'b111:5 z, B" R* B- U/ K

1 e# G% N. P/ c7 }) z) D3 N     begin
' b+ L9 I! G- L+ _" _! q7 @+ E7 G) {) I8 Z3 d% m
      sn<=4'b1000;
3 w) q/ H" _# O1 z2 `$ t: P( L/ W: b
7 M5 t" f. L' T  m6 M: j) C( k      data<=8'b1111_1110;
% Z' }) c& B) P2 X- j/ n' d' P8 a" S$ q' t4 z/ Q+ Z
   ; c0 q9 L4 Y: ]- b
4 ^3 _+ F: b% a
     end+ O. V. v7 c- |$ [" X, d7 j- a, a

1 ?3 @+ J! h3 a' k   endcase
7 D' y( ?9 ]: f9 y8 [3 F8 d6 z3 o. ]$ E0 I
endmodule3 `( n$ ^. I3 o: A( C4 }7 o9 u0 T
+ o8 K& z2 o0 G; |! _8 F
这是我自己编写的一段程序,但只有前三个数码管显示123,567,第四个数码管不显示,按照程序应该显示1234,5678的,请哪个大神帮帮忙看看是哪出了问题?
1 c3 m  R$ d  Z; N- Z

该用户从未签到

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

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-5 08:57 , Processed in 0.140625 second(s), 20 queries , Gzip On.

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

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

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