WGexで555回路を作る
スタンダードセルやコンパレータなど、いろいろ部品がそろってきましたので、こいつらを組み合わせて、もう少し大きな回路をつくってみましょう。
555回路の構成要素
555の中身を見ると、意外とシンプルで、次のものがあればできそうです。
コンパレータ
SR-FF (中身は2入力NOR×2個)
nMOSトランジスタ(放電用)
抵抗
nMOSトランジスタは最初につくりましたね。
というわけで部品はほぼそろったようなものなので、あとはこれらをつなげばOKですね。部品をつなぐだけですから、ブレッドボード上の配線とたいした差はありません。
実際に作る
というわけで、まずはnMOSトランジスタ(外付けの大きなキャパシタを放電するので大きめに・・・)と抵抗をつくっておきます。抵抗は、あさぎさんのWGexで抵抗を作るよりももっとシンプルに、細長いPolyだけにしています。 これで部品がそろったので、あとは並べて、ML1/ML2でつないでいきます。金属配線ML1/ML2がブレッドボードのワイヤ、みたいな感じですね。
https://makelsi.github.io/images/docs/wgex_555/555.png
なおシミュレーションしてみたところ、cmp.gexのコンパレータの出力は、ちょっと立ち上がりが緩やかなため、発振回路が発振しない、という現象がありました。そこでコンパレータの出力にインバータを2段つなげて、出力の立ち上がり/立ち下がりを急峻にしています(インバータ2段なので、値はもとと変わらない)。
既につくった以下のセルを呼び出していますので、これらを同じフォルダに入れておきます。
シミュレーション
これをシミュレーションしてみましょう。 ただしWGexの回路抽出では、抵抗を抽出することができません。 (今回のPolyで結んだところは、抵抗0Ωでつながっている=ショートしているとみなされます) そこでレイアウト図では抵抗をはずしておいて、「抵抗がつながるはずのところ」に、抽出後のネットリストに手動で抵抗を入れます。 以下の555.spでは、r1, r2, r3が、レイアウト上ではPolyの抵抗がつながるはずのところ、です。仮にそれぞれ5kΩをつないでいます。
これに加えて、555を発振回路として使うため、VDD-DIS間に抵抗Ra(この例では1kΩ)、DIS-TH/TRG間に抵抗Rb(この例では10kΩ)、TH/TRG-GND間にキャパシタCa(この例では1uF)をつないでいます(ちなみにTHとTRGをつなぐため、1Ωの抵抗rsでつないでいます。0Ωでもいいかも)。
555の発振回路の発振周波数f[Hz]は、「f = 1.44 / (RA + 2RB)CA」で与えられますから、今回のRa/Rb/Caだと、f=68[Hz]、つまり周期は15[ms]くらいになるはずです。
コンデンサCaの両端電圧が0V、という初期条件をあたえてシミュレーションするとこんな感じになります(緑がTRG/TH、青がDIS、赤が出力Q)。
https://makelsi.github.io/images/docs/wgex_555/555sim.png
赤の周期を見ると、だいたい15[ms]になっててOKそうですね。
というわけで、こんな調子で、部品をつくったら、ブレッドボード上でつないでいくみたいな感じで、それらをつないで、どんどん大きな回路をつくっていけると楽しそうですね。