こないだ 4 ビット CPU を作ったし、今度は本物の CPU がどうなってるのか気になったので、定番の picobraze を試してみた。
入手方法
ログインすると、PicoBlaze Lounge に入る。Spartan-3 用の PicoBlaze をダウンロードする。
サンプルを試す。
ドキュメントの構成が非常に分かりにくい。
- read_me.txt まず最初にこれを読めばよいらしい。
- KCPSM3_Manual.pdf 説明書
- ug129.pdf 別途ダウンロードする。これが本物の説明書と書いてあるが、下記のサンプルプログラムの説明はこちらではなく KCPSM3_Manual.pdf を読む。
ではサンプルを試してみる。
- KCPSM3/Assembler/KCPSM3.EXE
- KCPSM3/Assembler/ROM_form.coe
- KCPSM3/Assembler/ROM_form.v
- KCPSM3/Assembler/ROM_form.vhd
- KCPSM3/Assembler/int_test.psm
- KCPSM3/Verilog/kcpsm3.v
- KCPSM3/Verilog/kcpsm3_int_test.v
- KCPSM3/Verilog/testbench.v
をコピーして、そこに空っぽの ISE プロジェクトを作る。
Tcl Shell の中で、次のようにすると int_test.psm がコンパイルされて INIT_TEST.V が生成される。
% KCPSM3 int_test.psm
kcpsm3.v kcpsm3_int_test.v INIT_TEST.V をプロジェクトに登録する。
Sources タブの kcpsm3_int_test.v を右クリックして、Add Source... testbench.v を追加する。これでシミュレーションが出来る。
Behaviral Simulation から testbench.v を選択し、Process タブの Simulate Behavioral Model で ModelSim が立ち上がる。
ちなみに、ModelSim を使うためにはプロジェクト作成時に Modelsim-XE Verilog を選択しておく。
と、ここまで出来たんだけどマニュアル通りの波形になっていない。割り込みは動いているが、ずっと動いているはずの waveforms が全然反応せず xxxxxxxx のまま。サンプルプログラムも動かんのか!という事で今日は諦める。