跳至內容

晶片設計輕鬆入門

25% developed
來自華夏公益教科書
An integrated circuit die.
積體電路晶片。
晶片設計輕鬆入門
晶片設計的指南。

在這本書**晶片設計**中,我們介紹瞭如何透過整合數十億個電晶體來構建積體電路(“晶片”)以實現某個應用。應用可以滿足特定的需求,例如微處理器、路由器、手機等。針對特定應用設計的積體電路稱為ASIC(專用積體電路)。

如今的ASIC晶片非常複雜,包含大量針對特定製造工藝的電晶體,用於在亞奈米級製造積體電路,涉及許多挑戰,例如瞭解各種協議、架構、模型、格式、標準,瞭解CMOS邏輯、數字設計概念,駕馭EDA工具以滿足各種設計需求,例如面積、時序、功耗、熱量、噪聲、佈線能力、光刻感知,瞭解各種變異性,例如溝道長度、Vt、線寬變化、透映象差、IR壓降效應、晶片間和晶片內變化、效應以及各種噪聲效應,例如封裝噪聲、EMI噪聲、電源網路噪聲、串擾噪聲,以及能夠測試和驗證,並能夠在設計階段預先建模和表徵所有這些效應,以提高盈利曲線,縮短上市時間,最大程度地降低風險並最大程度地提高可預測性和模組化的方法來取得成功。現在讓我們深入探討“晶片設計的藝術”。

有很多技術術語,但不用擔心。您很快就會了解這些術語的含義,並理解晶片設計背後的概念。

設計晶片之前?需要頭腦風暴

[編輯 | 編輯原始碼]
  • 晶片的目標市場是什麼?
  • 晶片涉及哪些協議?
  • 我們的處理器/匯流排架構是什麼?
  • 功耗/IR壓降/時序/面積/良率目標是什麼,以及如何在晶片中進行預算?
  • 晶片將採用哪種工藝製造?
  • 各種第三方IP/記憶體需求是什麼?
  • 我們的設計流程、EDA工具和方法是什麼?
  • 晶片的估計成本是多少?
  • 最重要的是,任何商業模式的底線都是金錢。我們的盈利模式是什麼?我們估計的投資回報率(ROI)是多少?

晶片設計架構與建築架構的類比。

[編輯 | 編輯原始碼]

為什麼要與建築架構進行類比?為了更好地理解晶片設計概念,因為我們非常熟悉建築架構,那麼就可以很容易地將晶片設計架構映射出來。

VLSI(超大規模整合)流程類似於建築施工中涉及的流程。現在讓我們深入瞭解施工流程,以更好地理解VLSI晶片設計流程的開發。

每當我們開始建造一座建築物時,我們都會有一個架構,建築物應該是什麼樣子,外部外觀等。類似地,我們將在晶片設計中設計一個架構,基於產品的需求,產品針對什麼以及服務於誰的需求——即所謂的規範——的不同模組。

現在讓我們進入建築和晶片的實施部分。

我們首先會設計建築物的平面圖,類似地,我們也會設計晶片的平面圖。根據連通性/可達性/風水,我們放置房間,類似地,我們有約束條件來放置模組。就像我們用磚塊、窗戶和其他模組建造建築物一樣,對於晶片設計,我們有元件庫,這些元件庫就像預先設計的磚塊,用於特定的功能。

現在讓我們嘗試瞭解我們建築物中的電源結構或電氣連線。最初,我們為我們的建築物制定了一個電氣計劃,其中我們有一個要求,即所有電器都需要通電。類似地,我們有晶片的功耗需求。所需的電源透過電源焊盤供給,透過環形拓撲結構在晶片的所有角落均勻分佈,並且電源必須到達所有標準單元(晶片設計的磚塊),這在晶片設計中稱為電源網路拓撲結構。現在的要求是如何設計我們的電源網路以減少IR壓降,以便我們的標準單元獲得適當的電源需求。

如果我不討論晶片設計流程中的時鐘和時鐘樹,我將無法做到公正。我們有同步和非同步(更難測試和驗證)的設計方式。大多數晶片遵循同步設計,對此可以進行靜態時序分析。為了使觸發器相關,來自晶振的時鐘訊號必須同時到達——或在某些偏斜目標範圍內——晶片內的不同元件。為了實現這一點,在建立電源網路後執行一個稱為時鐘樹的步驟。

