1 前言
隨著集成電路工藝技術(shù)的不斷發(fā)展,集成電路的特征設(shè)計(jì)尺寸進(jìn)入到深亞微米,芯片規(guī)模擴(kuò)大到百萬門級(jí),從計(jì)算量、后端布局布線(placement&routing,P&R)工具、內(nèi)存占用、運(yùn)行時(shí)間、設(shè)計(jì)時(shí)序收斂性等方面考慮,扁平化的后端實(shí)現(xiàn)方式已變得難以承受,近年來,層次化的設(shè)計(jì)方式被廣泛采用,以實(shí)現(xiàn)大規(guī)模芯片的后端工作。
隨著芯片規(guī)模的擴(kuò)大,設(shè)計(jì)復(fù)雜性的提高,設(shè)計(jì)周期成為廣泛關(guān)注的問題。設(shè)計(jì)周期主要取決于4個(gè)方面
1.設(shè)計(jì)步驟
2.各個(gè)設(shè)計(jì)步驟需要重復(fù)的次數(shù)
3.各個(gè)設(shè)計(jì)步驟的執(zhí)行時(shí)間
4.各步驟之間需要等待的時(shí)間
設(shè)計(jì)周期的縮短需要從這4個(gè)方面努力。此外,還有一個(gè)能縮短設(shè)計(jì)周期的因素:可參考設(shè)計(jì)流程??蓞⒖荚O(shè)計(jì)流程定義了設(shè)計(jì)中必須執(zhí)行的設(shè)計(jì)步驟,比如,著名的rugged.script是SIS的參考綜合流程。參考設(shè)計(jì)流程讓用戶在設(shè)計(jì)初期就能夠快速開始設(shè)計(jì),否則設(shè)計(jì)人員在設(shè)計(jì)初期需要自行作多種嘗試,決定設(shè)計(jì)流程。
本文首先介紹IBM的專用集成電路(ASIC)設(shè)計(jì)流程,然后詳細(xì)介紹層次化模塊設(shè)計(jì)中對子模塊進(jìn)行快速物理設(shè)計(jì)的可重用設(shè)計(jì)流程(RLMREDOFLOW),頂層整合時(shí)對子模塊的優(yōu)化處理方法,以及該RLM設(shè)計(jì)流程的優(yōu)點(diǎn)。
2 IBM ASIC設(shè)計(jì)流程簡介
圖1描述了IBM的ASIC設(shè)計(jì)流程。在初始設(shè)計(jì)階段,系統(tǒng)工程師、前端邏輯設(shè)計(jì)工程師和后端物理實(shí)現(xiàn)工程師將一起分析設(shè)計(jì),進(jìn)行設(shè)計(jì)規(guī)劃,根據(jù)邏輯設(shè)計(jì)和物理特性劃分設(shè)計(jì)層次。層次劃分是這一階段重點(diǎn)要考慮的因素,將影響到綜合和布局布線時(shí)對子模塊邊界優(yōu)化的力度,子模塊之間連接關(guān)系的復(fù)雜程度等。此外,進(jìn)行層次劃分時(shí)還要考慮邏輯設(shè)計(jì)的進(jìn)度,如果部分子模塊的前端邏輯設(shè)計(jì)比其他子模塊早,則可以先完成這部分子模塊的物理設(shè)計(jì)。
圖1 IBMASIC設(shè)計(jì)流程
3 RLM可重用設(shè)計(jì)流程(RLM REDO FLOW)
RLM可重用設(shè)計(jì)的自動(dòng)化流程涵蓋了從可測性設(shè)計(jì)(DesignForTest,DFT),物理設(shè)計(jì)到時(shí)序收斂的后端設(shè)計(jì)的各個(gè)方面,使得設(shè)計(jì)工程師可以通過一個(gè)標(biāo)準(zhǔn)化的設(shè)計(jì)流程來保證后端設(shè)計(jì)的收斂性和較少的迭代周期。我們根據(jù)后端設(shè)計(jì)中的主要設(shè)計(jì)節(jié)點(diǎn)把整個(gè)子模塊的后端設(shè)計(jì)分為9個(gè)部分來具體實(shí)現(xiàn)。
1)100前端處理
2)200確定物理信息
3)300為時(shí)序驅(qū)動(dòng)的布局做準(zhǔn)備
4)400時(shí)序驅(qū)動(dòng)的布局
5)500 時(shí)鐘插入&時(shí)鐘繞線
6)600時(shí)鐘插入后的LateMode時(shí)序收斂
7)700時(shí)鐘插入后的EarlyMode時(shí)序收斂
8)800 詳細(xì)布線
9)900交付驗(yàn)收
下面具體介紹各個(gè)設(shè)計(jì)步驟。
100前端處理
主要完成RLM內(nèi)部測試結(jié)構(gòu)的生成,包括插入掃面鏈,以及測試邏輯,如邊界掃描邏輯、存儲(chǔ)器件的內(nèi)建自測試邏輯等。
200確定物理信息
確定RLM的一些主要物理信息,包括RLM的大小、形狀、內(nèi)部的電源網(wǎng)絡(luò)、內(nèi)部硬核的擺放、邊界上端口的位置。
1)首先定義RLM的大小、形狀,以及RLM的繞線資源,這是RLM能夠獨(dú)立于頂層設(shè)計(jì)往下走的一個(gè)起點(diǎn)。往往這些信息的確定是經(jīng)過多個(gè)迭代后的結(jié)果,而一旦確定之后在設(shè)計(jì)后期再要修改會(huì)極大的影響設(shè)計(jì)的可重用性。
2)在給定的RLM資源的基礎(chǔ)上進(jìn)行硬核的預(yù)布局(Floorplan)工作。預(yù)布局工作可以利用工具自動(dòng)完成或者采用手工擺放的方式,需要考慮到時(shí)序收斂和繞線擁塞,在設(shè)計(jì)初期會(huì)占用很大的設(shè)計(jì)時(shí)間來達(dá)到一個(gè)較好的預(yù)布局結(jié)果。
3)根據(jù)已做好的預(yù)布局結(jié)果,對硬核中端口噪聲較高的區(qū)域進(jìn)行防噪聲處理。
4)分析整個(gè)RLM的時(shí)鐘結(jié)構(gòu)。
5)進(jìn)行電源設(shè)計(jì),一個(gè)獨(dú)立的RLM的電源設(shè)計(jì)需要在RLM邊界上有一個(gè)電源環(huán)的結(jié)構(gòu),以此來連接RLM內(nèi)部和頂層的電源信號(hào)。
6)自頂向下的來完成RLM的端口擺放,在后續(xù)的設(shè)計(jì)中可以根據(jù)RLM內(nèi)部設(shè)計(jì)的需求來進(jìn)行一些調(diào)整。
7)在不考慮線延遲的情況下對RLM的時(shí)序進(jìn)行分析,以確定時(shí)序約束的合理性,需要注意的是,要做好RLM邊界的時(shí)序約束。
300為時(shí)序驅(qū)動(dòng)的布局做準(zhǔn)備
主要完成RLM端口和內(nèi)部硬核的相關(guān)邏輯的預(yù)布局,同時(shí)也可以根據(jù)設(shè)計(jì)的具體需求進(jìn)行其他重要邏輯的預(yù)布局。通過前面時(shí)鐘結(jié)構(gòu)分析的結(jié)果,把設(shè)計(jì)中時(shí)鐘相關(guān)的邏輯確定出來,與時(shí)鐘相關(guān)的設(shè)計(jì)我們會(huì)放在布局之后獨(dú)立完成。
400時(shí)序驅(qū)動(dòng)的布局
基于上一步的輸出,對剩下未做布局的部分進(jìn)行時(shí)序驅(qū)動(dòng)的布局。并對完成布局的網(wǎng)表進(jìn)行時(shí)序和物理的檢查。
500時(shí)鐘插入&時(shí)鐘繞線
根據(jù)前面時(shí)鐘結(jié)構(gòu)分析的結(jié)果在做完布局的設(shè)計(jì)上進(jìn)行時(shí)鐘樹的插入工作,并進(jìn)行時(shí)鐘的繞線。
600時(shí)鐘插入后的LateMode時(shí)序收斂
調(diào)用優(yōu)化工具優(yōu)化setup,直到setup滿足要求
700時(shí)鐘插入后的EarlyMode時(shí)序收斂
調(diào)用優(yōu)化工具優(yōu)化hold,直到hold滿足要求
800詳細(xì)布線
對所有信號(hào)進(jìn)行布線,并完成物理特性的檢查。然后提取寄生參數(shù),以及噪聲、耦合信息,進(jìn)行時(shí)序分析,并調(diào)用優(yōu)化工具優(yōu)化時(shí)序。
900交付驗(yàn)收
檢查RLM的布局布線、時(shí)序、功耗、噪聲等,確保RLM的設(shè)計(jì)滿足驗(yàn)收要求,可以交付給頂層進(jìn)行整合。
從上面的設(shè)計(jì)流程可以看出,RLM設(shè)計(jì)和頂層設(shè)計(jì)的交互主要在200和900這兩步。在RLM設(shè)計(jì)流程開始之前,芯片的頂層設(shè)計(jì)人員需要確定 RLM的在芯片上的位置、形狀(包括尺寸)、端口的位置和約束,可用于RLM布線的最高金屬層,以及RLM邊界上的時(shí)序約束。在RLM設(shè)計(jì)人員進(jìn)行RLM 設(shè)計(jì)的同時(shí),頂層的工作可以并行進(jìn)行,各個(gè)RLM的設(shè)計(jì)也是可以并行的,并行度的提高大大縮短了設(shè)計(jì)周期。
4 HATS
HATS(HierarchicalAbstractTimingSignoff)是IBM層次化設(shè)計(jì)方法學(xué)的一部分,僅抽取RLM 的部分信息,用于頂層合成時(shí)的時(shí)序分析和優(yōu)化。在RLM中,影響芯片頂層時(shí)序的僅僅是輸入/輸出端口相關(guān)的路徑。而占絕大部分的時(shí)序路徑是從寄存器到寄存器的,這部分已經(jīng)在RLM中已做到時(shí)序收斂,整合到頂層時(shí),時(shí)序信息不會(huì)發(fā)生變化,合成時(shí)可以不考慮這部分的時(shí)序。
HATS的流程如圖2所示,在完成RLM設(shè)計(jì)之后進(jìn)行時(shí)序分析和網(wǎng)表分析,去除RLM內(nèi)部寄存器到寄存器的路徑,以及與此相關(guān)的時(shí)序約束,抽取 RLM信息,交給頂層使用。抽取的過程如圖3所示。
圖2HATS處理流程
圖3RLM信息的抽取
隨著芯片規(guī)模的擴(kuò)大,標(biāo)準(zhǔn)單元和硬核的數(shù)量迅速增加,采用傳統(tǒng)的設(shè)計(jì)方法需要占用大量的內(nèi)存和CPU時(shí)間。而采用HATS方法,在保證驗(yàn)收質(zhì)量的同時(shí),去除了冗余的計(jì)算,大大降低了芯片合成所需的內(nèi)存和CPU時(shí)間。表1中示出了一個(gè)90nm芯片的設(shè)計(jì)實(shí)例,該芯片中包含一個(gè)重復(fù)使用了20次的 RLM,采用HATS大量節(jié)省了CPU時(shí)間和占用的內(nèi)存。
表1HATS在芯片“P”上的應(yīng)用
5 RLM快速物理設(shè)計(jì)方法的優(yōu)點(diǎn)
可重用的設(shè)計(jì)流程是縮短設(shè)計(jì)周期的關(guān)鍵。本文介紹的RLM快速物理設(shè)計(jì)方法,其優(yōu)點(diǎn)歸納起來有以下幾點(diǎn):
1)IBMRLM層次化設(shè)計(jì)方法具備靈活有效的模塊劃分技術(shù);
既可針對客戶的設(shè)計(jì)要求進(jìn)行有針對性的RLM劃分,也可以在頂層針對物理設(shè)計(jì)的需求進(jìn)行易于物理實(shí)現(xiàn)的RLM模塊劃分,還可以綜合考慮客戶的設(shè)計(jì)要求和物理設(shè)計(jì)的需求進(jìn)行RLM劃分。
2)充分考慮了功耗及噪聲對于物理設(shè)計(jì)方面的影響;
在設(shè)計(jì)初始階段就進(jìn)行完備而合理的電源設(shè)計(jì),DECAP插入,確保流片后不會(huì)因動(dòng)態(tài)或靜態(tài)電壓降的問題影響芯片的正常工作。
3)充分考慮信號(hào)完整性對于芯片設(shè)計(jì)的影響;
對于關(guān)鍵的線做屏蔽,比如時(shí)鐘樹,確保在驗(yàn)收階段盡可能準(zhǔn)確,減少不必要的冗余迭代。
4)完備的時(shí)序驗(yàn)收分析;
在IBMRLM設(shè)計(jì)流程中既引入多CORNER,統(tǒng)計(jì)分析,同時(shí)在設(shè)計(jì)開始階段就充分考慮了電壓降對于時(shí)序的影響,盡量避免了在驗(yàn)收階段由于時(shí)序問題所產(chǎn)生的迭代,并進(jìn)一步確保流片后芯片在時(shí)序上的功能與設(shè)計(jì)階段分析的一致性。
5)充分考慮RLM集成在頂層的邊界問題;
對于接口處進(jìn)行了合理設(shè)計(jì)確保頂層集成時(shí)易于實(shí)現(xiàn);
6)該設(shè)計(jì)方法具有很好的靈活性;
允許不同的工程師針對不同的RLM并行工作,而又可以共享利用統(tǒng)一的設(shè)計(jì)腳本,同時(shí)不影響頂層的并行評估。
7)設(shè)計(jì)方法易于更新和共享;
不同的工程師可以根據(jù)實(shí)際設(shè)計(jì)需要更新設(shè)計(jì)腳本同時(shí)共享給其他設(shè)計(jì)者。
8)易于集成;
設(shè)計(jì)完成的RLM,可以抽取信息便于頂層集成快速進(jìn)行物理設(shè)計(jì)以及時(shí)序、信號(hào)完整性、功耗等方面的分析,同時(shí)在頂層驗(yàn)收分析時(shí)可以繞開RLM內(nèi)部路徑,直接打平RLM,進(jìn)行扁平化分析。
9)易于迭代;
當(dāng)工程師對一個(gè)RLM根據(jù)該方法進(jìn)行一次評估后,確定設(shè)計(jì)需要的腳本,之后可以根據(jù)客戶更新的ECO網(wǎng)表重新調(diào)用以前的預(yù)布局,電源等信息進(jìn)行快速的再評估,減少了交付市場的時(shí)間。
6 總結(jié)
對于大規(guī)模的系統(tǒng)設(shè)計(jì),層次化的設(shè)計(jì)策略是業(yè)界的方向,特別是規(guī)模龐大的系統(tǒng)采用層次化的設(shè)計(jì)把一個(gè)大的系統(tǒng)分成子模塊,對小的子模塊設(shè)計(jì)的收斂時(shí)間更容易把握,后端工程師可以并行的處理同一個(gè)設(shè)計(jì)。IBM先進(jìn)的子模塊快速設(shè)計(jì)流程提高了設(shè)計(jì)過程的可重用性,縮短了設(shè)計(jì)周期。
評論
查看更多