數字IC設計流程


 

 

❝ 本節將要介紹諸多IC設計流程,掌握理解一種即可!

一、前言

想起一句話叫“一葉障目不見泰山”,所以要想對一個事物有全面的認識,必須得了解它的整體面貌。學習數字IC驗證也是同理,我們要清楚了解數字IC驗證在數字IC設計全流程中所處的位置!

本節我們將要學習以下幾個方面的內容

  • 1、數字IC設計的「流程」?
  • 2、數字IC設計流程中每個階段主要「做哪些工作」?
  • 3、數字IC設計流程中每個階段「使用的主要EDA工具有哪些」?

二、集成電路產業鏈

三、常見的SoC芯片架構圖

❝ 「注」:上節課有詳細介紹: 【數字IC驗證快速入門】2、通過一個SoC項目實例,了解SoC的架構,初探數字系統設計流程

SoC芯片組成,四大部分:

  • 1、核(CORE)
  • 2、存儲(MEM)
  • 3、外設(IO)
  • 4、總線(BUS)

四、數字IC設計流程

    • 1、確定項目需求
      • 確定芯片的具體指標:功能、功耗、性能、IO外設等
      • 市場來提出需求,研發來評估需求

  • 2、系統級設計
    • 用系統建模語言對各個模塊描述
    • 由系統工程師完成
    • 3、前端設計【邏輯】
      • RTL設計、RTL仿真(EDA仿真驗證)、硬件原型驗證(FPGA硬件原型驗證)、電路綜合(RTL代碼映射(MAP)成門級網表(STD CELL))

  • 4、后端設計【物理】
    • 版圖設計、物理驗證、后仿真等

五、數字IC設計具體指標

    • 1、物理實現
      • 制作工藝(代工廠及工藝尺寸)
      • 裸片面積(DIE大小,DIE由功耗、成本、數字/模擬面積共同影響)
      • 封裝(封裝越大,散熱越好,成本越高)

  • 2、性能指標
    • 速度(時鍾頻率)
    • 功耗
  • 3、功能指標
    • 功能描述
    • 接口定義

六、基於標准單元(STD CELL)的ASIC設計流程

  • 網表:在電子線路設計中,網表(netlist)是用於描述電路元件相互之間連接關系的,一般來說是一個遵循某種比較簡單的標記語法的文本文件。
  • GDSII流格式:常見的縮寫GDSII,是一個數據庫文件格式。它用於集成電路版圖的數據轉換,並成為事實上的工業標准。GDSII是一個二進制文件,其中含有集成電路版圖中的平面的幾何形狀,文本或標簽,以及其他有關信息並可以由層次結構組成。GDSII數據可用於重建所有或部分的版圖信息。它可以用作制作光刻掩膜版。

