始める電子回路 CPUを作る 回路がわかる本 始める電子工作 

CPU部 動作テスト


        

CPU部 動作命令

CPU部分だけ動かす命令ですが、

まずは外部からCPUへデータをいれて確認です。

テストで使う命令
IN B     入力ポート → Bレジスタ
OUT B    Bレジスタ → 出力ポート

この2つの命令で 入力ポート(ディップSW) → 出力ポート(LED)
に転送され、正しく動作すればSW値が LEDで確認できる。。。ハズである

この命令は、本書の命令表のところでCPU信号の説明があり助かりました。
(本書P231 MOV A B)

こんな信号

入力ポート → Bレジスタ            IN B
    DipSW:1001      SelA SelB Load0 Load1 Load2 Load3
                   H   L    H    L    H    H

  ここでBレジスタ が 1001

Bレジスタ   →   出力ポート     OUT B 
 B register:1001      SelA SelB Load0 Load1 Load2 Load3
                   L   H    H    H    L    H

つまり
  入力ポート(DIP SW) → Bレジスタ  →   出力ポート(4LED)

  すると出力ポート(LED4つ) が 1001 になるはず。

動作テストの方法

直接CPUの動作信号を入れることで上記のように動かせるはずですが、その方法は簡単ではないです。

動作信号は6コ

入力ポート   → Bレジスタ            IN B
DipSW:1001         SelA SelB Load0 Load1 Load2 Load3
                   H   L    H    L    H    H


Bレジスタ     →   出力ポート     OUT B 
B register:1001        SelA SelB Load0 Load1 Load2 Load3
                   L   H    H    H    L    H

命令デコーダへのラインだけはまだなので作ってないですが、それ以外のところは出来ています。
デコーダにつながるラインで、ICが相互につながっているラインは配線しておく。

そしてこの、上のデータ SelA SelB Load0 Load1 Load2 Load3 のピンへ直接、命令信号を入れます。

動作信号の
SelectA、B は74HC153のIC
Load0〜   は74HC161のIC  にあり このICのピンにつなぎます。

何をどこからつなぐのかというと、ROMで作ったデータをつなぐ。
ROMのデータバス8本はまだ配線していない。そして取り出せるようにしてあるのは以前の通りです。
完成後にこれは半分はIC283へ、残り半分はデコーダへつながる。

完成としてつなげる前に、ROMのこの内6ビットを使いICのピンにつなぎ、データとして信号を入れておき、手動クロックでCPUへ送り出す。(残り2ビットは使わない)

ROMの動作確認にデータをいれてボタンを押すと順にLEDに出力し確認した要領です。
これで命令をCPUは実行するはずです。

準備の接続、こんなになりました
 もはや完全にスパゲティ。。

ICの足につなぐのも、IC洗濯ばさみの方のクリップを入れる間隔がないので直接ICの足をつかむ。
いよいよCPUが目覚める起動の時、接続に不安はありますが、、何でもいいのじゃ、動いてくれれば・・・

さあ、いよいよ動き出すぞ、心臓部が!

計画ではもう少しちゃんと配線する予定でしたが、もう配線は完全にスパゲティです、もうここからは突入という感じ。

なんでもいいから動いてネ。。。


さて 結果です


ROMには 以下のSelA〜Load3の6ビット信号 を書き込んでおく。

入力ポート   → Bレジスタ            IN B
DipSW:1001         SelA SelB Load0 Load1 Load2 Load3
                   H   L    H    L    H    H


Bレジスタ     →   出力ポート     OUT B 
B register:1001        SelA SelB Load0 Load1 Load2 Load3
                   L   H    H    H    L    H

これで上の2命令が実行されると、出力レジスタの4つのLEDが1001となるハズ。

これで出来るはずだ、とテストしましたが、うまくいかない! 予定通りにならない。
まず4つの出力LEDが点灯しなかったりしたり。違うLEDが点灯したり。。
なんか自作品らしい不出来な動きですが、、自作らしいと喜んでもいられない

理由は何なのだろう? ここはすんなりいかず悩みましたが、配線といい接続確認といい、不確かなところがありすぎる。
ICを触ったりすると突然LEDがついたり。。ああ、これは。。
これはICの出力の揺れ、誤動作のようだ、、回路図をよく見ると283のICの入力が浮いている。命令デコーダにつながるところを開けてあるので経験上これだろうと思ってプルダウンにGNDにつなぐ。

すると安定動作するようになった。
でもまだ動作で正常でない結果となることが。基板を動かしたり、ICクリップを触ったりするとまた正常になったりと。
ICクリップもIC足を直接つかむところは斜めから入れたりと、かろうじて接触している状態です。

こんなスパゲティ配線&簡易配線なのである程度はこういう接触の問題もあると思っていましたが、あまりちゃんとテスト配線するより途中の確認なのでこのへんにしときましょう。

あとはこれに命令デコーダを付けてから考えることに。
気づいたら ここはもう、頂上が小さく見てているところまで来ていた。もはや士気のあるうちに一気に踏破を目指す。

ついにここまできた。。。後、残るはIC3つ。。


始める電子回路 CPUを作る 回路がわかる本 始める電子工作 
        メインページへ