作者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