色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

數字IC設計中的ECO是什么?

ruikundianzi ? 來源:IP與SoC設計 ? 作者:IP與SoC設計 ? 2022-12-21 14:10 ? 次閱讀

如標題所寫,我們今天聊一聊IC設計種的ECO。在展開關于ECO的概念之前,我們先大致捋下數字IC設計的流程,有助于我們后面的討論。

數字IC設計流程簡述

1、確定項目需求

根據市場或者芯片功能要求,設計芯片的spec,得到可行的芯片設計方案。

2、系統級設計

用系統建模語言對各模塊進行描述

3、前端設計

RTL設計、功能仿真硬件原型驗證、電路綜合、DFT、STA

4、后端設計

版圖設計、物理驗證、后仿真

26fffcb6-80ed-11ed-8abf-dac502259ad0.png

在復雜的設計流程中,bug是難以避免的。對于芯片設計而言,bug自然是越早發現越好。但是仿真驗證差不多,進入RTL freeze階段后,一旦發現新的bug,就變得有些麻煩。

因為RTL freeze前,你可以通過修改RTL來更正你發現的bug。然而RTL freeze之后,后端人員做好了floorplan,或者已經開始布局布線,這個時候再去重新做一遍,既耗時耗力,又會惹怒后端。這顯然不是好的選擇。

如果這個時候即將tapeout,甚至已經tapeout,根本就沒有機會修改RTL了。

這個時候,我們就需要ECO,來修正我們的失誤了。

什么是ECO?

ECO,即Engineering Change Order的縮寫,指工程改變命令。

什么意思呢?簡單來說就是手動修改集成電路的過程,換句話說,就是直接手動修改netlist。

一般應用于數字芯片版圖設計。

對于數字IC設計而言,ECO這一步實際上是正常設計流程的一個例外。它是對設計的layout進行局部的小范圍的修改和重新布線,而不影響到設計的其它部分的布局布線,所以其它部分的時序信息沒有改變。

272f5d08-80ed-11ed-8abf-dac502259ad0.jpg

根據功能的不同,ECO可以分為功能改變和非功能改變。功能改變是指由于來自客戶對設計的追加需求(spec改變)或者設計的最后階段發現芯片存在 bug 的情況下進行的 ECO;而非功能改變則是為了在不改變 RTL 網表的基礎上修復部分時序以及串擾等問題而做的 ECO。

說到底,ECO的目的就是省錢省時間。

那么在不同階段,進行ECO,有什么樣的區別呢?

在階段上,數字IC設計中的ECO大體可以分為:tapeout前的ECO,tapeout過程的ECO,tapeout后的ECO。

Tapeout前的ECO

在RTL freeze后,tapeout前這一階段,RTL已經沒法修改,但是好歹也沒有進入tapeout,還有補救的機會。

此時數字前端負責寫coding的工程師需要在final RTL的基礎上,通過寫ECO腳本的方式來實現功能上的ECO。

ECO代價:時間成本,相對較小

Tapeout過程中的ECO

當數字后端實現后的design,timing已經符合signoff標準,DRC已經clean,LVS已經pass,IR drop,MVRC,Formality,DRCPLUS等都已經pass。

但是,數字前端設計工程師還沒來得及做完大部分case的后仿,而且芯片又面臨著Timing-TO-Market的壓力。此時,進入tapeout階段。

為什么不給自己留更多余地呢?因為foundary會先做base layer的加工。只要后期仿真發現的問題,不需要再添加額外的cell,就不耽誤之前的tapeout(此處有點像流水線)。即使發現需要新加幾個cell,這個時候仍然可以通過替換后端實現過程中所加的ECO cell或者spare cell來實現。

ECO代價:時間成本較大

Tapeout后的ECO

當芯片已經tapeout回來,我們在測試過程中卻發現了必須修復的bug。這個時候做ECO的代價相對前面兩種,就要大很多。

改動少的可能僅需要改幾層Metal layer,改動大的話可能需要動十幾層Metal layer,甚至重新流片。在此階段,前端設計工程師需要出具ECO方案,同時讓后端工程師進行評估,主要評估需要改動的層數,timing 是否能快速收斂等方面的風險。

在一次次確認后,敲定方案,進行ECO。

