|
真抱歉, 補充的東西打太久, 超過30分鐘, 系統不讓我編輯了, 1 {) ^! h# r9 d; Z( ?6 Z
所以我再寫在另外一個回復裡, 請見諒!!!
# z2 @. A G: ]0 ~8 h$ ]
: g/ O/ Y6 x0 w" s; U4. 忘記補充一點...我個人覺得, 電路圖的呈現是很重要的,7 g4 d6 [1 i6 F
即使你的電路很簡單, 用手敲hspice file比畫圖來得快很多, 我想也都還是應該畫成電路圖會比較好.
7 m [( t; {6 B. r0 s& L* E這裡說的電路圖是像virtuoso schematic composer 畫出來的那種, 可以用來加上自己所需要的分析去跑模擬的電路圖.
- @/ X% t) l* w. U8 L6 N這份電路圖的功能, 我覺得第一, 是要維持designers與layout engineers目前手頭上有的電路圖之consistency.
1 x0 {9 H+ J! R! i' x. b" }! j( O當然我也數次遇過designers改了電路, 卻忘記update一份新的電路圖給layout engineers, 以致到做LVS的時候才發現有所差異,
5 q/ L# G! Z2 M# L: x# E* f: Y: ]可是那時才發現有可能已經太晚, 已經做好了的layout經常是很compact的, 要去做compact layout的更改通常並不容易,
; t9 _+ @8 w" E* ?" A; W" o5 j, v* Q不過這是另外的issue了.0 C& Y1 u( H s2 R
我想說的是, designers做好的電路圖, 可以給自己用來跑模擬, 也必須把它release出來給layout engineers,0 l9 p: y+ X& Y( k- E
當designers有修改電路時, 要立刻update給layout engineers, 押日期做檔案版本確認...etc.5 \+ F T: W" a3 X, y, g
以上是一般公司大略的流程.
. U" R! @; P n6 L4 \% J而這公司的流程, 我強烈的覺得在學校裡也必須如此實行.9 p' [- ]1 j8 p4 X$ k; r5 H z8 N
我自己幾年前在業界服務過, 擔任layout engineer的職務,
& r2 j- \% z% I* t5 o1 O: }0 y所以我在到學校實驗室之後, 在還未能開始電路設計, 僅在學習階段時, z+ H! T8 D0 f: r( q
實驗室的full custom 晶片佈局都是由我一手包辦.$ j& _+ e L8 n2 N( z
在我幫忙電路佈局時, 其實他們設計的電路都是用記事本一個一個subckt手敲的, 然後再加上要分析的指令.8 Z+ z0 s" Q# @0 L m; Q, m6 d# n1 H
可是今天要做佈局的人是我, 我的腦子裡可沒有他們的電路圖, 所以他們必須用手畫, 或用visio...等等什麼畫圖工具都好, 畫一份電路圖出來給我.' f! w0 x1 h5 ?8 S9 n2 p$ y
在這樣的procedure中, 只要一不小心, "inconsistency"就發生了, 相對的, 也會造成後續很多的麻煩, 在debug時浪費很多時間.
5 N2 O& k7 s+ v3 |* g) |手敲電路對於小電路來說絕對有其便利性存在, 因為我想改哪一顆的W或L, 或哪個bias voltage, 我就直接改就好啦,
1 h$ {! r* l. X0 O+ `( f* Geven是一些logic gates, 像INV, NAND, NOR...etc, 的確我必須承認, 畫圖不見得會比較快.# z a7 _ V+ z' C( P3 M: f
要改什麼設計參數的話, 也不用再到電路圖上改, 因為那樣子的話還要再轉一次netlist出來, 好像顯得挺麻煩的.
" M7 F8 Q5 t. C5 z7 U4 \9 l1 P但是, 往往就因為貪圖該"so-called""便利性", 使得layout後做LVS驗證之時, 這個"inconsistency"出現了,: p( N. R- k' A( X$ {8 e, n* V
我們通常從layout裡去找到底哪裡接錯, 哪裡open, 哪裡short...etc,
: j# K+ H; ~' h3 P找到最後, 才發現是design的人給的手畫電路圖畫錯, 或是他手敲hspice file的時候敲錯...然後再改netlist或圖, 當然也有可能動到layout...etc.
9 `9 m4 y1 [4 r& N: ?+ w2 D這樣繞一大圈的程序好幾次花掉我很多時間, 所以這個"consistency", 是我想要特別強調的地方.% K6 R9 f, p% a6 B q" E
2 ?1 K" j: D& I8 V
5. 然後是電路hierarchy架構的建立, 這個我想也是很重要的一點,: H; H9 A0 M7 j5 M% X
不過這個hierarchy的概念有一點點難解釋, 總之大概就是說呢,
# y' G& c. S4 S$ E- X我們無論是在做電路或是layout的時候, 都必須要有很強烈的hierarchy架構建築在我們的腦海中.
, Q# A R0 F* f% e. Q$ c6 R% H今天一個layout的sub-block完成後, 其實應該都要能夠找到一個相對應的subckt來做LVS的比對,1 r; ?& y! l; M' Z+ `' @
由bottom到top cell都必須遵循這個原則來達成, 這樣會比較好.
l3 O. k, N q' j% [* y0 u6 s一方面對自己來說, 至少bottom cell已經做過LVS驗證, 到了上層的電路時若發現LVS驗證不過, 至少能夠確定大概是發生在這一層的問題,/ I6 A1 {/ M# q
而不會是沒有方向的, 盲目去找究竟LVS的錯誤到底是在哪裡產生的.; S( r2 [8 w: N7 s: f
而Layout要能做到hierarchical的LVS驗證, 則netlist也必須corresponding的subckt才能做比對,
( h; Q! u; y$ P _0 v. y* M因此這個hierarchy架構不只是在layout時重要, 在hspice file/netlist中的重要性也絕不遜於layout本身." D, u6 W/ g2 L+ ~( F @ h9 H! F
其次, 若是在公司裡面的話, 有時候...或許還蠻常的啦, 會遇到要拿以前人家做好的layout來改版的情況發生.
8 ?; T" d( Q; d+ ]: q! P& G6 g要是當初人家的hierarchy架構沒有做好, 整個晶片都是flat的, 或是hierarchy架構做得不對,
* v. ]/ W( T% ^$ J那麼你能想像, 當自己要接手做修改的困難度有多高嗎??$ T# _9 U" G# C- N# Q% [
或許hierarchy架構的觀念這樣講起來有點抽象, 不過它真的很重要, 希望有需要的人可以稍微體會看看.! O, c8 Q* b; @
: m. X% j! S b# P/ d' q
以上是個人一些小小的觀點, 或許有些東西過於冗長, 請路過先進不吝給予指教, 感激不盡!! |
評分
-
查看全部評分
|