七、Digital IC Design Flow(總結版)

    • 1、Marketing Request:市場人員提出需求,研發人員參與討論需求的可實現性討論,畢竟有些東西是矛盾,如:性能與功耗,要求性能高,功耗低,這顯然是矛盾的,是需要評估的,是否可以達到預期要求。需求確定好之后,再去改就會比較復雜,所以在這個階段必須確定好,后續基本不動!
    • 2、Artitecture Spec.:需求確定好之后,會去寫架構的文檔,包括兩個部分:整體架構規格書(Top Artitecture Spec.)和具體功能規格書(Project Function Spec.)。其中,整體架構規格書指的是要有什么模塊,諸如:CPU、SRAM、DMA、AMBA等。具體功能規格書指的是具體的指標,諸如:DMA模塊有多少個通道、總的時鍾頻率多少兆、支持的模式有幾種等。
      • 該部分通常用架構工程師(Artitecture Engineer)完成,在有一些公司也稱之為系統工程師(System Engineer,簡稱SE)。該類工程師一般是較為資深的工程師。

  • 3、Arch/Algorithm Emulation:設計好架構之后,就可以做架構/算法方面的仿真。該部分通常使用的工具是C/C++/MATLAB。
    • 該部分通常用算法工程師(Algorithm Engineer)完成。
  • 4、Design Spec.:做設計並不是一開始拿到算法就去寫代碼,而是要做一個設計規格書。類比蓋樓,我們正式砌磚之前也是先要把圖紙規划好。該部分通常包括接口定義(Interface)、時序處理方案(Timing)、關鍵電路繪制(Circuit)。
  • 5、RTL Coding:在上一部分的設計規格書編寫完成之后,就可以進行編程了。通常有VHDL/Verilog/SystemVerilog三種編程語言可供選擇!
    • 通常,Design Spec和RTL Coding這兩部分工作,都是由Design Engineer一個人完成的!對於RTL Coding部分,又可細分為以下三個部分,關系見下圖:【下圖中標注磚紅色部分是驗證工程師所處的位置!】
      • ①、IP Level RTL Coding:先有小的IP,才能有大的SoC。前面做設計是由頂向下,先有架構再有各個模塊。但是實現的時候是由底向上的,先有最小的IP級別的代碼,才會集成更高層次的代碼。
      • ②、IP Level RTL Simulation和IP Level Verification:設計好IP Level代碼之后,我們就可以就行仿真驗證了,小的IP的話通常是Design Engineer自己做的,但是當IP比較大的時候,就會有專門的驗證人員來做!在驗證時,我們會用到一些腳本,如Makefile。用到的仿真工具,主要有三大EDA廠商的:Cadence:Incisive;Synopsys:VCS;Mentor: QuestaSim。「其中VCS最為主流」,QuestaSim用在小的FPGA開發上面,因為它的功能不是很強大!驗證用到的語言有:C/C++/SystemC/SystemVerilog/UVM幾種。在做驗證的時候也會做驗證的Spec文檔,想清楚要驗什么哪些點。完畢之后才會搭環境,跑用例!「驗證的核心是:驗證的完備性」,所以要清楚IP Level這個目標模塊的DUT,要測的功能點都有哪些,得分解全。【以后驗證工程師也是從事這一塊的工作,初級驗證工程師一般都是做IP Level Verification】
      • ③、Unit/Chip Level RTL Simulation和Unit/Chip Level Verification:上面IP Level沒有問題后,合成大模塊Unit/Chip Level,再來做驗證!這一部分的驗證工程師一般叫:Full Chip Verification Engineer,需要工作個4~5年才會讓做!
    • 6、Logic Synthesis和Gate Level Verification:Coding 設計和驗證沒有問題后,此時會進行綜合,會綜合出網表。同時也會對門級網表做驗證,稱之為Gate Level Verification。這個階段更主要的是調試我們的驗證環境,為后端物理實現之后的網表做准備。當前階段的網表含有的信息較少,物理參數沒有,跑起來會更快,調試會方便一點。網表「邏輯功能正確性的驗證是通過FM去保證的」,並不是Gate Level Verification去保證的,這一點要特別注意!關於FM下面也會介紹到。對於綜合工具,當前主流的是Synopsys:Design Compiler(DC)。
      • 邏輯綜合就是把設計實現的RTL代碼映射到特定的工藝庫,輸出成門級網表的Netlist。【「根據Load、Driver映射工藝庫」...】
      • 邏輯綜合需要基於特定的綜合庫,不同的庫中,門電路基本標准單元(Standard Cell)的面積,「時序參數會不一樣」!

  • 7、Formal Verification:邏輯綜合和驗證之后,會進行「形式驗證」,即Formal Verification,簡稱為FM。形式驗證也可稱之為等價性檢查(Equivalence Check)。遍歷所有到“錐底”的點的組合,假如到“錐底”的點有2個,那么組合有4個:00 01 10 11。這時候就會看門級網表“錐底”的結果是4個中哪個,而RTL的結果是4個結果中的哪個,對比是否一樣,稱之為形式驗證!形式驗證的工具有:Cadence:Conformal;Synopsys:Formality。
    • 從功能上(STA是時序上)對綜合后的網表進行驗證。常用的方法是等價性檢查方法,以功能驗證后的HDL設計為參考,對比綜合后的網表功能,他們是否在功能上存在等價性。這樣做是為了保證「在邏輯綜合過程中沒有改變原先HDL描述的電路功能」。
    • 8、STA(Static Timing Analysis):綜合的網表除了要做邏輯的等效之外,還需要做靜態時序分析!電路的結構是RTL級別的,有組合邏輯(與或非門)和時序邏輯(D觸發器)兩種。對於時序邏輯有Setup/Hold(建立時間/保持)要求,組合邏輯的延時會影響到這兩個參數,有可能造成延時太長,造成違例。通常有幾種解決辦法:①、把延遲大的組合邏輯的CELL驅動換的大一點,讓其延時減小。②、在組合邏輯中插入時序邏輯,即添加流水線的方式!
      • 靜態時序分析,這也屬於驗證范疇,它主要屬於驗證范疇,它主要是在時序上對電路進行驗證,檢查電路是否存在建立時間(Setup Time)和保持時間(Hold Time)的違例(Violation)。
      • STA以及綜合通常都會用腳本實現,用的比較多的腳本是TCL!
      • STA Timing滿足,才能得到最終的Netlist。

  • 9、DFT(Design For Test):wafer在制作過程中,因為工藝參數的偏差,造成功能不正確。這個時候會在前端進行一個DFT設計,比如在電路中插入SCAN Chain,這樣的話可以通過外部灌激勵,把內部所有的時序路徑作為一個鏈串起來!比如:外部灌1010,對比輸出序列與預期序列,驗證正確性,得出是否有制造缺陷!當然還可以通過MemBist這種內建自測試,驗證MEM是否有缺陷,它跟SCAN Chain一樣,不需要外部灌激勵,相當於在MEM外圍建立好了測試電路,它的partner可以通過測試電路自己產生,所以叫內建自測試!DFT一般是在網表基礎上去插入的!
  • 10、版圖生成,自動布局布線(PR):以上工作沒問題后,便可以交給后端團隊進行布局布線!如:CELL放在哪個位置,一個chip通常把模擬放在四周,中間放數字邏輯!
  • 11、時鍾樹插入:STA是理想時鍾網路,到每一個D觸發器的clk是同時的,但實際上是有Wire Delay的,甚至有時距離遠還會插入buffer,所以不同的位置D觸發器的相位是有差異的!但是分析的時候,不同D觸發器,想讓Delay盡可能的一致,這時候就需要插入時鍾樹(插入buffer)。
  • 12、DRC/LVS(Design Route Check):上述完成只有會進行一個DRC檢查,而LVS是跟網表的一個對比。
  • 13、Post_Layout STA:這個時候時序的信息就是真實的,時鍾、CELL等等的時序信息是真實的,最終的STA,最終的timing分析!
  • 14、生成最終的GDSII
  • 15、Tap-Out流片

