WGexでスタンダードセルを作る
論理回路を、ささっとつくるのに、インバータとかNANDゲートとかフリップフロップが部品としてあると、楽ちんですよね。 ついでに、大きさがそろっていて、並べてぴたっとつながると、なお楽ちんです。
というわけで、こういう部品としての論理ゲート(スタンダードセル:スタセル)をつくってみました。
まず、特性を調整しておきます。 pMOSとnMOSのサイズで、インバータの特性が決まります。 WGexの使い方、のところでつくったインバータの入出力特性(DC特性)をシミュレーションしてみると、こんな感じです。
https://makelsi.github.io/images/docs/wgex_stdcell/inv_dc1.png
出力が0Vにさがるのが、中央よりちょっと左側にきています。つまりpMOSがちょっと弱い、ということです。 というわけで、pMOSのサイズ(ゲート幅)を変えながらシミュレーションをして、ここがほぼ中央に来るようにしてみます。
https://makelsi.github.io/images/docs/wgex_stdcell/inv_dc2.png
これでだいたい中央に来ました。というわけでこのnMOS/pMOSのサイズで、スタンダードセルをつくってみました。 (シミュレーションに使っているMOSトランジスタのモデルがどの程度正確か,という話はあるのですが、まあとりあえず、ということで)
ただし汎用性をもたせるために、ML2は、スタセルの中では使わないようにします。
にまとめておいておきますので、ご参照ください。 一通りシミュレーションはしているつもりですが、もしバグがあったら、お知らせくださいakita11.icon(リンクはver2ルール(北九州&Phenitec共用)にあわせて、スタンダードセルのレイアウトを修正したもの)。