|
1 前言 隨著集成電路工藝技術(shù)的不斷發(fā)展,集成電路的特征設(shè)計(jì)尺寸進(jìn)入到深亞微米,芯片規(guī)模擴(kuò)大到百萬(wàn)門(mén)級(jí),從計(jì)算量、后端布局布線(xiàn)(placement&routing,P&R)工具、內(nèi)存占用、運(yùn)行時(shí)間、設(shè)計(jì)時(shí)序收斂性等方面考慮,扁平化的后端實(shí)現(xiàn)方式已變得難以承受,近年來(lái),層次化的設(shè)計(jì)方式被廣泛采用,以實(shí)現(xiàn)大規(guī)模芯片的后端工作。 隨著芯片規(guī)模的擴(kuò)大,設(shè)計(jì)復(fù)雜性的提高,設(shè)計(jì)周期成為廣泛關(guān)注的問(wèn)題。設(shè)計(jì)周期主要取決于4個(gè)方面[1] 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ì)流程。可參考設(shè)計(jì)流程定義了設(shè)計(jì)中必須執(zhí)行的設(shè)計(jì)步驟,比如,著名的rugged.script是SIS的參考綜合流程[2]。參考設(shè)計(jì)流程讓用戶(hù)在設(shè)計(jì)初期就能夠快速開(kāi)始設(shè)計(jì),否則設(shè)計(jì)人員在設(shè)計(jì)初期需要自行作多種嘗試,決定設(shè)計(jì)流程。 本文首先介紹IBM的專(zhuān)用集成電路(ASIC)設(shè)計(jì)流程,然后詳細(xì)介紹層次化模塊設(shè)計(jì)中對(duì)子模塊進(jìn)行快速物理設(shè)計(jì)的可重用設(shè)計(jì)流程(RLMREDOFLOW),頂層整合時(shí)對(duì)子模塊的優(yōu)化處理方法,以及該RLM設(shè)計(jì)流程的優(yōu)點(diǎn)。 2 IBM ASIC設(shè)計(jì)流程簡(jiǎn)介 圖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)要考慮的因素,將影響到綜合和布局布線(xiàn)時(shí)對(duì)子模塊邊界優(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)化流程涵蓋了從可測(cè)性設(shè)計(jì)(DesignForTest,DFT),物理設(shè)計(jì)到時(shí)序收斂的后端設(shè)計(jì)的各個(gè)方面,使得設(shè)計(jì)工程師可以通過(guò)一個(gè)標(biāo)準(zhǔn)化的設(shè)計(jì)流程來(lái)保證后端設(shè)計(jì)的收斂性和較少的迭代周期。我們根據(jù)后端設(shè)計(jì)中的主要設(shè)計(jì)節(jié)點(diǎn)把整個(gè)子模塊的后端設(shè)計(jì)分為9個(gè)部分來(lái)具體實(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í)鐘繞線(xiàn) 6)600時(shí)鐘插入后的LateMode時(shí)序收斂 7)700時(shí)鐘插入后的EarlyMode時(shí)序收斂 8)800 詳細(xì)布線(xiàn) 9)900交付驗(yàn)收 下面具體介紹各個(gè)設(shè)計(jì)步驟。 100前端處理 主要完成RLM內(nèi)部測(cè)試結(jié)構(gòu)的生成,包括插入掃面鏈,以及測(cè)試邏輯,如邊界掃描邏輯、存儲(chǔ)器件的內(nèi)建自測(cè)試邏輯等。 200確定物理信息 確定RLM的一些主要物理信息,包括RLM的大小、形狀、內(nèi)部的電源網(wǎng)絡(luò)、內(nèi)部硬核的擺放、邊界上端口的位置。 1)首先定義RLM的大小、形狀,以及RLM的繞線(xiàn)資源,這是RLM能夠獨(dú)立于頂層設(shè)計(jì)往下走的一個(gè)起點(diǎn)。往往這些信息的確定是經(jīng)過(guò)多個(gè)迭代后的結(jié)果,而一旦確定之后在設(shè)計(jì)后期再要修改會(huì)極大的影響設(shè)計(jì)的可重用性。 2)在給定的RLM資源的基礎(chǔ)上進(jìn)行硬核的預(yù)布局(Floorplan)工作。預(yù)布局工作可以利用工具自動(dòng)完成或者采用手工擺放的方式,需要考慮到時(shí)序收斂和繞線(xiàn)擁塞,在設(shè)計(jì)初期會(huì)占用很大的設(shè)計(jì)時(shí)間來(lái)達(dá)到一個(gè)較好的預(yù)布局結(jié)果。 3)根據(jù)已做好的預(yù)布局結(jié)果,對(duì)硬核中端口噪聲較高的區(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),以此來(lái)連接RLM內(nèi)部和頂層的電源信號(hào)。 6)自頂向下的來(lái)完成RLM的端口擺放,在后續(xù)的設(shè)計(jì)中可以根據(jù)RLM內(nèi)部設(shè)計(jì)的需求來(lái)進(jìn)行一些調(diào)整。 7)在不考慮線(xiàn)延遲的情況下對(duì)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ù)布局。通過(guò)前面時(shí)鐘結(jié)構(gòu)分析的結(jié)果,把設(shè)計(jì)中時(shí)鐘相關(guān)的邏輯確定出來(lái),與時(shí)鐘相關(guān)的設(shè)計(jì)我們會(huì)放在布局之后獨(dú)立完成。 400時(shí)序驅(qū)動(dòng)的布局 基于上一步的輸出,對(duì)剩下未做布局的部分進(jìn)行時(shí)序驅(qū)動(dòng)的布局。并對(duì)完成布局的網(wǎng)表進(jìn)行時(shí)序和物理的檢查。 500時(shí)鐘插入&時(shí)鐘繞線(xiàn) 根據(jù)前面時(shí)鐘結(jié)構(gòu)分析的結(jié)果在做完布局的設(shè)計(jì)上進(jìn)行時(shí)鐘樹(shù)的插入工作,并進(jìn)行時(shí)鐘的繞線(xiàn)。 600時(shí)鐘插入后的LateMode時(shí)序收斂 調(diào)用優(yōu)化工具優(yōu)化setup,直到setup滿(mǎn)足要求 700時(shí)鐘插入后的EarlyMode時(shí)序收斂 調(diào)用優(yōu)化工具優(yōu)化hold,直到hold滿(mǎn)足要求 800詳細(xì)布線(xiàn) 對(duì)所有信號(hào)進(jìn)行布線(xiàn),并完成物理特性的檢查。然后提取寄生參數(shù),以及噪聲、耦合信息,進(jìn)行時(shí)序分析,并調(diào)用優(yōu)化工具優(yōu)化時(shí)序。 900交付驗(yàn)收 檢查RLM的布局布線(xiàn)、時(shí)序、功耗、噪聲等,確保RLM的設(shè)計(jì)滿(mǎn)足驗(yàn)收要求,可以交付給頂層進(jìn)行整合。 從上面的設(shè)計(jì)流程可以看出,RLM設(shè)計(jì)和頂層設(shè)計(jì)的交互主要在200和900這兩步。在RLM設(shè)計(jì)流程開(kāi)始之前,芯片的頂層設(shè)計(jì)人員需要確定 RLM的在芯片上的位置、形狀(包括尺寸)、端口的位置和約束,可用于RLM布線(xiàn)的最高金屬層,以及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信息,交給頂層使用。抽取的過(guò)程如圖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)歸納起來(lái)有以下幾點(diǎn): 1)IBMRLM層次化設(shè)計(jì)方法具備靈活有效的模塊劃分技術(shù); 既可針對(duì)客戶(hù)的設(shè)計(jì)要求進(jìn)行有針對(duì)性的RLM劃分,也可以在頂層針對(duì)物理設(shè)計(jì)的需求進(jìn)行易于物理實(shí)現(xiàn)的RLM模塊劃分,還可以綜合考慮客戶(hù)的設(shè)計(jì)要求和物理設(shè)計(jì)的需求進(jìn)行RLM劃分。 2)充分考慮了功耗及噪聲對(duì)于物理設(shè)計(jì)方面的影響; 在設(shè)計(jì)初始階段就進(jìn)行完備而合理的電源設(shè)計(jì),DECAP插入,確保流片后不會(huì)因動(dòng)態(tài)或靜態(tài)電壓降的問(wèn)題影響芯片的正常工作。 3)充分考慮信號(hào)完整性對(duì)于芯片設(shè)計(jì)的影響; 對(duì)于關(guān)鍵的線(xiàn)做屏蔽,比如時(shí)鐘樹(shù),確保在驗(yàn)收階段盡可能準(zhǔn)確,減少不必要的冗余迭代。 4)完備的時(shí)序驗(yàn)收分析; 在IBMRLM設(shè)計(jì)流程中既引入多CORNER,統(tǒng)計(jì)分析,同時(shí)在設(shè)計(jì)開(kāi)始階段就充分考慮了電壓降對(duì)于時(shí)序的影響,盡量避免了在驗(yàn)收階段由于時(shí)序問(wèn)題所產(chǎn)生的迭代,并進(jìn)一步確保流片后芯片在時(shí)序上的功能與設(shè)計(jì)階段分析的一致性。 5)充分考慮RLM集成在頂層的邊界問(wèn)題; 對(duì)于接口處進(jìn)行了合理設(shè)計(jì)確保頂層集成時(shí)易于實(shí)現(xiàn); 6)該設(shè)計(jì)方法具有很好的靈活性; 允許不同的工程師針對(duì)不同的RLM并行工作,而又可以共享利用統(tǒng)一的設(shè)計(jì)腳本,同時(shí)不影響頂層的并行評(píng)估。 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í)可以繞開(kāi)RLM內(nèi)部路徑,直接打平RLM,進(jìn)行扁平化分析。 9)易于迭代; 當(dāng)工程師對(duì)一個(gè)RLM根據(jù)該方法進(jìn)行一次評(píng)估后,確定設(shè)計(jì)需要的腳本,之后可以根據(jù)客戶(hù)更新的ECO網(wǎng)表重新調(diào)用以前的預(yù)布局,電源等信息進(jìn)行快速的再評(píng)估,減少了交付市場(chǎng)的時(shí)間。 6 總結(jié) 對(duì)于大規(guī)模的系統(tǒng)設(shè)計(jì),層次化的設(shè)計(jì)策略是業(yè)界的方向,特別是規(guī)模龐大的系統(tǒng)采用層次化的設(shè)計(jì)把一個(gè)大的系統(tǒng)分成子模塊,對(duì)小的子模塊設(shè)計(jì)的收斂時(shí)間更容易把握,后端工程師可以并行的處理同一個(gè)設(shè)計(jì)。IBM先進(jìn)的子模塊快速設(shè)計(jì)流程提高了設(shè)計(jì)過(guò)程的可重用性,縮短了設(shè)計(jì)周期。 附:本文僅代表個(gè)人觀點(diǎn),IBM不保證文中推薦解決方案在其他設(shè)計(jì)上的應(yīng)用。 參考文獻(xiàn) [1]J. Koehl, D. E. Lackey and G. Doerre, “IBM’s 50 Million Gate ASICs,” Proceedings of the IEEE Asian and South Pacific Design Automation Conference, pp. 628 - 634, 2003 [2]E. M. Sentovichandetal.,“SIS: A System for Sequential Circuit Synthesis,” Technical Report, Un University of California, Berkeley,1992 作者:IBM中國(guó)芯片研發(fā)中心 李恭瓊 戴紅衛(wèi) 張春朋 余振華 2009-08 |