|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
FIFO,没有想象的那么简单!
% l4 Q) F' e7 N6 X3 G; T+ h
3 n6 Z# H2 E' x
9 B+ ?$ r6 \! Y% p, |3 j3 J9 A根据一般的原则,FIFO这件事情啊,如果能用IP先别自己手写。可以通过FPGA厂家的的IP生成工具生成相应的FIFO。) R) W" ^9 `6 L$ s
3 [" x& ]' V q' O& i% K' i
( b5 c: x# G7 z$ _( V- DFIFO中的格雷码:
" s4 W( A: s3 C% ^! O8 E
1 J$ D6 v* z, k0 d3 Y
1 o/ W8 T% s) u' @ Q. ?3 Q格雷码应用于异步FIFO的地址操作,格雷码的生成可以当做个入门练手的小模块,然后慢慢搭一个异步FIFO,把关于FPGA的时钟、复位、管教基本上都可以涉及到,绝对有帮助。+ w% F0 A% O) f5 s% w, ]+ h
1 d% T8 f6 z! M" |7 }8 Z9 V$ z$ r' t1 ~
* y9 Z% y& B/ hFIFO满防溢出的问题也被讨论的挺多了,加个可编程满作为保护时应有之意。5 a$ \5 ]8 {% J* B* Z) ^
' }, m# j7 q( g5 f& q/ w9 @# m, |+ c
1 i1 K7 D6 O1 T, p' J! L8 V空信号就没必要搞什么即将空,一般注意读使能需要跟非空信号做个与运算,这是基本操作。( [' }" h- o2 E4 S! o: r
& U' D k7 X% G
- ~! }# z' x- Z- W1 Q
FIFO好好做,还是很值得深入研究的。
) w, J- n* d& w0 i5 d
; S! o% Y" o- w( T& ]: j+ i. r8 u4 K8 G' D( z0 o. \$ T
例如:
- @9 M7 {2 J% F$ \4 r6 d1 l0 ]
5 j$ q% X3 Y. c9 X8 Y* o1 e6 a
; H0 j1 `0 q; e# o4 n9 M' p
/ n* c: L: K- z" w, T) |3 u8 q Y- R* h
$ V7 q p/ o1 z0 k- o2 D" U+ W: _$ z W, @$ E
+ g7 U: G: q$ A; x' c4 N! F1 Q5 g' F* a
1 U- q, b% a1 Z/ L
' ~! o3 Q" a, p' v5 X% s( k
6 X' m3 q4 }; s( i2 Y" W
" \: J# q3 W, g8 x9 u& o" r7 n, h3 `2 e1 V, ^4 B
|
|