■レイアウトの基礎知識
現在のレイアウトは、スタセル(Standard Cell)
を大量に組みあわせて配置することで作られている。
●スタセル
レイアウトの最小構成要素。
Inverter/NAND/Buffer/…… のスタセルなんかがある。
合成によって verilog コードから XOR/AND ゲート等に変換されるので
(例えば加算ならば XOR/AND 等になる)、レイアウトではそのスタセルをチップ内に配置
し、各スタセルの出力から入力までをメタル(配線層)でつないでいくことになる。
スタセルの構造については教科書を読んで欲しい。
トランジスタが……wellが……diffusionが……
と理解出来てくると、検証時の error が何を言っているのか、どうしたら error
を消せるのかが分かることがある。
でも少しだけ説明する。
Astro と icfb 上での Inverter である。どっちも同じもの。
●row/rail
現在のスタセルを用いてのレイアウトでは、このスタセルを横一列に大量につなげる。
すると、スタセルの上下端にある VDD/VSS が横一列につながる。
VDD/VSS の列を rail を呼び、この rail にどこかからか電源を供給することで、横一列の
スタセルにも電源が供給される。。
同じ rail 上に並んだスタセルの列を row と呼ぶ。
この rail 等は基本的に最下層のメタルから構成される(fujitsu では MET1 層)。
●double back方式
この row を、通常は double back 方式で置いていく。
double back 方式では、正逆正逆…と row を並べていくことで、
上下の row で 1 つの rail を共有し、面積を抑えられる。
●そもそも配線層/メタルとは
スタセルの入力から出力の接続はメタルと呼ばれるものでつながれる。
この配線は非常に複雑になるため、二次元だけで配線しようとするとショートを
さけることが出来ない。
そこで、複数の配線できる層を用意し(メタル 1/2/3……層)、配線が交差する
場合は 1 つ上/下に配線をずらしでショートをさける。
はレイアウト結果の例で、異なる色の線は、異なるメタル配線層での配線である。
違う配線層に移る交点には via が置かれる(メタル 2 層と 3 層をつなぐ via 等)。
●strap
スタセルへと電源を供給するのは、横方向の細い rail であった。
より太い電源供給方法として、strap がある。
strap は縦横どちらの方向にも張れる(Geyser/SMA では通常縦方向のみ)。
また、存在しなくても大丈夫ではあるが、安定した電源系を作りたいならば
必ず入れよう。
上図でも、水色の一番太い配線は strap である(電源なので、太い配線を用いる)。
上図は strap と rail による電源供給のイメージ図で、
縦方向の赤線が strap で、strap と rail は交点で via によって接続される。
●ring
ring は、太い四角いメタル。
ring は外側では rail や strap から電源を供給され、内部の矩形領域への
電源供給元になる。
内部には、rail や strap によって電源を供給する。
ring は必須の要素ではないが、
- 電源供給が安定させたい(太い配線なため)
- 内部と外部で rail や strap の間隔、位置などがずれる場合
- 内部に rail や strap を侵入させたくない場合
などの目的で利用する。
●rail/strap への電源供給
マクロであれば、rail や strap はマクロ端まで伸びて、そこが電源ポートになり、
外部から電源供給を受ける。
チップであれば、rail や strap はチップ内部を囲む巨大な ring まで伸びる。
その ring は IO パッドから電源供給を受ける。
●TAP Cell
TAP Cell についても教科書を読まないと分からないので、理解したかったら
教科書読め、な。
一行で説明: row 毎に、一定間隔で入れなきゃいけない cell
/home/vdec/lib/fujitsu65/Feedback/CS202_Design_Information.pdf
辺りを見ると幸せになります。
DRC で error 出るところを見ると、左右のどちらかに 30um 以内に TAP cell がないと
だめなようです。