[爆卦]verilog陣列賦值是什麼?優點缺點精華區懶人包

為什麼這篇verilog陣列賦值鄉民發文收入到精華區:因為在verilog陣列賦值這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者LINAN322 (新熱血陽光男孩￾NN)看板Electronics標題Re: [問題] 有...


※ 引述《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
zxvc:reg [9:0] a [1:0]中[9:0]是向量的寬度,[1:0]才是陣列的大小 01/13 19:11
zxvc:所以a[0]、a[1]都是向量,不是陣列。 01/13 19:11
zxvc:照理來講mod1 step0(a[0],b);這是沒問題的,因為a[0]是向量 01/13 19:13
zxvc:你的b應該也是向量吧。 01/13 19:13
zxvc:如果你compile不過,那把錯誤貼出來看看。 01/13 19:15
zxvc:喔,抱歉,我看到你說b是陣列。那還是因為Verilog中IO port不 01/13 19:17
zxvc:能是陣列的緣故。 01/13 19:18
※ 編輯: LINAN322 來自: 140.138.178.157 (01/13 19:26)
LINAN322:對不起喔,是我打錯了,十分抱歉,你說的沒錯 01/13 19:26
LINAN322:不過我的題目還是1*10的陣列,長度2bit 01/13 19:27
LINAN322:感謝您看得很仔細,謝謝你。 01/13 19:27
LINAN322:我已經改了,謝謝你喔 01/13 19:28
LINAN322:聽zxvc大大,您那麼說,那就是子module無法傳出陣列囉 01/13 19:30
LINAN322:那我瞭解了,謝謝你喔︿︿ 01/13 19:31
LINAN322:再次感謝您了回答,謝謝zxvc大大︿︿ 01/13 19:31
zxvc:對,不能用IO port傳陣列。你試試看b能不能也用向量的方式傳 01/13 19:33
sneak: 喔,抱歉,我看到你說b https://noxiv.com 11/11 14:56
sneak: 喔,抱歉,我看到你說b https://daxiv.com 01/04 21:52

你可能也想看看

搜尋相關網站