1. 程式人生 > 其它 >【P4】Verilog搭建單週期MIPS-CPU

【P4】Verilog搭建單週期MIPS-CPU

課下

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標識