最近的私信咨詢里,很多同學分不清數字IC設計前端和后端的區(qū)別,前端設計似乎很容易理解,簡單來說就是敲代碼的,只不過沒有用C++和python,用的是硬件描述語言Verilog。
但一說到后端設計,很多同學就懵了,邏輯綜合,布局布線,這都什么意思?
甚至有些人一聽到后端就以為是做工藝的。(后端設計:“你禮貌嗎?”)
從薪資待遇上來說,數字IC的三個崗位(前端設計、功能驗證、后端設計)其實是相差不大的,只是有些同學因為一知半解的緣故,原本更適合做后端,卻草草選了驗證。
所以今天我們來重點說一下后端設計的職能要求和設計環(huán)節(jié),希望能夠讓各位同學清楚了解到后端設計到底是在做哪些工作!
01職能要求
首先作為后端設計實現的我們,主要工作就是將前端設計的RTL代碼轉化成門級網表,最終生成GDSⅡ文件,到這里就可以拿到工廠進行流片生產了。
而后端所起的價值,就是在滿足設計要求的情況下,盡可能通過自己的經驗知識來加速設計的迭代,加快項目的進展,但是在每個階段又分很多不同的努力。 大公司對于前后端的分工較為明確,各司其職。但是也有一些設計公司,給后端設計者們的是rtl的代碼和基本的約束,需要我們自己去做邏輯綜合。這里分為兩種工具,分別是Synopsys的DC和Cadence的Gunus。
通過綜合,我們可以得到后端設計的必需元素之一,網表。關于邏輯綜合,這里后續(xù)我們會展開來說。
一般來說,我們得到一個滿足要求的網表之后,就可以進行后續(xù)的PD工作了(physical design ,物理設計。關于設計中常用的縮寫及介紹后續(xù)也會有專門的名詞解釋模塊,幫助各位更快融入設計)
接下來進入主要的設計環(huán)節(jié),主要的設計工具分為兩種,分別是Synopsys的ICC2和Cadence的Innovus。
02設計環(huán)節(jié)
后端設計就是從輸入網表到輸出GDSII文件的過程:主要分為以下六個步驟:
1.邏輯綜合
邏輯綜合就是把HDL代碼翻譯成門級網表netlist。
綜合需要設定約束條件,就是你希望綜合出來的電路在面積,時序等目標參數上達到的標準。邏輯綜合需要基于特定的綜合庫,不同的庫中,門電路基本標準單元(standard cell)的面積,時序參數是不一樣的。所以,綜合庫不一樣,綜合出來的電路在時序,面積上是有差異的。一般來說,綜合完成后需要再次做仿真驗證(這個也稱為后仿真)
2. 形式驗證
驗證芯片功能的一致性
不驗證電路本身的正確性
每次電路改變后都需驗證
形式驗證的意義在于保障芯片設計的一致性,一般在邏輯綜合,布局布線完成后必須做。
工具:synopsys Formality
3. 物理實現
物理實現可以分為三個部分:
布圖規(guī)劃floor plan
布圖規(guī)劃是整個后端流程中最重要的一步,但也是彈性最大的一步。因為沒有標準的最佳方案,但又有很多細節(jié)需要考量。
布局布線的目標:優(yōu)化芯片的面積,時序收斂,穩(wěn)定,方便走線。
工具:IC compiler,Encounter
布局(place)
布局即擺放標準單元,I/O pad,宏單元來實現個電路邏輯。
布局目標:利用率越高越好,總線長越短越好,時序越快越好。
但利用率越高,布線就越困難;總線長越長,時序就越慢。因此要做到以上三個參數的最佳平衡。
布線route
布線是指在滿足工藝規(guī)則和布線層數限制、線寬、線間距限制和各線網可靠絕緣的電性能約束條件下,根據電路的連接關系,將各單元和I/O pad用互連線連接起來。
4. 時鐘樹綜合——CTS
Clock Tree Synthesis,時鐘樹綜合,簡單點說就是時鐘的布線。
由于時鐘信號在數字芯片的全局指揮作用,它的分布應該是對稱式的連到各個寄存器單元,從而使時鐘從同一個時鐘源到達各個寄存器時,時鐘延遲差異最小。這也是為什么時鐘信號需要單獨布線的原因。
5. 寄生參數提取
由于導線本身存在的電阻,相鄰導線之間的互感,耦合電容在芯片內部會產生信號噪聲,串擾和反射。這些效應會產生信號完整性問題,導致信號電壓波動和變化,如果嚴重就會導致信號失真錯誤。提取寄生參數進行再次的分析驗證,分析信號完整性問題是非常重要的。
工具Synopsys的Star-RCXT
6.版圖物理驗證
這一環(huán)節(jié)是對完成布線的物理版圖進行功能和時序上的驗證,大概包含以下方面:
LVS(Layout Vs Schematic)驗證:簡單說,就是版圖與邏輯綜合后的門級電路圖的對比驗證;
DRC(Design Rule Checking):設計規(guī)則檢查,檢查連線間距,連線寬度等是否滿足工藝要求;
ERC(Electrical Rule Checking):電氣規(guī)則檢查,檢查短路和開路等電氣規(guī)則違例;
實際的后端流程還包括電路功耗分析,以及隨著制造工藝不斷進步產生的DFM(可制造性設計)問題等。
物理版圖以GDSII的文件格式交給芯片代工廠(稱為Foundry)在晶圓硅片上做出實際的電路。
最后進行封裝和測試,就得到了我們實際看見的芯片。
設計過程的大致步驟基本如上。但是對于一個設計,這遠遠不夠,同時,工具的操作并不一定,或者說大概率會存在問題。所以后續(xù)還需要設計者進行手動的操作。主要包括像時序的修復,drc,lvs的修復等等。后續(xù)將對設計后期的一些進行詳細的說明。
以上內容即是對后端設計的大體描述了,可能在某些小白同學看來還是有些似懂非懂,但在有一定數電模電基礎后,了解芯片設計全流程的內容之后,就會有豁然開朗的感覺。