この世のCPUを食べ尽くすのだ! 第3章 第3節 第5項
~あんたCPUなんか創ってどうするのよ?! Vol.3~
2018/10/8
技術書典5 け39
第3章 第3節 第5項 CPUのREAD信号とWRITE信号
READ信号はIN命令が実行され、かつクロックが0の時に0になります。表1にあるようにIN命令には以下の2種類があります。
- IN A命令(命令コード0010)
- IN B命令(命令コード0110)
従って論理式は以下のようになります。
READ = bit7 OR (NOT bit5) OR bit4 OR CLOCK
このうちbit7 OR bit4はTD4にも存在していて、マルチプレクサである74HC153の制御に使われています。そのためTD4EX3では、これにNOT bit5とCLOCKとのORを追加してREAD信号を作り出します。
いっぽうWRITE信号はTD4の出力ポートである74HC161の制御信号そのままです。
WRITE = bit7 NAND (NOT bit6)
WRITE信号はクロックとは無関係に出力されます。これはRAMへの書き込み時にCS制御モードを使うための措置です。
副作用としてWRITE信号には「ヒゲ」が発生する可能性があります。I/Oユニット側では「ヒゲ」対策が必要になりますが、I/Oユニットにもクロックを供給するようにしたので、WRITE信号とクロックのORを取れば容易に「ヒゲ」対策を実現できます。
なお、CPUの仕様として OUT Im 命令を削除することになりましたが、単に仕様として削除しただけで、回路側では何もしていません。