開発日記

回路の改訂案

前回の回路までは address bus と data bus をシフトレジスタの 74595 で制御していたのですが、PHI2, ROMSEL#, RD#, WR# といった memory strobe の生成は MCU の GPIO (ソフトウェアで操作)とタイマ出力を 74139 と 7404 で生成していました.

今回の回路は memory strobe の生成元に 74595 を追加してその他汎用ロジックで生成することになりました. これにより AND や OR が欲しくなったので、 7404 を 7400 に変更、NAND から AND や OR を作るために4つの反転ゲートが必要になりました. また VRAM CS# と VRAM A10 も DMA で取れるようにするために 2つの tristate buffer が必要になりました. そこでの折衷案は 74240 か 74368 という、定番からやや外れる型番です.

74368 がピンの合理性からは最適解なのですが、これは AHCT シリーズがないので 74240 になりそうです. ほかは 74139 が最適解かわからないのですが、 3 入力デコーダは複数の定番2入力ゲートで手作業で組むのが大変なので妥協しています.

今回ブレッドボードで組んでロジックの確認のために 74HC240 を通販で買いました. 三菱?の印字で30年間ぐらい売れずに残ってたICかもしれません.

ロジックの確認はわりと入念にシミュレーションしたので、回路図は問題ありませんでした. ただし手作業でやる分人為的配線ミスでテストがやや遅くなりました.

改訂案の本題

今回の構成は結果として汎用ロジックICが2個増えてしまい、合計は10個になってしまいました. 今回は動作時間を理想的にしたいので仕方ないのですが、kazzo の頃の汎用ロジック1個とは違い複雑です.

前回の基板の大きさや穴の位置を変えることなく載せることができるはずですが、前から気になっていた GreenPak なる PLD を導入して1つのPLDで汎用ロジック(74139,7404,74595,7474)がまとまってくれると量産のときにやすくなりそうな気がします.

ちょっと気になるのがこの手の PLD ではゲートは自由度が高いもののレジスタを利用するとロジック資源がすぐになくなってしまうのです. 今回は 74595 相当のレジスタがほしい(その出力はすべて中間配線)ので 16 個もレジスタが入るのか、 PLD の開発ソフトを触ってみたいと思います.