実装メモ
main CPU の信号を memory map, io map でデコード兼データバスの制御をまとめるモジュールを作成。データバスの制御というのに割り込みのベクタテーブル入力も含まれる。メモ。
- NMI, INT, HLDRQ, RESET は正論理
- INTAK は負論理
- IO/M は 0 が IO, 1 が memory
- NMI, HLDRQ は使用しない
- wait は 0:wait, 1:ok
- キャラクタ ROM を書き込む場所にはメモリマップがあけられない、開けたとしてもセグメントがまどろっこしいので、メモリを使わず IO map にポインタレジスタとデータレジスタを設ける
- video からの割り込み制御を作る
- video 系のレジスタを video 回路内部変数としたので取り込む機構を作る
- 共有RAM系
- color RAM はとりあえず作った。 r,g,b 別に 3 つ RAM を別けたが、tile/sprite では別けていない
- dram は共有RAMゲートだけ作成。 DRAM コントローラは今回の CPU 向けにする。
- wait は 2bit もち、 bit0 が databus[15:0] が有効, bit1 が databus[31:16] が有効。
- databus は 32bit で read 時は 31:16, 15:0 の順に書き込まれる。
- RAM アドレス系の select 系は今回は正論理にした。 0:disble, 1:enable
- rd, wr, bytemask は依然負論理
- 上位モジュールが inout, 下位モジュールが inout でそのままつなぐと warning が出るのが謎。
- sound RAM 系
勢いでモジュールを作りまくったが一つずつシミュレーションしないとダメですね...