めざせ4004! IC24個で電卓用CPUを作ってみた: Chapter 5-2 キャリーフラグ制御の改良

これは筆者の技術不足が原因なのですが、キャリーフラグは毎回改良を余儀なくされており、ご多分に漏れず今回も改良しました。 キャリーフラグは実行する命令によって更新されたり現状維持されたりするのですが、前回のTD4EX4ではそれをフリップフロップのクロック端子(CLK)を制御することで行っていました。

図19はTD4EX4のキャリーフラグ関連回路を簡素化したものです。Control端子が0の間はキャリーフラグを更新せず、1の時に更新するという動作を意図しています。しかしこれはControl端子とクロック(CLK)のタイミングがずれると誤動作するという問題があり、あまり良い回路とは言えません。

タイミング設計は筆者が苦手とする部分なので、これを解決するために非同期回路を出来る限り止め、同期回路を使うことにしました。そのためにキャリーフラグ関連回路も大きく変更しました。

同期回路にするためにEX4-2024ではフリップフロップのCLK端子にCPUのCLK信号を直接接続しています。これによりタイミングの問題は起きなくなります。しかし今度はキャリーフラグが常に更新されるようになってしまうので、更新したくないときには図20のControl端子をゼロにして、フリップフロップのQ出力をそのままD入力にフィードバックさせます。