ダイナミック回路は、「仮初な一時の電荷」を当てにして動く回路と言ったら怒られるでしょうか。以前から、やるやると言いながら中々手をつけないできましたが、ここに来て部品も少しく届いたので手をつけることにいたしました。ま、ね、そういいながら部品に振り回されておるのですが。今回は、ダイナミック回路を始めるための準備であります。
※かえらざるMOS回路 投稿順 INDEX
ダイナミックな回路の代表選手と言えば
DRAM
でしょう。「ダイナミック」ランダム・アクセス・メモリ。ご存知のとおり定期的に「リフレッシュ」動作をしなければ記憶が飛んでしまうメモリであります。キャパシタ(コンデンサ)に溜めた電荷を当てにして動かす回路なので、「ダイナミック」。
何時までもあると思うな、キャパシタの電荷
なんであります。ほって置けばどこからともなくリークして何だかよく分からないことになってしまいます。そのため、ダイナミックな回路は、定期的に「喝」をいれてやらないとなりません。ダイナミックな論理回路の場合、クロック信号こそ喝に他なりません。勿論、スタティックな論理回路にもクロックは必要ですが、「クロック止めてもその状態のまま止まっている」わけです。それがダイナミックな回路ではクロック止めると良からぬことになるわけで使いにくいこと間違いない。けれど、古代の回路で多用されたのは、例によって
トランジスタの数が少なくて済む
ことが一つのモチベーションであったかと思われます。
さて、ダイナミックな回路には動き続けるクロック必要であることが分かりましたが、そのクロックにもえり好みがあります。最近の論理設計であれば、複数のクロック・ドメインがあるにせよ、一つ一つのクロックは単相クロックで、その立ち上がりエッジとか、立下りエッジとかで動作させるものが普通じゃないかと思います。しかし、今回、ダイナミックな回路を動作させるにあたって使おうと考えておりますのは、
2相ノンオーバラップクロック
という「古代技術」であります。ダイナミックな回路自体、いろいろ実現方法があるので、2相ノンオーバラップでないとダメというわけでは無いです。私の好み。古代の記憶であります。正のクロックと負のクロック(正を反転したクロック)の2相を使うのですが、片方がインアクティブになってから、もう片方がアクティブになるまでに「隙間時間」をあけてノンオーバラップさせるというのがミソです。これは、
時間の使い方が勿体ない
ので廃れました。クロックを速くすればするほど高く売れる半導体商売において、わずかな隙間時間とは言え、「何もしない」時間など許しておけない、と誰かが(いや皆が)思ったからです。しかし、ダイナミックな回路と相性が良いのは、
クロックがオーバラップするとその狭い時間に電荷が抜けてしまう!
ような現象を確実に回避できるからです。
さて、今回は、単相クロックから、2相ノンオーバラップクロックを生成する部分の回路を作ってみました。例によってディスクリートのMOSトランジスタを組み合わせてですが、CMOSです。勿論、NMOSで作ることもできるのですが、例の「トラ技5月号の付録基板」を有効活用しないと、肝心のダイナミック回路に使うNMOS基板が不足するなあ、という部品上の要請から、クロック生成回路はCMOSでやってしまおう、ということなのであります。
LTspice XVIIで描いた回路がこちら。よく見ればすぐわかるでしょう。NOR使ったフリップ・フロップの回路に余計な遅延を入れた、だけの回路です。本来、LSI上で作るならば、RやCといった受動素子を使うのは「大変」なので、適当にインバータのチェーンでも使って遅延をつけるところですが、今回はMOSトランジスタの数の方がネックなので、ハッキリ言います「RとC」で誤魔化しています。またもや、
なんちゃって回路
さて、上の回路をシミュレーションしてみるとこんな感じです。緑のPH1(正相というべきか)と赤のPH2(逆相)というべきかの2つのクロック信号が作られていて、そしてその間に隙間があります。ノンオーバラップしてますね。
以前に弁明したとおり、電源容量の方の「予算」も厳しいので、上の回路そのままでは、ターゲットの回路まで実装できませぬ。そこで実際は以下のような回路(またもや)に改悪して実装しています。
上記をブレッドボード上で組み立てたものがこちら。ただし、トランジスタでなく「ジャンパ線」不足で、PH2側のみ出力回路を取り付けており、PH1側のインバータ2つはありませぬ。後でブレッドボード用のジャンパ線もこさえておかないと。
さてこれに、アナデバ社の学習用お手軽ツールADALM1000(M1K)を取り付けて動作さえてみたところがこちらです。M1Kの5V電源を使い、CH1を単相の入力クロック源とし、CH2でPH2出力を観察してます。なお、左側の大きめのBOB基板が「トラ技」の付録基板で、右側の小さい基板はSOT23用の変換基板(秋月電子にて購入)であります。「トラ技」の付録基板のうち、一番上の「インバータ基板」のみ、トラ技記事どおり「LEDとかプルダウン抵抗」とか実装しているので、派手に光ります。2NORの基板などはメンドイのでトランジスタ以外は載せていませんので光ません。
M1Kで観察した波形を見ていただきましょう。PH1とPH2でなく、元クロックとPH2の間ですが、しっかり隙間が空いているのが観察できます。ま、シミュレーションしたのだから当然か。しかし、ここでもご都合主義というか部品の制限で、変更いれています。元の図面では、330Ωと0.1μFで遅延を作っていたのに、3.3kΩと0.01μFに変更してます。理由は、0.1μFの在庫が沢山あると思ったら、そんなことはなかった、ため。
何時までもあると思うな、部品の在庫
まあ、回路は動いたのでこれで良しとしても良いのですが、もう一つ失敗してました。これも部品。本当は、トラ技の付録基板のインバータ、LED搭載していないバージョンもあったのです。そちらを先に使いました。しかし、何か変。思ったように動かない?それで、LED搭載の「派手な(電気食う)」インバータに交換して動かしたのです。
こういう時、老眼を補うツール、今回買ってあります。アマゾンで最も安いPC接続の顕微鏡(電子虫眼鏡というべきか)、お安いだけあって今時VGA!しかし、該当基板の問題は明白になりました。御覧のとおり。
BSS138のソース端子とゲート端子、半田付け忘れ!単体テストしたつもりだったんだけどな~。見逃していたです。大バカ者!