自作CPU #12 基板届きました。部品載せました。

基板が届きうれしくなって部品を一通りはんだ付けするまでブログに書く事を忘れてました。

こちらが届いた基板です。レトロ感を出したかったので基板の色は緑色にしました。

f:id:Hamakita:20180114002105j:plain

そして一通り部品を載せたのがこちらです。

A基板

f:id:Hamakita:20180114001734j:plain

B基板

f:id:Hamakita:20180114001735j:plain

合体!!

f:id:Hamakita:20180114001720j:plain

今日簡単な動作確認をしていましたらバグが二か所見つかりました。

一つ目は、手でDIPSWを操作しマシン語でプログラミングできるようにしているのですが、その出力にあるトライステートがうまく動作しないというものです。これの原因はトライステートのICにTTLである74F373を使用したのが原因でした。

自分はCMOSを使うつもりで設計していたので誤動作したようです。

電子回路のスイッチでは一般的に抵抗でプルアップしてスイッチをONにするとGNDへつながるように設計するんですが、今回はわかりやすくするためにONでHになるようにプルダウンしてました。TTLのICでは入力端子に何もつながないとHが入力されるようになってるみたいでONでLでないと動作しないみたいです。

この問題はトライステートをCMOS版に変えれば解決すると思います。

 

二つ目はZフラグのデコーダです。ALUの演算結果が0000になるとZ(ゼロ)フラグが立つようにしているのですが、このZフラグを出力するには4入力のNORが必要なのです。普通の組み合わせでは、どうしてもICを二つ以上使う必要があったため、アドレスラッチの74HC259を使ってアドレス000と出力有効端子(負論理)をつかって4入力のNORを実現しました。ここで配線を間違っていたみたいで誤動作していました。

これはしょうがないのでパターンを切って修正するしかないです。

 

ハードウェアのバグつぶしが済んだら次はファームウェアを書いていこうと思います。