#pcomment(reply) (2015/1/30:akita) フルカスタムでLSIをつくるなら、FPGAやマイコンではまねの出来ないアナログ回路をつくってみたいところですよね。 というわけで、アナログ回路の1つの、電圧比較器(コンパレータ)をつくってみます。 コンパレータの作り方はいろいろあって、用途や要求仕様にあわせていろいろな回路構成をとりますが、ここではこちらのFig.3に載っている、かなり基本的な回路を使ってみます。 http://www.geocities.jp/a_story_of_circuits/html/advanced_exp/1_11_comp_basic.htm http://www.geocities.jp/a_story_of_circuits/html/advanced_exp/1_11_comp_basic.html 差動増幅器そのまま、という感じの回路です。 本来は性能をだすために、回路パラメータ、具体的にはMOSトランジスタのサイズを調整しないといけなくて、そこはアナログ回路設計の腕の見せ所でもあるわけですが、ここでは、とりあえず動けばいいや、ということで、トランジスタのサイズは、とりあえずpMOS、nMOSともにゲート長は最小、ゲート幅は6um、でそろえてみます。ただし右端の最終段は出力バッファ的に機能するので、[[./スタンダードセル]]でつくったインバータと同じく、pMOSを大きく(W=18um)しておきます。 いきいなりレイアウト設計しても、トランジスタのサイズの調整などがめんどうなので、まずはLTspiceで、この回路のトランジスタの接続情報(ネットリスト)を手入力してみます。 #ref(./cmp0.sp) こいつをシミュレーションしてみるとこんな感じです。 #ref(./cmp0_sim.png,10%) 緑がV+、青がV-で、V+>V-のところで出力(赤)がHighになっているので、コンパレータとして動作しているっぽいです。 (オフセットやスルーレートなどの指標は割愛します) 続いて、この回路図の通りレイアウト設計してみます。アナログ回路、特に差動増幅回路のレイアウト設計では、対称性を高めたり、重心を同じにする(コモン・セントロイド)など、いろいろな設計上のノウハウがありますが、とりあえずは回路図通りに配置してみます。(一応差動段は左右対称に・・・) #ref(./cmp.png,10%) #ref(./cmp.gex) DRCは通るので、回路抽出してシミュレーションしてみます。 #ref(./cmp.sp) #ref(./cmp_sim.png,10%) コンパレータとして動作はしているっぽいですね。 興味のある方はぜひ、コンパレータの性能を求めたり高性能化にチャレンジしてみてください! ファイルはいつものとおりGitHubにおいておきます。 https://github.com/akita11/mklsi/tree/master/Cmp