作者rlpolo123 (脑残没药医)
看板Electronics
标题[问题] Verilog相关问题 (FIFO)
时间Sat Sep 12 11:55:53 2009
各位高手好~
有个Verilog上的问题想请教大家,
我现在需要做出一个FIFO,
words=128( 实际上是80个,但 64<80<128),
width=1-bit,
====================================================================
现在有两个想法
一、用Artisan生出sram16x8.v
之所以改成16x8,而不是用128x1,是因为考虑到Tool生成的要求
但用这种方法就必须把我原本的讯号从1-bit合成8-bit,然後每8
个Cycle才动作一次,要用的时候还得在分解成1-bit的讯号,想到
就累....= =
二、直接用80个DFF串接起来
因为考虑到资料也才80笔,手动的方式串接似乎也还可以接受,而这
种方式的好处是不必合成分解讯号,我比较想用这样的方式。
=====================================================================
但是我是怕这样的作法不够正统,怕被人说是硬作的,所以想问高手们的意
见,因为还要考虑到实际合成出电路後,哪样的方式会比较好呢?
我实做经验不足,请有经验的前辈们指导一下,感谢大家耐心的看完我的问题。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 163.13.132.129
1F:推 tkhan:都做,再合出来看看.. 09/12 12:12
2F:→ tkhan:觉得累的话,就别入行了.. 09/12 12:12
3F:推 arloha:2的方法之前看paper提到功耗会比较大 09/12 12:16
4F:推 arloha:不过depth不是很大的话...应该不会有很大的差异 09/12 12:18
5F:→ arloha:所以还是两个都合合看,再比较那个比较好! 09/12 12:19
6F:→ rlpolo123:感谢您们提供意见 果然还是不能偷懒啊...XD 09/12 12:52
7F:推 bighead319:才80个bit,用reg就可以了,功耗没多少,硬要用memory 09/12 13:49
8F:→ bighead319:可能如你说的不方便,而且因为size过小,实做成ic後, 09/12 13:51
9F:→ bighead319:power可能还比较大。最後,现在的compiler已经可以把 09/12 13:52
10F:→ bighead319:memory的size做到接近user define了,未必一定要是2^n 09/12 13:52
11F:推 CompileUltra:1的方法也是可以单个cycle access喔~! write进去的 09/12 17:11
12F:→ CompileUltra:bit和前一次write byte 做处理後写入 pointer再对抓 09/12 17:14
13F:→ CompileUltra:出来的byte做 mux demux处理 应该就可以做到bit存取 09/12 17:15
14F:→ CompileUltra:感觉蛮有趣的 有空来实作看看 XD 09/12 17:17
15F:→ DaveLu:2应该是Shift-Register的做法吧? 09/12 19:54
16F:推 pupucar:用shift reg的话你资料进去出来的latency就是reg长度 09/12 21:45
17F:→ pupucar:我认知中的FIFO应该是有Rd-addr Wr-addr指向MEM位址 09/12 21:47
18F:→ pupucar:还要有empty & full讯号 同步的话就用binary counter 09/12 21:50
19F:→ pupucar:产生ADDR就行了 外部讯号就R_En W_En去决定什麽时候RD WR 09/12 21:52
21F:→ pupucar:可以直接抄...... 09/12 22:00
25F:→ sneak: //daxiv.com 01/04 22:01