現在讓我們嘗試視覺化晶片設計中佈局佈線背後的概念,其中晶片的不同元件被物理放置,並且它們的引腳正確互連。為了更好地理解這個概念,讓我們假設一個說不同語言的人們生活在一起的社會,讓我們想象一下說相同語言的人們會傾向於住在同一個社群,形成獨立的社群,並使人們之間的溝通更加容易。類似地,在晶片設計中,在佈局流程中,具有緊密關係的標準單元放置得更近,形成獨立的區域。這個過程稱為區域劃分。現在,在這些區域內,真正共享資料的標準單元必須彼此靠近放置,以便它們的時序匹配並得到最佳化。此步驟稱為佈局,而定義標準單元之間的連線稱為佈線,挑戰在於具有最佳化的或減少的線長。

現在讓我們嘗試瞭解晶片設計中訊號完整性 (SI) 背後的概念,通常稱為SI效應。隨著我們的工藝日益縮小,並且我們的矽房地產成本高昂,我們試圖在有限的區域內容納越來越多的標準單元,因此單元放置得非常靠近,一個單元的切換會對其他單元的行為產生影響,這可能使路徑變得更快或更慢。此問題稱為訊號完整性。因此,類似地,在我們建造房屋以維護房屋內的完整性(鄰居免受干擾的區域)時,在有限的模組化區域內,我們嘗試在建築物之間建立圍欄,類似地,我們可以考慮一個稱為遮蔽的概念,即高頻訊號網路與電源網路一起執行。我們在建築物之間進行間距,類似地,我們可以在靠近的網路之間進行間距。

為了驗證矽片的可製造性問題,晶片設計中的概念是可測性設計 (DFT)。DFT 技術之一是掃描鏈。為了理解掃描鏈的概念,我們可以想象我們有一個前門入口和一個後門出口,一個人從前門進入並從建築物的後門出口出來,我們確信建築物內的房間中沒有障礙物,以致使這個人被困住,類似於此類比,觸發器連線在一起形成掃描鏈,測試輸入值從晶片的掃描鏈輸入傳遞,並在晶片的掃描鏈輸出視覺化預期資料,然後假設晶片沒有可製造性問題,例如卡住故障(卡住為1或卡住為0)。

VLSI設計流程

[編輯 | 編輯原始碼]

步驟1:準備需求規格說明

步驟2:建立微架構文件。

步驟3:RTL(暫存器傳輸級)設計和IP(智慧財產權)開發

步驟4:對所有IP進行功能驗證/檢查RTL是否沒有Lint錯誤/分析RTL是否適合綜合。

步驟4a:執行基於週期的驗證(功能)以驗證RTL的協議行為

步驟4b:執行屬性檢查,以驗證RTL實現和規範理解是否匹配。

步驟4c:執行時鐘域交叉檢查,以驗證控制/資料是否具有正確的同步,以確保可靠的跨域資料傳輸。


有些人使用“邏輯努力”來估計CMOS電路關鍵路徑中的延遲,從而估計電路的最大可能速度。[1]

步驟5:準備設計約束檔案(時鐘定義(頻率/不確定性/抖動)、I/O延遲定義、輸出焊盤負載定義、設計錯誤/多週期路徑)以執行綜合,通常稱為SDC檔案(Synopsys約束檔案,特定於Synopsys綜合工具(Design Compiler))

步驟 6:進行 IP 合成,工具的輸入包括(目標合成庫檔案,其中包含標準單元庫的功能/時序資訊以及基於連線扇出長度的線負載模型)、RTL 檔案和設計約束檔案。這樣,合成工具就可以執行 RTL 檔案的合成,並進行對映和最佳化以滿足設計約束要求。在執行合成後,作為合成流程的一部分,需要基於 DFT(Design for Test)要求構建掃描鏈連線,合成工具(Test-compiler)會構建掃描鏈。

步驟 7:檢查合成後的設計是否滿足要求(功能/時序/面積/功耗/DFT)。

步驟 7a:執行網表級功耗分析,以瞭解設計是否滿足功耗目標。

步驟 7b:使用綜合後的網表執行門級模擬,以檢查設計是否滿足功能要求。

