CPUの創りかたのTD4をDE0-CVに実装した
RISC-VをDE0-CVに実装しようとしたけど、そもそもCPUの知識がなくて挫折した。
ので、CPUの創りかたのTD4を実装することにした。
実装したものがこちら。QuartusII 17.0.0 でアーカイブ
DE0_CV_TD4.qar - Google ドライブ
Simしてないのでバグあるかも。。。
追記ここから
SimしたらLOAD3のデコードがバグってたので修正
Sim環境もqarに含んだ。
qarを展開したらsimフォルダが入っているので、ModelSimでsimフォルダに移動
do tb_DE0_CV_TD4.do と叩くと勝手にコンパイルしてSimが走る。
Simのときはif-generateで50MHzで動くようにしている。
追記ここまで
周波数が50MHzだと早すぎるので、PLLで5MHzに落としたあと
カウンタで524288分周して約9.5Hzにしている。
PLL使っているのでバージョンが違うとめんどくさいかも。
基本的には74シリーズをVHDL化して、CPUの創りかた275ページ「CPUの全回路図」通りに結線した。
ただ、74HC10や74HC32で作っているデコーダ部分は面倒なのでそのままTD4_Decoder.vhdで直書きした。
プログラムはTD4_ROM.vhdに直書きする。 いまはラーメンタイマーのプログラムを書いている。
constant cdata : rom_vector := ( X"B3", X"01", X"E1", X"01", X"E3", X"B6", X"01", X"E6", X"01", X"E8", X"B0", X"B4", X"01", X"EA", X"B8", X"FF" );
9.5Hzだからなのか、なんかすごく処理が早い気がする。
フラグのところ間違ってないよな……?
上で追記したバグのせいだった。