- 追加された行はこの色です。
- 削除された行はこの色です。
#pcomment
(2015/1/20:akita)
論理回路を、ささっとつくるのに、インバータとかNANDゲートとかフリップフロップが部品としてあると、楽ちんですよね。
ついでに、大きさがそろっていて、並べてぴたっとつながると、なお楽ちんです。
というわけで、こういう部品としての論理ゲート(スタンダードセル:スタセル)をつくってみました。
まず、特性を調整しておきます。
pMOSとnMOSのサイズで、インバータの特性が決まります。
WGexの使い方、のところでつくったインバータの入出力特性(DC特性)をシミュレーションしてみると、こんな感じです。
#ref(./inv_dc1.png,20%)
出力が0Vにさがるのが、中央よりちょっと左側にきています。つまりpMOSがちょっと弱い、ということです。
というわけで、pMOSのサイズ(ゲート幅)を変えながらシミュレーションをして、ここがほぼ中央に来るようにしてみます。
#ref(./inv_dc2.png,20%)
これでだいたい中央に来ました。というわけでこのnMOS/pMOSのサイズで、スタンダードセルをつくってみました。
(シミュレーションに使っているMOSトランジスタのモデルがどの程度正確か,という話はあるのですが、まあとりあえず、ということで)
ただし汎用性をもたせるために、ML2は、スタセルの中では使わないようにします。
こちらにまとめておいておきますので、ご参照ください。
一通りシミュレーションはしているつもりですが、もしバグがあったら、お知らせください。
https://github.com/akita11/mklsi/tree/master/StdCell