コメントはありません。 コメント/WGexの使い方/555? (2015/1/30:akita) スタンダードセルやコンパレータなど、いろいろ部品がそろってきましたので、こいつらを組み合わせて、もう少し大きな回路をつくってみましょう。 アナログ回路でそこそこお手軽につくれるもの、といえば、発振回路で定番の「555」があります。 (「555」については、このあたりの説明が詳しいです→ http://www.marutsu.co.jp/pc/static/large_order/led_ic555 ) この555の中身を見ると、意外とシンプルで、次のものがあればできそうです。
コンパレータは../コンパレータでつくりました。 SR-FFは、../スタンダードセルでつくった2入力NORゲートをつかえばできそうです。 nMOSトランジスタは最初につくりましたね。 抵抗は、あさぎさんの../抵抗あたりを参考にすればつくれそうです。 というわけで部品はほぼそろったようなものなので、あとはこれらをつなげばOKですね。部品をつなぐだけですから、ブレッドボード上の配線とたいした差はありません。 というわけで、まずはnMOSトランジスタ(外付けの大きなキャパシタを放電するので大きめに・・・)と抵抗をつくっておきます。抵抗は、あさぎさんの../抵抗の作り方よりももっとシンプルに、細長いPolyだけにしています。 これで部品がそろったので、あとは並べて、ML1/ML2でつないでいきます。金属配線ML1/ML2がブレッドボードのワイヤ、みたいな感じですね。 なおシミュレーションしてみたところ、cmp.gexのコンパレータの出力は、ちょっと立ち上がりが緩やかなため、発振回路が発振しない、という現象がありました。そこでコンパレータの出力にインバータを2段つなげて、出力の立ち上がり/立ち下がりを急峻にしています。(インバータ2段なので、値はもとと変わらない) 既につくった以下のセルを呼び出していますので、これらを同じフォルダに入れておきます。 ※cmp.gexは、../コンパレータで作ったものに少し手を入れています(出力端子にML2をおいただけ)。nor2.gexとinv.gexは../スタンダードセルでつくったものと同じです。 これをシミュレーションしてみましょう。 ただし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) 赤の周期を見ると、だいたい15[ms]になっててOKそうですね。 というわけで、こんな調子で、部品をつくったら、ブレッドボード上でつないでいくみたいな感じで、それらをつないで、どんどん大きな回路をつくっていけると楽しそうですね。 ファイルはいつもの通り、GitHub?においておきます。https://github.com/akita11/mklsi/tree/master/555 |