八、數字IC設計全流程總覽圖

九、前端設計深入(RTL -> Netlist)

❝ RTL -> Netlist:RTL代碼到網表
    • Design Spec.:寫設計文檔
    • RTL Coding:寫代碼
      • RTL(Register Transfer Level)設計利用硬件描述語言,如VHDL/Verilog/SystemVerilog,對電路以寄存器之間的傳輸為基礎進行描述

  • 語法檢查:除了語法檢查,還有代碼風格檢查,要確保語法沒有問題才進行下一步仿真。常用的工具有Nlint和Spyglass。
  • 功能仿真(「迭代的過程」):使用諸如VCS/QuestaSim等EDA工具,編寫測試用例,去驗證代碼是否滿足預期「功能」。該功能驗證是前端中的驗證,不同於后期芯片回來之后的「制造驗證」(DFT驗證)。有BUG(可能是DUT的bug,也可能是驗證環境TB的bug),在迭代修改!
  • 邏輯綜合:仿真基本功能沒有問題后,進行邏輯綜合,將RTL的描述映射成門級網表。
    • 將RTL級設計中所得的程序代碼翻譯成實際電路的各種元器件以及他們之間的連接關系,可以用一張表來表示,稱為門級網表(Netlist)
  • 形式驗證(FM):綜合后的網表和RTL功能是否等價,
  • 綜合后仿真(「迭代的過程」):簡稱后仿,「這一步並不是驗證網表的邏輯功能」,該步更多的是進行「調試驗證環境」,為后端階段的后仿做准備。(后端后仿主要是仿一些功耗數據,此時的實際仿真,翻轉率才是更真實的,此時的功耗數據是更真實的,說白了就「是為仿功耗做准備」)當然此時也會順便看一下Netlist是否有一些最基礎的問題,通常這個后仿跑的是比較簡單的系統級別(System Level)的用例,不是IP Level的,是層級比較高的用例。后仿有問題,也會返回修改腳本(約束某條路徑,讓工具優化的更好些)或者代碼(組合邏輯時延修改,讓其滿足我們的要求)!
  • STA(Staic Timing Analysis,靜態時序分析):套用特定的時序模型(Timing Model),針對特定電路分析及其是否違反設計者給定的時序限制(Timing Constraint)。
    • 在時序上對電路進行驗證,檢查電路是否存在建立時間(Setup Time)和保持時間(Hold Time)的違例(Violation)。

整個ASIC設計流程都是一個「迭代」的過程,在任何一步不能滿足要求,都需要重復之前的步驟,甚至重新設計RTL代碼。模擬電路設計的迭代次數甚至更多!

