【P4】Verilog搭建單週期MIPS-CPU
阿新 • • 發佈:2021-11-14
課下
Bug_Log
1.模組例項化的訊號需先定義
其實testbench見過多次了,自己寫的時候還想不清。
若例項化模組時使用的訊號,若事先無宣告,則會自動生成1bit此名稱訊號,自然在多位訊號傳輸中便出錯了。使用單位訊號的模組到可以省略實現宣告。
2.assign的物件不為暫存器
細碎的語言基礎啊。。從邏輯上也不可能對暫存器使用連續賦值。
語法檢查不會報錯,會在模擬時報錯。
3.PC-IM地址問題
[31:0]] IM | PC -> addr |
---|---|
[0] | 0 , .data : 0x0000_0000 |
[1] | 4 |
[2] | 8 |
... | ... |
[3071] | 12284 , .data 最後一個地址 |
[3072] | 12288 , .text : 0x0000_3000 |
... | ... |
[4095] | 16380 , 此時可存入最大指令1024(=4095-3071 )個 |
... | ... |
Memory使用:
reg[31:0] IM[0:4095]
此宣告下的memory從0開始;$readmemh("<資料檔名>", <儲存器名> [, <起始地址>, <終止地址>]);
每個被讀取的數字都被存放到地址連續的儲存器單元中。- 儲存器單元的存放地址由系統任務的起始地址和結束地址說明
- 檔案中每個資料的存放地址在資料檔案中說明,用
@hh...h
標識