トランジスタでCPUをつくろう!
トランジスタで8080をつくってしまおうというまさにびっくり仰天、狂気のプロジェクトです!
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
見事にできましたら、もちろんTK−80モニタを乗せて、それからBASIC、CP/Mを走らせましょう!
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
[第416回]
●バイナリカウンタ回路の改良(6)
前回は時間がなくて不十分なところが残ったままUPしてしまいました。
本日になってから一部を書き加えました(9日朝8時ごろに更新いたしました)。
間違いを訂正したわけではありません。
文章の流れとして「舌足らず」だったところを直しただけです。
前回の続きです。
説明の続きになりますので前回お見せした回路図と波形の写真を再掲します。
上側(CH1)はQ_出力((A)点)の波形です。
下側(CH2)はGATE出力((C)点)の波形です。
波形をよく見ると異なるパターンがあります。
CH1を見るとLからHへ、HからLへまっすぐにUP、DOWNしているところがあります。
垂直に見える波形の間隔は1μsです。
周期が1μsですから周波数は1MHzです。
GATEをON、OFFするためにGATEに入力しているCKV、CKGの周波数が1MHzです。
もとになるCLOCKの周波数です。
CH1が急峻に変化しているところがGATEがONになったところです。
CH1はQ_の出力です。
GATEがONになった直後のQ_の出力でLからHに変化するときとHからLに変化するときがあるのはGATEがOFFになったときの(C)点の電圧値の反映です。
GATEがOFFになるとその直前の(C)点の値がRSフリップフロップにラッチされます。
(C)点はGATEがOFFになる前は「発振」しているためOFFになった直後にHかLのどちらになるかはわかりません。
とにかくGATEがOFFになった直後にRSフリップフロップはHかLかどちらかの状態でラッチされます。
GATEがOFFになるとGATE出力((C)点)はハイインビーダンスになります。
すると(C)点はQ_の出力電圧とR14によって(C)点の浮遊容量を充放電する波形を描く形で上昇、下降します。
ここの動きは少し複雑です。
(C)点の波形を見ると発振が始まる直前は大体中間電位(2.5V)近辺にあるようです。
GATEがONになってから発振がはじまるまでの期間はQ_〜GATEINのラインの10KΩと22pFの遅延回路による遅延時間と考えられます。
この期間にゆるやかに上昇または下降していくカーブは上記の遅延回路の信号波形を反映していると考えられます。
入力が速い速度でHからLにLからHに変化する場合にはGATE出力もそれに合わせて変化しますがゆっくりと変化する場合にはトランジスタのアナログ的な動きでゆっくりと変化します。([第417回]参照)
そしてGATE入力((B)点)が中間電位(2.5V)になると(C)点もそれに合わせて中間電位になります。
するとそれまでラッチされていたRSフリップフロップが反転します。
その出力はすぐに(B)点に伝わります。
このとき以後はQ_出力はほとんど遅延せずにGATE入力((B)点)に伝わります(次回説明の予定)。
その結果発振することになりますが(C)点は中間電位を中心とした発振波形になります(同上)。
GATEがOFFになることで発振は停止します。
GATE入力につながっている遅延回路は遮断されるので(C)点の上昇または下降も停止するはずなのですがCH2を見るとまだ上昇または下降のカーブは続いています。
さらによく見ると上昇または下降の向きが発振前と同じ場合と逆の向きになる場合があります。
これは何だろうかという疑問が生じます。
この動きに関係しているのはQ_とR14しか考えられません。
GATEがOFFになったときにたまたまQ_がHだったとするとその電圧とR14によって(C)点の浮遊容量が充電されることになり、また逆にたまたまQ_がLだったとすると放電されると考えられます。
その動きを示しているのが「発振」が停止したあとのCH2の波形((C)点の波形)です。
このときの充放電の時定数を考えると当然R14の値に比例することになります。
これはR14に対して当初考えていた通りの動作です。
やっぱりQ_はR14によって内部で遅延している!
当初からそのように推測はしていたので適当にR14=10KΩとしていたところをこれまた適当に4.7KΩにしたのでした。
もう少し小さい抵抗値にしておいたほうがより安全だろうと適当に考えたからです。
10KΩにしても4.7KΩにしても根拠があってのことではありません。
そこは「適当」であります。
しかしそれで本当によいのだろうか?
そこが解決しておきたい疑問でした。
R14はGATEがONのときにはQ_と(C)点が逆位相となるのでそこがショートするのを避けるために入れているものです。
このR14によってQ_の出力がQ出力回路のベース電位を維持することになりますからGATEがONになっている間にQ_の電位が(C)点に伝わらなくてはいけません。
そこが遅延するとなると、R14は小さくしなければいけないのではないか?
しかしどこまで小さくしたら安全なのか?
余り小さくするとショート時の電流が大きくなるので好ましくありません。
そこのところがはっきりしないとGATEがONになっている時間を短くできません。
そうなるとせっかくのアイデアもちょいと不安になってきてしまいます。
つまるところそのあたりがあいまいだったのでCKV、CKGのパルス幅をそこそこ長くせざるを得ませんでした(余り短くするとQ_の出力がR14経由でQ側に伝わらないうちにGATE OFFになってしまうのでは???)。
実際に上の写真ではGATEがOFFになってからも(C)点の電圧は変化しているではありませんか!
しかししかし。
それは全部私の先入観から来る思い込みに過ぎませんでした。
R14はそこそこの値でよかったのでした。
上の写真の(C)点の波形にもかかわらず、です。
もっともそれには前提条件が2つあります。
その1つ目は。
Q_〜GATE入力のラインの遅延はCKV、CKGのパルス幅よりも長く、そしてCKINの1周期を越えないことです。
そして2つ目は。
CKV、CKのパルス幅は20ns以上であることです。
説明の途中ですが本日も時間がなくなってしまいました。
この続きは次回にいたします。
上の方でお見せした波形の写真のほかにも沢山写真を撮りましたのでお見せします。
下は上の方でお見せした写真の水平時間軸を拡大した写真です。
下も同じですが波形が異なっている部分の写真です。
下も同じですが上の2枚とは波形が異なっています。
下はQ_出力((A)点)とGATE入力((B)点)の波形です。
上側(CH1)はQ_出力((A)点)の波形です。
下側(CH2)はGATE入力((B)点)の波形です。
水平時間軸を拡大しました(下の写真)。
下は上と同じですが波形の位相が上とは異なっています。
トランジスタでCPUをつくろう![第416回]
2024.2.9upload
前へ
次へ
ホームページトップへ戻る