很多人都說PostMask ECO難,那么到底難在哪里?我從多個項目的ECO經歷中總結了以下幾點:
一、只能改金屬層,甚至少數幾層金屬
是的,PostMask ECO一般是芯片流片回來測試才發現bug,這時為了縮短制造時間(重新NTO的turn around時間)和降低制造成本(特別是掩膜版的制作成本),會要求盡量少改,所以做postmask限制只能改金屬層,甚至只能改少數幾層金屬。
以5層金屬的設計為例,從poly開始依次是contact、metal1(Bottom Metal層)、via1、metal2、via2、metal3、via3、metal4、via4、metal5(Top Metal層),一共11層,如果全改制造成本非常高。
如果只改metal1、via1、metal2三層,會大大降低成本,同時也可以縮短mask制造時間。
二、不能新加stdcell,加大eco難度
那怎么做到只改金屬層呢?我們知道在修改bug時,RTL層面一定會修改邏輯、或增加邏輯、或刪除邏輯。
為了在postmask eco時能夠實現這些改動,我們需要在APR階段預先插入一定比例的spare cell(也叫dummy cell)。因為我們無法預測bug會發生在哪個模塊,所以會平均撒spare cell。
當然如果對某個設計模塊信心不足,就可以在這個模塊附近多撒一些。
因為我們也無法得知修改和新增的邏輯的復雜程度,所以會挑選一些“萬能”spare cell,比如inv、and2、nand2、or2、nor2、xor2、nxor2、mux、dff,按一定的比例組成spare module。
因為是平均撒,所以在bug發生的位置附近不一定正好有需要的cell。
這時就要么使用距離稍遠的cell,要么使用附近其它cell進行組合和變換。例如,如果附近沒有and2,就看有沒有nand2+inv,或者inv+or2,這種變換就需要靠經驗積累了。
三、Timing會變差
一方面,因為postmask eco的sparecell不會正好附近有,總會或多或少的隔著一定距離,這會引起較長的連線,這些長連線上的延時會比較大。
另一方面,spare cell的驅動能力相對固定,沒法靈活選擇,所以當附近只有驅動能力較小的spare cell時,也會帶來較大的延時。
如果原設計的timing,特別是setup,沒有留margin,那么這些spare cell的較大的延時只能讓setup timing爆掉。
修復一些bug必須要新增dff,新增的dff會映射到spare cell dff上,由于spare cell dff的位置不一定最優,這時dff的時鐘和復位信號接入時鐘樹之后很難達到平衡,這會引起大量的hold timing違例。
因為時鐘樹上的buffer的延遲是ps級的,想用spare cell buffer/inverter來調整時鐘樹,難度也是非常大。
四、Transition、Cap違例修不干凈
小驅動、長連線等問題必然帶來transition和cap修不干凈。對于消費電子芯片,實際應用不會工作在極端corner,所以不一定會出問題。但如果是特殊領域,比如汽車電子、軍工,就留下了性能的隱患。
五、當資源不足時,只能放棄部分修復
當spare cell不足或者timing/DRC搞不定時,我們一般會嘗試簡化eco方案;或者刪除設計中不重要的功能來釋放一些資源。如果還不行,就需要對bug list排排優先級了,放棄修復部分影響不大的小bug了。
當然,如果某些關鍵的bug不能實現eco,就需要考慮全改版了。或者放棄這個項目。
六、postmask eco需要前后端一起努力
在進行各種討價還價和折中的時候,需要前后端工程師一起討論,共同確定最優的eco方案。如果涉及到某些bug無法實現eco,就需要項目經理、市場人員一起研究。所以postmask eco并不是某一設計階段的問題,而是產品級別的問題。
審核編輯:劉清
-
RTL
+關注
關注
1文章
388瀏覽量
60718 -
ECO
+關注
關注
0文章
52瀏覽量
15125 -
電子芯片
+關注
關注
3文章
61瀏覽量
15224
原文標題:都說PostMask ECO難,到底難在哪里
文章出處:【微信號:ExASIC,微信公眾號:ExASIC】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
請問移植rtthread nano版時官網里面系統時鐘函數在哪里實現的?
人工智能的下一站在哪里
SN74ALVC164245與SNALVC164245-EP區別在哪里呢?
一文解說:芯片設計到底難在哪里?

評論