TJD4 vol.1 リセットボタン + 動作クロック 汎用ロジックicだけで作るcpu
お久しぶりです,masudaです!
えー...前回(1/7)一か月更新がなければ興味が薄れたと思ってくださいと言いましたが,いろいろありまして更新が遅れました.
すいませんm(__)m
気を取り直してやっていきます!
今回はリセットボタンとクロックジェネレータの制作記録です.
リセットボタン
PCにぜ~ったい必要な機能,それはリセット昨日です.
ROMが無かったり,モニタが無かったり,OSが無かったりする計算機はありますが,リセットボタンが無い計算機はないと思ってます.(笑)
このボタンは押下した際にOFFとなり,指を離すとONになる機能を持っています.
この信号をレジスタなどに入れ使っていくわけです.
しっかりチャタリング防止回路にしましょうね.
回路図はこんな感じ
クロック回路
前回の記事で動作周波数は1Hz,16Hz,256Hz,4096Hzを採用すると公言していまして,今回は4.194304MHz(2^22Hz)の水晶発振子を使ってこれらの周波数の実現します.
この世にはカウンタICというものがあります.
文字通り数をカウントしてくれるんですが,これをうまく使うと周波数を半分にしたり,4分の1にしたりできます.
カウンタICは入力信号がLOWからHIGHになったときに,2進数8bit出力をインクリメントします.
つまり00000000の状態で立ち上がり信号が送られると00000001になります.
00000000
00000001
00000010
00000011
00000100
00000101
00000110
00000111
00001000...となるわけですが,
ここで注目して欲しいのは各桁目の出力です.
8桁目の値は,立ち上がり信号1回で値が変化します(LOWならHIGHに,HIGHならLOWに).
7桁目の値は立ち上がり信号2回,6桁目の値は立ち上がり信号4回...1桁目の値は立ち上がり信号256回で値が変化します.
こ,これは!!分周回路そのものではありませんか!
この1桁目の出力を,新たなカウンタICの入力にすることで,さらに分周することができます.
今回は2^22Hzの信号にABC3つのカウンタを使い分周していきます.
カウンタBの2桁目が4096Hz
カウンタBの6桁目が256Hz
カウンタCの2桁目が16Hz
カウンタCの6桁目が1Hz になります.
回路図はこんな感じ
動いている様子
ユニバーサル基板に実装しました.
感想
はんだ付けの経験が少なく,ここが繋がってない,ここが通電してない,といろいろありましたが,動かない原因は配線のミスがほとんどでした.
論理が間違っているのか,物理的配線が間違っているのかの判断が難しかったです.
次回はもう少しはやめに投稿できるよう頑張ります.
次回はALUを作成しようと思います.