「CPUの創りかた」の回路シミュレーション(3) --- p191 4bitレジスタ

ブラウザで動作してインストール不要の下記の
https://www.falstad.com/circuit/circuitjs.html
回路シミュレータで、「CPUの創りかた」で紹介されていた回路の動作を確認してみました。

今回は p191 の 「4bitレジスタの実際の回路」です。
![[cpu191]4bitレジスタ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3549839/916eb97b-5c24-65c6-0651-2e45091bfcfe.png)

◆回路シミュレータの簡単な使用法
- マウスホイールで回路図を拡大縮小できます。
- Altキー + ドラッグで回路図全体を移動できます。
- 回路図の緑色の部分は電圧が+Vcc ( 今回は 5V )、灰色の部分は GND 電位であることを示します。
- スイッチをクリックするたびに接続が切り替わります。
- LOAD0 ～ LOAD3、RESET、SELECT A、SELECT B のデジタル入力をクリックするたびに H/L が切り替わります。

◆回路の動作確認
- MOV A, B の転送命令を実行する方法は以下のとおりです。  
> 1. 右側サイドパネルの 「Reset」ボタンをクリックする。
> 2. レジスタの初期値( D0 ～ D3 = 0101 )を設定するために、すべてのスイッチを「B」に切り替える。
> 3. LOAD1 のデジタル入力をクリックして L に切り替え、D0 ～ D3 が Q0 ～ Q3 にコピーされたら、もう一度クリックして H に切り替える。
> 4. すべてのスイッチを「A」に切り替える。
> 5. SELECT A/B のデジタル入力をクリックして、SELECT A = H, SELECT B = L に設定する。
> 6. LOAD0 のデジタル入力をクリックして L に切り替え、I0 ～ I3 が Q0 ～ Q3 にコピーされたら、もう一度クリックして H に切り替える。

以上で B レジスタの内容が A レジスタに転送されました ( MOV A, B )。

---