步驟 7c:執行 RTL 與綜合後網表之間的形式驗證,以確認合成工具未改變功能。

步驟 7d:使用 SDF(Standard Delay Format)檔案和綜合後的網表文件執行 STA(Static Timing Analysis),以檢查設計是否滿足時序要求。

步驟 7e:在 DFT(Design for Test)工具中執行掃描鏈追蹤,以檢查掃描鏈是否根據 DFT 要求構建。

步驟 8:一旦完成合成,則將綜合後的網表文件(VHDL/Verilog 格式)和 SDC(約束檔案)作為輸入檔案傳遞給佈局佈線工具,以執行後端操作。

步驟 9:下一步是進行樓層規劃。樓層規劃是指根據連線性放置 IP,放置儲存器,建立焊盤環(也稱為焊盤框),[2][3][4][5]放置焊盤(訊號/電源/轉換單元(用於切換電壓域/角焊盤(方便封裝佈線)),滿足 SSN 要求(Simultaneous Switching Noise),即當高速匯流排切換時,不會產生任何噪聲相關的活動,建立最佳化的樓層規劃,使設計滿足晶片的利用率目標。

步驟 9a:將樓層規劃資訊提供給封裝團隊,以進行焊盤環的封裝可行性分析。

步驟 9b:對於佈局工具,切割行,建立工具無法放置單元格的障礙物,然後根據時序/面積要求執行單元格的物理佈局。構建電源網路以滿足晶片的電源目標。

步驟 10:下一步是執行佈線,首先是全域性佈線和詳細布線,滿足根據製造要求的 DRC(Design Rule Check)要求。

步驟 11:完成佈線後,將佈線後的 Verilog 網表、標準單元 LEF/DEF 檔案傳遞給提取工具(提取晶片的寄生引數(RLC)值,並以 SPEF 格式(Standard Parasitics Exchange Format)生成 SPEF 檔案)。

步驟 12:檢查佈局佈線步驟後,設計是否滿足要求(功能/時序/面積/功耗/DFT/DRC/LVS/ERC/ESD/SI/IR-Drop)。

步驟 12a:執行佈線後網表級功耗分析,以瞭解設計是否滿足功耗目標。

步驟 12b:使用佈線後的網表執行門級模擬,以檢查設計是否滿足功能要求。

步驟 12c:執行 RTL 與佈線後網表之間的形式驗證,以確認佈局佈線工具未改變功能。

步驟 12d:使用 SPEF 檔案和佈線後網表文件執行 STA(Static Timing Analysis),以檢查設計是否滿足時序要求。

步驟 12e:在 DFT 工具中執行掃描鏈追蹤,以檢查掃描鏈是否根據 DFT 要求構建,使用 DFT 工具執行故障覆蓋率並生成 ATPG 測試向量。

步驟 12f:將 ATPG 測試向量轉換為測試儀可理解的格式(WGL)。

步驟 12g:執行稱為物理驗證的 DRC(Design Rule Check)驗證,以確認設計滿足製造要求。

步驟 12h:執行 LVS(Layout vs Schematic)檢查,這是驗證的一部分,它獲取佈線後的網表並轉換為 Spice(稱為 SPICE-R),並轉換綜合後的網表(稱為 SPICE-S),然後比較這兩個網表是否匹配。

步驟 12i:執行 ERC(Electrical Rule Checking)檢查,以瞭解設計是否滿足 ERC 要求。

步驟 12j:執行 ESD 檢查,以便放置合適的背靠背二極體並在晶片中存在模擬和數字部分的情況下提供適當的保護。我們為數字和模擬部分分別設定電源和接地,以減少襯底噪聲。

步驟 12k:執行獨立的 STA(Static Timing Analysis),以驗證晶片的訊號完整性。為此,將佈線後的網表和 SPEF 檔案(包括耦合電容值)饋送到 STA 工具。此檢查很重要,因為訊號完整性效應會導致串擾延遲和串擾噪聲效應,並阻礙設計的效能/時序方面。

步驟 12l:執行 IR 降分析,確保電源網路足夠強大,能夠承受設計中的靜態和動態功耗下降,並且 IR 降在目標限制範圍內。

步驟 13:一旦驗證了佈線後的設計是否滿足設計約束,下一步就是進行晶片完成操作(如金屬開槽、放置去耦電容)。

步驟 14:現在晶片設計已準備好傳送到製造工廠,釋放製造工廠可以理解的檔案,例如 GDS 檔案。

步驟 15:釋放 GDS 檔案後,執行 LAPO 檢查,確保釋放到製造工廠的資料庫是正確的。

步驟 16:執行晶片到封裝的線鍵合,將晶片連線到封裝。

深入晶片架構

[edit | edit source]

本文假設您是一位架構師,在架構和設計晶片以使其首次成功之前,您會想到哪些問題。晶片設計是一項整合挑戰。

  • 此晶片的目標市場是什麼?
  • 此晶片的競爭對手有哪些?市場需求和投資回報率如何?
  • 晶片的目標代工廠是哪個?
  • 代工廠的成功率和良率是多少?
  • 目標工藝技術是什麼?
  • 庫模型與矽片之間的相關性是什麼?
  • 晶片將要處理的各種協議有哪些?
  • 硬體和軟體劃分。
  • 哪種處理器/微控制器適合此應用?
  • 目標匯流排架構是什麼?
  • 此匯流排架構的效能目標是什麼?
  • 晶片有哪些介面?
  • 設計將採用單 Vt 還是多 Vt 設計?
  • 使用嵌入式宏還是儲存器宏是正確的選擇?
  • 哪些 IP 將被重用?
  • 哪些 IP 將成為硬宏?
  • IP 的驗證狀態和極端情況覆蓋率如何?
  • 晶片的目標/估計晶片尺寸是多少?
  • 功耗目標是什麼?
  • 晶片中是否需要電源管理單元來降低動態功耗?
  • 降低洩漏功耗採用了哪些機制?
  • 模組使能/時鐘門控是否屬於方法的一部分?
  • 復位將是同步的還是非同步的?
  • 資料傳輸的各種同步機制有哪些?
  • 晶片需要多少個時鐘域?
  • 需要多少個 PLL?一個 PLL 是否足以滿足所有時鐘需求?
  • 焊盤背後的思路是什麼?是 LVTTL/SSTL 焊盤嗎?
  • 封裝將採用線鍵合還是倒裝晶片?
  • 最佳化電源網路設計的方法是什麼?
  • 在模擬整合的情況下,有哪些降噪機制?
  • 是否需要速度監控器或工藝檢查塊?
  • 使用哪種型別的保險絲?雷射保險絲還是可熔保險絲?
  • 設計中是否需要 Fib 單元?
  • 處理 ESD 採用了哪些機制?
  • 晶片的可靠性目標是什麼?如何實現?
  • 提高良率採用了哪些機制?
  • 晶片是否在高速測試下進行測試?
  • 為 IP 分配了多少記憶體對映?
  • 晶片中備用單元格的指標是什麼,用於 ECO?
  • 是否需要可修復的儲存器?
  • 目標測試儀是什麼?晶片在掃描鏈方面的要求是什麼?
  • 測試向量壓縮機制是否為一項要求?
  • PLL(鎖相環)在抖動方面的效能如何?
  • 晶片內部的中斷處理機制是什麼?
  • 晶片的 ROM 程式碼是什麼?
  • 晶片的利用率目標是什麼?
  • 晶片是否可佈線?是否需要具有不同佈線軌跡的特殊庫?
  • 工具和版本的方法是什麼?
  • 跨多個地理環境的資料處理計劃了哪些版本控制機制?
  • 晶片的籤核標準是什麼?
  • 晶片的頻率目標是什麼?
  • 晶片是否有進一步修改的空間?
  • 如果晶片具有 DDR/SDR 介面,是否需要 DLL?
  • 工具在複雜性/執行時間/週轉時間/計算能力要求方面的限制是什麼?
  • 針對晶片 IR 降/電源地噪聲/電感效應/ EMI 噪聲/封裝噪聲/串擾噪聲/同時切換噪聲/溝道長度變化/片上變化/晶片間變化/晶片內工藝變化的各種變化,採取了哪些機制/步驟?

匯流排架構涉及的思考過程

[edit | edit source]

為了獲得儘可能高的效能,在 SoC 中,需要考慮哪些引數才能獲得最佳的系統匯流排架構?

  • 系統速度不僅取決於處理器/微控制器,還取決於系統執行的匯流排速度。
  • 跨多個驅動器的爭用預防機制。
  • 匯流排分路器:基於速度目標的分層匯流排結構(例如,來自 ARM 的 AMBA 匯流排有兩個匯流排層次結構級別:高階高效能匯流排[AHB] 和高階外設匯流排[APB])。分路匯流排架構具有節能的事務處理和跨傳統匯流排的併發資料事務。
  • 減少延遲和交叉開關利用率機制。
  • 匯流排之間跨資料傳輸的最佳橋接機制。
  • 透過管道機制提高效能,並採取措施防止停頓。
  • 共享匯流排的仲裁協議方案(固定優先順序方案、迴圈輪詢方案、* 時分複用方案)。
  • 減少匯流排等待時間的機制。
  • 跨匯流排的同步機制。
  • 基於功耗分析的排程。
  • 基於流量的動態電壓和頻率縮放技術,以滿足功耗目標。


實施挑戰和解決方案

[編輯 | 編輯原始碼]

如今的ASIC設計,一方面追求整合度最大化、芯片面積最小化、功耗最佳化、速度提升、熱效能改善,同時還要解決訊號完整性、可靠性、良率提升等問題,包括降低PLL抖動以確保功能可靠性,以及可測試性、單晶片系統中模擬和數位電路的整合、滿足光刻工藝的DRC規則、功能實現、高速儲存器介面、IO結構、IO緩衝區分析與選擇、晶片驗證、應對最後一刻的規格變更/功能與時序bug的工程變更單(ECO)、最佳化封裝的可行性、涉及多地域多地點的開發階段、複雜的資料庫管理、各種模型/抽象/標準/格式/協議、先進工藝、庫特性建模與矽片驗證、更高程度的EDA工具使用、設計複用標準,以及構建能夠應對EMI噪聲/封裝噪聲/電源地噪聲/串擾噪聲/襯底噪聲/時鐘抖動/工藝偏差/IR壓降/片上差異等因素的魯棒性設計。另一方面,如何在設計階段解決所有這些問題,是當今晶片設計行業的挑戰。

這種跨領域/抽象/工具/設計師/工藝/協議/標準/設計複用/最優權衡/設計訣竅/跨文化設計團隊的緊密結合,需要一種模組化的統一方法,以確保首版晶片成功。現在讓我們來討論實現過程中面臨的挑戰以及在設計階段如何克服這些挑戰。

複雜的資料庫管理/多地點設計與開發 由於現在的設計是在多地點環境下進行的,每個地點都擁有一些特定領域的專業知識,為了充分利用這些專業知識,需要進行多地點設計與開發階段。為了維護資料庫,需要一個合適的版本控制管理系統(例如,ClearCase)來正確地對齊資料庫,並用標籤標記它以識別資料庫。最後,在設計完成後,需要經過適當的評審和清單流程來確保交付質量。

設計最佳的Padring 設計最佳Padring的步驟

確保在Padring的所有角上都有角Pad。這主要是為了確保電源連續性和較低的電阻。確保Padring滿足ESD要求,識別電源域,分割電源域,確保所有電源域共地。確保設計具有足夠的核心電源Pad。根據電流要求和時序選擇Pad的驅動強度。確保有獨立的模擬地和電源Pad。如果沒有I/O需求,則使用無連線Pad填充Pad框。也可以使用額外的VDD/GND Pad。確保沒有輸入/輸出Pad使用未連線的輸入,因為如果輸入懸空,它們會消耗功率。確保使用振盪器Pad作為時鐘輸入。如果設計需要源同步電路,確保時鐘和資料Pad具有相同的驅動強度。斷路Pad用於斷開電源環並隔離電源結構。確保連線到引腳的金屬線能夠承載足夠的電流,檢查是否需要多層金屬來承載引腳提供的最大電流。確保在角Pad附近放置一些Pad填充單元,以簡化襯底佈線要求。對於源同步Pad(如時鐘和資料輸出),確保這些Pad位於中心,因為封裝中心的引線比封裝角的引線短,可以減少EMI的影響。

設計最佳化面積 由於矽片面積非常昂貴,並且節省面積與公司的收入直接相關,因此設計中需要特別注重面積最佳化。減少面積的步驟如下:

如果路徑不是時序關鍵路徑,則最佳化單元以使用低驅動強度單元,這樣可以節省面積。緊貼VDD行。使用多個佈局規劃版本分析利用率資料,從而獲得最佳化的面積目標。

設計最佳化的佈局規劃 研究設計的數 據流圖並相應地放置模組,以減少面積和線長的加權和。儘量減少使用非正方形模組,避免使用缺口。基於可訪問性和連線性放置模組,從而減少線長。緊貼儲存器放置,如果引腳是單側的,則可以減少面積。如果儲存器更頻繁地與外部世界通訊,則將其放置在邊界上更有意義。研究需要佈線的引腳數量以及允許的最小金屬寬度,估計可佈線性問題。研究體系結構和應用,以便啟用模組應分散放置,以減少電源地噪聲。

設計以實現功耗目標 如今的IC設計中,功耗在設計成功中發揮著重要作用,因此實現功耗目標是主要關注點。一些最佳設計實踐包括:使用多VDD設計。需要高效能的區域使用高VDD,需要低效能的區域使用低VDD,透過建立電壓島並確保在跨電壓域中放置適當的電平轉換器。使用多Vt(閾值電壓)。需要高效能的區域使用低Vt,但會產生大量的漏電流;需要低效能的區域使用高Vt單元,漏電流較小。透過結合這種設計流程,可以減少漏電流功耗。由於時鐘在設計中消耗了大量的功率,因此在設計中放置最佳的時鐘門控單元並透過模組使能控制它們可以節省大量的功耗。由於時鐘樹始終處於切換狀態,因此確保大部分時鐘緩衝器位於時鐘門控單元之後,這減少了切換次數,從而降低了功耗。根據應用結合動態電壓和頻率縮放(DVFS)的概念,當應用不需要滿足效能目標時,從而降低系統的電壓和頻率。確保設計中的IR壓降分析和地彈分析符合設計規範要求。放置電源開關,以便可以減少漏電流功耗。

設計以實現頻率目標 由於ASIC設計如今以其可以達到的時鐘頻率來評級,因此設計帶來了很多效能優勢。一些實現頻率目標的設計策略如下:

對於需要滿足時序要求的區域,使用邏輯重構。如果滿足保持時間要求,則使用有用的時鐘偏差。使用暫存器重定時/時間借用概念來滿足設計時序要求。對於時序緊張的路徑,使用更快的觸發器。對於需要滿足時序的路徑,使用低Vt單元。透過在所有功能和測試模式下,在所有工藝角(包括降額係數)下執行靜態時序分析(STA),確保設計滿足頻率目標。確保存在公共時鐘樹路徑,並且分支僅發生在最後階段,以便可以在降額期間的悲觀估計消除過程中將公共時鐘路徑從延遲計算中移除作為開銷。對於涉及往返延遲的記憶體控制器設計,採用可程式設計DLL(延遲鎖定環路)設計。

設計以滿足訊號完整性目標 隨著越來越多的器件被整合,導致區域更加擁擠,耦合電容主導線電容,從而產生SI違規。現在讓我們看看我們可以採取哪些措施來減少/解決它。

由於時鐘樹貫穿整個晶片,因此最佳化設計以滿足SI要求至關重要,使用雙間距和三倍間距佈線時鐘。如果發生SI違規,則增加訊號網路的間距可以減少串擾影響。對於高頻訊號網路,使用電源網路遮蔽它們以防止SI。啟用SI感知佈線,以便工具可以處理SI。確保啟用SI的STA執行並保證設計滿足SI要求。在彼此正交的不同層上佈線訊號。透過插入緩衝器來最小化並行執行長度的線。

設計以獲得更高的良率(DFY/DFM) 透過減少製造缺陷的可能性可以獲得更高的良率。透過減少引數良率,在工藝偏差發揮主要作用的情況下保證電路效能是一個巨大的挑戰。

建立更強大的嚴格執行檔案,包含悲觀的間距/短路規則。檢查設計中容易出現光刻問題的區域,例如銳利切割,並嘗試重新佈線。對於過孔可靠性問題,使用冗餘過孔以減少過孔斷裂的可能性。為了設計以提高良率,設計系統可以具有最佳冗餘,例如可修復儲存器。最佳化放置去耦電容可以減少電源浪湧。將非關鍵網路和時鐘網路的寬度加倍可以提高良率引數。確保保持多晶矽方向。

設計以最佳化模擬和數位電路的整合 由於如今的IC也集成了模擬元件,因此需要一些設計實踐來最佳化整合。確保在佈局規劃階段模擬模組和數字模組不要彼此靠近,以減少噪聲。確保數字和模擬地之間存在獨立的地線以減少噪聲。在模擬宏周圍放置合適的保護環。結合內建DAC-ADC轉換器,允許我們使用數字測試儀以模擬環回方式測試模擬部分。對於數字部分執行諸如時鐘抖動之類的技術。

設計以應對工程變更單 隨著IC設計變得越來越複雜,並且有很多首次應用,更容易出現最後一刻的更改,因此設計流程中應該有條款來適應功能和時序bug。執行此步驟稱為工程變更單(ECO)。

確保設計具有分佈在佈局中的備用功能門。確保備用門的選型包括多種型別的門和通用門,以便可以實現任何功能。

設計光刻工藝友好的設計 為可製造性設計需要驗證設計是否滿足光刻規則。

檢查佈局以確認設計規則(間距、線寬、短路)。檢查擁塞較少的區域並增加網路的間距。


晶片驗證方法

[編輯 | 編輯原始碼]

-"**任何可能出錯的事情,都會出錯**" - 墨菲

我的下一步是什麼?

現在讓我們假設任何事情都可能出錯。

哪些方面可能出錯?

列出流程中可能出錯的區域,併為每個階段制定驗證方法。列出所有可能發生的潛在不確定性,以及如何對其建模、如何約束以及如何提前進行驗證。探索並重新審視設計流程中的每個區域,以涵蓋潛在的風險。

功能驗證 (RT L級,門級) 形式驗證 靜態時序分析 物理驗證 功耗模擬 熱模擬 噪聲模擬 測試模擬 模擬 硬體原型 硬體軟體聯合模擬 電晶體級模擬 現在讓我們深入到每個領域並確保它

功能驗證

TLM(事務級建模) Lint RTL模擬(環境包括:激勵生成器、監視器、響應檢查器、事務處理器) 門級模擬 混合訊號模擬 迴歸 我在功能部分涵蓋了多少 - 我的覆蓋率指標是什麼?以及使用了哪些方法?

驗證測試是否涵蓋了精確定位的測試或使用隨機種子來覆蓋所有極端情況的測試。 程式碼覆蓋率 行覆蓋率 功能覆蓋率

形式驗證

等價性檢查器 RTL與門級 預佈局與後佈局 網表 基於斷言的屬性檢查器(允許更大狀態空間覆蓋的數學技術)

時序驗證

晶片與誰通訊(瞭解介面時序) 晶片內部的時序預算是什麼,以及如何在每個IP內部對其進行約束,最後分析和簽署時序目標 如何處理不同工藝引數(片上變化)的時序目標 最佳降額係數是多少才能解決變化問題。 最小化時鐘抖動的步驟。

物理驗證

我的設計是否對製造工藝友好?

DRC(設計規則檢查) LVS 天線檢查 ERC ESD檢查


噪聲模擬

我的設計有多大的噪聲,因此需要執行解決以下領域的噪聲模擬

同時開關噪聲 (SSN) 封裝噪聲 EMI噪聲 電源-地噪聲 串擾噪聲 模擬噪聲 基板噪聲 功耗模擬

當數字邏輯閘切換時,它會透過連線到它的電源和地引腳拉動一股電流。這些引腳(及其鍵合線)的電感將該電流突變轉換為片上電源電壓的內部下降和接地電壓的上升(相對於PCB接地平面)。這些電壓波動可能不足以干擾數字邏輯,但它們會嚴重干擾類比電路的效能。有幾種“技巧”可以減少這些浪湧的電磁干擾 (EMI)。[6]

  • 一組獨立的“I/O”電源引腳,僅連線到I/O焊盤上的輸出驅動器,與為內部數字邏輯供電的“核心”電源引腳分開。這有助於防止處理器核心中的開關噪聲透過輸出引腳洩漏,像天線一樣從PCB走線上輻射出來,並干擾無線電和電視(以及導致FCC測試失敗)。
  • 一組獨立的“模擬”電源引腳,為片上模擬元件(ADC、DAC等)和模擬輸出焊盤供電,與“數字”電源引腳分開。這有助於防止處理器核心中的開關噪聲干擾模擬元件。
  • I/O匯流排引腳(地址和資料),僅在I/O匯流排週期內切換,與儲存器匯流排引腳獨立。所有外部儲存器和I/O裝置的單個公共匯流排迫使每次儲存器訪問切換連線到每個I/O裝置的PCB上的所有地址和資料線,輻射出更多的噪聲。
  • 擴頻時鐘
  • 內部時鐘倍頻器或更通用的時鐘PLL - 這允許內部處理器核心以高速率執行,而無需將該高頻率直接連線到任何PCB走線上。
  • 在晶片上放置一些內部儲存器;僅以高速率時鐘內部儲存器(快取RAM或快閃記憶體);使用較慢的速度讀取和寫入外部儲存器裝置。
  • 以較慢的上升和下降時間驅動輸出引腳以減少輻射的EMI(即使引腳仍然具有相同數量的轉換/秒);容忍輸入引腳上較慢的上升和下降時間。
  • 更喜歡差分通訊匯流排 - FireWire、USB、XDR DRAM、低壓差分訊號等 - 而不是固有的噪聲更大的單端匯流排 - RS-232、IEEE 1284、ISA匯流排等。

我的設計是否滿足功耗目標

IR壓降分析 動態功耗模擬

功耗相關方法

去耦電容的最佳位置 多電壓域 多Vt設計 DVFS(動態電壓和頻率縮放) 時鐘門控技術 電源管理單元(在不需要時關閉) 跨電壓域的電平轉換器

熱模擬

研究熱目標和減少熱問題的機制。

最大且最明顯的熱問題是由過熱引起的永久性故障。避免這種情況的一種方法是...

還有一些更微妙的問題,例如導致模擬晶片非線性的熱梯度。計算機模擬通常會忽略這種微妙的影響,當實際晶片的效能比模擬差得多時,就會產生“模擬永遠不會失敗”的問題。掩模設計人員仔細地佈置放大器,以對稱和公共中心佈局放置關鍵元件,以抑制熱梯度。[7]

測試模擬

晶片出來後我的設計是否可測試,識別問題區域的方法

邊界掃描 記憶體BIST模擬 測試儀器特定向量生成和模擬 測試儀器向量壓縮技術以減少測試時間 高速測試機制 掃描移位和掃描捕獲方法 IDDQ測試 晶圓級老化測試以瞭解良品率(KGD) 拉線測試 直流引數測試 交流引數測試 路徑延遲測試 延遲測試 轉換故障測試

解決DSM和良率問題

冗餘過孔 間隔非關鍵區域以利於光刻 線加寬 金屬填充 金屬開槽

模擬

模擬設計的的功能行為。可綜合斷言被對映到模擬器以執行系統速度。

硬體原型

在可程式設計FPGA中原型化系統需求

儘管採用了所有驗證方法和策略,如果事情出了問題,如何在設計中解決 - 降低成本和時間的策略

備用門 儲存器中的冗餘行/列 冗餘過孔 內建自修復儲存器 集中離子束方法

[編輯 | 編輯原始碼]
[編輯 | 編輯原始碼]
  1. “位置換指令:架構、實現和密碼學特性”:第4章:硬體實現 由Zhijie Jerry Shi 2004撰寫
  2. ARM有限公司。 “IO焊盤環設計”。2007年。
  3. EDA論壇。 “模擬IC設計與佈局:為什麼我們需要焊盤環?”。2010年。
  4. Erik Brunvand。 “焊盤和焊盤環”。引用:“晶片由核心和焊盤環組成。核心是核心部分。焊盤環(或焊盤框架)將核心連線到外部世界”。
  5. Dan Clein。 “CMOS IC佈局:概念、方法和工具”。1999年。第5.3節“焊盤單元”,從第114頁開始。
  6. “殺死EMI惡魔” 由Norman Rogers 2002撰寫
  7. 國家半導體:AN-1485“重負載對運算放大器電路精度和線性的影響(或者,“到底什麼是所有這些輸出阻抗的東西?” 由Bob Pease 2008撰寫
華夏公益教科書