ASIC設計-終極指南

ASIC設計-終極指南

ASIC Design – The Ultimate Guide

ASIC設計-終極指南

ASICs代表特定於應用的集成電路,指的是針對特定應用而設計的半導體解決方案,與其他解決方案(如現場可編程門陣列(fpga))不同,現場可編程門陣列(fpga)可多次編程以執行不同的功能。ASIC有時也被稱爲SoC(片上系統)。

ASIC的設計之旅是一條漫長而曲折的道路,它將你從一個概念帶到一個工作的硅。雖然最終產品通常非常小(以平方毫米爲單位),但整個過程非常有趣,充滿了挑戰和權衡,設計師需要絞盡腦汁才能做出最好的工程設計。這篇文章將試圖闡明從ASIC設計規範到設計流水作業的ASIC設計流程中的不同步驟,並強調每個步驟所涉及的重要決策和活動。雖然每個步驟的複雜性可能取決於EDA供應商的選擇、設計應用程序以及技術節點,但順序基本上保持不變。圖1顯示了ASIC設計流程的流程圖。
在這裏插入圖片描述
Figure 1: ASIC Design Flow

ASIC Specification

ASIC設計流程的第一步是在開始設計之前定義產品的規格。這一階段通常包括與潛在客戶進行市場調查,以確定需求,並與技術專家交談以判斷未來趨勢。後者尤其重要,因爲ASIC設計週期可能在6個月到2年之間。因此,重要的是要預見和預測未來1-2年內的趨勢,如果一個人需要向廣泛的消費者銷售他們的產品。

這項市場調查轉化爲高水平的產品規格,如您打算用ASIC做什麼的頂級功能,您想要實現的特定計算算法,使產品吸引客戶的時鐘頻率,封裝類型-球柵陣列(BGA)或CSP(芯片規模封裝)等。,電源、有助於與外部世界連接的通信協議、您希望產品工作的溫度範圍。

制定一個全面和正確的規範通常爲ASIC設計奠定了堅實的基礎。技術規範需要隨着時間的推移對技術要求進行細化,但以明確的方式涵蓋這些信息是很重要的。

ASIC Architecture

在刪減規範之後,現在是將整個ASIC或SOC的功能劃分爲多個功能塊的時候了。架構師喜歡集思廣益地討論架構的許多可能選項,並在考慮性能影響、技術可行性以及成本和時間方面的資源分配時討論它們的優缺點。一個好的架構專注於收集ASIC芯片的最佳性能,同時最小化硬件資源,這直接有助於將芯片的總體成本保持在分配的預算內。在此階段,架構師定義不同功能塊之間的關係,併爲每個功能塊分配時間預算。所有這些技術細節都包含在架構文檔中。
在這裏插入圖片描述
Figure 2: Micro-architecture of Intel’s Haswell Processor.

一旦您對所需的所有功能塊有了較高的瞭解,那麼就應該謹慎地確定關鍵模塊,並可能就是否需要重新使用以前項目中的這些IP、對現有IP進行必要的更改或從其他方獲得它們。

硬件和軟件塊之間的劃分也是ASIC設計階段的一個關鍵部分。設計是用C++或C語言的高級編程語言來捕獲的。

Logic Design and Verification

他的步驟是指ASIC設計流程的前端部分,包括用Verilog、VHDL或systemverilog等硬件描述語言對每個功能塊的數據流進行編碼。功能塊之間的交互也被編碼。邏輯設計通常包括:

組合邏輯Combinational Logic:

組合邏輯通常指布爾組合門,如OR、AND、NAND、NOR等。雖然這些門很簡單,但它們可以組合起來執行復雜的數字運算。

序列元素Sequential Elements:

序列元素通過臨時存儲其輸出,在執行不同功能的不同組合邏輯雲之間的接口中起着關鍵作用。這些時序元件,如觸發器和鎖存器也被稱爲存儲器元件,由時鐘的同步或控制信號控制。觸發器和鎖存器都是雙穩態元件,因爲它們有兩種穩定狀態:0或1。

有限狀態機(FSMs)Finite State Machines (FSMs):

它們是順序邏輯的高級抽象,可以在硬件和軟件中實現。有限狀態機模擬數字機器對一組輸入的響應,以產生確定的一組輸出,是邏輯設計者的重要組成部分。

算術邏輯塊Arithmetic Logic Blocks:

算術運算是計算邏輯的核心,通常是高性能CPU核心性能的瓶頸。算術運算包括加法、減法、乘法和除法。這些電路有很多種可能的實現方式,它們在性能、面積和功率之間進行權衡。邏輯設計者可以選擇一個最適合他們的應用程序來優化一個或多個參數。

數據路徑設計Data-path Design:

除了上述元素的編碼組合外,硬件描述語言(hdl)可以像編程語言一樣以抽象的方式對數據路徑設計進行建模,這種方法可以被EDA工具正確地解釋。這些可以是多路複用、解碼、case語句等。

模擬設計Analog Design:

除了數字邏輯之外,ASIC還可以有許多模擬組件來幫助與現實世界接口,並且可以包括溫度傳感器、模數轉換器(ADC)和數模轉換器(DAC),最重要的是時鐘產生單元鎖相環(pll)。

Example of a behavioral HDL code for 2:1 Multiplexer:
在這裏插入圖片描述
與邏輯設計並行,驗證團隊需要制定驗證計劃或數字和模擬邏輯組件,並創建測試平臺,以便能夠測試所有可能的角落情況的設計,以確保正確的功能,需要與規範一致。編寫RTL通常佔整個設計週期的10-20%,而驗證佔80-90%的時間。

