LEF和DEF是APR工程師工作中經常會碰到的兩類文件,也會對APR的基礎配置和APR的flow產生直接的影響。基本相當于APR物理設計的基礎建設。
LEF/DEF釋義和使用場景
APR工程師碰到的LEF和DEF文件,具體對應的全程和應用場景如下pic_center
文件名 | 全稱 | 場景 |
---|---|---|
DEF | Design Exchange FIle | STA-PECO, APR數據交付以及重構,繞線/布局信息傳遞等和設計相事宜 |
LEF | Library Exchange FIle | 物理庫文件,工藝技術文件,APR層次化設計交付(配合ETM使用) |
由上可見,里那個文件首字母不同也表征了他們之間的異同:LEF更偏重于庫,DEF則側重于設計。
APR工程師,經常會用到各種庫或者庫的各種版本進行交互,今天這里就對LEF里邊的一兩個和APR有關的點滴做一些討論和解惑。
tech-LEF 通常是FAB交付,這方面通常都是很嚴謹的,不會有太多意外發生。但是對于IP的交付,不同vendor的策略有時候不太一樣,而且IP的LEF對floorplan,placement和routing通常會有直接的影響,在出現問題的時候,需要APR工程師進行定位。所以,如果能掌握LEF中的幾個關鍵信息,甚至在導入flow工具之前,可能就會有一些發現;或者flow出現了一些異常,那么從閱讀LEF入手,可能也會得到比較快速的解決辦法?;谏希蠹乙黄饋砜纯春虯PR相關的LEF信息。閑言少敘,ICer Go!
tech-LEF的淺析
通常一個標準的LEF文件具備以下的格式
這個格式是兼顧了tech-LEF和IP LEF兩種應用場景的。IP LEF的定義則是從字段MACRO開始,對于tech-LEF的主要字段,這里用一個簡單列表進行快速羅列
字段 | 釋義 | 示例 |
---|---|---|
VERSION | LEF 的版本 | 5.7 |
BUSBITCHARS | 總線分割符 | [] |
NAMESCASESENSITIVE | 大小寫敏感 | ON |
UNITS | 定義設計中各種單位的DBU(database unit)和Standard International轉換關系 | DATABASE MICRONS 1000 |
USEMINSPACING | 定義minspacing的應用場景 | USEMINSPACING OBS OFF |
MANUFACTURINGGRID | 工藝生產格點,cell和routing需要保證的最小grid | MANUFACTURINGGRID 0.001 |
SITE | 對于std-ecll row的高度和寬度步進的約束 | |
LAYER |
APR用到的各個層的定義,包括但不限于: 類型(TYPE) 間距(SPCING) 寬度(WIDTH) 面積(AREA) 中心距(pitch)等。 主要是用于約束router繞線規則和checker對繞線質量評估 |
對于C家的工具,同學們直接用tech-LEF就好了;如果是S家工具(ICC和ICC2),都需要用到FAB格外提供的technology file (TF)文件,這個文件基本可以等同于tech-LEF,只是流程不同而已。
tech-LEF更像是一個基于FAB-node的物理強需求,這些規則都會對APR工具對各種資源加以權衡和評測,包括但不限于:
APR資源 | 相關LEF設定 |
---|---|
std-cell row | SITE |
track per-layer (包括對NDR影響) |
LAYER PITCH |
layer schame | LAYER |
layer prefer routing direction | LAYER DIRECTION |
grid檢查 | MANUFACTURINGGRID |
APR工具會對tech-LEF進行解析,從而創建對應的物理設計約束。可以看到,在單位芯片面積下,tech-LEF的上述配置會決斷芯片最終的可用資源數量,工藝尺寸(SITE/PITCH/MANUFACTURINGGRIDetc.)越小的tech-LEF文件在各個定義點的數值也就會小,對應的片上資源就會越多。
IP LEF的淺析
對于IP的LEF文件,通常的會有遵循下述模板
為了兼容LEF5.8,在這個標準模板的后半段,會看到PROPERTY LEF58的字段,通常只有復雜工藝的復雜設計會用到,通常的IP交付,用非LEF5.8字段是足夠的。
類似的,APR工具會對IP的LEF進行解析,從而帶入IP 對布局,繞線等資源的影響,并在此影響下,完成對IP的集成和最終的GDS 合并(merge)。
CLASS
通常是多這個MACRO進行基本分類,這里羅列出他們的釋義以及對應S家,C家的工具標記
關鍵字 | S家標記 | C家標記 |
---|---|---|
BLOCK | mask_layout_type==macro | cell.subClass ==block |
RING | mask_layout_type==macro | cell.subClass ==blockRing |
CORE | mask_layout_type==std | cell.subClass == core |
PAD | mask_layout_type==io_pad | cell.subClass == pad |
PAD SPACER | mask_layout_type==io_pad | cell.subClass == padSpacer |
由于C家的flow是直接利用LEF,通常通過cell.subClass既可以直接得到LEF相關的信息,S家的是通過MW/NDM來基于LEF文件來創建的FRAME view提供給ICC/ICC2工具使用,這里會有一些語法正常的轉移,以ICC2為例,下表羅列了LEF到NDM FRAME 之間信息映射關系
FOREIGN
這個是一個標記LEF和GDS之間的偏移量,如果IP的GDS設計的origin 沒有落在坐標原點,那么這里可能就會有一個非零數值,GDS起點是在第一象限則FOREIGN為負值,如果是在第三象限,則為正值,具體見下圖示例
ORIGIN
這個是指IP在放置的時候,相對于當前origin的偏移量,
假設有下列的IP 配置:
MACRO B1 ...... ORIGIN X1 Y1 FOREIGN B1 X2 Y2
在APR的放置的坐標是:X3 Y3
那么最后B1的GDS polygon抽取的起點是 (X1+X2+X3 Y1+Y2+Y3)
對于通常的IP而言:X1=Y1=X2=Y2=0 。
對于有個GDS相對位移的IP而言:X1 + X2 =0 , Y1+Y2=0
從個人角度理解,這樣做的好處是可以縫合GDS偏移和頂層集成的誤差,讓最后的GDS-out 保持穩定輸出。(如有理解偏頗,還望指正)
SIZE
這個字段是描述IP的寬度和高度的,語法格式是:SIZE WIDTH BY HEIGHT. 對于一個矩形的IP而言這個字段可以很方便的通過寬度和高度表達出這個IP的面積:SIZE=WIDTH*HEIGHT
細心的同學可以看到,這里對BLOCK的描述只能是一個簡單的矩形,這是LEF規則的一個限制。對于一個多邊形的MACRO需要有LAYER的支持。這個后面會講到。
SYMMETRY
定義IP的朝向(orientation)的限制因素。IP設計者需要關注自己IP在被頂層集成的時候可能會遇到反轉、鏡像等操作,通過這個句柄可以限制APR工具對IP進行有控制的反轉,這樣可以有效地避免IP朝向錯誤所導致的base DRC錯誤。這個對于IP用戶是非常重要的??膳渲玫倪x項如下:
朝向 | 解釋 |
---|---|
如果不定義SYMMETRY,僅允許朝向N | |
X | 允許水平反轉 |
Y | 允許垂直反轉 |
R90 | 允許90度反轉,由于poly 的限制,這種只會在比較大的工藝節點構造里被允許可以 (memory可能會被排除) |
對于常見的std-cell,通常都是可以水平和垂直反轉的,那么對應的SYMMETRY的寫法是:SYMMETRY X Y
SITE
對于比較規則的IP,SITE會比較有用,譬如std-cell和IO的site,這樣APR工具在創建core或者IO-ring的時候,就可以基于site對std-cell和IO進行自動布局,這也是APR placer工具做布局,合規化(legalized)基礎,對于普通IP這里也可以不做定義。但是對于先進工藝,
由于coloring/grid的問題,所以在IP上面(尤其是較有規律的SRAM)這個site的應用場景會變得更加豐富了。
PIN
這里是IP描述的主要部件,給用戶提供訪問IP的pin的物理位置信息,所有的坐標都是相對于當前IP的左下角(N 朝向)而言的。
這里分別給出信號pin和電源pin兩個示例。
對于信號pin,上述示例的信號pin是一個std-cell,為了M1的pin形狀需要用三個矩形來描述(rectangle),對應的VDD需要有多達六個矩形來描述
對于IP,通常的pin是abut到boundary的,而且是單rectangle的。示例如下
這個是用戶使用IP LEF較常用的一種格式。這里有幾個地方需要注意
IP的pin需要和IP的boundary貼合,方便外界訪問,如果做不到貼合。那么OBS的創建需要注意,至少保證pin可以通過drop via進行訪問
IP的pin的width需要滿足當前層的min-width需求,長度建議1um,方便繞線和GUI觀察
pin和pin之間需要至少控制一個track,這樣可以滿足潛在的HV spacing 需求
從上述例子可以看出,LEF也是支持antenna的信息的,這樣可以支持APR工具在只有LEF的時候也可以對antenna進行評估和修復。
OBS
OBS是Obstruction的縮寫,故名思意是對IP的遮擋,對于IP的應用,通常會牽扯到兩類遮擋,這個和APR的常規的處理非常相似,
放置遮擋(placement OBS):對APR工具的放置進行阻止
繞線遮擋(routing OBS):對APR工具的繞線進行阻止
由于IP都要自己的SIZE(boundary),如果用戶不在這里OBS的句柄里邊額外定義,那么IP的SIZE描述的區域都是不能放置其他器件的。
在前文有說道,SIZE只支持矩形,但是如果有了OBS配合就可以支持多邊形了。
這里使用OBS調用OVERLAP 類型的LAYER對IP的SIZE進行切割,這樣就形成了一個多邊形了。這里的OVERLAP是一個特殊層,需要在tech-LEF里邊進行預先定義,具體實例如下
這樣在APR工具里邊就可以看到一個多邊形IP了。
對于繞線遮擋,OBS通過調用routing /cut LAYER 來進行定義。通常如果IP的頂層是M4,那么IP的出pin 也會在M4 和 M3(M4-1)層。這樣的規則和APR的partition策略比較相像。
但是通常,出pin的位置都是需要外界繞線直接訪問的,所以出pin的位置是不能就想遮擋的,如果IP的頂層是M4,那么最多有一些M4的資源可以始放出來,M4一下的M3/2/1都應該進行遮擋,否則APR工具會在上邊走線,這也是OBS存在的重要價值所在。
廢話不說,有圖有真相
從上圖可見,這里的IP有一個M1貼合boundary的pin,同時這個IP被M1的OBS覆蓋了,但是在LEF規則里,pin bbox擁有覆寫OBS的特性,所以在M1 品德周遭,會產生一個OBS空白區,具體跟進pin widh和對應的spacing來調整,這個通過S家的MW,可以很明顯的看到
結合上邊的理論,一個比較簡單的IP的OBS的寫法如下
無論是tech-LEF還是IP LEF,都是遵循LEF語法的,可以合并到一起,但是通常由于vendor不同,IP的LEF只關注MACRO 以內的信息,剩下的基本都交由tech-LEF完成,如果用戶需要全局的定義更改,請移步tech-LEF進行優化。如果是VIAGEN rule或者NDR rule的更新,也可以項目/工藝的角度進行追加,這種配置更偏向于tech-LEF。
LEF里的關鍵字有很多。LEF通常也是使用abstract工具從GDS里邊抽取出來的,由于APR工具對LEF的強依賴,對于APR工程師,需要可以看到常規的語法就可以,在出現問題的時候可以找到對應的原因和解法,最終還是為了更為高效的推進APR工作。
【敲黑板劃重點】
能夠閱讀LEF是一個APR工程師錦上添花的一個技能,對于快速定位工藝,交付問題可以起到事半功倍的效果。
審核編輯:湯梓紅
-
芯片
+關注
關注
453文章
50406瀏覽量
421841 -
芯片設計
+關注
關注
15文章
1001瀏覽量
54812 -
IP
+關注
關注
5文章
1655瀏覽量
149333 -
文件
+關注
關注
1文章
561瀏覽量
24699
原文標題:芯片設計中的LEF文件淺析
文章出處:【微信號:處芯積律,微信公眾號:處芯積律】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論