KirIn 落書き帳

素人がプログラミング, FPGA, LSIをお勉強しているメモ書きです。間違いがあればご指導していただけたら幸いです。

LEF(Libray Exchange Format)の見方 | ASIC用EDAツールフォーマット

LEF(Library Exchange Format)の見方

参考資料
ASIC用EDAツール登場|日本半導体博物館
Place_and_Route.pdf

LEFとはレイアウトCADのデファクトスタンダードであるライブラリ記述フォーマットのことです。 実際にどういうふうに見るのかアーキテクチャを設計するときに大まかな見方がわからないとどこからピンがでているか、そもそもマクロのサイズがわからないので 配置配線の時に困ってしまいます。 そこでLEFの見方について調べたのでメモを残しておきます。

f:id:KirIn:20150225025854p:plain

上図はインバータをイメージして書いています。 本来はLayoutに記述しているようにレイアウトされるのですが、ASIC設計者はどのようにレイアウトされているかよりも、どのくらいの大きさか、どの位置にピンが配置されているかが気になると思います(?)。そこでより抽象的(Abstract)な状態を記述したファイルがLEFということになります。具体的にはPINがどの位置にでているのかと、どのメタル層をどの範囲指定しているかを記述しています。

実際にLEFファイルは以下の様な記述がされています(イメージ:値は適当)。

MACRO INV
FOREIGN IV 0.000 0.000 ;
ORIGIN 0.000 0.000 ;
SIZE 51.080 BY 17.040 ; # これがこのMACROのサイズ
PIN VCC
  DIRECTION INOUT ;
 PORT
  LAYER ME2 ;
  RECT 95.60 16.9 91.0 17.1 ;
  LAYER ME1 ;
  RECT 99.0 13.9 91.00 16.1 ;
 END
 PORT
  LAYER ME2 ;
  RECT 95.60 16.9 91.0 17.1 ;
  LAYER ME1 ;
  RECT 99.0 13.9 91.00 16.1 ;

  .... 省略

END VCC
PIN GND
  DIRECTION INOUT ;
 PORT
  LAYER ME2 ;
  RECT 95.60 16.9 91.0 17.1 ;
  LAYER ME1 ;
  RECT 99.0 13.9 91.00 16.1 ;
 END

... A, Q についても同様の記述があるはずです

#OBSがどのようにメタルを使っているか記述する場所です。ここ重要
OBS
  LAYER ME1 ;
  RECT 1.90 6.7 2.6 7.9 ;
  LAYER ME2 ;
  RECT 1.90 6.7 2.6 7.9 ;
  LAYER VI1 ;
  RECT 1.90 6.7 2.6 7.9 ;
  LAYER VI2 ;
  RECT 1.90 6.7 2.6 7.9 ;

RECTとはrectangle(長方形)のことではじめの2つの数字が長方形の左下端の座標、残りの2数が右上端の座標を表しています。

よってOBSをみればどのようにそのマクロがマッピングされているかが分かります。

あっているかわからないので、間違っていたらどなかかご教授頂きたいです。