十、后端設計深入(Netlist -> Layout)

❝ Netlist -> Layout:網表到版圖
    • Auto Place and Route(APR):自動布局布線,這個是工具自動化完成的,尤其在當前大規模集成電路,集成度上億門級別的背景下,手動來搞肯定是費力不討好的!工具是自動把Std Cell根據我們限定的范圍區域放置好,當然在PR時,我們會「手動」擺一些Hard單元在同一個Die上(大型芯片),幾個硬核一起做,形成多個sub-chip。如果chip規模太大,工具是有點吃不消的,所以是做成小的hard單元,把這些小的hard單元集成在一起。對於一個hard單元,會「手動」擺一些MEM、模擬IP,並將其放置到邊上。數字部分用工具自動地布局布線放在周圍。當然雖然是自動布局布線,如果我們的設計考慮不周到,也會出現「走線擁塞」(Congestion),這個時候也有可能會去考慮修改RTL,工具布線布不夠,可能會是設計的組合邏輯的密度太大,也可能會是設計的電路結構上有一些「交叉結構」(cross),繞來繞去,導致工具繞不開!
    • Extrat RC和STA:前面綜合去STA的話,用的是一個理想的時序模型(Timing Model)去做的,這個實際上並沒有實際的時序信息,實際CELL擺在哪里,兩個CELL之間的走線延時等信息都是沒有的,因為這個時候還沒有布局布線,兩個的位置都是不確定的,自然沒有這些信息。當位置確定之后,才會真正的去提取這些延時信息(Extrat RC) ,然后再做布局布線之后的STA,此時的STA相較於綜合時的STA,拿到的延時信息就是更真實的!包括時鍾,也是插了時鍾樹之后真正的時鍾走線,時鍾路徑的延時也是更真實的。 如果布局布線之后還有不滿足時序的地方,也會退回去前面的階段進行修改。
      • 時序成功之后,這時候才是最真實的,前面綜合的話相當於是一個負載模型,相當於認為線之間是有一個負載的,同時時鍾也會做一個“過約(正常要跑100M,但是綜合以120M等更高的頻率進行約束)”,因為這個時候線負載是按照一個理想模型的,到了后端之后,則會按照真實的100M去跑了,線負載跟真實之間有一點差異的的話,那么還有20M的余量來消除gap。

  • DRC:時序timing滿足之后,接下來會做設計規則檢查(Design Rule Check,簡稱DRC),這個也是工具自動完成的!
  • LVS:DRC沒有問題之后,會做一個版圖電路圖一致性檢查(Layout Versus Schematic,簡稱LVS),相當於整個版圖布完之后與Netlist的一個對比,類似跟RTL對比用了一個FM一樣,這里就是進行一個:「后端要交付的版圖與前面進來的網表進行邏輯性功能對比」。
  • 后仿真:這里更多的是「仿功耗」,看「電源的完整性」,PR會把電源網絡加入進去,看電源網絡諸如「IR DROP」是否過大,某處std cell某處的密度過大,導致散熱不均勻,時間長了會把芯片燒毀,對器件壽命有影響。

后端大部分工作由工具自動完成,前端的RTL Code以及功能仿真環境用例,都需要人去分析需求規格,去寫測試點,寫測試策略測試方案,后端來講主要是一個Netlist,是一個比較死的東西,大部分工作都是由工具完成!