ECO代價:時間與金錢成本巨大

由此可見,即使ECO能夠亡羊補牢,但是為了節省更多的時間和金錢成本,還是盡早發現問題,盡早解決吧。

關于ECO的分類:

常見的ECO可以分為pre mask ECO和post mask ECO,也就是任何layer都可以動到的ECO和只修改metal layer的ECO。

兩者的區別在于,pre mask ECO的晶體管和布線層都還沒有開始做出mask,此時可以往netlist里面添加cell。而post mask ECO的晶體管層已經開始進行加工了,但是布線層還沒有加工,還能修改,可以通過ECO改變各種已有cell的連線關系,但是不能添加新的cell,有一定局限。

換句話說,從freeze到tapeout之間的ECO叫pre mask ECO;tapeout之后,已經加工完芯片的晶體管,但是還沒有做晶體管連線期間的ECO叫做post mask ECO。

Pre mask ECO:

Pre mask ECO比Post mask ECO要靈活得多。在tapeout之前,如果發現有任何需要修改的地方,都可以用這種方法。它可以改成百上千個單元。該操作主要是針對靜態時序分析和后仿真中出現的問題,對電路的網表直接進行修改,待網表修改完畢之后反饋到PR工具中對標準單元的布局和連線進行小范圍的改動。當然,直接對網表進行修改是存在風險的,所以之后一定要進行形式驗證(formal verification),確保功能實現。

Post mask ECO:

Post mask ECO是利用預先留好的備用單元(Spare Cell),做的邏輯修改。如果后期發現Timing存在問題(或者想小動Function),可以利用附近的Spare Cell搭配上層金屬連線來修改電路結構。比起Pre mask ECO,這種ECO受限于Spare Cell的位置,所以它的修改規模十分有限。

27c21a9e-80ed-11ed-8abf-dac502259ad0.png

Spare Cell:

Foundry提供一種服務,允許客戶在wafer加工到poly以及M1層的時候,讓大部分wafer暫時停止加工,而少量wafer繼續加工直至完成。之后可以對這些完成了的wafer上的die進行測試,如果發現存在功能或者時序上的問題,那么可以通過利用那些預布在die上的spare cell來解決。

由于絕大部分的金屬層都沒有加工,因此在不修改標準單元布局的情況下,只用改動幾層金屬的mask并利用spare cell去修復這些問題。如此一來,也大大降低了流片的風險。而Post mask ECO則提供了一種根據silicon測試結果進行Debug的方法。

27c21a9e-80ed-11ed-8abf-dac502259ad0.png

Post mask ECO 可行的前提是設計里有足夠的可供新功能實現的cell, 如Spare cell, Freed cell, GA cell。

Freed cell,這些cell原本服務于原始的邏輯功能,但是因為邏輯功能更改,被釋放出來,既然已被釋放故可以用于來實現新的功能。GA cell,是內部晶體管沒有鏈接的cell,是可以被“編程”的cell,在做ECO 時,通常用最底層金屬如M1 將GA cell 內部的晶體管鏈接起來,以實現對應的邏輯功能,如:與或非、選擇器、寄存器等。

而Post mask ECO的修復則受制于這些cell的位置,可以說是不太靈活了。

27e2cb04-80ed-11ed-8abf-dac502259ad0.png

從邏輯和物理來看,ECO又可以分為Logic ECO和Physical ECO。Logic ECO是對網表的邏輯功能的修改。在芯片設計的后期階段,前端工程師可能會發現設計上的某些bug,進而需要對電路做修改,而此時的schedule已經不允許進行重新綜合,因此會選擇在PR的網表上進行邏輯修改,一般情況是會增加一些邏輯或者將某些邏輯的net重新連接;而Physical ECO主要是針對PR工具無法完全修復的問題進行手動修正。一般包括Timing ECO,drc fix等。

ECO的實際運用與技巧

對于版圖工程師來說,經常會碰到一些function ECO的需求:

28553fea-80ed-11ed-8abf-dac502259ad0.png

從上圖可以看到,為了保證數據庫有優先級的收斂,最后的timing ECO會分為幾個主要步驟

·功能模式的時序修復:function mode

·存儲器自測模式的時序修復:mbist mode

·其他測試模式的時序修復:test mode

