CPUの創りかたのTD4を少し変更した
TD4は命令フェッチ~実行までのすべてのステップを1クロックでやっている。
これは結構無茶な作りで、1ステップ1クロックでやるのが普通(のはず)。
TD4は周波数も遅いしIC10個でやるという制約もあるしで1クロックでぜんぶ処理する
作りになっていると思われるが、TD4をベースに色々と手を加えることを考えると
現実的なCPUの作りに近づけたほうが良いと思った。
あと、前の記事で作ったやつは74シリーズのロジックICをHDLにして回路図に近い形で
結線していたけれど、後の拡張とメンテナンスを考えると得策でないのでこれも
変更したかった。
ということでTD4の機能はそのままで色々と手を加えた。
まず処理はこんな感じ。パイプライン化は考えない。
アーキテクチャはこんな感じ。
TD4の基本構造はそのままで、ロジックICで作っていたものを一つのモジュールにした。
で、実装したものがこちら。
ほぼ一発でラーメンタイマーが動き大成功。
DE0_CV_TD4_mkII.qar - Google ドライブ
次にやりたいのはデータのバス幅を4bitから8bitにしたいこと。
これは今回作ったやつでconstantで仕込んだので、うまくすればそんなに面倒でない。
→8bit化できた。TD4_ROM_PKG.vhdのcData_widthを書き換え、
rom_dataの値を変えれば4bitと8bitの切替可能。
ちょっと修正したものをgoogle driveに再upload
あとはALUの機能UP。 最低でも74181相当の機能は欲しい。
命令もなにかに合わせて作ってみたいけど、まずはTD4ベースで。。
ExcelででもVisualStudioででもコンパイラ作ろうかな。(命令決まらないとできないけど)