この記事はセルオートマトンによるCPU作成連載記事の10本目です。(2022/12/21)
今回は2進数で数値を入力することで7セグメントディスプレイに数字を表示させるようにしました。前回の7セグメントディスプレイでは8本の信号を入力する必要がありましたが、今回は2進数の数値から8本の信号を生成する回路をディスプレイの下に追加しています。
8本の信号を生成する回路は前回のデコーダの応用です。格子状に回路を組んでいます。
少しでも省スペースになるように職人技で詰め込んでいます。とはいえまだ無駄なところが多く改良の余地が残っています。
回路の中身は論理回路AND/OR/NOTを詰め込んでいるだけです。たとえば7セグメントディスプレイへの信号線のうち一番左(Aと書いてあるところ)は、入力された数字が2のときにだけOnになります。したがって次のようになります。
この論理式は回路の中の一番下、ボタンのすぐ上に実装されています
一番下にボタンが5つあります。一番左のボタンが電源ボタンで初期状態でOnになっています。残り4つが2進数による数字の入力ボタンです。電源ボタンをOffにすると表示が消えます。
回路の上にあるSpeedボタンまたは下の5つのボタンのいずれかを押すと、動き始めます。最初はゴミが大量に流れます。ゴミがすべて流れきると数字が表示されているはずです。
10以上の数字を入力しても7セグメントは1桁しかありませんので、表示できません。10以上の入力の場合には電源Off状態とも区別したかったので、空白でも数字でもない文字として下線を表示するようにしました。