シミュレーションを実行するには下記の回路ファイルをコピーして、シミュレータの File → Import From Text... で開くパネルに貼り付けてください。
```
$ 1 0.000005 10.20027730826997 50 5 50 5e-11
421 48 720 96 720 2048 4 0 0 0 0 0
421 48 432 96 432 2048 4 0 0 0 0 0
421 48 144 96 144 2048 4 0 0 0 0 0
421 48 -144 96 -144 2048 4 0 0 0 0 0
w 48 48 32 48 0
w 32 48 32 336 0
w 32 336 32 624 0
w 32 624 32 912 0
w 32 912 48 912 0
w 32 624 48 624 0
w 32 336 48 336 0
w 32 912 32 992 0
R -112 992 -192 992 1 2 100 2.5 2.5 0 0.5
w -112 992 32 992 0
w 176 -176 144 -176 0
w 16 -112 16 176 0
w 16 960 -128 960 0
w 16 176 48 176 0
w 16 176 16 464 0
w 16 464 48 464 0
w 16 464 16 752 0
w 16 752 48 752 0
w 16 752 16 960 0
L -128 960 -176 960 0 1 false 5 0
x -158 952 -108 955 6 16 RESET
w 48 -144 48 -176 0
w 48 -176 144 -176 0
w 144 -176 144 -144 0
w 16 -112 48 -112 0
g 176 -176 176 -160 0 0
g 176 112 176 128 0 0
w 144 112 144 144 0
w 48 112 144 112 0
w 48 144 48 112 0
w 176 112 144 112 0
g 176 400 176 416 0 0
w 144 400 144 432 0
w 48 400 144 400 0
w 48 432 48 400 0
w 176 400 144 400 0
g 176 688 176 704 0 0
w 144 688 144 720 0
w 48 688 144 688 0
w 48 720 48 688 0
w 176 688 144 688 0
w 144 -112 192 -112 0
w 192 -112 192 -192 0
w 192 -192 -128 -192 0
w 192 96 -128 96 0
w 192 176 192 96 0
w 192 384 -128 384 0
w 192 464 192 384 0
w 192 672 -128 672 0
w 192 752 192 672 0
w 144 176 192 176 0
w 144 464 192 464 0
w 144 752 192 752 0
L -128 672 -176 672 0 1 false 5 0
L -128 384 -176 384 0 1 false 5 0
L -128 96 -176 96 0 1 false 5 0
L -128 -192 -176 -192 0 1 false 5 0
x -165 -199 -112 -196 6 16 LOAD0
x -161 88 -108 91 6 16 LOAD1
x -166 376 -113 379 6 16 LOAD2
x -164 665 -111 668 6 16 LOAD3
w 48 16 -16 16 0
w 48 -16 -32 -16 0
w 48 -48 -48 -48 0
w 48 -80 -64 -80 0
w 48 208 -64 208 0
w 48 240 -48 240 0
w 48 272 -32 272 0
w 48 304 -16 304 0
w 48 496 -64 496 0
w 48 528 -48 528 0
w 48 560 -32 560 0
w 48 592 -16 592 0
w 48 784 -64 784 0
w 48 816 -48 816 0
w 48 848 -32 848 0
w 48 880 -16 880 0
w -16 16 -16 304 0
w -16 304 -16 592 0
w -16 592 -16 880 0
w -32 -16 -32 272 0
w -32 272 -32 560 0
w -32 560 -32 848 0
w -48 -48 -48 240 0
w -48 240 -48 528 0
w -48 528 -48 816 0
w -64 -80 -64 208 0
w -64 208 -64 496 0
w -64 496 -64 784 0
w -16 16 0 -736 0
w -32 -16 -16 -752 0
w -48 -48 -32 -768 0
w -64 -80 -48 -784 0
w 144 -80 224 -80 0
w 144 -48 240 -48 0
w 144 -16 256 -16 0
w 144 16 544 16 0
w 144 304 336 304 0
w 144 272 320 272 0
w 144 240 304 240 0
w 144 208 288 208 0
w 144 592 400 592 0
w 144 560 384 560 0
w 144 528 368 528 0
w 144 496 352 496 0
w 144 880 464 880 0
w 144 848 448 848 0
w 144 816 432 816 0
w 144 784 416 784 0
184 544 -688 576 -688 0 2
184 544 -464 576 -464 0 2
184 544 -224 576 -224 0 2
184 544 16 576 16 0 2
w 224 -688 224 -80 0
w 608 -528 512 -528 0
w 640 -528 640 -512 0
w 640 -512 496 -512 0
w 640 -288 496 -288 0
w 608 -304 512 -304 0
w 640 -48 496 -48 0
w 608 -64 512 -64 0
w 640 192 496 192 0
w 608 176 512 176 0
w 640 -304 640 -288 0
w 640 -64 640 -48 0
w 640 176 640 192 0
w 512 -528 512 -304 0
w 512 -304 512 -64 0
w 512 -64 512 176 0
w 496 -512 496 -288 0
w 496 -288 496 -48 0
w 496 -48 496 192 0
w 496 192 496 1056 0
w 512 1024 -128 1024 0
w 512 176 512 1024 0
w 496 1056 -128 1056 0
L -128 1024 -176 1024 0 0 false 5 0
L -128 1056 -176 1056 0 0 false 5 0
x -166 1016 -90 1019 4 16 SELECT\sA
x -167 1049 -92 1052 4 16 SELECT\sB
w 544 -688 224 -688 0
w 288 208 288 -656 0
w 288 -656 544 -656 0
w 352 496 352 -624 0
w 352 -624 544 -624 0
w 416 784 416 -592 0
w 416 -592 544 -592 0
w 544 -464 240 -464 0
w 240 -464 240 -48 0
w 304 240 304 -432 0
w 544 -432 304 -432 0
w 368 528 368 -400 0
w 544 -400 368 -400 0
w 432 816 432 -368 0
w 432 -368 544 -368 0
w 256 -16 256 -224 0
w 256 -224 544 -224 0
w 320 272 320 -192 0
w 320 -192 544 -192 0
w 384 560 384 -160 0
w 384 -160 544 -160 0
w 448 848 448 -128 0
w 448 -128 544 -128 0
w 336 304 336 48 0
w 336 48 544 48 0
w 400 592 400 80 0
w 400 80 544 80 0
w 464 880 464 112 0
w 464 112 544 112 0
w 0 -736 800 -736 0
w 736 -672 752 -672 0
w 752 -672 752 -784 0
w -16 -752 784 -752 0
w 768 -768 768 -448 0
w 768 -448 736 -448 0
w -32 -768 768 -768 0
w 784 -752 784 -208 0
w 784 -208 736 -208 0
w -48 -784 752 -784 0
w 800 -736 800 32 0
w 688 16 672 16 0
S 736 32 688 32 0 1 false 0 2
w 736 32 800 32 0
S 736 -208 688 -208 0 1 false 0 2
w 672 -224 688 -224 0
w 672 -464 688 -464 0
S 736 -448 688 -448 0 1 false 0 2
w 672 -688 688 -688 0
S 736 -672 688 -672 0 1 false 0 2
x 162 54 236 57 4 16 Aレジスタ
x 158 339 232 342 4 16 Bレジスタ
x 158 631 232 634 4 16 Cレジスタ
x 160 917 235 920 4 16 Dレジスタ
x 719 -640 755 -637 4 16 SW1
x 731 -419 767 -416 4 16 SW2
x 745 -178 781 -175 4 16 SW3
x 746 58 782 61 4 16 SW4
x 723 -685 744 -682 4 16 D0
x 739 -459 760 -456 4 16 D1
x 752 -218 773 -215 4 16 D2
x 769 24 790 27 4 16 D3
x 679 -698 689 -695 4 16 A
x 681 -663 691 -660 4 16 B
x 679 -234 689 -231 4 16 A
x 677 6 687 9 4 16 A
x 678 -439 688 -436 4 16 B
x 676 -199 686 -196 4 16 B
x 676 41 686 44 4 16 B
x 676 -469 686 -466 4 16 A
L 688 -656 688 -624 2 0 false 5 0
L 688 -432 688 -400 2 1 false 5 0
L 688 -192 688 -160 2 0 false 5 0
L 688 48 688 80 2 1 false 5 0
```