十一、VLSI設計流程(再次總結)

  • 首先再來詳細介紹下「前端設計中的DFT實現」:DFT實現是在網表中插入,主要做兩件事情:①、插ScanChain ②、插MBist。為芯片流片之后的「制造測試」做准備,芯片制作是在一個wafer上面完成的,這個wafer實現邏輯電路通常會通過光刻、腐蝕等一系列流程,把CMOS管子在wafer上給做出來。這個過程不可避免的出現一些問題,比如腐蝕的劑量多了一點、光刻深度多了一點,導致CMOS功能就可能不是按照我們正常的功能在運行了,或者有些走線stuck,短路等故障,所以需要做DFT電路。
    • ①、 ScanChain :在芯片回來之后,通過DFT的ATPG(Automatic Test Pattern Generation)自動產生測試Pattern ,然后通過芯片的IO,把 Pattern 灌進去,這樣也就會把整個芯片里面的D觸發器串成一個鏈,然后再把Pattern 輸出。那么D觸發器一方面要實現要求的邏輯功能,一方面要實現測試(ATE),此時會在D觸發器的輸入會接一個MUX,這個MUX有兩路這兩路功能。MUX的使能端是SE(Scan Enable),測試的輸入端ATE是SI(Scan Input)。
    • ②、MBist:內建自測試,做邏輯的話我們會遇到大量的邏輯存儲單元(Memory),數字電路的邏輯單元有兩種方式可以實現:①、通過D觸發器來搭,但是面積會比較大 ②、定制Memory,但是是模擬的IP。通常對於D觸發器我們可以進行ScanChain這樣一個測試,那么對於Memory這個模擬IP,我們會進行Mbist(Memory Burn-In Scan Test)測試,Burn-In表示天生的,即整個Pattern 是Memory自己外面包了一層可以自己產生向量的電路,它會對Memory所有空間會進行一個遍歷性測試。它跟D觸發器的ScanChain 不一樣,ScanChain 是接到芯片的IO的,需要通過外面的測試基台,給他灌激勵完成這個測試,但是Memory是不需要外部基台灌激勵的,它是內部的電路自己產生的測試Pattern ,只需要給它一個使能信號,讓它自己測就可以了!

 

從上述的《VLSI設計流程圖》中我們可以看出,整個ASIC設計與實現的「每個階段都是需要做相應的驗證工作」的!甚至包括設計規格書書寫完畢后也要進行一個Review環節進行驗證。整個設計流程是先有市場需求,這也是最主要的,芯片能不能兩場,能不能賣的好,沒有市場需求評估,芯片做的再好也無濟於事。接下來是編寫芯片架構規格書,緊接着從以下三個方面並行開展工作:I、功能驗證;II、ASIC設計與實現;III、性能指標

I、功能驗證

❝ 在「功能」上確保每一步設計與實現的流程轉換時,能夠保證它的邏輯不要變形,所以在《II、ASIC設計與實現》各個階段都對應有不同的驗證手段和工作。
  • 本專欄主要學習的驗證是圖中的「功能仿真」部分,但是這個功能仿真並不是等代碼出來才進行,而是從架構書出來就有了,會去「寫參考模型、測試規划(Test Plan)和分解各個測試點」,同時根據架構書的功能點,梳理出要去驗證哪些功能點,然后根據這些功能點搭建環境,搭建完畢之后,還需要把環境給調試好。這個時候,RTL代碼出來之后,才會把RTL代碼(DUT)集成到驗證環境下,進行功能驗證,「當功能驗證通過之后,才會正式的去做邏輯綜合」。但是在實際工程操作的時候,會給一些初步的代碼給綜合工程師,但是那個綜合僅僅是為了調試環境,並不是正式交付。
  • 「功能仿真」是保證我們的RTL Code與規格的Spec保持一致,所以有時功能仿真也會回頭對比甚至更改設計規格書.,因為此時會設計出很多驗證的邊界,這些邊界是在最開始書寫設計規格書期間是體現不出來的,此時會針對設計本身的邊界去構造一些用例和測試點。
  • 「形式驗證」是進一步保證綜合后的Netlist與RTL之間的邏輯一致性,所以每一步轉換都要做一些驗證性的工作,保證每一步轉換的邏輯是等效的,以防出現問題,影響后續環節!
  • 另外邏輯綜合后也會做一些「門級仿真」,但是這個門級仿真只是跑少量的用例,不會通過它來保證整個的邏輯功能,因為綜合網表跑起來很慢,網標級的描述即門級描述,基於門級的話,DUT信息就很多了!要EDA工具去跑的話,會非常慢!
  • 接下來是「DFT驗證」,確保DFT本身的電路是沒有問題的,DFT驗證與上面的功能仿真驗證時類似的,當然DFT的驗證沒有功能驗證做的那么復雜,因為它的電路結構一般比較固定,所以一般直接集成先前項目的DFT驗證環境直接跑就可以,並且他的功能也沒有RTL那么復雜。
  • 接下來當進行自動布局布線后,也會去做「形式驗證」。此時是為了確保布局布線之后的網表與綜合的網表邏輯是一致的,而綜合的網表邏輯要求與RTL邏輯功能一致,這樣就能確保布局布線之后的版圖邏輯功能與RTL一致。
  • 同時自動布局布線后,也會去做「后仿」。但是此時最主要的並不是為了看我們的功能,而是看我們的「功耗和電源分布」,是否有過熱的點,IR DROP是否可以滿足等。
  • 最后還有一個「版圖驗證(LVS)」,保證最終要流片的東西,與布局布線的網表功能是一致的。

