|
真抱歉, 補充的東西打太久, 超過30分鐘, 系統不讓我編輯了, ' l6 _/ q( f1 d" P8 F6 E, y
所以我再寫在另外一個回復裡, 請見諒!!!& m4 p: B; x) Y1 f1 X5 ?
2 z/ o( C6 _( o4 I4. 忘記補充一點...我個人覺得, 電路圖的呈現是很重要的,. V$ V' o" t1 `0 j4 l
即使你的電路很簡單, 用手敲hspice file比畫圖來得快很多, 我想也都還是應該畫成電路圖會比較好.
+ V6 N) B' m. o5 F$ o% u這裡說的電路圖是像virtuoso schematic composer 畫出來的那種, 可以用來加上自己所需要的分析去跑模擬的電路圖.
% S0 E+ K' x% l- s這份電路圖的功能, 我覺得第一, 是要維持designers與layout engineers目前手頭上有的電路圖之consistency.
$ \+ k z, s0 g* F7 s" I當然我也數次遇過designers改了電路, 卻忘記update一份新的電路圖給layout engineers, 以致到做LVS的時候才發現有所差異,& j* o8 O5 F' _
可是那時才發現有可能已經太晚, 已經做好了的layout經常是很compact的, 要去做compact layout的更改通常並不容易,
/ P# b% ^* m% `5 W& y! b, k不過這是另外的issue了.
* W* U& @: Z, L0 s我想說的是, designers做好的電路圖, 可以給自己用來跑模擬, 也必須把它release出來給layout engineers,
; ]# X; E) f# c. e9 e當designers有修改電路時, 要立刻update給layout engineers, 押日期做檔案版本確認...etc.) [' P: q, c. s, j" m4 i- w
以上是一般公司大略的流程.( G9 O9 I& ]( a6 M6 u
而這公司的流程, 我強烈的覺得在學校裡也必須如此實行.
4 Q6 x) A& q9 C4 Z Q. E我自己幾年前在業界服務過, 擔任layout engineer的職務,
: w1 @ w+ \0 o V' A$ E+ d7 ~所以我在到學校實驗室之後, 在還未能開始電路設計, 僅在學習階段時,
8 c+ i" e6 F/ B7 w- f4 N% ]- y實驗室的full custom 晶片佈局都是由我一手包辦." P, O, r0 V2 w! {5 E
在我幫忙電路佈局時, 其實他們設計的電路都是用記事本一個一個subckt手敲的, 然後再加上要分析的指令.8 w2 L( p( S8 B6 `. {- w5 r2 g
可是今天要做佈局的人是我, 我的腦子裡可沒有他們的電路圖, 所以他們必須用手畫, 或用visio...等等什麼畫圖工具都好, 畫一份電路圖出來給我.! u! R+ ~0 r2 U N$ S# u
在這樣的procedure中, 只要一不小心, "inconsistency"就發生了, 相對的, 也會造成後續很多的麻煩, 在debug時浪費很多時間.
- d# J7 \2 k( }# k4 G6 W手敲電路對於小電路來說絕對有其便利性存在, 因為我想改哪一顆的W或L, 或哪個bias voltage, 我就直接改就好啦,6 t% S- I# b9 f! N
even是一些logic gates, 像INV, NAND, NOR...etc, 的確我必須承認, 畫圖不見得會比較快.
* S v1 g$ Y3 X! s5 S' p- f( u要改什麼設計參數的話, 也不用再到電路圖上改, 因為那樣子的話還要再轉一次netlist出來, 好像顯得挺麻煩的./ s* I0 S/ n/ R9 Z0 e: k3 [
但是, 往往就因為貪圖該"so-called""便利性", 使得layout後做LVS驗證之時, 這個"inconsistency"出現了,
4 I) c9 Q8 C" H0 Y我們通常從layout裡去找到底哪裡接錯, 哪裡open, 哪裡short...etc, - y2 b- G& z3 D' u" F
找到最後, 才發現是design的人給的手畫電路圖畫錯, 或是他手敲hspice file的時候敲錯...然後再改netlist或圖, 當然也有可能動到layout...etc.
0 c; t% ?- t1 R' F: k( C) p5 c這樣繞一大圈的程序好幾次花掉我很多時間, 所以這個"consistency", 是我想要特別強調的地方.
0 E. N7 q7 Z) S! ^1 a( N* D! r; L, D& H' d) P6 Y" v; S
5. 然後是電路hierarchy架構的建立, 這個我想也是很重要的一點,
! w5 \+ z9 j3 j% J3 ^7 }5 n不過這個hierarchy的概念有一點點難解釋, 總之大概就是說呢,
3 A# e' F, r& b' c4 A8 w% t我們無論是在做電路或是layout的時候, 都必須要有很強烈的hierarchy架構建築在我們的腦海中.
) W' B" e1 b; D( ]" P; U3 V% ~今天一個layout的sub-block完成後, 其實應該都要能夠找到一個相對應的subckt來做LVS的比對,
) Y8 ]8 W3 K3 E) `5 Z1 f) W0 n) d由bottom到top cell都必須遵循這個原則來達成, 這樣會比較好.
4 z$ x ^/ ]1 b一方面對自己來說, 至少bottom cell已經做過LVS驗證, 到了上層的電路時若發現LVS驗證不過, 至少能夠確定大概是發生在這一層的問題,
6 M3 P' v% v3 l* p. R) a而不會是沒有方向的, 盲目去找究竟LVS的錯誤到底是在哪裡產生的.5 Z$ A! O2 ]& S+ x, p# A* F+ \
而Layout要能做到hierarchical的LVS驗證, 則netlist也必須corresponding的subckt才能做比對,( h7 ^# n" H# e. @! i1 [+ q
因此這個hierarchy架構不只是在layout時重要, 在hspice file/netlist中的重要性也絕不遜於layout本身.' D! U8 M( D) P
其次, 若是在公司裡面的話, 有時候...或許還蠻常的啦, 會遇到要拿以前人家做好的layout來改版的情況發生.5 ^. W* V7 n( y4 d: k& Q
要是當初人家的hierarchy架構沒有做好, 整個晶片都是flat的, 或是hierarchy架構做得不對,
$ L) z2 o( s* @2 d$ j% {0 `: t7 R$ K那麼你能想像, 當自己要接手做修改的困難度有多高嗎??- z$ |" x. n& R& U/ Z2 F- k8 z8 [
或許hierarchy架構的觀念這樣講起來有點抽象, 不過它真的很重要, 希望有需要的人可以稍微體會看看.
5 `9 z2 Q- H4 e; |: s! C
# D1 r/ r, R% o' p& t! L' l以上是個人一些小小的觀點, 或許有些東西過於冗長, 請路過先進不吝給予指教, 感激不盡!! |
評分
-
查看全部評分
|