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