III、性能指標

❝ 更多的是從「性能」的維度,來看看我們在《II、ASIC設計與實現》的每個階段,需要去做哪些事情。
    • 在設計規格書階段,需要去關注速度(時鍾頻率能跑多高)和功耗(是否可以達到預期要求),當然了,速度和功耗也是一對tradeoff(性價比)的東西,速度高,功耗肯定就比較大。這就需要設計來做一個平衡折中(tradeoff)。
    • 在RTL Coding階段,會去做一些低功耗設計,當然在設計規格書階段也會把(低)功耗的策略考慮進去,此時更多的是做一個門控時鍾的工作(Clock Gating),主要是通過「代碼的風格」來保證!
    • 在邏輯綜合階段,就會涉及到時序約束和低功耗約束(Universal Power Format,簡稱UPF),即本來時鍾是跑的100M,但是綜合的時候可能會按照更高的頻率120M去約束,會留個20M的余量,因為綜合這個階段的時序是一個負載模型,即CELL的位置、CELL的距離、走線延時等信息都不是真實的,這個時候是用的一個假的模型來代替的,很簡單的模型。所以會做一些「過約束」,留下一些余量。
      • 低功耗約束(UPF)是描述整個的power划分,通過划分在進行綜合的時候,也是對綜合結果的一個約束。

  • 綜合完畢后,在上述兩個約束條件下, 生成綜合時序報告和功耗分析報告。根據報告再去迭代修改約束甚至代碼。
  • 對於后端自動布線的階段也會做靜態時序分析,主要是針對不同的階段。一個時序分析是在Pre-Layout,即Layout之前;一個時序分析是在插了時鍾樹(Clock Tree,簡稱CTS)之后,此時時鍾的時序路徑就更真實了;最后一個時序分析是在Post-Layout,即版圖固定好了。同時也會進行一個低功耗的分析,在后端做低功耗更多的是一個CELL的替換,看看某些路徑或CELL的時序余量(Margin),如果余量(margin)很大,那么會替換成cell比較小的,如:從“x4”換成“x2”。驅動越小,CELL的延時會越大,對於setup hold的滿足就會越困難。通過timing分析發現它的時序是有余量的,我們將其降成“x2”也可以滿足的話,我們就換替換cell。即該階段的低功耗分析主要是替換cell的類型,將時序路徑比較好的cell替換成功耗比較低的cell。但是這個階段的功耗收益一般不大,能有5%。所以低功耗設計的最主要的還是最初的設計架構,工藝選型,Power Format的划分,需求的優化控制,這些對功耗影響很大。對於后端階段,雖然也會去做低功耗,但是從系統角度來講,優化的收益比例不是那么大。
  • 對於版圖的話,會再去做最后的時序收斂(Timing Signoff),所以Timing這個東西其實很關鍵,因為只要有任何一個點Timing不滿足,那么前面邏輯功能做的再好,最后芯片還是有缺陷。所以除了功能要OK,性能上的Timing也要OK。功能上保證了邏輯性(Loigc),Timing保證了物理實現。【Timing是D觸發的CELL的要求,即物理期間的要求】
  • 最后也會看功耗/IR Drop的分析,主要看IR Drop,即不能有過熱的點,IR Drop過大,會導致整個散熱不均勻,器件長期運行會燒毀或縮短壽命,加速它的老化等。

最后再來看一下《VLSI設計流程圖》最右側的工藝庫

❝ 工藝庫中的器件,我們都稱之為std cell,這個工藝庫是流片廠商(Fab)提供的!
  • 在前端階段我們使用的是一個邏輯庫,CELL能體現的是某個「邏輯」功能(與或非)。
  • 在后端階段,CELL更多體現的是它的「物理」特性和電氣特性,如CELL的工作電壓、負載、電容容抗cap、功耗等特性。當然這里物理庫是包含了邏輯庫的邏輯信息的!

十二、復習回顧

1、詳細介紹數字集成電路設計的流程?

❝ 本節講述了一個簡單流程、一個復雜流程、以及前端和后端的詳細展開、最后還有一張總結的圖。

2、詳細介紹數字設計流程中每個階段主要做哪些工作?

3、詳細介紹數字設計流程中每個階段使用的主要EDA工具有哪些?

4、畫出數字IC電路設計流程以及使用的相關EDA工具?

5、畫出SoC芯片架構圖,熟悉該芯片的應用場景和數據流?

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM