趣味でやっている電子工作をメインでまとめていきます.

回路やプログラムは流用していただいても全く問題ありませんが,それによって生じた事故・障害その他損害については一切責任を負いかねますのでご留意ください.

CPUを作る#1

 実は三角波発振回路の裏で回してました,この企画.発端は友人のツイートです.

 車は Porsche 911 GT3 です.よく見ますね(雑).これの LEGO 持ってますけど,完成度高いのでお勧めです.いまは Bugatti Chiron がでてますね.高いけどシリーズ化してほしいところです.

f:id:sawala99:20190616225516j:plain
Porsche 911 GT3


 さて,本来は TD4 と言って,4bit CPU を作成する流れでしたが,なぜか 8bit CPUを作成することになりました.どうしてこうなった.
 そこで,本来の回路を,8bit に設計しなおしていきましたが,そこで 8bit のプリセット付き同期カウンタが必要になり,自作する運びとなりました.ここで私は大きな勘違いをしていますが,気付いていません.

 まずはじめに,回路図を描きました.完全同期もできなくはないと思いますが,IC数が増えてしまうのと,はんだ付けが終わる前に部屋から飛び出して虎になってしまいそうだったので,74HC590 の内部回路を丸パクリして,疑似同期としました.
 以下が作成した回路図です.

f:id:sawala99:20190616230221p:plain
Schematic

 今回は,立下り動作の 74HC112 と,立ち上がり動作の 74HC273 を使って,立ち上がり動作の 8bitカウンタを作成しました.簡単に動作を説明すると,立下りエッジで 74HC112 がカウンタを行い,立ち上がりエッジで 74HC273 がラッチするので,あたかも同期で動いているように見えるわけです.難点は,最終段の 74HC112 がカウントする前に立ち上がりエッジが入力されてしまうと,出力値がおかしくなることですが,今回そんなに高速で動作させる予定はないので無視します.
 そして,プリセット機能ですが,74HC112 のプリセット機能をそのまま使いました.ただ,74HC112 のプリセット端子はアクティブローなので,74HC540を使って反転してあげています.また,プリセット時に,セットしないビットをクリアする必要があるため,74HC112 のプリセット端子が優先される特性を活かして,クリアとセットを両立させています.クリア時は,74HC540 の出力を HiZ にして,プリセット端子をプルアップすることで,クリアのみを実行しています.

 そして実際に出来上がった基板がこちらです.実はDINコネクタもついていますが,界隈がバレるので消しました.

f:id:sawala99:20190616231322j:plain
基板

 一番難しかったのは,IC の入手です.

 実際に動かした動画です.途中で消えたりするのは,プリセットとクリアのテストです.

 動きました.よかったですね.

 さて,ここで勘違いの件です.私はここに使うカウンタは,同期でなければいけないと思い込んでいました.何でですかね.また,8bit のカウンタを作るときも,8bit がワンパッケージに収まっていないといけないと思い込みました.何でですかね.
 聡明な皆様ならすぐに気づくと思いますが,これ,多分 74HC161 のカスケードで使用を満たせます.ICふたつで済みますね.

 ということで,ここに自作・プリセット付き 8bit同期カウンタの供養をさせていただきます.
 自作CPUはダメージが大きすぎるので,気が向いたらまた作り始めます.