OpenRule1um StdCells
- OpenRule1umで使えるスタンダードセル(基本論理ゲート)です。
- 外部接点となる電源・入出力端子は0.5umグリッドに載っています。
-
an21 : 2入力AND
-
an31 : 3入力AND
-
an41 : 4入力AND
-
buf1 : バッファ(駆動力1)
-
buf2 : バッファ(駆動力1x2)
-
buf4 : バッファ(駆動力1x4)
-
buf8 : バッファ(駆動力1x8)
-
cinv : クロックト・インバータ
-
dff1 : Dフリップフロップ(立ち下がりトリガ)
-
dff1m2 : Dフリップフロップ(ML2使用)(立ち下がりトリガ)
-
dff1_r : Dフリップフロップ(立ち上がりトリガ)
-
dff1m2_r : Dフリップフロップ(ML2使用)(立ち上がりトリガ)
-
exnr : Ex.NOR
-
exor : Ex.OR
-
inv1 : インバータ(駆動力1)
-
inv2 : インバータ駆動力1x2
-
inv4 : インバータ駆動力1x4
-
inv8 : インバータ駆動力1x8
-
na21 : 2入力NAND
-
na212 : 2入力NAND+入力の内1つが2入力OR
-
na222 : 2入力nand+入力2つ共2入力OR
-
na31 : 3入力NAND
-
na41 : 4入力NAND
-
nr21 : 2入力NOR
-
nr212 : 2入力NOR+入力の内1つが2入力AND
-
nr222 : 2入力NOR+入力2つ共2入力AND
-
nr31 : 3入力NOR
-
or21 : 2入力OR
-
or31 : 3入力OR
-
rff1 : リセット付きDフリップフロップ(立ち下がりトリガ)
-
rff1m2 : リセット付きDフリップフロップ(ML2使用)(立ち下がりトリガ)
-
rff1_r : リセット付きDフリップフロップ(立ち上がりトリガ)
-
rff1m2_r : リセット付きDフリップフロップ(ML2使用)(立ち上がりトリガ)
-
sff1 : セット付きDフリップフロップ(立ち下がりトリガ)
-
sff1m2 : セット付きDフリップフロップ(ML2使用)(立ち下がりトリガ)
-
sff1_r : セット付きDフリップフロップ(立ち上がりトリガ)
-
sff1m2_r : セット付きDフリップフロップ(ML2使用)(立ち上がりトリガ)
-
dcont : diff<->ML1 接続
-
pcont : POL<->ML1 接続
-
nsubcont : NWL基板 バルク(バックバイアス)
-
psubcont : Psub基板 バルク(バックバイアス)
-
Via : ML1<->ML2 接続
-
使用上の注意など
- セルは 外形(長方形)をFRAME Layerで表示しています。FRAMEがきれいに並んで隙間のないように、重ならないように並べて下さい。きれいに並べると、特別なことをしない限り、近接セル間では DRCエラーにはなりません。またVDD, VSSは並べるだけで セル間が接続されます。念のためVDD, VSSのML1配線の外形もFRAME Layer で表しています。
- セルは 0.5umグリッド格子点にセル(FRAME図形)の左下角を合わせておいて下さい。角を合わせると横幅方向・高さ方向ともに 0.5umグリッド格子の整数倍になります。
- セルを並べる際に 隙間を意図的に空けたい場合には セルFRAMEとセルFRAMEの間隔を1um上離して下さい。
- セルへの接続はVDD, VSSはML1で行います。入力・出力は 端子名の記載されているML2のところに、ML2配線で接続してください。
- VDD, VSSの上下方向の配線利用間隔は、セルのレイアウトにおいてはVDD, VSS共に FRAMEの上下2グリッド離れたグリッドにML1もしくはML2の線幅1umのメタルで配線し、Viaを配置することで エラーが出ないようにしています。
※Gladeでは、DRCルールの不完全性(Gladeのバグ?)により、いくつかのセルでDRCエラーがでますが、無視してよいものです(エラーメッセージに"(can be ignored)"と記載してあるエラー)またセル"nr222"のみ、以前のもの("non-0.5grid"ブランチ)から、端子位置が2箇所変更になっています。(A0, B0の位置を下に0.5um移動)
EEschemaで、シンボルライブラリに"OR1_SC.kicad.sym"を追加すると、OpenRule1umスタセル用の論理ゲートを使えるようになります。これを使って回路図を描き(階層シートも利用可能)、出力したネットリストに対して、KLayoutのLVSを実行することができます(EEschemaで出力したネットリストの2行目に".inc OR1SC.cir"を追加し、get_referenceスクリプトでこのネットリストを指定後,LVSを実行)。フォルダtest内に例があります、。
※論理的に等価複数の入力(例えば2入力NANDゲートの2つの入力)はLVS時には等価ではなく非対称に扱われますので、回路図シンボルの各入力(上から順にA, B, C...の順)とレイアウト中に記載にピン名との対応が正しくなるように回路図を作成してください。(これが一致していないとLVS時にエラーが出ますが、エラーメッセージからはこれが原因とはわかりにくいです)
Junichi Akita (@akita11, akita@ifdl.jp) Akihiro Yamada (A.LSI Design Co., Ltd.)