... | ... | @@ -139,7 +139,6 @@ RAM の初期化は、モジュール内に次の記述をすることで行う |
|
|
今回の実験ではプログラムをビルドすると、ICache と DCache のそれぞれの初期化データとして`code.hex`、`data.hex`が生成されるようになっています。
|
|
|
従って、ICache と DCache それぞれで`readmemh`を用いて`.hex`を読み込んでください。
|
|
|
|
|
|
|
|
|
## ROM の記述
|
|
|
|
|
|
ROM の場合も、write 線がないだけで RAM と同様です。すなわち、読み出しのタイミングを同期すれば ブロックRAM で構成されます。
|
... | ... | @@ -155,3 +154,10 @@ ROM の場合も、write 線がないだけで RAM と同様です。すなわ |
|
|
end
|
|
|
endmodule
|
|
|
```
|
|
|
|
|
|
## 注意
|
|
|
|
|
|
* `reg [31:0] mem [32:64];`みたいなこともVerilog HDLの仕様上書けますが、混乱の元なのでおすすめしません
|
|
|
* 何が起こるかを**完全に**把握している場合以外は無難です
|
|
|
* `$readmemh("code.hex", mem, 15'h4000, 15'h7fff);`みたいなこともVerilog HDLの仕様上書けますが、混乱の元なのでおすすめしません
|
|
|
* ずらして読み込むくらいなら、当該ファイルを編集してしまったほうが良いです |
|
|
\ No newline at end of file |