Re: [問題] 有會寫Verilog的神人嗎?

看板Electronics作者 (新熱血陽光男孩￾NN)時間17年前 (2009/01/13 19:04), 編輯推噓2(2015)
留言17則, 3人參與, 7年前最新討論串3/3 (看更多)
※ 引述《zxvc (修行)》之銘言: : ※ 引述《LINAN322 (新熱血陽光男孩￾NN)》之銘言: : : verilog如何將一個陣列傳入子module中 : : 想請問一下會寫Verilog的神人, : : 我們在寫verilog的時候, : : 如何將一個陣列傳入子module中??? : : 如: : : //-----------------------------------------------------// : : reg [1:0] a [9:0] //即長度為2bit的1*10的a陣列 : : mod1 step1 (a,b) //傳入mod1 module,輸入a陣列,輸出b陣列 : : //-----------------------------------------------------// : : 以上就是mod1 step1 (a,b)中的,a的格式,我不知道怎麼設定輸入? : : 我試過(a,b),(a[0],b),......等,都不行。 : : 看過很多書, : : 好像沒有人在用。 : : 請問這個問題有人會嗎??? : : 拜託幫忙了, : : 謝謝。 : : 我用的是ModelSim軟體,謝謝。 : 你看你的mod1 module能不能改成只能處理一個vector。 : 如果可以,你可以多次呼叫mod1來處理: : mod1 setep0(a[0], b); : mod1 setep1(a[1], b); : 如果你想自動化產生mod1,可以用loop generate: : genvar i; : generate : for(i = 0; i <= 1; i = i+1) : begin:setepArray : mod1 setep(a[i], b); : end : endgenerate ^^ 首先,先謝謝你的回答, 這其實我有試過了; 可是在 mod1 step0(a[0],b); 裡面的a[0]的這個用法, 就已經產生錯誤。 因為我已經將a[0]宣告為1*10的陣列, 他沒辦法將a陣列的第一個元素傳出去; 若a不是一個陣列, 但為一個10bit數值, 他是可以將第一個bit傳出。 所以我才在想說,是不是 打成a[0]傳入module的 "step0(a[0],b)"這行 其中語法已經有了錯誤... 不過還是謝謝你喔,︿︿ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.138.178.157

01/13 19:11, , 1F
reg [9:0] a [1:0]中[9:0]是向量的寬度,[1:0]才是陣列的大小
01/13 19:11, 1F

01/13 19:11, , 2F
所以a[0]、a[1]都是向量,不是陣列。
01/13 19:11, 2F

01/13 19:13, , 3F
照理來講mod1 step0(a[0],b);這是沒問題的,因為a[0]是向量
01/13 19:13, 3F

01/13 19:13, , 4F
你的b應該也是向量吧。
01/13 19:13, 4F

01/13 19:15, , 5F
如果你compile不過,那把錯誤貼出來看看。
01/13 19:15, 5F

01/13 19:17, , 6F
喔,抱歉,我看到你說b是陣列。那還是因為Verilog中IO port不
01/13 19:17, 6F

01/13 19:18, , 7F
能是陣列的緣故。
01/13 19:18, 7F
※ 編輯: LINAN322 來自: 140.138.178.157 (01/13 19:26)

01/13 19:26, , 8F
對不起喔,是我打錯了,十分抱歉,你說的沒錯
01/13 19:26, 8F

01/13 19:27, , 9F
不過我的題目還是1*10的陣列,長度2bit
01/13 19:27, 9F

01/13 19:27, , 10F
感謝您看得很仔細,謝謝你。
01/13 19:27, 10F

01/13 19:28, , 11F
我已經改了,謝謝你喔
01/13 19:28, 11F

01/13 19:30, , 12F
聽zxvc大大,您那麼說,那就是子module無法傳出陣列囉
01/13 19:30, 12F

01/13 19:31, , 13F
那我瞭解了,謝謝你喔︿︿
01/13 19:31, 13F

01/13 19:31, , 14F
再次感謝您了回答,謝謝zxvc大大︿︿
01/13 19:31, 14F

01/13 19:33, , 15F
對,不能用IO port傳陣列。你試試看b能不能也用向量的方式傳
01/13 19:33, 15F

11/11 14:56, , 16F
喔,抱歉,我看到你說b https://noxiv.com
11/11 14:56, 16F

01/04 21:52, 7年前 , 17F
喔,抱歉,我看到你說b https://daxiv.com
01/04 21:52, 17F
文章代碼(AID): #19R7L4Ex (Electronics)
文章代碼(AID): #19R7L4Ex (Electronics)