言語ゲーム

とあるエンジニアが嘘ばかり書く日記

Twitter: @propella

PicoBlaze

こないだ 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 のまま。サンプルプログラムも動かんのか!という事で今日は諦める。