數字電路與系統設計 總結數字電路設計的一般方法?
總結數字電路設計的一般方法?我是西北工業大學計算機學院微電子研究所的。現在是微電子所的研究生,專業是數字集成電路設計。第一屆研究生上學期,初步掌握了數字集成電路后端綜合設計方法。本學術素養課程報告主要

總結數字電路設計的一般方法?
我是西北工業大學計算機學院微電子研究所的。現在是微電子所的研究生,專業是數字集成電路設計。第一屆研究生上學期,初步掌握了數字集成電路后端綜合設計方法。本學術素養課程報告主要探討了實現后端過程中的方法、經驗和相關感悟。
一般來說,軟件工程師和硬件工程師的需求量是10:1,也就是說硬件工程師的需求量比軟件工程師的需求量小很多。硬件工程師分為模擬和數字兩類。模擬集成電路設計主要包括ADC、DAC、PLL等。而數字集成電路設計更傾向于具有特定功能的芯片,如CPU、GPU、MCU、MPU、DSP等。
其實到了現階段,數字集成電路的設計方法已經非常類似于借助EDA工具進行軟件開發。典型的數字集成電路開發一般包括以下步驟:
1.根據需求,自頂向下設計電路模塊,定義數字系統需要實現什么功能,然后再細分到各個功能模塊。此時,的設計形式一般是框圖,通過visio或其他繪圖軟件來實現。這個環節雖然松散,但是很重要,因為在根據需求設計大模塊和指標的時候,一定要結合實際情況,否則后期會經歷無限的返工,甚至達不到預定的指標。一般由德高望重、經驗豐富的工程師進行整體設計。
2.定義好每個模塊之后,接下來就是實現每個模塊的功能。由于硬件描述語言的存在,我們可以很容易地通過硬件描述語言“寫出”模塊的實現方法。在這個實驗中,我使用了Verilog HDL。具體代碼的復雜程度與模塊的復雜程度有關。在這個實驗中,我采用了“八位格雷碼計數器”的電路設計。
3.“八位格雷碼計數器”的Verilog代碼完成后,需要進行“預模擬”設計。所謂預仿真,主要是驗證代碼描述是否正確,計劃的功能是否真正實現。通用modelsim軟件用于仿真。如果模擬成功,將進入下一階段。如果不成功,需要返回修改后的代碼。
4.預仿真成功后,具有正確功能的Verilog設計代碼已經可用。此時,可以將代碼下載到FPGA板進行驗證(JTAG Quartus)。成功的驗證證明了設計的正確性。對于一些集成度要求低、時間緊的數字電路設計項目,可以直接用FPGA實現芯片功能。顯然,FPGA這種通用器件無法滿足高集成度、低功耗、高專用性的ASIC設計要求,只能用于更簡單、更粗糙的設計。
5.接下來,進入后端流程。這時候就需要專門的服務器和昂貴的EDA工具。這也是硬件設計入門難的原因之一。如果一個從未接觸過軟件編程的有志青年立志做軟件工程,一般一臺電腦一本書就夠了。最多買個正版編譯器(VS,Eclipse,DW等。),但是做硬件電路設計,一臺電腦一本書最多能畫PCB。要做核心部分,就必須使用強大的服務器和昂貴的EDA工具,因為普通PC承擔不起“后端集成”的工作。而且linux下大量復雜的操作也會讓人望而卻步。
6.后端平臺準備好之后,就可以把“八位格雷碼計數器”放入平臺了。這時候,需要馬上考慮的問題是,用什么組件庫,用什么流程?因為同一個與非門,不同的元件庫實現細節不同,MOS管細節可能差別很大。此外,我們還要考慮技術。這些技術的文件來自相關制造商(TSMC、CSMS等)。),這也是個人做不了后端的原因之一。3354因為你幾乎不可能以自己的名義與TSMC討論技術圖書館文件。畢竟作為一個沒有錢和技術的初學者,你不可能自信的和幾萬人一樣。仔細篩選后(大多數情況下,沒有選擇),確定你要用的流程。這個實驗我用的是實驗室學長改進的組件庫和TSMC 0.18um工藝,EDA工具是Cadence IC 614。
7.經過一系列配置,“八位格雷碼計數器”已經成為一個龐大的工程文件。我建議配置TCL腳本文件。那么可以執行RTL級合成。所謂的RTL級合成實際上是指將Verilog代碼“改寫”成合成工具(我用的是Encounter)可以識別的Verilog代碼。總的來說,這類似于C語言把“文言文”翻譯成“白話文”和“編譯”,也就是把高級語言翻譯成匯編代碼。當然,理論上可以直接寫RTL級代碼,但是就像直接寫匯編語言一樣,復雜度不言而喻。
8.在RTL級合成完成后,RTL Verilog將被導入到真正的后端合成遇到。導入RTL碼后,還需要解釋標準單元庫的LEF文件,定義電源和地的線名。這時候就需要一個MMMC config配置,過程比較復雜,主要是配置相關文件和設備狀態(TT、ss、FF等。).
9.完成導入配置,接著是芯片版圖設計,即布圖規劃。Floorplan需要設置一些基本的參數,比如芯片的長寬(面積),引腳留的空間,芯片的利用率等等。長寬比建議為0.2-5,復雜電路利用率為0.85,一般電路為0.90,簡單電路為0.95。
10.功率計算,電力線排列的依據,主要是環形和條形。比如一個數字電路芯片的功耗是55mW,冗余增加到2倍左右,設計成100mW,電流按照1.8V大概是60mA也就是電源線總長度是60 U,如果每條線是10u,那么電源線就有6條,兩邊1條,中間4條。在遭遇戰中有專門的接線配置器。接線后,可以先申請,再撤銷重復嘗試。
11.IO引腳的布局。如果IO沒有提前導入,可以重新導入(TCL)或者自己調整。
12.前置,因為Verilog中往往有很多模塊,每個模塊對應一個布局模塊。布局時要注意一些布局原則。一般只需要簡單的拖拽就可以完成布局。“八位格雷碼計數器”只有一個模塊,所以不需要復雜的布局。
13.布局是一個不斷修改和完善的過程。放置是在前置后進行,然后是后置。布局之后,需要時鐘樹綜合(CTS)。時鐘樹綜合的目的是使每一個信號在約束時間內傳輸到下一個順序單元,否則會影響芯片的主頻(主頻是設計前設定的一個指標),然后在Post-CTS中進行不滿足時鐘約束的部分的布線調整。
14.布局后,布線,即路線。對于特殊布線,需要SRoute,然后進行后置處理。這些步驟在某種程度上是“點擊按鈕”和“匹配參數”,但是你在合成后端的時候一定要有清醒的頭腦。您必須知道為什么需要這些按鈕,以及需要配置哪些參數。
15.經過多次布局布線迭代,配置好IO引腳后,就可以填充整個畫面,不用的區域可以覆蓋各種金屬層。單個“八位格雷碼計數器”由于結構簡單而具有較大的未覆蓋面積。
16.至此,邂逅中的后端綜合已經完成,GDSII格式的網表可以導出了。為了檢查DRC和LVS,還需要將“網表”格式轉換為原理圖(電路原理圖)。
17.將后端集成的GDSII文件導入Virtuoso。Virtuoso是一款模擬集成電路設計軟件。將GDSII文件導入該軟件有兩個主要目的。首先可以在Virtuoso中做“后仿真”,驗證概念芯片經過一系列后端集成工藝后是否能達到設計要求。此時,仿真已經考慮了延遲、電阻、功耗等實際問題。如果仿真出現問題,需要返工修改,必要時需要重新布置布局和布線。“后仿真”通過后,芯片應由DRC和LVS檢查。DRC是檢查是否符合所選工藝的要求,因為在實際情況下,有些理論值是不切實際的,比如太細的導線無法制作,柵極之間的距離太短可能導致短路,導線與各種金屬層之間的電容會影響電路功能。LVS是比較版圖和原理圖之間的拓撲關系是否不一致。其次,可以方便以后設計數模混合芯片,因為模擬集成電路是直接在Virtuoso中實現的,最后可以將兩者結合在一起設計數模混合集成電路。
18.檢驗后,您可以聯系工藝供應商進行加工,如TSMC。一般處理需要跟上企業的業務流程。大約一個月后,芯片完成加工,然后進入測試階段。焊接,測試,驗證芯片指標,提出改進方案。
至此,一個數字集成電路從概念到實物的全過程已經完成,每一步都值得研究和回味。從第二個解碼器到復雜的CPU,過程基本相同。經過一個學期的學習,我已經基本掌握了這個流程。今后我們會更加努力,在這個專業上繼續前進,培養自己的核心競爭力。