ビデオ回路とサウンド回路の合成

  • 共有 ROM の切り換え回路を追加した。 68000 > (PCM+Z80) のやつ。その前段に PCM > Z80 の切り換えがあるんで 2 段切り換え。
  • これで道具は揃ったので後は合成するだけだが、両方ともトップモジュールに書いているので、ビデオ専用、サウンド専用のモジュールに分離。やることはリファクタリングだが、わりと時間がかかった。
  • ここから2回路の合成がはじまる。分離したモジュールに引数という名の配線をするんだが、数が多いので配線しを忘れた論理合成すること幾度となく。
  • さらに PLL が足りないとエラーがでる。
    • Video 側では 入力:24MHz, 出力:12MHz+48MHz+84MHz。
    • Sound 側では 入力:24MHz, 出力:12MHz+14.7MHz。
    • 48MHz は使ってる場所も少なく、有効な場面も少ないので削除。でもダメ。
    • いろいろやってみたところどうも 84MHz と 14.7MHz を同時に扱えないらしい。
    • これが出来ないと答えが出るのに 6 分かかるので効率が悪い。
  • ほかのやり方を模索したところ 入力:50MHz, 出力:17.9MHz なら 84MHz と同居ができるらしい。

ここで土曜日が終わる。

  • 14.7/4MHz だとちゃんと動くのに、17.9/5MHz だと動かず。シミュレートしてみたところ、メモリ切り換え後に wait をちゃんといれてなかったので、切り換え前のデータを取り込んでいた。ここの切り替えは PCM > Z80 のほう。
  • ここを直したら 17.9/5MHz でも動いた。
  • ビデオとサウンドが一緒に論理合成できるようになった。動かすとやはりうまくいかず。音がなったりならなかったり。
  • サウンドの割り込みを 68000 ではなく手入力にするとちゃんとなるので、その周辺の通信がうまくいってない気がする。
  • メモリマップを確認してるとなにやらデコードがおかしいので直していったら音がならなくなってしまった。

ここで野球が始まってしまって開発が止まる。今回に関しては CPU を 2個動かしてシミュレートする必要があるので準備がちょっと大変。論理合成は11分かかるので効率が当然悪いのでやってられない。ここさえ片付ければ個別(video6分, サウンド3分)にデバッグできるので、あとちょっとといったところ。