Physical Design

這是指後端設計週期。如果後端設計和前端設計只有一個區別,那就是延遲。前端設計雖然認識到了邏輯延遲和速度,但在RTL編碼和驗證的大部分工作中卻忽略了這一點。而另一方面,物理設計從一開始就看到了真正的延遲。
物理設計流程進一步細分爲:

Synthesis

合成讀取RTL代碼(.v或.sv文件)以及標準單元的物理庫,其中可能包含-延遲信息(.lib文件)、單元內的物理尺寸和元組層信息(.lef文件)和其他約束文件,以將行爲或數據流代碼轉換爲實實在在的物理標準單元門。請注意,2:1多路複用器有許多可能的實現,而綜合負責對性能、功率和麪積進行合理的權衡,以得出考慮到這些限制的最佳實現。作爲2:1多路複用器的示例,一種可能的實現如下:
在這裏插入圖片描述
Figure 3: Gate level implementation of 2:1 Multiplexer

平面規劃

佈局規劃步驟正式化並細化了在架構(architecture)規劃步驟中首次出現的平面圖。在這一步中,整個模具區域被劃分爲物理分區,並在成型時考慮到區域要求、頂層數據和控制總線的流動、未來增長的可能性。管腳和端口被指定一個粗略的位置,可以根據位置和路由結果進一步細化。
在這裏插入圖片描述
Figure 4: Floorplanning the blocks relative to each other.

對於物理設計工程師來說,並行處理一個以上的平面圖是很常見的,並試圖評估哪一個最適合總體設計的QoR(結果質量)。這通常是物理設計週期中最關鍵的一步,需要多次迭代。考慮到它對路由routing congestion, cell density, timing QoR and DRCs擁塞、單元密度、時間QoR和DRC的長期影響,在這裏花費的任何額外時間都是值得的。

一個強大的功率交付-解決靜態和動態紅外衰弱也是一個關鍵的功能規劃步驟。

安置

在放置期間,所有標準單元都放置在站點行的合法位置。這一步的目標是最小化導線長度,同時確保最佳佈局,這將有助於更快的定時收斂。
在這裏插入圖片描述
Figure 5: Standard Cells arranged on site rows.

在此步驟中沒有鋪設真正的路線。Placement通過一個稱爲全局路由的步驟來估計路由,在這個步驟中,它估計總的線路長度和全局路由擁塞。許多現代佈局引擎能夠考慮SAIF或VCD文件的切換活動,並嘗試優化佈局以獲得更低的動態功率。
在這裏插入圖片描述
Figure 6: Placed design.

Clock Tree Synthesis

到目前爲止,時鐘網絡是理想的。在時鐘樹合成過程中,時鐘被傳播並且時鐘樹被使用時鐘緩衝器合成。這一步的主要目標是在最小化時鐘偏差的同時實現最佳的時鐘延遲。設計最佳時鐘樹的算法有很多種——H樹、Steiner樹等。除此之外,還可以選擇時鐘樹網格、多源時鐘樹綜合或傳統的單點時鐘樹綜合,這些方法在動態功率、路由資源和OCV調整等方面進行了權衡。
在這裏插入圖片描述
Figure 7: Typical H tree clock distribution.

時鐘是本設計中開關頻率最高的信號,時鐘緩衝樹佔專用集成電路動態功耗的75%以上。架構可以支持時鐘門控關閉芯片的空閒部分,以節省動態功耗。

隨着所有實例的放置和時鐘的路由,現在是時候路由信號網絡了。現代工藝支持10-12金屬層堆疊,M0-M1爲標準單元佈線預留。用於詳細路由的算法通常是一個美化的迷宮路由器,並添加了約束,以確保更快的運行時間。元組資源被劃分爲元組路線的合法位置。詳細布線的目的是確保最少的繞道,因爲這些可能會影響時間,並確保最小的DRC(設計規則檢查)違規,如開路、短路等。此步驟執行多個搜索和修復循環(10-20),以保持總體DRC計數較低。
在這裏插入圖片描述
Figure 8: Routed Design.

Physical and Timing Verification

邏輯驗證確保功能正確,物理驗證確保佈局正確。物理驗證檢查增加了,包括-DRC(設計規則檢查)、LVS(佈局與原理圖)、電遷移、靜電放電違規(ESD)、天線違規、模式匹配(PM)違規、短路、開路,漂浮網等(includes- DRC (Design Rule Checks), LVS (Layout versus Schematic),
Electromigration, Electro-static discharge violations (ESD), Antenna
violations, Pattern Match (PM) violations, Shorts, Opens, Floating nets etc.)。重要的是要跟蹤這些違反的地方和路線,以避免任何意外前幾天關閉。

時序驗證通過確保設計中所有時序路徑都滿足設置和保持,驗證芯片以指定頻率運行
在這裏插入圖片描述
Figure 9: FRICO ASIC, 350 nm technology

ASIC設計是一個複雜的工程問題,從概念到硅都要經歷很多步驟。雖然有些步驟更像是藝術而不是工程(如平面佈置圖),但其他一些步驟需要合理的工程權衡(如物理設計和時間安排)。隨着對更好性能和縮短上市時間的需求增加,ASIC設計流程在未來十年將繼續變得更加複雜。然而,核心動機和設計理念將保持不變。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章