Re: [問題] 有關verilog

看板Electronics作者 (執著)時間14年前 (2010/06/10 21:53), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《evoker1984 (我思˙故我在)》之銘言: : 我想要可以產生不同寬度和不同數目的wire(內部使用) : 不知道要怎麼寫 想請大家幫幫忙 : 目前構想: : genvar w; : generate : for(w=2;w<=4;w=w+1) begin : inner_wire : wire [2**w:1] ww [w:1]; : end endgenerate : 希望可以產生 : 2個4bit wire : 3個8bit wire : 4個16bit wire : 這樣應該是錯的 不知道該怎麼寫 : 還是wire不能這樣用? 謝謝 你這樣寫是可行的。只是要用hierarchical path name作reference。 例如以下可用Xilinx XST 12.1合成。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ module Test( output [2*4+3*8+4*16-1:0] o, input [2*4+3*8+4*16-1:0] a ); genvar w; generate for(w=2;w<=4;w=w+1) begin : inner_wire wire [2**w:1] ww [w:1]; end endgenerate assign {inner_wire[2].ww[1], inner_wire[2].ww[2], inner_wire[3].ww[1], inner_wire[3].ww[2], inner_wire[3].ww[3], inner_wire[4].ww[1], inner_wire[4].ww[2], inner_wire[4].ww[3], inner_wire[4].ww[4]} = a*a; assign o = {inner_wire[2].ww[1], inner_wire[2].ww[2], inner_wire[3].ww[1], inner_wire[3].ww[2], inner_wire[3].ww[3], inner_wire[4].ww[1], inner_wire[4].ww[2], inner_wire[4].ww[3], inner_wire[4].ww[4]}; endmodule ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 但最好也試試其它synthesizers能不能合。 generate loop內有些語法支援度在各synthesizers不是那麼完善。 -- 信佛的人要知道:佛絕不會說謊。但請把握時光。 法滅盡經: http://www.cbeta.org/result/normal/T12/0396_001.htm 共勉之。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.221.79

06/10 21:56, , 1F
hierarchical path name詳見IEEE 1364-2005 Sec. 12.5。
06/10 21:56, 1F
文章代碼(AID): #1C4Evmzp (Electronics)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
文章代碼(AID): #1C4Evmzp (Electronics)