日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【数字IC设计】001. IC设计基础

發布時間:2023/12/9 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【数字IC设计】001. IC设计基础 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.1 集成電路設計基礎(IC設計)

集成電路(Integrated Circuit,IC)又稱芯片,是現代信息社會的基石,它承載了信息時代的靈魂,是現代技術發展的精華結晶,所有現代的電子設備都必須依賴于芯片才能發揮出完全功效。集成電路現在已經演變為一個完整且獨立的設備形態,單個芯片就可以完成一個傳統的設備系統功能,達到真正的System on Chip(SoC)。現在任何一部智能手機的處理器芯片的處理能力就遠超80年代的大型計算機了,同時,芯片也在朝著各個應用領域和應用場景演進,例如可穿戴式芯片,微機械芯片等。
一個典型的集成電路芯片,集成了大量的功能部件,包括模擬電路、數字電路以及CPU。數字電路主要用于數字信號的處理,模擬電路主要是由電容、電阻、晶體管等組成的,用于模擬信號的處理,主要包括射頻電路(RF)、功率放大器(PA與LNA)、鎖相環(PLL)、模擬濾波器、電源管理等。
對于單一功能的電路而言,采用純粹的硬件邏輯設計方案基本能夠滿足應用需求。但對于通信系統或者移動互聯網應用而言,芯片的功能需求時刻變化,應對的客戶群體也形形色色,如果采用純粹的硬件邏輯,必然使應用市場極為狹窄,因此復雜的系統級芯片必須SoC化或者軟件化。
SoC化的優點很明顯,對于同樣的芯片,通過加載不同的應用軟件,實現不同的功能定義,實現單一的芯片的通用化,從而達到單片成本最小化。因此在后續的設計中,需要熟悉如何將一個單純的邏輯電路改造為能夠支持各種軟件定義的功能器件,實現芯片功能覆蓋的軟件化。

