2024.3.14
前へ
次へ
ホームページトップへ戻る

トランジスタでCPUをつくろう!
トランジスタで8080をつくってしまおうというまさにびっくり仰天、狂気のプロジェクトです!
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
見事にできましたら、もちろんTK−80モニタを乗せて、それからBASIC、CP/Mを走らせましょう!
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆


[第432回]



●エッジパルス発生回路を再検討する

エッジパルス発生回路はバイナリカウンタ回路の改良を考えるなかで思いついた回路です。
この回路によって当初はRSフリップフロップ回路を2段使っていたところが1段だけで済むようになりました。
この回路を最初に説明したのは[第411回]でした。
下がその回路図です。

クロックパルスをインバータとNANDゲートの一方の入力に加えることでインバータ1個分の遅延時間相当の幅の狭いパルスがNANDゲートから出力されます。
前段のインバータの2SC1815(図のT6)のベース抵抗は51KΩ〜200KΩに換えて試した結果最終的には51KΩだけで22pFのコンデンサはつけない設定に落ち着きました([第421回])。
しかし上の回路図では前段のインバータの2SC1815も普通のインバータ回路と同じように51KΩの抵抗と22pFのコンデンサをつけた回路になっています。
ここの22pFは本来はなくてよい設計なのですが色々動作テストをするなかで22pFが必要になるかもしれないと思って22pFを取り付けることも可能な設計にしました。
51KΩだけの場合のパルス幅はCKVが30ns〜60ns、CKGが80nsぐらいです([第420回])。
22pFもつけた場合のパルス幅はCKVが10nsほど、CKGが15nsぐらいです([第421回])。
既存のプリント基板を利用して作った試作回路を使って何回かテストを重ねた結果このエッジパルス発生回路とRSフリップフロップ1段で構成したバイナリカウンタ回路はうまく動作することが確認できましたのでプリント基板を作成することにしました。
どうせプリント基板を作るのならばカウンタだけではなくてそのほかの回路のテストにも使えるようにしたいという考えで74LS74相当のTR74回路基板として作図しました([第422回])。

バイナリカウンタ回路としてはそこで終るつもりだったのですが。
その後にオープンコレクタ回路について考えるなかでバイナリカウンタ回路についてももう一工夫したいと思うようになりました。
せっかくRSフリップフロップを1段で済ませるようになってトランジスタ数を削減することができたのはよかったのですがエッジパルス発生回路のところでトランジスタが逆に増えてしまいました。
TR05やTR03の回路が余りにすっきりとしているためにエッジパルス発生回路が複雑な回路に思えてきました。
何とかもう少しすっきりした回路にできないものか。
おおそうだ。
ここをオープンコレクタに置き換えたらすっきりした回路になるのではないか。
しかしただ普通に置き換えるとCKVはLパルスなのでよいのですがCKGはHパルスが必要なのでそこはオープンコレクタにはできません(これは考えが足りなかったことがあとでわかりました)。
ここは工夫が必要です。
そもそもCKVにしても単純にオープンコレクタに置き換えることができるのだろうか?
あれこれ試行錯誤を重ねていましたら。
あれ?
幅の狭いパルスが簡単にできる?
こんな回路を思いついてしまいました。

なんてことはない当たり前のような回路ですが。
長い間この回路ではまともなパルスは出せないと思い込んでいました。
これも先入観が邪魔をしていたようです。
今まで駄目だったのはトランジスタのベースに51KΩの抵抗をいれていたためだったようです。
実は別の目的で9年も前に同じ回路を試しておりました([第27回])。
このときは2SC1815ではなくて2SA1015だったのですが(ですから上の回路とは逆向きのパルスが出力されます)、およそ150nsほどのパルス出力が得られることを確認しておりました。
なんてことだ!
そんなことなど完全に忘れてしまっておりました。
あれ?
ということは。
2SA1015を使えばCKGも作り出せる?
で。
こんな回路を考ました。

[第27回]のようにすれば2SA1015を使ってCKG信号を作ることができるということはわかりましたが2SA1015にダイレクトにCKINを入力するとCKINの立ち下がりでエッジパルスが出てしまいます。
ですからここはCKVを2SA1015に入力してその出力をCKGにします。
この2SA1015もオープンコレクタです。
せっかく思いついた回路です。
この回路で思い通りのエッジパルスが出力されるかどうかを確認するために既存のトランジスタロジック回路基板を利用してテスト回路を作成しました。

2SC1815と2SA1015が各1個だけですから既存の回路をうまくつなげば簡単に作成することができます。
下が2SC1815からの出力パルス(CKV)の波形です。

上側(CH1)はCKIN(1MHz)です。
下側(CH2)はCKV出力です。
ちょっと立ち上がりがなまっています(少し気になります)。
+2.5V近辺で150nsほどのパルス幅です。

下は2SA1015からの出力パルス(CKG)の波形です。

こちらもパルス幅は150nsほどです。

おお。
いいじゃありませんか。
これなら。
今までのインバータ×2+NANDで作ったエッジパルス発生回路(トランジスタ6個)をなんとトランジスタ2個で置き換えることができそうです。
しかし喜ぶのはまだ早過ぎます。
この回路が本当に使えるかどうかは実際にバイナリカウンタ回路に組み込んで試してみる必要があります。

次回に続きます。

トランジスタでCPUをつくろう![第432回]
2024.3.14upload

前へ
次へ
ホームページトップへ戻る