·芯片接口時序修復:IO mode

功能模式的重要性、工作量和難度都是最大的,需要盡早修復,然后是其他的模式。整個流程基本上是按照步驟和優先級完成整個芯片的時序修復的。

改變功能的ECO被稱之為function ECO,但是實際上,這種ECO可能是針對真正的function mode的,也有可能是針對mbist 邏輯的,或者有可能是針對at-speed test mode的。

由于function ECO會引起潛在的timing arc的變化,因此帶入function ECO的時間點是有講究的。一般來講,只會在一種模式的timing修復告一段落的時候,才會帶入這個模式的function ECO。

288226ea-80ed-11ed-8abf-dac502259ad0.png

假如在時間節點Pre-B,前端準備好了一個比較大的function ECO,這個ECO是給mbist服務的。通常需要先驗證這個腳本的正確性,如果腳本本身沒問題,在這個Pre-B的時候并不帶入,因為這個時候整個mbist的時序還不夠穩定。

等到了Pre-C的時間節點,mbist的時序修復基本完成的階段,這時可以代入這個ECO。理論上講,新出來的timing violation都是由于這個腳本引起的。

增量設計工作模式,是ECO階段的重重之重,任何違背增量設計方案的舉動,都會造成局部損耗,甚至更糟的結果。

功能ECO的腳本生成的探究和技巧

后端一般會在最終layout的節點,給前端分享最終layout版本的網表。一般為了閱讀方便,后端都是給前端一個不帶PG信息的netlist。前端同學在完善數據庫的過程中,同時也會對各種問題進行評估,最終給出解決方案:

·軟件改動

·約束用戶行為

·硬件改動

如果有任何需要在硬件方面做的功能修改,前端會先保證RTL修改、驗證完成后,對相應的final layout的網表進行修改。

綜上所述,一個function ECO的誕生過程大抵如下:

28a15f1a-80ed-11ed-8abf-dac502259ad0.png

前端主要關注功能,后端主要關注實現,對于下面的幾個主題的關注度,這里展示一下:

28c37046-80ed-11ed-8abf-dac502259ad0.png

前端基于final layout的網表,改出來一版帶function ECO的功能網表,這個流程基本就算大功告成了。

ECO版圖實現的技巧和經驗

在ECO中,版圖的實現是非常重要的步驟。是否能完成STA的腳本期望,是數據庫能否走向收斂的關鍵點。一般的STA對應的ECO和相應的修復方法如下:

28e1dd88-80ed-11ed-8abf-dac502259ad0.png

ECO的物理實現就是兩種情形

·size_cell

·add buffer

這里邊最會產生的影響其實是面積和器件的位置變動(dis-placement)

器件的位置變動帶來的影響都可能導致ECO無法如期進行,因為原有數據庫的cell的放置被調整,之前的繞線需要做相應的調整,同時帶來更多的timing/驅動能力的問題,這樣就會給數據庫帶來不期望的抖動。

為了盡可能保證原有數據庫的狀態,這里引入一個新名詞:Minimal Physical Impact Flow(MPI)。

28fb3ad0-80ed-11ed-8abf-dac502259ad0.png

較小的dis-placement帶來更為穩定的版圖數據,繞線的挑戰也比較小,這是MPI的核心思想。

ECO收尾階段的風險和注意點

在ECO收尾階段,所有決策和行動都需要慎重,否則出了問題就叫苦不迭了。

先說結論,兼顧metal fill,MCMM以及VT cell的靈活使用,是ECO后期成功收斂的關鍵要素。

MCMM,全稱為:multi_corner和multi_mode,而multi_corner(PVT):process/voltage/tmperature。

multi_mode:function/scan_shift/scan_capture。

看到它的全稱,想必你就明白它的重要性了。

至于metal fill,先進工藝是需要fill的支持,來保證流片的物理需求,fill是基于繞線和布局的,如果繞線或者布局改變了,就需要重新跑fill。所以在先進工藝,一定不能忽略fill對timing的影響,tapeout之前,一定要保證fill的信息完全和真實的數據庫匹配,這樣跑出來的timing才完整可信。

ECO的時序信息通常是增量示的,除非你改變了繞線。這是需要在ECO后期階段牢記的一點。

