※ 引述《proach (p.roach)》之銘言:
: ※ 引述《zxvc (zxvc)》之銘言:
: : 我後來想到解決這個問題的方法就是使用「樹狀的buffers(用inverters完成)」,
: : 一個輸出分枝成4枝,4枝的每一枝又個自分枝四枝,...,
: : 最後分枝成256,只要用四級的inverters。
: : 我在Xilinx ISE 9.1i上是有成功合出我的電路,
: : 我是用Verilog loop generate四個for迴圈寫出來的。
: : (如果能用遞回寫,語法會更漂亮)
: 不要介意喔,看到你說『語法會更漂亮』就知道你做的東西會出問題了。
: 你是在設計電路,一種很基本,直接控制電子流動的東西,漂亮在這邊
: 應該是指電路形容得很精準,而不是人看起來很舒服。
也不需要這麼排斥『語法會更漂亮』,
要不然也不需要發明System C、SystemVerilog這些更高階的HDL了。
雖然這些技術目前還不是很成熟,但這些技術很可能是未來的驅勢
(我是看一些EDA新聞說的)。
(雖然我也只是正在讀、不是很懂這些規格、技術。)
如果不用loop generate,難道真的要我用340個inverters硬接出一個tree?
: 如果你無法用 verilog/vhdl明確指定你要的邏輯,就要進入 gate level
: 直接拉gate出來作,跟 C/ASM的關係一樣。
是啊,事實上loop generate就是用gate level來接,這是我的程式碼。
http://web.cc.ncu.edu.tw/~93501025/BufTree.v
但是使用gate level modeling 一樣還是被ISE最佳化。
不過我後來發現我考慮fanout的問題似乎是多餘的。
因為ISE有個合成選項是可以設定Max fanout數目的,
如果fanout超過該數目,ISE應該是會自己加buffers。
: 碎碎念一下,這年頭HDL太好用了,很多人學一下就說自己會設計邏輯電路,
: 我只想,找個你自己寫的小module,用74IC, 或是用邏輯閘畫出來,
: 作得到功能相同,再說你會設計邏輯電路好嗎。
: : 但是合出來的電路,ISE幫我最佳化的結果,
: : inverters的輸出只要與要被buffered的訊號一樣,就會被簡化成直接拉線到
: : 未被buffered的訊號,而inverters都會被去掉。
: : 也就是我做的樹狀的buffers完全不見了。
: : 請問我原本想做的樹狀的buffers是否在FPGA上是多此一舉?
: : 如果不是,是否能不讓ISE的最佳化破壞我的樹狀的buffers?
: FPGA內部有buffer可使用,直接呼叫instance出來,人工指定上去即可。
: 這不會被 optimizer去除。如果不知道怎麼用,找高手請教,不然學著
: 自己翻 User's Guide,這樣對你比較好。
嗯,是的這板上就有不少高手可以請教,您應該也是。
--
《金剛經》一切有為法 如夢幻泡影 如露亦如電 應作如是觀
http://web.cc.ncu.edu.tw/~93501025/jg.doc
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.115.204.3
※ 編輯: zxvc 來自: 122.116.13.117 (02/25 22:12)