トランジスタでCPUをつくろう!
トランジスタで8080をつくってしまおうというまさにびっくり仰天、狂気のプロジェクトです!
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
見事にできましたら、もちろんTK−80モニタを乗せて、それからBASIC、CP/Mを走らせましょう!
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
[第441回]
●「1/2TR373」の動作テスト(3)オープンコレクタ
[第437回]でバイナリカウンタ回路のRSフリップフロップ回路の一部をオープンコレクタ回路に置き換えて動作テストを行ないました。
オープンコレクタ回路の欠点は動作周波数が低くなってしまうことです。
その欠点を補うにはオープンコレクタのプルアップ抵抗の値を小さくする必要があります。
実験ではプルアップ抵抗の値を1KΩぐらいにすると動作周波数がかなり高くなることが確認できました。
しかしプルアップ抵抗を小さくするとトランジスタがONの期間に抵抗に流れる電流も増加します。
Vcc=5Vの場合1KΩの抵抗には5mAの電流が流れます。
問題はRSフリップフロップの場合片方のトランジスタがOFFの場合もう片方のトランジスタはONになるところにあります。
つまりオープンコレクタ型のRSフリップフロップではどちらかのプルアップ抵抗を通じて常時電流が流れてしまうことになります。
トランジスタCPU回路全体でバイナリカウンタやレジスタを構成するRSフリップフロップが100個あったとするとそれだけで500mAの電流が流れてしまいます。
それはちょっと問題です。
そうならないようにするにはプルアップ抵抗の値を大きくするしかありません。
そうすると動作周波数は低くなってしまいます。
これはジレンマです。
[第437回]ではその点について抵抗値を変えてみるなどのテストを行なった結果RSフリップフロップを構成する2つのインバータ回路のうち上側のインバータについてはオープンコレクタにしないで、下側のインバータのみオープンコレクタにするなら高い動作周波数を維持できることがわかりました。
今回はその結果をふまえて「1/2TR373」回路でもオープンコレクタのテストをしてみることにしました。
下は前回お見せした「ダイオード版」の「1/2TR373」の回路図です。
上側のインバータ(T5、T6)はさわらずに下側のインバータ(T7、T8)のみオープンコレクタにします。
具体的にはトランジスタT7のみ非実装にしました。
そのようにしただけでプルアップ抵抗はつけていません。
前回のテストと同じようにG入力として2MHzクロックを入力し、1D入力には500KHzを入力しました。
入力波形は[第439回]と同じですから写真は省略します。
下は1Q出力波形です。
上側(CH1)はG入力(2MHz)で下側(CH2)は1Qの出力波形(500KHz)です。
前回と同じ波形になりました。
「TR373」もオープンコレクタにすることができました。
もっとも本来は1ビットあたりトランジスタ4個で構成するRSフリップフロップをトランジスタ3個にするだけですから25%の削減効果に過ぎません。
ま。
でも51KΩと22pFも同じ数だけ削減できるのですから円安による原価高をある程度は補うことはできますでしょう。
ということで今回のテストもそれで終るところだったのですが。
念のために、と思って入力周波数を変えてテストをしてみたところ信じられないことがおきてしまいました。
オープンコレクタではない場合と同じ入力周波数(G=2MHz、D=500KHz)をオープンコレクタ回路に入力しても同じ結果が得られたのですからそれより低い周波数ならなおのこと正常動作するはず、と思ったのですが。
こんな結果になってしまいました。
上側(CH1)はG入力(250KHz)で下側(CH2)は1Qの出力波形(31.25KHz)です。
1Dには1Qと同じ周波数(31.25KHz)を入力しています。
1D=1Q=Hのときは正常に出力されていますが1D=Lのときには入力が完全にはラッチされない状態で出力されてしまっています。
ぬぁんじゃあ、こりゃあ!
次回に続きます。
トランジスタでCPUをつくろう![第441回]
2024.4.7upload
前へ
次へ
ホームページトップへ戻る