對于一個數據庫,經常會遇到在接近TO的ECO的迭代中,會冒出一些和修復timing沒有關系的微小的setup/hold violation。這個大多是由于繞線的細微改變,而導致的時序變化。這個時候,VT cell就會派上用場。

時間是TO前最值錢的,使用VT cell進行ECO,最大的方便時省略了ECO 繞線、寄生參數的抽取和STA的re-run。這三個步驟的時間是非常長的。有了VT cell的幫忙,這些時間統統可以省略。

經歷了這么一系列流程與注意事項,我們終于可以完成ECO,確保tapeout順利,獲得一塊good chip。

以上,經過筆者粗淺的總結和整合,將ECO相關的知識點與大家分享。

審核編輯 :李倩

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • IC設計
    +關注

    關注

    38

    文章

    1295

    瀏覽量

    103918
  • ECO
    ECO
    +關注

    關注

    0

    文章

    52

    瀏覽量

    14885

原文標題:科普:數字IC設計中的ECO是什么?

文章出處:【微信號:IP與SoC設計,微信公眾號:IP與SoC設計】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    不間斷電源ECO模式介紹,線路交互”模式

    不間斷電源ECO模式是什么   UPS ECO模式是一種特殊的UPS操作模式,提供增強的能源效率。
    的頭像 發表于 11-15 09:50 ?216次閱讀
    不間斷電源<b class='flag-5'>ECO</b>模式介紹,線路交互”模式

    【RA-Eco-RA2E1-48PIN-V1.0開發板試用】開箱點燈

    RA-Eco-RA2E1-48PIN-V1.0開發板。這不僅為我的嵌入式開發學習提供了寶貴的實踐機會,也可以讓我深入理解了該開發板的功能和特性,同時,也給我們學校的教學研究提供了幫助。在申請、溝通過程,我深感電子發燒友平臺的積極支持
    發表于 10-26 22:47

    【「數字IC設計入門」閱讀體驗】+ 數字IC設計流程

    :將芯片設計結果交出去進行生產制造。 上述這些只是芯片設計過程的主要節點,細節還有很多,如果驗證測試不通過,就需要從數字前端設計開始找原因,之后再經歷一次全流程測試,可見IC設計流
    發表于 09-25 15:51

    【「數字IC設計入門」閱讀體驗】+ 概觀

    能夠申請到《數字IC設計入門》一書,非常高興。我是一個嵌入式軟件工程師,產品開發中使用過多類芯片,產品做的多了,感覺產品的軟件開發都是在控制芯片,一個芯片使用各種通信接口再去控制其它芯片,讀寫芯片
    發表于 09-24 10:58

    名單公布!【書籍評測活動NO.40】數字IC設計入門,多角度透視芯片設計

    系統地介紹了IC設計及仿真驗證過程。初學者可完整、詳細地學習IC設計及驗證流程,不僅有數字IC的設計介紹,還有模擬IC的設計介紹,內容涵蓋全
    發表于 08-08 15:31

    在CYT2CL配置相應的PLL寄存器,如何確認PLL配置后是否按預期工作?

    我正在通過在 CYT2CL 配置相應的 PLL 寄存器,將 16Mhz 的 ECO 設置為 160Mhz。 我看到端口 0 上的 ECO_IN 和 ECO_OUT 引腳默認配置為高阻
    發表于 05-20 07:07

    適用于50-A+應用的雙相ECO-MODE?降壓電源管理IC TPS51727數據表

    電子發燒友網站提供《適用于50-A+應用的雙相ECO-MODE?降壓電源管理IC TPS51727數據表.pdf》資料免費下載
    發表于 04-22 10:07 ?0次下載
    適用于50-A+應用的雙相<b class='flag-5'>ECO</b>-MODE?降壓電源管理<b class='flag-5'>IC</b> TPS51727數據表

    半導體IC設計是什么?IC設計和芯片設計區別

    的設計過程。通常,半導體IC設計涉及到多個子領域,包括數字電路邏輯設計、模擬電路設計、射頻集成電路設計、功率管理及處理器設計等。在半導體IC設計,設計人員需要使用計算
    的頭像 發表于 04-03 08:26 ?1822次閱讀
    半導體<b class='flag-5'>IC</b>設計是什么?<b class='flag-5'>IC</b>設計和芯片設計區別

    fpga和數字ic區別 fpga和plc區別

    fpga和數字ic區別 FPGA(現場可編程邏輯門陣列)和數字IC(集成電路)在設計、功能、應用等方面存在顯著的區別。 FPGA和數字
    的頭像 發表于 03-14 18:08 ?2616次閱讀

    分享一種大型SOC設計功能ECO加速的解決方案

    大型SOC項目的綜合非常耗時間,常常花費好幾天。當需要做功能ECO時,代碼的改動限定在某些子模塊里,設計人員并不想重跑一次完整的綜合,這種方法縮短了一輪ECO的時間,保證了項目進度。
    的頭像 發表于 03-11 10:41 ?465次閱讀
    分享一種大型SOC設計<b class='flag-5'>中</b>功能<b class='flag-5'>ECO</b>加速的解決方案

    數字IC設計入門經典書籍合集推薦

    本文所列書籍都面向數字集成電路方向,其他方向,諸如模擬集成電路、射頻IC、功率器件、工藝、器件等,均未涉及。將從理論基礎、晶體管級電路、系統級電路、物理實現、Verilog HDL 、FPGA、處理器設計、數字
    的頭像 發表于 03-07 13:48 ?1060次閱讀

    什么是鎖存器?數字IC設計為什么要避免鎖存器?

    數字IC設計里,常會出現鎖存器,D觸發器和寄存器,很多人(比如我)老傻傻分不清,搞不懂他們的區別是什么。
    的頭像 發表于 02-17 15:04 ?2175次閱讀
    什么是鎖存器?<b class='flag-5'>數字</b><b class='flag-5'>IC</b>設計<b class='flag-5'>中</b>為什么要避免鎖存器?

    請問psoc6_cy8c6247bzi-d54_ECO有什么特點?

    如圖所示,單片機需要兩個晶體(WCO/ECO)。 WCO 支持看門狗和 RTC 功能。 我們想知道 ECO 支持哪些功能? 如果我們不使用這個功能,我們就不需要 ECO Crystal 了,對吧?
    發表于 01-26 07:30

    從DeepSleep模式過渡到活動模式時,IMO和ECO時鐘在喚醒過程是如何運行的呢?

    我正在使用 CYT2B95。 我在主動模式下使用 ECO 作為 FLL/PLL 參考時鐘。 從 DeepSleep 模式過渡到活動模式時,IMO 和 ECO 時鐘在喚醒過程是如何運行的? 問題 1
    發表于 01-24 07:52

    請問如何將ECO輸出分配給PSoC6的GPIO?

    如何將ECO輸出分配給PSoC6的GPIO
    發表于 01-16 07:56
    主站蜘蛛池模板: 做暧暧免费30秒体验| 欧美日韩国产在线一区二区| 国产高清视频青青青在线| acg全彩无遮挡口工漫画网址| 亚洲最大日夜无码中文字幕| 贤妻良母电影日本| 午夜福利电影| 迅雷哥在线观看高清| 忘忧草在线影院WWW日本动漫| 色婷婷综合激情中文在线| 日韩精品一卡二卡三卡四卡2021| 內射XXX韩国在线观看| 蜜桃狠狠色伊人亚洲综合网站| 久久亚洲人成国产精品| 久久亚洲国产中文字幕| 久久人人玩人妻潮喷内射人人| 久久精品小视频| 就去色一色| 女人高潮特级毛片| 欧美特级午夜一区二区三区| 青娱乐极品视觉盛宴av| 日本久久久久亚洲中字幕 | 97国产成人精品视频| 18岁男人女人插孔| 99久久综合精品免费| wwwwwwwww日本电影| 丰满人妻按磨HD| 国产国产人免费观看在线视频| 国产精品永久免费视频| 国产在线一区二区AV视频| 久久99re6国产在线播放| 久久久精品久久久久久| 老妇高潮潮喷到猛进猛出| 女教师二十三歳| 入禽太深免费视频10| 亚洲AV无码一区二区三区牛牛| 亚洲欧美国产视频| 91麻精品国产91久久久久| www.绿巨人| 国产午夜福利100集发布| 久久精品视频在线看99|