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