數(shù)字電路設(shè)計(jì)驗(yàn)證流程
數(shù)字集成電路芯片的設(shè)計(jì)流程由一系列的設(shè)計(jì)實(shí)現(xiàn)和驗(yàn)證測(cè)試過(guò)程組成(圖1)。首先是功能定義,它描述了對(duì)芯片功能和性能參數(shù)的要求,我們使用系統(tǒng)設(shè)計(jì)工具設(shè)計(jì)出方案和架構(gòu),劃分好芯片的模塊功能。
然后是代碼設(shè)計(jì),我們使用硬件描述語(yǔ)言(HDL,如Verilog)將模塊功能表示出來(lái),形成電腦能理解的代碼(行為級(jí)、RTL級(jí))。經(jīng)過(guò)仿真驗(yàn)證后,進(jìn)行邏輯綜合,把代碼翻譯成低一級(jí)別的門級(jí)網(wǎng)表,它對(duì)應(yīng)于特定的面積和參數(shù),并再次做仿真驗(yàn)證。這兩個(gè)仿真可以是用電路模型驗(yàn)證邏輯功能(邏輯仿真),也可以用FPGA硬件電路來(lái)驗(yàn)證(原型仿真),其速度更快,與實(shí)際電路更接近。
設(shè)計(jì)和仿真驗(yàn)證是反復(fù)迭代的過(guò)程,直到驗(yàn)證結(jié)果完全符合規(guī)格要求。驗(yàn)證還包括靜態(tài)時(shí)序分析、形式驗(yàn)證等,以檢驗(yàn)電路的功能在設(shè)計(jì)轉(zhuǎn)換和優(yōu)化的過(guò)程中保持不變。可測(cè)性設(shè)計(jì)(DFT、ATPG)也在這一步完成。
下一步就是數(shù)字電路后端實(shí)現(xiàn)中最為關(guān)鍵的布局布線,它實(shí)現(xiàn)電路模塊(如宏模塊、存儲(chǔ)器、引腳等)的布圖規(guī)劃、布局,實(shí)現(xiàn)電源、時(shí)鐘、標(biāo)準(zhǔn)單元之間信號(hào)線的布線。
在布局布線過(guò)程中及完成之后,需要對(duì)版圖進(jìn)行各種驗(yàn)證,包括形式驗(yàn)證、物理驗(yàn)證,如版圖與邏輯電路圖的對(duì)比、設(shè)計(jì)規(guī)則檢查、電氣規(guī)則檢查等。最終輸出GDS數(shù)據(jù),轉(zhuǎn)交芯片代工廠,在晶圓上進(jìn)行加工,再進(jìn)行封裝和測(cè)試,就得到了我們實(shí)際看見(jiàn)的芯片。
圖1數(shù)字電路設(shè)計(jì)驗(yàn)證流程
數(shù)字后端實(shí)現(xiàn)過(guò)程
本文所指的后端實(shí)現(xiàn)工具主要是指布圖規(guī)劃(Floorplan)和布局布線(Place&Route)兩個(gè)階段所使用到的工具集合。目前芯片設(shè)計(jì)公司使用的主要軟件有SynopsysICC2/FusionCompiler,CadenceEncounter/Innovus,MentorGraphicsNitro-Soc等。
圖2數(shù)字后端實(shí)現(xiàn)過(guò)程
數(shù)字后端的設(shè)計(jì)過(guò)程,是把邏輯綜合映射后的電路網(wǎng)表轉(zhuǎn)換為GDS的過(guò)程,也就是把電路從邏輯網(wǎng)表轉(zhuǎn)換為幾何版圖的過(guò)程。業(yè)界各個(gè)工具系統(tǒng)的實(shí)現(xiàn)大同小異,一般可以細(xì)分為設(shè)計(jì)環(huán)境建立、布圖規(guī)劃、布局、時(shí)鐘樹(shù)綜合、布線、調(diào)試完善等步驟(圖2)。
01
設(shè)計(jì)環(huán)境建立
設(shè)計(jì)環(huán)境的建立是把后端設(shè)計(jì)所需的數(shù)據(jù)讀入到數(shù)據(jù)庫(kù),然后檢查數(shù)據(jù)的完整性與一致性。后端設(shè)計(jì)的輸入數(shù)據(jù)包括門級(jí)網(wǎng)表、設(shè)計(jì)約束和工藝庫(kù)文件三部分。其中,門級(jí)網(wǎng)表(GLN,GateLevelNetlist)是邏輯綜合工具把設(shè)計(jì)從RTL(RegisterTransferLevel)映射到GLN所得,它同時(shí)滿足時(shí)序、面積、功耗等約束。設(shè)計(jì)約束SDC(SynopsysDesignConstraints)則描述了時(shí)鐘、延遲、電源、面積、設(shè)計(jì)規(guī)則、工作條件等等對(duì)芯片的約束條件。工藝庫(kù)主要是時(shí)序庫(kù)文件和模型庫(kù)文件,如物理抽象庫(kù)文件LEF、物理詳細(xì)庫(kù)文件GDS/OASIS、時(shí)序庫(kù)文件.lib、RLC模型文件.rlc、EM規(guī)則文件、DEF文件等等。
02
布圖規(guī)劃Floorplan
布圖規(guī)劃是后端實(shí)現(xiàn)中需要手工活的惟一階段,其它階段都是通過(guò)修改腳本和約束,然后讓工具自動(dòng)完成的。布圖規(guī)劃的好壞,直接決定了后續(xù)布局布線的收斂、芯片的面積性能功耗。Floorplan一般都是由經(jīng)驗(yàn)豐富的設(shè)計(jì)師來(lái)完成?,F(xiàn)在Cadence、谷歌也在探索使用AI來(lái)實(shí)現(xiàn)Floorplan。它包括初始化、布放宏模塊和布放輸入輸出腳等過(guò)程。我們需要根據(jù)設(shè)計(jì)前端所給的數(shù)據(jù)流向,了解設(shè)計(jì)中各個(gè)模塊之間的交互、各個(gè)時(shí)鐘之間的關(guān)系等信息,以規(guī)劃模塊的位置和模塊接口的位置。模塊形狀與設(shè)計(jì)類型相關(guān),也影響到繞線資源的使用,這在前端中只考慮邏輯功能不同,需要仔細(xì)規(guī)劃。低功耗設(shè)計(jì)則需要提前規(guī)劃好各個(gè)電源域的劃分區(qū)域、隔離島等。在布放電源地時(shí),需要根據(jù)芯片功耗估算,添加芯片核心的電源地;根據(jù)SSO、ESD、EM估算,添加輸入輸出腳的電源地。輸入輸出腳添加完成后,根據(jù)宏模塊、IP、IO的面積就可以估算出芯片的面積了。
03
電源及電源網(wǎng)絡(luò)分析
在現(xiàn)代低功耗芯片設(shè)計(jì)中,電源設(shè)計(jì)是非常重要的一步,包括分析計(jì)算所有單元的功耗、靜態(tài)IRDrop和電遷移EM分析。它可以在多個(gè)階段進(jìn)行,如布圖后、電源地布線后、全局布局后、詳細(xì)布線后等。它分析電源設(shè)計(jì)是否合規(guī)。分析計(jì)算過(guò)程包括線網(wǎng)活動(dòng)因子計(jì)算、電源分析、電源網(wǎng)分析、電網(wǎng)電阻分析、阻抗失配分析、IRDrop分析、EM分析等等。
04
靜態(tài)時(shí)序分析
通過(guò)建立和使用靜態(tài)時(shí)序分析器,以驗(yàn)證設(shè)計(jì)符合所有的設(shè)計(jì)約束,如滿足在所有要求操作條件下的建立和保持時(shí)間,或者識(shí)別出違反時(shí)序的原因所在。靜態(tài)時(shí)序分析主要包括數(shù)據(jù)準(zhǔn)備、分析條件設(shè)置、生成時(shí)序報(bào)告、分析報(bào)告。所需要的數(shù)據(jù)(電路網(wǎng)表、時(shí)序庫(kù)、約束文件、寄生模型及外部寄生文件)在第一步已經(jīng)讀入到數(shù)據(jù)庫(kù)中,這里也可以補(bǔ)充讀取。分析條件則是在一個(gè)或多個(gè)模式下,考慮PVT、RCX、OCV、CRPR等諸多因素進(jìn)行設(shè)置。根據(jù)分析所需,控制分析器執(zhí)行適當(dāng)?shù)拿睿玫綍r(shí)序分析報(bào)告。對(duì)報(bào)告進(jìn)行分析后,執(zhí)行相應(yīng)的操作。例如,從時(shí)序路徑分析報(bào)告中,可以看到設(shè)計(jì)的關(guān)鍵路徑,進(jìn)而執(zhí)行增量式的修改以符合時(shí)序需求。
05
定義電源結(jié)構(gòu)
這一步是為電源的繞線創(chuàng)建禁區(qū),創(chuàng)建電源帶、電源環(huán)、標(biāo)準(zhǔn)單元rail等,定義如何連接到宏模塊的電源腳等,完成電源的繞線,報(bào)告電源的狀況。
06
布局及優(yōu)化設(shè)計(jì)
這一過(guò)程包括為布局和優(yōu)化作準(zhǔn)備(布局指南和布局分組)、進(jìn)行無(wú)優(yōu)化的布局、插入備用單元(為ECO做準(zhǔn)備)和Tap單元、管理掃描鏈(重排或拆分)、進(jìn)行布局和優(yōu)化、分析布局和優(yōu)化結(jié)果,決定是否需要迭代。傳統(tǒng)的時(shí)序驅(qū)動(dòng)的布局算法通常會(huì)留下很多時(shí)序違反,因?yàn)樗鼈儾荒軆H僅由布局修正。時(shí)序違反由布局后優(yōu)化工具找到后,它就會(huì)做很多修改,以符合時(shí)序約束的要求,如修改單元尺寸、插入緩沖、分解驅(qū)動(dòng)等,這些操作會(huì)逐步降低原始布局的質(zhì)量。因此,為滿足時(shí)序和擁擠約束的目標(biāo),需要進(jìn)行多次布局迭代和優(yōu)化。我們工具的布局和優(yōu)化引擎是并行的,從宏固定的預(yù)布局開(kāi)始,就能得到一個(gè)最好時(shí)序質(zhì)量和最低擁擠程度的全布局。布局和設(shè)計(jì)優(yōu)化也能在一個(gè)布局好的設(shè)計(jì)上增量式地進(jìn)行。
07
時(shí)鐘樹(shù)綜合
布局之后,就是布線工作。我們要首先完成時(shí)鐘網(wǎng)絡(luò)的布線,因?yàn)樗鼈儽绕胀〝?shù)據(jù)通路上的線網(wǎng)更重要。在數(shù)字電路中,時(shí)序元件的數(shù)據(jù)傳輸是由時(shí)鐘控制的。時(shí)鐘頻率決定了數(shù)據(jù)處理和傳輸?shù)乃俣龋瑫r(shí)鐘頻率也就決定了電路的最終性能。決定時(shí)鐘頻率的主要因素有兩個(gè),一是組合邏輯部分的最長(zhǎng)電路延時(shí),二是時(shí)序元件內(nèi)的時(shí)鐘偏斜(clockskew)。
組合邏輯部分可以優(yōu)化的延時(shí)不多,時(shí)鐘偏斜成為影響電路性能的制約因素。時(shí)鐘樹(shù)綜合的一個(gè)主要目的就是減小時(shí)鐘偏斜。時(shí)鐘信號(hào)是數(shù)字芯片中最長(zhǎng)最復(fù)雜的信號(hào),從一個(gè)時(shí)鐘源到達(dá)各個(gè)時(shí)序元件的終端節(jié)點(diǎn),能形成了一棵樹(shù)狀的結(jié)構(gòu)。從時(shí)鐘源的扇出很大,負(fù)載很大,需要一個(gè)時(shí)鐘樹(shù)結(jié)構(gòu),通過(guò)一級(jí)級(jí)的器件去驅(qū)動(dòng)最終的葉子節(jié)點(diǎn)。時(shí)鐘樹(shù)綜合的另一個(gè)目的,就是要使同一個(gè)時(shí)鐘信號(hào)到達(dá)各個(gè)終端節(jié)點(diǎn)的時(shí)間相同。采用的辦法也很簡(jiǎn)單:在時(shí)鐘信號(hào)線網(wǎng)上插入buffer或者inverter來(lái)平衡信號(hào)的延遲。時(shí)鐘樹(shù)綜合的準(zhǔn)備包括標(biāo)記可用于時(shí)鐘樹(shù)的buffer/inverter、定義時(shí)鐘結(jié)構(gòu)規(guī)則(如繞線、時(shí)鐘單元周邊間距、buffer等)、生成時(shí)鐘skew約束(即定義各種skew組和時(shí)序約束),然后綜合時(shí)鐘樹(shù),再對(duì)綜合結(jié)果進(jìn)行分析和優(yōu)化,如修復(fù)setup時(shí)間違反、額外的功耗和面積收復(fù)等等。
08
布線及設(shè)計(jì)優(yōu)化
這一步雖然是一個(gè)自動(dòng)化進(jìn)行的步驟,但也需要?jiǎng)?chuàng)建布線指南,以指導(dǎo)布線器的運(yùn)作。過(guò)程包括全局布線、總線布線、詳細(xì)布線、手動(dòng)優(yōu)化、添加防護(hù)、金屬填充、天線效應(yīng)修復(fù)、光刻修復(fù)、繞線到bump等等。
09
工程改動(dòng)要求ECO
(EngineeringChangeOrder)
ECO是在一個(gè)完成或接近完成的設(shè)計(jì)上,進(jìn)行一個(gè)增量式的改變??赡苁菍?duì)設(shè)計(jì)網(wǎng)表、布局或繞線作一個(gè)小的改變,而設(shè)計(jì)的主體部分中不變的部分無(wú)須重建。ECO可能涉及到所有層的改變,或者僅僅涉及到金屬層的改變。假若修改的門數(shù)不到整體的5%,那么ECO是值得的。另外,使用usefulskew來(lái)進(jìn)行手工的時(shí)鐘樹(shù)ECO,也是一項(xiàng)重要的技能。
10
時(shí)序調(diào)試
時(shí)序調(diào)試的目的,是找到一個(gè)方法去修復(fù)所有約束違反。我們需要用不同的選項(xiàng)去運(yùn)行時(shí)序分析器,分析各種時(shí)序報(bào)告,識(shí)別可能的時(shí)序問(wèn)題,在GUI和版圖上同時(shí)查看關(guān)鍵路徑,提升設(shè)計(jì)的時(shí)序。時(shí)序的優(yōu)化貫穿著整個(gè)數(shù)字電路后端設(shè)計(jì)全過(guò)程。
11
數(shù)據(jù)導(dǎo)出
設(shè)計(jì)的最后一步,就是電路版圖數(shù)據(jù)GDS的導(dǎo)出。GDS描述了晶體管大小和物理位置、連線的寬度和位置等制造芯片所需的全部信息。對(duì)GDS的要求是功能與RTL一致、性能滿足指標(biāo)、規(guī)格滿足代工廠要求、功耗性能面積(PPA)優(yōu)良。EDA工具強(qiáng)調(diào)的是A,Automation,也就是自動(dòng)化。這在數(shù)字集成電路后端設(shè)計(jì)工具中表現(xiàn)尤為突出。要處理規(guī)模大至數(shù)十億晶體管的電路,對(duì)所涉及算法的性能、效率、資源占用等都有極高的要求。目前,我們正在努力探索在數(shù)字芯片全流程中應(yīng)用最新的AI技術(shù)、云計(jì)算技術(shù)等,以滿足各種現(xiàn)代芯片的設(shè)計(jì)要求。
審核編輯 :李倩
-
電路
+關(guān)注
關(guān)注
172文章
5914瀏覽量
172253 -
仿真
+關(guān)注
關(guān)注
50文章
4082瀏覽量
133612 -
數(shù)字電路
+關(guān)注
關(guān)注
193文章
1605瀏覽量
80625
原文標(biāo)題:【限時(shí)福利】一文讀懂?dāng)?shù)字集成電路芯片設(shè)計(jì)流程
文章出處:【微信號(hào):發(fā)燒友研習(xí)社,微信公眾號(hào):發(fā)燒友研習(xí)社】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論