上一集我們已經(jīng)說(shuō)了,模擬IC,更像是一種魔法。
我們深度解釋了這種魔法的本質(zhì),以及如何在模擬芯片設(shè)計(jì)的不同階段,根據(jù)常見(jiàn)的EDA工具特性和原理,從計(jì)算角度幫助模擬工程師更高效地完成吟唱施法。
芯片設(shè)計(jì)五部曲之一 | 聲光魔法師——模擬IC
第二集:數(shù)字IC
假如我們想要錄制一段聲音,模擬信號(hào)的做法是把所有的聲音信息用一段連續(xù)變化的電磁波或電壓信號(hào)原原本本地記錄下來(lái)。而按照一定的規(guī)則將其轉(zhuǎn)換為一串二進(jìn)制數(shù)0和1,然后用兩種狀態(tài)的信號(hào)來(lái)表示它們,這叫數(shù)字信號(hào)。
處理數(shù)字信號(hào)的芯片就是數(shù)字芯片,比如常見(jiàn)的CPU、GPU。
當(dāng)聲音變大或變小了,模擬信號(hào)都會(huì)跟著變化,所以模擬信號(hào)有無(wú)數(shù)種狀態(tài)。狀態(tài)之間微妙的差異,需要人的經(jīng)驗(yàn)判斷,有點(diǎn)玄學(xué)的成分。
而數(shù)字信號(hào)永遠(yuǎn)只有0和1兩種狀態(tài),信號(hào)的轉(zhuǎn)換嚴(yán)格遵循邏輯關(guān)系,一個(gè)輸出對(duì)應(yīng)唯一確定的結(jié)果,程序完全依照輸出指令執(zhí)行,這是科學(xué)。
數(shù)字IC設(shè)計(jì)工程師的設(shè)計(jì)目標(biāo):在PPA(Power、Performance、Area)三個(gè)指標(biāo)上追求完美的平衡。
怎么玩轉(zhuǎn)這門科學(xué)?
這,是一種藝術(shù)。
今天,我們就從資源需求、并行特征、數(shù)據(jù)敏感度等角度展開(kāi)聊聊在數(shù)字芯片設(shè)計(jì)各階段,如何利用不同EDA工具的特點(diǎn),讓數(shù)字芯片的設(shè)計(jì)研發(fā)效率獲得顯著提升。
和模擬芯片相呼應(yīng),這篇還是從計(jì)算角度出發(fā),至于調(diào)度/管理/數(shù)據(jù)/協(xié)同/CAD等視角,會(huì)在后面的文章里體現(xiàn)~(比如第三集
和模擬相比,數(shù)字芯片需要使用EDA工具的場(chǎng)景更多,IC工程師們對(duì)于計(jì)算機(jī)的使用天然比較親近。但就跟《解密一顆芯片設(shè)計(jì)的全生命周期算力需求》一樣,只負(fù)責(zé)某項(xiàng)工作的研發(fā)可能不關(guān)心,或者只了解自己的這部分,IT對(duì)業(yè)務(wù)所知有限,也不一定清楚。除非有大佬坐鎮(zhèn),大多數(shù)公司的日常大概是以拍腦袋經(jīng)驗(yàn)論為主。
我們先來(lái)看一下大畫(huà)面,數(shù)字芯片設(shè)計(jì)全流程分析圖:
01
數(shù)字前端:前端設(shè)計(jì)/驗(yàn)證
這一階段包含了規(guī)格制定、架構(gòu)設(shè)計(jì)、RTL編碼等步驟。 數(shù)字前端算法仿真和功能驗(yàn)證場(chǎng)景有大量中小任務(wù)并行,這一階段,對(duì)于資源類型和用量通常無(wú)特殊需求。 不過(guò)需注意若大量使用現(xiàn)有IP通常沒(méi)有算法仿真這一步。而且每家公司業(yè)務(wù)不同,算法仿真需求量差異非常大(下一集主角就是ta)。
02
數(shù)字中端:邏輯綜合與DFT實(shí)現(xiàn)
這一階段可分為邏輯綜合、形式驗(yàn)證、門級(jí)仿真、ATPG驗(yàn)證等業(yè)務(wù)場(chǎng)景。 數(shù)字中端呈現(xiàn)單、多任務(wù)混合的特點(diǎn),因?yàn)橛?jì)算的輸入數(shù)據(jù)中包含門延遲信息,輸入數(shù)據(jù)變多,對(duì)內(nèi)存的需求相比前端有一定增長(zhǎng)。ATPG驗(yàn)證建議內(nèi)存優(yōu)化型,其他三種場(chǎng)景更加偏計(jì)算密集型。
03
數(shù)字后端:物理實(shí)現(xiàn)
這一階段包括布局布線、形式驗(yàn)證、版圖驗(yàn)證、寄生參數(shù)提取、后仿、ATPG驗(yàn)證、靜態(tài)時(shí)序分析和IR分析等業(yè)務(wù)場(chǎng)景。 數(shù)字后端基本都是多任務(wù),由于包含版圖的寄生參數(shù),信息量非常大,普遍需要大內(nèi)存機(jī)器。其中,布局布線、后仿、靜態(tài)時(shí)序分析、IR分析的大任務(wù)數(shù)量非常多,對(duì)主頻也有要求,需要兼具高主頻和大內(nèi)存的資源。
資源需求
后端>中端>前端,數(shù)字后端·真·資源黑洞
把數(shù)字IC設(shè)計(jì)前、中、后端三大階段進(jìn)行資源需求對(duì)比。
可以看到無(wú)論是任務(wù)運(yùn)算時(shí)間、所需計(jì)算資源、存儲(chǔ)需求還是IP與輸入數(shù)據(jù)量級(jí)上,數(shù)字前中后端形成了非常明顯的階梯結(jié)構(gòu),整體資源需求呈現(xiàn)前端<中端<后端的趨勢(shì)。 這是由三個(gè)階段的具體工作內(nèi)容決定的:
數(shù)字前端,用RTL代碼將芯片架構(gòu)師的設(shè)計(jì)寫出來(lái),前端驗(yàn)證也主要是針對(duì)RTL的功能進(jìn)行驗(yàn)證,偏邏輯功能。
數(shù)字中端,需要將RTL代碼綜合成網(wǎng)表并規(guī)劃、插入各種用于芯片測(cè)試的邏輯電路,需要加入Foundry廠提供的標(biāo)準(zhǔn)單元庫(kù)的工藝參數(shù),驗(yàn)證也到了邏輯門這一級(jí)。
數(shù)字后端負(fù)責(zé)芯片的物理實(shí)現(xiàn),先將電路網(wǎng)表通過(guò)自動(dòng)布局布線畫(huà)成版圖,再進(jìn)行寄生參數(shù)提取,創(chuàng)建一個(gè)可以精確模擬數(shù)字電路響應(yīng)的模型,這一階段會(huì)加入版圖的寄生參數(shù)。
從代碼到邏輯門電路再到物理層,隨著階段的演進(jìn),信息量逐級(jí)遞增,計(jì)算時(shí)所需消耗的資源量也隨之增加。
而在28nm以及更先進(jìn)制程下,包含的工藝參數(shù)更多,電路更復(fù)雜,前中后端每一階段的信息量級(jí)還會(huì)被進(jìn)一步放大。
哪怕前端RTL基本一致,中端和后端因?yàn)镕oundry廠工藝參數(shù)更多更復(fù)雜,同樣的代碼計(jì)算量也是更大的。
換個(gè)思路,我們舉個(gè)栗子。
通過(guò)一個(gè)在數(shù)字前中后端都會(huì)出場(chǎng)的EDA工具來(lái)看看三大階段的資源需求。
VCS的主要作用是將Verilog HDL(一種硬件描述語(yǔ)言)轉(zhuǎn)成C語(yǔ)言,編譯出來(lái)并執(zhí)行。作為一個(gè)翻譯官,ta的工作量取決于雙方對(duì)話的頻率,以及需要翻譯的文本量。
VCS在前端的功能驗(yàn)證、中端的門級(jí)仿真、后端仿真中都有出場(chǎng),在不同階段對(duì)任務(wù)資源的需求完全不同:
從前端到中端再到后端,雖然VCS的工作性質(zhì)沒(méi)變,但整體來(lái)說(shuō),消耗的資源越來(lái)越多了。
綜上,數(shù)字后端設(shè)計(jì)與驗(yàn)證環(huán)節(jié)相比中端和前端資源需求更高、運(yùn)算時(shí)間更長(zhǎng)、數(shù)據(jù)量更大,往往會(huì)占據(jù)整個(gè)項(xiàng)目周期資源需求量的50%以上。
下圖是我們某客戶全生命周期月度算力實(shí)際用量曲線,可以看到后端的波峰相當(dāng)明顯,詳情戳:解密一顆芯片設(shè)計(jì)的全生命周期算力需求
這也就意味著,數(shù)字后端對(duì)IC設(shè)計(jì)公司的壓力相當(dāng)大,能否在這一階段獲取充足的資源,是提升研發(fā)效率、保障項(xiàng)目進(jìn)度的關(guān)鍵。
典型并行場(chǎng)景
靜態(tài)時(shí)序驗(yàn)證&版圖驗(yàn)證
并行度是我們?cè)u(píng)估任務(wù)能否通過(guò)分布式計(jì)算完成,提升效率的標(biāo)準(zhǔn)之一。 這里涉及到兩個(gè)重要的判斷標(biāo)準(zhǔn):可拆分,互不干擾。 可拆分指的是,大任務(wù)可以分解為小任務(wù),原任務(wù)目標(biāo)不變。
互不干擾指的是,拆分為小任務(wù)之后,任務(wù)之間互相不干擾,可以不同步。
從前端到中端再到后端,任務(wù)數(shù)量越來(lái)越多。
任務(wù)的并行度決定了速度提升的空間。
靜態(tài)時(shí)序驗(yàn)證:最常見(jiàn)且并行度較高
靜態(tài)時(shí)序驗(yàn)證是最常見(jiàn)的設(shè)計(jì)場(chǎng)景之一,基本原理是檢查各信號(hào)通路上經(jīng)過(guò)的門電路,然后累加門延遲,求取整個(gè)路徑的信號(hào)延遲。
沿信號(hào)通路求Delay Time的過(guò)程,就是沿信號(hào)通路不停做簡(jiǎn)單加法。
在靜態(tài)時(shí)序驗(yàn)證過(guò)程中,有一個(gè)PVT的概念。
我們需要驗(yàn)證邏輯門在不同的工藝(Process)、電壓(Voltage)、溫度(Temperature)條件下的延遲。
首先,列出可能的條件,如:
工藝:TT、FF、SS……
電壓:0.9V、1.0V、1.1V……
溫度:-40°C、0°C、25°C……
隨后,窮舉每一種可能性,如:
PVT1=TT、0.9V、-40°C
PVT2=TT、1.0V、25°C
PVT3=TT、1.0V、0°C
……
最后,驗(yàn)證邏輯門在每一種PVT條件下的延遲:
數(shù)字芯片中有著無(wú)數(shù)這樣的邏輯門,每一個(gè)PVT下,邏輯門都有對(duì)應(yīng)的Delay Time,而P、V、T之間可以有很多種組合,就會(huì)有很多個(gè)Delay Time的情況需要驗(yàn)證。
這一場(chǎng)景,天然適合暴力堆機(jī)器。
版圖驗(yàn)證:最高并行度
模擬芯片和數(shù)字芯片,這一場(chǎng)景的原理一模一樣,使用的EDA工具也完全相同。
版圖驗(yàn)證屬于檢查類任務(wù),以模塊為單位,本質(zhì)上是數(shù)據(jù)對(duì)比工作,重內(nèi)存需求,子任務(wù)間沒(méi)有數(shù)據(jù)關(guān)聯(lián),是數(shù)字芯片設(shè)計(jì)與驗(yàn)證中并行度最高的場(chǎng)景。
這一階段很適合利用云上的內(nèi)存優(yōu)化型資源,使用“小F影分身術(shù)”(版圖分割術(shù)),通過(guò)暴力堆資源的方式快速完成任務(wù)。
關(guān)于版圖驗(yàn)證,我們?cè)?/strong>《芯片設(shè)計(jì)五部曲之一 | 聲光魔法師——模擬IC》中有更詳細(xì)的說(shuō)明。
數(shù)據(jù)敏感度
前端>中端>后端,但是不用擔(dān)心
我們按照數(shù)據(jù)敏感度從高到低的順序給各類設(shè)計(jì)數(shù)據(jù)排了個(gè)序: RTL數(shù)據(jù) > IP、PDK和版圖> Netlist、Session、過(guò)程波形、歸檔數(shù)據(jù)和Report
好了,接下來(lái)我們看看這些數(shù)據(jù)都會(huì)出現(xiàn)在哪些階段:
數(shù)字前端有大量RTL代碼,甚至部分公司在此過(guò)程中還自己開(kāi)發(fā)了IP,屬于數(shù)據(jù)安全等級(jí)最高的那一撥。許多公司都會(huì)嚴(yán)格管理這部分?jǐn)?shù)據(jù),設(shè)置一定的保密等級(jí),甚至固定放在某幾臺(tái)機(jī)器上。
中端則涉及到部分的RTL代碼、IP和PDK數(shù)據(jù),以及一些Netlist、Session和Report。
后端徹底告別了代碼,以IP、PDK、版圖和數(shù)據(jù)敏感度較低的數(shù)據(jù)為主。
如果你要做一款游戲,前端相當(dāng)于游戲的源代碼,中端是詳細(xì)的角色形象設(shè)計(jì)稿,后端就是玩家拿到手的游戲光碟了。
前端泄密,恭喜你的對(duì)手達(dá)成“代碼級(jí)抄襲”;
中端泄密,別人能照著樣子把仿品做出來(lái),但沒(méi)有源代碼參考,知其然不知其所以然;
后端泄密,等對(duì)方逆向明白,大半年時(shí)間也過(guò)去了,你的下一代產(chǎn)品已經(jīng)在路上了。
值得一提的是,如果使用的是先進(jìn)工藝,F(xiàn)oundry廠也會(huì)對(duì)IP/PDK數(shù)據(jù)有保密要求。
所以在選擇云上業(yè)務(wù)場(chǎng)景的時(shí)候,我們一般優(yōu)先推薦數(shù)字后端先來(lái)。當(dāng)然,會(huì)根據(jù)每家公司的實(shí)際情況進(jìn)行具體分析。(以后會(huì)寫到,這次一定
那么,前端或者中端是不是就適合用云了呢?
甚至,在某些情況下,IC設(shè)計(jì)公司會(huì)面臨全部數(shù)據(jù)無(wú)論敏感度高低必須存放在本地的情況,比如一些高保密項(xiàng)目,或者有點(diǎn)微妙的競(jìng)爭(zhēng)關(guān)系,怎么辦?
我們有針對(duì)性的存算分離解決方案,歡迎來(lái)對(duì)號(hào)入座。
存算分離解決方案到底是什么?我們是如何實(shí)現(xiàn)的?掃描文末二維碼關(guān)注小F,對(duì)暗號(hào)“存算分離”搶先了解~
關(guān)于數(shù)字IC設(shè)計(jì),從不同設(shè)計(jì)階段的計(jì)算任務(wù)視角出發(fā),我們總結(jié)了四點(diǎn):
1、與模擬芯片相似,數(shù)字芯片三大階段的資源需求同樣呈現(xiàn)前期<中期<后期的趨勢(shì),但數(shù)字芯片需要使用EDA工具的場(chǎng)景更多,整體資源需求更大;
2、版圖驗(yàn)證并行度最高,靜態(tài)時(shí)序驗(yàn)證出場(chǎng)率非常高且并行度很高,都適合用暴力堆機(jī)器的方式提高任務(wù)效率;
3、數(shù)字后端往往會(huì)占據(jù)整個(gè)項(xiàng)目周期資源需求量的50%以上,兼具資源需求高、計(jì)算時(shí)間長(zhǎng)、數(shù)據(jù)量級(jí)大,數(shù)據(jù)敏感度相對(duì)低的特征,是提升數(shù)字芯片整體研發(fā)效率的關(guān)鍵;
4、數(shù)據(jù)敏感度高?必須放本地?沒(méi)關(guān)系,我們有解決辦法。
審核編輯:劉清
-
模擬IC
+關(guān)注
關(guān)注
8文章
167瀏覽量
29341 -
IC設(shè)計(jì)
+關(guān)注
關(guān)注
37文章
1290瀏覽量
103699 -
EDA工具
+關(guān)注
關(guān)注
4文章
264瀏覽量
31685 -
數(shù)字IC
+關(guān)注
關(guān)注
1文章
37瀏覽量
12491 -
數(shù)字芯片
+關(guān)注
關(guān)注
1文章
106瀏覽量
18365
原文標(biāo)題:如何提升研發(fā)效率?數(shù)字IC設(shè)計(jì)要點(diǎn)解析
文章出處:【微信號(hào):strongerHuang,微信公眾號(hào):strongerHuang】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論