1.1.1 硬件與軟件的優缺點對比

  • 硬件的優點:
    (1)吞吐率高、全并行化處理,相對于軟件可以實現10~100倍的性能提升;
    (2)相對于CPU/DSP設計而言,復雜度較低,整體規劃簡單;
    (3)軟件設計相對于簡單,而且代碼精簡;
  • 硬件的缺點:
    (1)成本較高,需要額外的硬件資源,芯片面積相對較大,此外還有大量IP使用費用;
    (2)研發時間很長,從概念原型到RTL編寫驗證至少6個月;
    (3)一次成功率較低,通常需要多次迭代驗證才能正常工作;
  • 軟件的優點:
    (1)成本較低,可以隨時添加功能,而且不會隨著芯片量產而發生變化;
    (2)調試簡單,無須考慮時序收斂,功耗控制相對容易;
  • 軟件的缺點:
    (1)相對于硬件實現而言,性能較差;
    (2)算法實現對CPU/DSP的處理速度、存儲容量有較高要求;
    (3)由于軟件開發的不確定性因素很多,所以芯片上市后,還需要發布大量的補丁版本;
  • 1.1.2 集成電路設計中的分工層次

    IC設計通常包含多個方向,包括算法設計、系統架構、數字電路設計(數字前端)、模擬電路設計、版圖設計、測試驗證、數字后端與DFT(Design For Test)、芯片生產測試設計(DFM設計)、芯片固件與軟件設計、電路板與應用原型開發等,只有將這些完整的組合在一起,才能設計出一個完善的、具有一定競爭力、能被市場接受的芯片。下圖為芯片分工層次圖。

    根據不同的方向,對應著不同的工程師,主要可以分為系統架構設計工程師、算法設計工程師、電路設計工程師(數字前端設計工程師和模擬電路設計工程師)、芯片驗證工程師、量產測試工程師、固件與軟件工程師。

  • 系統架構設計工程師
    系統架構設計工程師的設計重點是保證IC芯片的整體架構合理,各個基本單元模塊功能均衡、不存在設計短板,而且芯片在可控性、可驗證性、可測試性以及前后芯片產品的可維護性和延續性上具備卓越的性能。系統架構是整個IC設計中最基礎的工作,產品是否滿足市場和客戶需求、上市時間是否領先競爭對手、功能是否有競爭力、解決方案的成本和芯片良率是否可控,都取決于系統構架。
  • 算法設計工程師
    算法設計工程師的設計重點是保證IC芯片能夠完成特定功能,且設計的算法具備可實施性。算法工程師能夠決定芯片的性能和大部分的成本,同時也是系統構架和電路設計的中間橋梁。
  • 電路設計工程師
    電路設計工程師設計的重點在于將算法精確地用電路實現,同時兼顧功耗、成本和電路可測試性,此外還需要獨立設計模塊控制電路、各種電路膠粘邏輯、時鐘系統、復位系統以及全局控制邏輯。
  • 測試驗證工程師
    測試驗證工程的工作重點在于根據設計規范(Spec)和設計需求,對電路進行測試驗證,驗證工作通常包含白盒測試與黑盒測試,往往需要引入很多的測試方法學(UVM)和測試手段,例如SVA等,此外還需要多個團隊對同一款芯片做全方位的驗證。
  • 固件與軟件工程師
    固件與軟件工程師的工作重點在于配合電路設計工程師將整個IC芯片運行起來,充分挖掘芯片的功能潛力,并提供各種擴展創意。在當前的IC設計領域,固件與軟件的開發工作量已經占據整個芯片開發的60%以上,而且還在持續增加,出現這種情況的原因在于單純的電路邏輯無法應對靈活多變的市場需求,必須通過隨時可變的軟件進行應對。例如現在的LTE終端芯片,除射頻信號處理外,所有的基帶(baseband)都是可控和可編程的,而協議處理則基本交給多核CPU或DSP進行。現在很多領先的無線通信芯片設計公司,對軟件設計的劃分更加詳細,包括軟件平臺(操作系統、設備驅動)、物理層協議軟件、MAC協議處理、高層協議棧以及應用軟件等。因此,對于芯片設計而言,軟件就是整個芯片的靈魂,對于任何一款智能芯片的開發,首先應當想到的是如何靈活配置,并引入適當的軟件支持。
    所以,我們不僅僅要會數字IC設計的能力,如果有時間精力那么還需要去掌握系統設計、算法、驗證、軟件等基礎知識。
  • 1.1.3 IC設計流程

    IC設計的主要流程可以通過下圖來描述:

    基于HDL的設計流程,主要包含系統架構設計、軟件結構設計和ASIC硬件設計三大部分。在芯片設計時,必須了解整個系統的應用場景,定義出合理的芯片架構,使得軟硬件結合達到系統最佳工作狀態。此外,需要建立起以IP復用或更大的平臺復用為基礎的觀念,在整個流程中既要以IP復用為基礎,又要將當前設計作為下一輪設計的IP和基礎平臺。基于HDL的設計流程如下:

  • 系統需求指定
    系統設計主要是從需求確認開始,包含系統基本輸入和輸出及基本算法需求,以及系統要求的功能、性能、功耗、成本和開發時間等。通常會將用戶的需求轉換為用于設計的技術文檔,并初步確定系統的設計流程。這個階段是整個芯片項目開發中最重要的階段,各類設計框架、驗證模型均需要此階段完成。
  • 高級算法建模與仿真
    設計者將使用高級語言創建整個系統的高級算法模型和仿真模型。有了高級算法模型便可以得到軟硬件協同仿真所需的可執行的說明文檔,此類文檔會隨著設計進程的深入而不斷地完善和細化。
  • 軟硬件劃分過程
    設計者通過軟硬件劃分來決定哪些功能應該由硬件完成,哪些功能應該由軟件來完成。此外,該步驟還涉及軟硬件頂層設計與內部基本模塊的劃分。對于硬件而言,需要確定整體實現框架,包括全局模塊設定(時鐘、復位、功耗控制等)、主控模塊實現方案、數據流(Data Flow)分解方案及接口時序、總線或數據交換接口設計、調試接口以及驗證接口。硬件框架確定后,建立各種適合軟硬件交互的驗證環境。對于軟件而言,則是在硬件框架基礎上確定軟件框架,包括確定HAL(硬件抽象層)、設計驅動與軟件平臺,底層軟件、高層軟件、應用軟件及測試軟件的層次劃分以及相互調用接口。此外,軟件還需要設計整體的自動測試框架。如果芯片開發者追求高效的軟硬件結合,還應當根據敏捷開發的要求,設計以面向測試為中心的軟硬件框架。
    軟硬件劃分以及內部框架的確認是一個需要反復評估、修改直至滿足系統需求的過程。
  • 軟硬件同步設計
    由于軟硬件的分工已明確,芯片的架構及軟件的接口也已定義,接下來便可以進行軟硬件的同步設計了。其中硬件設計包括RTL設計和集成、綜合、布局布線及最后的流片。軟件設計則包括算法優化、應用開發,以及操作系統、接口驅動和應用軟件的開發。
  • 1.1.4 IC硬件設計流程

    從HDL設計到最終版圖實現的設計流程如下圖所示,基本上每個步驟都會用到某款EDA工具,這里最核心的設計源頭還是硬件設計定義說明、模塊設計(RTL代碼變換)與IP復用。

  • 硬件設計定義說明(Hardware Design Specification)
    硬件設計定義說明用于描述芯片總體結構、規格參數、模塊劃分、使用的總線以及各個模塊的詳細定義等。
  • 模塊設計與IP復用
    對于需要重新設計的模塊進行設計,對于可復用的IP核可根據總線接口標準做一定的修改。
  • 頂層模塊集成
    頂層模塊集成是將各個不同的功能模塊(包括新設計的與復用的)整合在一起,形成一個完整的設計。設計的重點包括時鐘模塊、復位模塊、功率控制等全局信號和各種頂層IP集成。對于ASIC 而言,還需要考慮IO PAD配置。
  • 布局前仿真(Pre-layout Simulation)
    布局前仿真也叫RTL級仿真,通常通過HDL仿真器驗證電路邏輯功能是否有效。通常在ASIC中采用的是Synopsys的VCS來進行驗證。
  • 邏輯綜合(Logic Synthesis)
    邏輯綜合主要采用EDA工具把硬件描述語言設計的電路自動轉換成特定工藝下的網表,也就是將RTL級的HDL代碼通過編譯與優化產生符合約束條件的燜雞網表。這個階段會輸出邏輯綜合網表和時序信息,用戶可以進行初步的時序仿真,并找出可能存在的邏輯時序問題。
  • 版圖布局規劃(Floorplan)
    版圖布局規劃完成的任務是確定設計中各個模塊在版圖上的位置,主要包括:
    (1)I/O 規劃:確定I/O的位置,定義電源和接地口的位置;
    (2)模塊放置:定義各種物理的組、區域或模塊,對宏單元進行預放置;
    (3)供電設計:設計整個版圖的供電網絡,基于電壓降(IR Drop)和電遷移進行拓撲優化。
  • 功耗分析(Power Analysis)
    在版圖布局規劃后,需要對電源網絡進行功耗分析,確定電源引腳的位置和電源線寬度。在完成布局布線后,需要對整個版圖的布局進行動態功耗分析和靜態功耗分析。除了對版圖進行功耗分析以外,還應通過仿真工具快速計算動態功耗,找出主要的功耗模塊或單元,并返回到模塊設計階段進行優化。可以常用Spyglass工具。
  • 單元布局和優化
    單元布局和優化主要定義了每個標準單元的擺放位置并根據擺放的位置進行優化。
  • 靜態時序分析(Static Timing Analysis - STA)
    STA是一種靜態驗證方法,通過對所提取電路中所有路徑上的延遲等信息的分析,計算出信號在時序路徑上的延遲,找出違背時序約束的錯誤,如檢查建立時間和保持時間是否滿足要求。通常采用Primetime工具。
  • 形式驗證(Formal Verification)
    形式驗證也是一種靜態驗證方法,在整個設計流程中會多次引入形式驗證以比較RTL代碼之間、門級網表與RTL代碼之間,以及門級網表之間在修改之前與修改之后功能的一致性。常用工具有Formality,Conformal以及Spyglass。
  • 可測試性電路插入(Design for Test - DFT)
    可測試性設計是SOC設計中的重要一步,對于邏輯電路采用掃描鏈的可測試結構,對于芯片的輸入/輸出端口采用邊界掃描的可測試結構。基本思想是通過插入掃描鏈,增加電路內部節點的可控性和可觀測性,以達到提高測試效率的目的。一般在邏輯綜合或者物理綜合后進行掃描電路的插入和優化。
  • 時鐘書綜合(Clock Tree Synthesis)
    SoC設計方法強調同步電路的設計,構建芯片內部全局或局部平衡的時鐘鏈的過程稱為時鐘樹綜合。分布在芯片內部的寄存器和時鐘的驅動電路構成了一種樹狀結構,這種結構稱為時鐘樹,時鐘樹綜合是在布線設計之前進行的。
  • 布線設計(Routing)
    這一階段完成所有節點的連接,類似于在電路PCB設計時,將各個元器件的連線在PCB上擺放好。
  • 寄生參數提取(Parasitic Extraction)
    通過提取版圖上內部互連所產生的寄生電阻和電容值,進而得到版圖實現后的真實時序信息,這些寄生電路信息將用于進行靜態時序分析和后仿真。
  • 布局后仿真(Post-layout Simulation)
    布局后仿真也叫門級仿真、時序仿真、帶反標的仿真,需要利用在布局布線后獲得的精確延遲參數和網表進行仿真,驗證網表的功能和時序是否正確。布局后仿真一般使用標準延時(Standard Delay Format- SDF)文件來輸入延時信息。
  • ECO修改
    ECO修改是工程修改命令的意思,這一步實際上是正常設計流程的一個例外,當在設計的最后階段發現個別路徑有時序問題或者邏輯錯誤時,有必要通過ECO對設計的局部進行小范圍的修改和重新布線,而不影響芯片其余部分的布局布線。
  • 物理驗證
    物理驗證是對版圖的設計規則檢查(Design Rule Check - DRC)及邏輯圖網表和版圖網表比較(Layout Vs. Schematic - LVS)。
  • DRC用以保證制造良率
    LVS用以確認電路版圖網表結構是否與原始原理圖一致。
  • 總結

    以上是生活随笔為你收集整理的【数字IC设计】001. IC设计基础的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。