在IC物理設(shè)計(jì)中應(yīng)用層次化設(shè)計(jì)流程Hopper提高產(chǎn)能
現(xiàn)在的芯片設(shè)計(jì)中所出現(xiàn)的問(wèn)題更多地與流程有關(guān),與所用的工具關(guān)系不大。由于高級(jí)技術(shù)人員的缺乏,加上物理設(shè)計(jì)(如SoC)復(fù)雜性的提高,建立能成功組織并協(xié)調(diào)工具、數(shù)據(jù)與人員之間關(guān)系的內(nèi)部流程變得越來(lái)越困難。另外,深亞微米半導(dǎo)體工藝的發(fā)展以及設(shè)計(jì)工具的愈加多樣性使問(wèn)題變得更加復(fù)雜。因此當(dāng)今的工程師們需要的不僅僅是全套工具,更需要世界頂級(jí)設(shè)計(jì)師們的經(jīng)典流程和軟件技術(shù)作指導(dǎo)。 Hopper的出現(xiàn)給業(yè)界帶來(lái)了新的希望,利用它可以設(shè)計(jì)出高性能的3dfx交互式圖形芯片。Hopper是一種專業(yè)的自動(dòng)化物理設(shè)計(jì)軟件,它所提供的自動(dòng)化物理設(shè)計(jì)流程能夠進(jìn)行:1. 鄰接模塊的層次化設(shè)計(jì);2. 協(xié)同設(shè)計(jì);3. 所有設(shè)計(jì)任務(wù)的自動(dòng)化,以及更加方便的實(shí)施“如果...將會(huì)怎么樣?”試驗(yàn)。 與商用化工具如Avanti公司的Apollo、Hercules、StarRC-XT甚至那些能完成信號(hào)增強(qiáng)器插入及時(shí)鐘分配的專業(yè)工具相比,Hopper都略勝一籌。Hopper實(shí)質(zhì)上是一種自動(dòng)化引擎,在專業(yè)工具知識(shí)(******默認(rèn)設(shè)置)和專業(yè)設(shè)計(jì)知識(shí)(適合特定芯片的工具參數(shù)和事件順序,詳見(jiàn)圖1)的幫助下,它能使ReShape迅速具備物理設(shè)計(jì)流程的實(shí)用技巧。 利用Hopper設(shè)計(jì)的3dfx圖形芯片具有以下一些性能特點(diǎn): 1. 采用TSMC的0.18微米制造工藝;2. 六層布線;3. 150萬(wàn)個(gè)可置放對(duì)象 ;4. 3千萬(wàn)個(gè)晶體管;5. 200個(gè)RAM、4個(gè)PLL、3個(gè)D/A轉(zhuǎn)換器和2個(gè)AGP;6. 18個(gè)模塊(12個(gè)內(nèi)核、4個(gè)焊盤環(huán)(pad-ring)模塊);7. 18個(gè)不同時(shí)鐘,最高頻率為533MHz(典型值為200-350MHz); 8. ******的模塊有25萬(wàn)個(gè)可置放對(duì)象;9. 增加的信號(hào)增強(qiáng)器有1萬(wàn)多個(gè)。 類似這樣的設(shè)計(jì)其增長(zhǎng)速度遠(yuǎn)遠(yuǎn)超過(guò)EDA工具的發(fā)展速度,因此層次化物理設(shè)計(jì)的必要性也越加突出。分層方法產(chǎn)生的網(wǎng)表會(huì)更小,它能縮短設(shè)計(jì)周期、提高工具可靠性,因?yàn)樾枰D(zhuǎn)存的內(nèi)核更少,產(chǎn)品質(zhì)量也會(huì)有質(zhì)的飛躍。 更重要的是,采用分層設(shè)計(jì)方法后各設(shè)計(jì)小組可以在模塊級(jí)協(xié)同從事同一塊芯片的開(kāi)發(fā)工作,從而使人員與工具的利用效率得以有效提高。 另外,層次化設(shè)計(jì)流程能使設(shè)計(jì)人員的信心在每一次迭代后更加堅(jiān)定。根據(jù)定義,芯片的各個(gè)模塊能有效地控制單元固有的離散性,從而******限度地減少時(shí)序或擁塞的變化。但傳統(tǒng)的平面化流程不可能保證這些單元定位在最鄰接的位置,因此每一次細(xì)微變化所需的驗(yàn)證迭代都會(huì)帶來(lái)新的問(wèn)題。 傳統(tǒng)分層設(shè)計(jì)的缺點(diǎn)之一是缺乏多種優(yōu)化措施,因?yàn)楦鱾€(gè)模塊都是獨(dú)立的,有些必要的改變對(duì)工程師來(lái)說(shuō)缺少透明性。這種“水平作用(horizon effect)”會(huì)導(dǎo)致較差的產(chǎn)品質(zhì)量。有許多任務(wù)會(huì)受到水平作用的影響,如:1. 引腳分配;2. 電路規(guī)則(如******躍遷);3. 時(shí)序問(wèn)題;4. 驗(yàn)證問(wèn)題(如天線規(guī)則);5. 時(shí)鐘分配;6. 功率分配。 而ReShape設(shè)計(jì)流程在進(jìn)行層次化物理設(shè)計(jì)時(shí)不存在這些問(wèn)題。因?yàn)樵谠撛O(shè)計(jì)流程中上一步驟的輸出會(huì)作為下一次運(yùn)行的輸入,再通過(guò)對(duì)最新變化的觀察,設(shè)計(jì)人員就能確認(rèn)上次設(shè)計(jì)中模塊間的適應(yīng)性,從而可以根據(jù)歷次設(shè)計(jì)數(shù)據(jù)精確調(diào)整布局。傳統(tǒng)的設(shè)計(jì)流程試圖通過(guò)一次運(yùn)行就產(chǎn)生最優(yōu)化的布局結(jié)果,而ReShape流程允許設(shè)計(jì)的多次運(yùn)行驗(yàn)證,每一次運(yùn)行都能使布局更加精良,從而產(chǎn)生******的布局效果。在某種意義上,隨著運(yùn)行次數(shù)的增加,ReShape工具的智能特性會(huì)進(jìn)一步增強(qiáng),以致于能利用前次的布局避免水平作用的發(fā)生。 傳統(tǒng)的層次化設(shè)計(jì)流程依賴于所有模塊間留出的開(kāi)放式通道,這些通道主要用于提供最后設(shè)計(jì)修改時(shí)所需的連線空間。但通道的使用是不受人歡迎的,原因有三:1. 由于它們的使用會(huì)引起成堆的連線,因此極易產(chǎn)生線間耦合問(wèn)題,不能保證芯片的全速運(yùn)行,甚至?xí)剐酒霈F(xiàn)故障。2. 頂級(jí)網(wǎng)絡(luò)的走線路徑太長(zhǎng),因?yàn)樗鼈冎荒芾@過(guò)而不能穿過(guò)模塊。3. 它們會(huì)浪費(fèi)芯片的寶貴空間資源。 為了解決上述通道問(wèn)題,ReShape設(shè)計(jì)流程采取利用相鄰模塊的做法(圖2)。由于信號(hào)線可以直接穿過(guò)模塊,并對(duì)模塊內(nèi)部的額外金屬資源作了充分利用,從而使模塊間的互聯(lián)性能得到了極大地優(yōu)化,這樣模塊間的空余空間也就不復(fù)存在了。ReShape流程的應(yīng)用使物理設(shè)計(jì)更加緊湊,布線距離更短 ,從而使最終產(chǎn)品具有更短的路徑、更高的可靠性和更快的工作速度。 協(xié)同設(shè)計(jì) 如果沒(méi)有后端設(shè)計(jì)的反饋信息,功能設(shè)計(jì)人員在設(shè)計(jì)時(shí)不可避免地會(huì)產(chǎn)生很多問(wèn)題,一旦芯片進(jìn)入物理設(shè)計(jì)階段,這些問(wèn)題的解決就變得相當(dāng)困難,代價(jià)也非常巨大。但協(xié)同的功能和物理設(shè)計(jì)則可以避免這樣的問(wèn)題,因?yàn)橹灰承┚W(wǎng)表的主要結(jié)構(gòu)定下來(lái)物理設(shè)計(jì)人員就能開(kāi)展工作了,這時(shí)距整個(gè)前端設(shè)計(jì)完成可能還有數(shù)個(gè)月(有時(shí)甚至?xí)且荒?的時(shí)間。 物理設(shè)計(jì)的提前啟動(dòng)能使前端設(shè)計(jì)人員有充足時(shí)間重新調(diào)整RTL設(shè)計(jì),以解決物理設(shè)計(jì)階段產(chǎn)生的問(wèn)題。前端設(shè)計(jì)人員做出的決定可能會(huì)影響到物理設(shè)計(jì),因此理想的方法是向他們提供足夠的物理設(shè)計(jì)信息作為他們決策的參考。設(shè)計(jì)中的早期反饋能使產(chǎn)品擁有更高的性能。事實(shí)上,隨著深亞微米設(shè)計(jì)的出現(xiàn),需要更多地考慮多個(gè)信號(hào)增強(qiáng)器插入時(shí)通過(guò)芯片的時(shí)延,因此帶預(yù)布局的早期試驗(yàn)工作變得越來(lái)越重要。 協(xié)同設(shè)計(jì)的可行性在于模塊級(jí)網(wǎng)表的主要結(jié)構(gòu)會(huì)在設(shè)計(jì)的較早階段確定。功能設(shè)計(jì)階段的剩余時(shí)間通常用來(lái)實(shí)現(xiàn)控制邏輯、設(shè)計(jì)驗(yàn)證和微小缺陷修改,但這些變化通常不會(huì)對(duì)后端階段的網(wǎng)表行為造成太大的影響。有了這樣的概念,就可以讓物理設(shè)計(jì)人員訪問(wèn)已經(jīng)完成的部分邏輯,從而充分體會(huì)協(xié)同設(shè)計(jì)帶來(lái)的好處。 采用ReShape設(shè)計(jì)流程后,協(xié)同的前端和后端設(shè)計(jì)能使RTL設(shè)計(jì)人員選擇更方便的時(shí)候進(jìn)行修改工作,并能更加有效地解決后端問(wèn)題。這一優(yōu)點(diǎn)非常重要,例如在設(shè)計(jì)******型模塊時(shí),設(shè)計(jì)人員經(jīng)常被擁塞或熱點(diǎn)問(wèn)題所困繞。檢查發(fā)現(xiàn)該區(qū)域的部分分層網(wǎng)表中包含有大量的高扇出網(wǎng)絡(luò),它們是實(shí)際功能為2:1復(fù)接器的AOI門的選通信號(hào),Synopsys工具之所以選擇AOI門是因?yàn)樗鼈冊(cè)诩垙埳系挠∷⑿Ч晕⒑眯? 為了解決這個(gè)問(wèn)題,需要做二方面的修改工作。首先把綜合腳本改成“infer-mux”指令,這樣可以將高扇出網(wǎng)絡(luò)的數(shù)量減半。另外,需要在流程中對(duì)這一模塊再做一次緩沖樹(shù)優(yōu)化。因此,通過(guò)對(duì)這些后端故障的早期發(fā)現(xiàn),RTL設(shè)計(jì)人員可以輕松地開(kāi)展修改工作。 在深亞微米設(shè)計(jì)中,線模(wire model)與實(shí)際產(chǎn)品之間的差異是非常大的,此時(shí)協(xié)同設(shè)計(jì)很難或幾乎不可能用于時(shí)序收斂。一些比較保守的設(shè)計(jì)人員希望能利用設(shè)計(jì)余量來(lái)縮小這些差異,不幸的是,現(xiàn)在的工藝水平下這種方法常常是不可行的。 ReShape設(shè)計(jì)流程為每個(gè)模塊創(chuàng)建了僅用于綜合的線載模型。邏輯設(shè)計(jì)師通常都忽略綜合時(shí)序報(bào)告(簡(jiǎn)單的A對(duì)B網(wǎng)表比較除外),反而對(duì)后布局時(shí)序非常感興趣(這種基于布局的時(shí)序至少與上次的全布線/全抽取運(yùn)行相關(guān))。 這些線模僅用于創(chuàng)建具有相當(dāng)硬性(stiffness)的網(wǎng)表,這些網(wǎng)表可以用來(lái)優(yōu)化后端的時(shí)序收斂。線模一旦設(shè)置正確設(shè)計(jì)師就可以向流程中注入新的網(wǎng)表,并在數(shù)小時(shí)后用實(shí)際數(shù)據(jù)評(píng)估RTL或綜合的變化。 經(jīng)過(guò)一次運(yùn)行后,設(shè)計(jì)師自然想知道芯片的時(shí)序是否收斂,是否存在布線擁塞問(wèn)題。采用ReShape流程后,大多數(shù)模塊的整個(gè)環(huán)回過(guò)程只用花幾個(gè)小時(shí)。例如,具有10萬(wàn)個(gè)可置放對(duì)象的模塊達(dá)到時(shí)序和布線的完全收斂共花了10個(gè)小時(shí)左右,同一過(guò)程如果用傳統(tǒng)方法可能會(huì)花上數(shù)天時(shí)間。當(dāng)RTL收斂于最后一份網(wǎng)表后就可以正式輸出了。 由于采用了自動(dòng)化和分層設(shè)計(jì)工藝,從草圖到設(shè)計(jì)出完整的3dfx芯片可以在24小時(shí)內(nèi)完成。從門級(jí)網(wǎng)表開(kāi)始(網(wǎng)表本身就超過(guò)1兆位),加上預(yù)布局、經(jīng)過(guò)資源樹(shù)檢驗(yàn)的流程配置,總共有4000多份獨(dú)立的子任務(wù),最終所有的模塊都經(jīng)過(guò)布局布線達(dá)到了時(shí)序收斂。ReShape工具與Avanti運(yùn)行工具共創(chuàng)建了1萬(wàn)多個(gè)文件。 如果因?yàn)榫W(wǎng)絡(luò)或硬件問(wèn)題使系統(tǒng)發(fā)生了故障,該設(shè)計(jì)流程能自動(dòng)重啟并從中斷處自動(dòng)恢復(fù)運(yùn)行。 自動(dòng)化處理 ReShape設(shè)計(jì)流程的一個(gè)******優(yōu)點(diǎn)是能自動(dòng)處理分層物理設(shè)計(jì)通常所需的成千個(gè)手工作業(yè)步驟。該設(shè)計(jì)流程提供了在各個(gè)階段增加特殊自動(dòng)化操作的框架結(jié)構(gòu),可以解決模塊建立時(shí)引起的許多問(wèn)題。設(shè)計(jì)師明確了需要自動(dòng)化處理的耗時(shí)任務(wù)后,就可以開(kāi)發(fā)出與流程相配套的代碼來(lái)完成這些任務(wù)。自動(dòng)化處理不僅可以節(jié)省大量的設(shè)計(jì)時(shí)間,而且由于它的基礎(chǔ)是原有芯片的成功經(jīng)驗(yàn)及被證明的完善配置,因此設(shè)計(jì)人員可以有時(shí)間精確調(diào)整這些設(shè)置,確保獲得******的工具性能。 繼承過(guò)去的設(shè)計(jì)技術(shù) 在這次實(shí)際設(shè)計(jì)中,布局過(guò)程分成幾個(gè)獨(dú)立的步驟完成。首先是準(zhǔn)備命令文件。一開(kāi)始,設(shè)計(jì)流程需要打開(kāi)數(shù)據(jù)庫(kù)并進(jìn)行模塊學(xué)習(xí),對(duì)根據(jù)用戶參數(shù)定義的控制加以利用,繼而生成一個(gè)命令文件,該文件包含了設(shè)計(jì)人員所學(xué)到對(duì)這一模塊進(jìn)行布局的******方法。任何使用該流程的人都能獲得流程創(chuàng)建人員的有益經(jīng)驗(yàn)和知識(shí),該流程創(chuàng)建人員也許就是以前的模塊創(chuàng)建者。 另外一個(gè)例子是日志文件瀏覽的自動(dòng)化。日志文件記錄的是供應(yīng)商工具所產(chǎn)生的完整通信內(nèi)容,能告訴用戶每個(gè)任務(wù)的執(zhí)行結(jié)果。如果設(shè)計(jì)人員沒(méi)有詳細(xì)瀏覽日志文件,可能會(huì)在成千上萬(wàn)行數(shù)據(jù)中錯(cuò)失能指明問(wèn)題的重要一行信息。更可怕的是該信息可能數(shù)天或數(shù)周內(nèi)都不會(huì)再明示出來(lái)。ReShape流程內(nèi)嵌了記錄檢查軟件,能自動(dòng)打開(kāi)和閱讀記錄文件,自動(dòng)尋找錯(cuò)誤信息,找到后會(huì)暫停搜索并加亮顯示該條信息。 不管設(shè)計(jì)工具如何先進(jìn),在做新的項(xiàng)目或采用新的庫(kù)或工藝時(shí)總會(huì)有新的物理設(shè)計(jì)問(wèn)題產(chǎn)生。通常EDA供應(yīng)商只能解決其中的一部分問(wèn)題。但ReShape流程所創(chuàng)建的特殊用途代碼可以滿足特殊需求,這些代碼配置好后可以集成進(jìn)設(shè)計(jì)流程中,使流程具備了功能強(qiáng)大的可以增加這類工具的框架結(jié)構(gòu)。 例如在3dfx芯片中,有若干AGP和SDRAM總線,它們的時(shí)鐘斜率參數(shù)是非常嚴(yán)格的。3dfx公司以前芯片的時(shí)鐘斜率是通過(guò)手工編輯處理的。然而如果焊盤環(huán)需要作些改變時(shí)(如內(nèi)核尺寸的變化或焊盤的移動(dòng)),手工布局就無(wú)法適用了,此時(shí)人工布局需要全部推倒重做才能適合新設(shè)計(jì)的需要。 為了解決上述問(wèn)題,ReShape提供“點(diǎn)工具”來(lái)處理這些AGP總線布局,當(dāng)預(yù)布局方案改變時(shí)這些工具代碼是可以重編的,因此設(shè)計(jì)人員能夠方便地改變芯片的物理設(shè)計(jì),只需一個(gè)按鍵就能放大或縮小芯片尺寸,每次尺寸改變后所有以前設(shè)好的數(shù)據(jù)都會(huì)自動(dòng)重新生成,并會(huì)創(chuàng)建符合AGP性能要求的平衡總線。因此設(shè)計(jì)人員在修改芯片尺寸時(shí)無(wú)需關(guān)心平衡總線的復(fù)雜布局,給試驗(yàn)帶來(lái)了極大的靈活性。 事實(shí)上,在芯片設(shè)計(jì)過(guò)程中焊盤環(huán)的整個(gè)構(gòu)建過(guò)程是手工參與成份最多的工作之一。但是,現(xiàn)在可以利用可配置點(diǎn)工具方面的庫(kù)來(lái)創(chuàng)建適合焊盤環(huán)各個(gè)組裝環(huán)節(jié)的可重做流程(replayable flow)。 流程中的最后一項(xiàng)測(cè)試是如何快速地實(shí)現(xiàn)最后一次修改。分層設(shè)計(jì)流程的另外一個(gè)重要特點(diǎn)是能從新的網(wǎng)表中重建某個(gè)模塊而不影響芯片的其余部分。而傳統(tǒng)的平面化設(shè)計(jì)流程中,芯片任何部分的改變都會(huì)影響到整個(gè)芯片的設(shè)計(jì),需要付出大量的重復(fù)勞動(dòng),因此會(huì)嚴(yán)重影響芯片的產(chǎn)能。 分層設(shè)計(jì)方法為最終的物理設(shè)計(jì)指明了正確的方向,能使設(shè)計(jì)人員從容應(yīng)付最后時(shí)刻的網(wǎng)表變化。例如,設(shè)計(jì)人員需要在距正式投產(chǎn)前僅有三個(gè)星期時(shí)修改一個(gè)3萬(wàn)門的設(shè)計(jì),而且這個(gè)修改是比較復(fù)雜的,需要增加新的功能來(lái)滿足最新的圖形標(biāo)準(zhǔn),這對(duì)芯片的市場(chǎng)開(kāi)發(fā)很重要。同樣重要的是,這次修改只影響全部22個(gè)模塊中的三個(gè)模塊,因此設(shè)計(jì)人員可以隔離這三個(gè)有影響的模塊,并只對(duì)它們做重新綜合,芯片的其它部分仍維持不變。而平面化化流程則需要重新構(gòu)建整個(gè)芯片,這會(huì)極大地推遲產(chǎn)品上市時(shí)間。 很強(qiáng)的適應(yīng)性 ReShape除了對(duì)目前所設(shè)計(jì)的芯片具有很短的設(shè)計(jì)周期優(yōu)點(diǎn)外,對(duì)未來(lái)芯片的設(shè)計(jì)也有很大的幫助。因?yàn)镽eShape設(shè)計(jì)流程能在設(shè)計(jì)過(guò)程中不斷地收集學(xué)習(xí)相關(guān)知識(shí),壯大自身的功能,因此將來(lái)在設(shè)計(jì)采用相同工藝的芯片或工藝不同但功能相似的芯片時(shí)可以借鑒。 ReShape設(shè)計(jì)流程的價(jià)值在產(chǎn)品投產(chǎn)后一個(gè)月就得到了證明,此時(shí)3dfx公司正在利用該流程進(jìn)行另一個(gè)相同工藝的芯片生產(chǎn)。在3dfx轉(zhuǎn)產(chǎn)過(guò)程中,正在設(shè)計(jì)的僅有70萬(wàn)個(gè)可置放對(duì)象的另三顆芯片,采用的都是0.15微米流程。 所有的預(yù)布局信息都有助于采用新工藝進(jìn)行芯 |