亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

構(gòu)架物理綜合的制作方法

文檔序號:6477878閱讀:170來源:國知局
專利名稱:構(gòu)架物理綜合的制作方法
技術(shù)領(lǐng)域
本發(fā)明主要涉及集成電路設(shè)計(jì)領(lǐng)域,并且尤其涉及通過高層描述(highlevel description)的綜合(synthesis)過程來進(jìn)行集成電路設(shè)計(jì)。
背景技術(shù)
對于VLSI (超大規(guī)模集成)級的數(shù)字電路設(shè)計(jì)工藝而言,設(shè)計(jì)者常常采用計(jì)算機(jī) 輔助技術(shù)。已開發(fā)了諸如硬件描述語言(HDL)的標(biāo)準(zhǔn)語言來描述數(shù)字電路,以輔助復(fù)雜數(shù) 字電路的設(shè)計(jì)和模擬。諸如VHDL和Verilog的多種硬件描述語言已逐漸成為行業(yè)標(biāo)準(zhǔn)。 VHDL和Verilog是通用硬件描述語言,其允許使用抽象數(shù)據(jù)類型來定義芯片原始級、寄存 器傳輸級(RTL)或行為級的硬件模型。隨著器件工藝?yán)^續(xù)進(jìn)步,已開發(fā)了各種產(chǎn)品設(shè)計(jì)工 具以使HDL適合用于新的器件和設(shè)計(jì)風(fēng)格。在利用HDL代碼設(shè)計(jì)集成電路時,首先編寫代碼,并由HDL編譯器對所編寫的代碼 進(jìn)行編譯。HDL源代碼在某一層描述電路元件,且編譯程序通過所述編譯而產(chǎn)生RTL網(wǎng)表 (nestlist)。RTL網(wǎng)表由多個RTL對象或組件以及多個網(wǎng)絡(luò)(net)(該網(wǎng)絡(luò)為所述組件之 間的信號連接)構(gòu)成。所述RTL網(wǎng)表通常是與技術(shù)無關(guān)的網(wǎng)表,因?yàn)槠渑c特定廠商的集成 電路(例如,現(xiàn)場可編程門陣列(FPGA)或?qū)S眉呻娐?ASIC))的技術(shù)或架構(gòu)無關(guān)。所述 RTL網(wǎng)表對應(yīng)于電路元件的示意性表示(與行為表示相比)。然后執(zhí)行映射操作,以從與技 術(shù)無關(guān)的RTL網(wǎng)表轉(zhuǎn)換到可以用來創(chuàng)建廠商技術(shù)或架構(gòu)中的電路的技術(shù)專用網(wǎng)表,所述映 射操作包括對實(shí)例(instance)進(jìn)行布局以及對互連(interconnection)進(jìn)行布線,以使得 電路滿足給定的時序、間隔和功率約束。如圖1所示,早期的電子設(shè)計(jì)自動化(EDA)是完全將HDL綜合與布局/布線過程 相分離的。在操作11,準(zhǔn)備HDL代碼。在操作13,對操作11中所準(zhǔn)備的HDL進(jìn)行編譯并綜 合,以產(chǎn)生網(wǎng)表,通常通過執(zhí)行邏輯優(yōu)化對該網(wǎng)表進(jìn)行優(yōu)化。在此之后,映射過程將所述網(wǎng) 表映射至特定目標(biāo)技術(shù)/架構(gòu)。在操作13結(jié)束之后,便已完成了綜合,且現(xiàn)在可提供專用 于廠商的IC中使用的技術(shù)/架構(gòu)的網(wǎng)表。該網(wǎng)表有效地位于門級,且基于預(yù)布局信息(例 如,扇出計(jì)數(shù)、或所連接的組件類型及尺寸)通過使用互連性質(zhì)統(tǒng)計(jì)模型來對時序分析進(jìn) 行估算。在綜合之后,可在操作15對邏輯電路執(zhí)行傳統(tǒng)的布局操作,并在操作17對網(wǎng)表進(jìn) 行局部改變(僅在芯片原始級、單元級或門級上),以滿足時序性能。之后,在操作19執(zhí)行 傳統(tǒng)布線操作,以創(chuàng)建每一 IC中的電路設(shè)計(jì)。如果存在一些未滿足的約束,則所述過程通 過回路迭代(iteration)進(jìn)行修改。
以前,當(dāng)在早期綜合工具中實(shí)例延遲較為突出時,基于統(tǒng)計(jì)模型的時序估算是足 夠精確的,從而綜合與布局的分離需要相對較少次迭代來返回至HDL和綜合階段。然而,利用收縮技術(shù)節(jié)點(diǎn),互連延遲變得非常顯著,超過了門延遲。這導(dǎo)致綜合 操作中的延遲估算與布局和布線操作之后的實(shí)際延遲之間的關(guān)聯(lián)越來越小,致使后綜合 (post-synthesis)與后布置(post-layout)結(jié)果之間缺乏時序預(yù)測能力。因此,在很多情 況下,在布局和布線過程之后,電路物理布置無法滿足電路設(shè)計(jì)標(biāo)準(zhǔn),且通常設(shè)計(jì)必須從綜 合步驟重新開始,并重復(fù)綜合/布局/布線過程。為對綜合進(jìn)行改善,在綜合過程期間考慮與設(shè)計(jì)相關(guān)的物理特性(例如,布局)是非常重要的。現(xiàn)已采用了一系列技術(shù)來將布局信息引入綜合過程,例如元件平面布置、區(qū)域 內(nèi)最佳化(IPO)以及物理綜合。在元件平面布置(floorplarming)技術(shù)中,設(shè)計(jì)被劃分成芯片上的多個區(qū),并在 通過使用統(tǒng)計(jì)模型來估算區(qū)內(nèi)的互連的同時,針對區(qū)間互連使用基于布局的互連估算???在RTL階段早期或初始綜合運(yùn)行之后使用元件平面布置。元件平面布置可被擴(kuò)展為將RTL 組件劃分、復(fù)制以及切割成多個區(qū),并與RTL級時序和區(qū)域模型相組合。之后,可使用來自 區(qū)間時序的改善后的時序來更精確地驅(qū)動RTL級優(yōu)化。手動產(chǎn)生高質(zhì)量的元件平面布置 是非常困難的,且要求用戶擁有熟練的技術(shù)。自動元件平面布置器(例如,太拉系統(tǒng)(Tera System)(美國專利6,145,117和6,360,356)中的元件平面布置器)可創(chuàng)建多個區(qū),并將 RTL組件分配給多個區(qū)。因?yàn)榫C合被去耦合(decouple),且在自動元件平面布置之后,因此 在元件平面布置期間,時序和區(qū)域信息的準(zhǔn)確度很低。一種稱為區(qū)域內(nèi)最佳化(IPO)的技術(shù)提供了從布局和布線延遲至綜合域的逆向 注解。僅因?yàn)榧?xì)節(jié)布局未被更新,關(guān)鍵路徑會被重新優(yōu)化,經(jīng)修改的網(wǎng)絡(luò)的互連延遲會返回 到統(tǒng)計(jì)模型。如果做出了許多改變,則后續(xù)的最終網(wǎng)表的合法化(legalization)可能需要 將實(shí)例移動至遠(yuǎn)離他們初始位置的位置,導(dǎo)致巨大的延遲估算誤差。基于此原因,在需要顯 著改變以實(shí)現(xiàn)時序閉合(enclosure)時,IPO被視為是不穩(wěn)定的。另一技術(shù)是物理綜合,該技術(shù)是對IPO技術(shù)的改進(jìn),其中對被映射網(wǎng)表的少量優(yōu) 化與增量式(incremental)重新合法化相交織,以保持延遲和資源度量的精確性。該技術(shù) 的限制在于,個別改變受限于資源的適度增加,或者IPO技術(shù)的不穩(wěn)定問題可能會再次出 現(xiàn)。目前存在多種用于物理綜合的算法。圖2顯示了一種通過使用基于被布局實(shí)例鄰近性 (proximity)的時序估算而提供物理綜合引擎的算法。在操作23中對被映射網(wǎng)表初始布局 之后,在操作24(僅在芯片原始級執(zhí)行)中物理綜合操作選擇電路中用于增量式優(yōu)化及重 新布局的部分。從上述描述可知,亟需對電子設(shè)計(jì)自動化進(jìn)行算法改進(jìn)?,F(xiàn)有專利還涉及或描述了芯片綜合,這些專利包括美國專利6,519,754、 6,711,729,7, 010,769,6, 145,117 以及 6,360,356。論文(Bo Hu, TiminR-DrivenPlacement for Heterogeneous Field Programmable Gate Array, IEEE/ACMInternational Conference on Computer-Aided Design,2006 年 11 月(ICCAD' 06),383-388 頁(ISSN : 1092-3152 ;ISBN 1-59593-389-1))中最近描述了一種布局算法。

發(fā)明內(nèi)容
本發(fā)明公開了用于設(shè)計(jì)集成電路的方法和設(shè)備。在示例性實(shí)施方式中,本發(fā)明的電路設(shè)計(jì)公開了綜合與布局的迭代過程,該過程起始于RTL或行為級,其中每一次迭代均 通過集成電路設(shè)計(jì)的轉(zhuǎn)換而提供增量式改變。在某些方面,所述轉(zhuǎn)換可以是綜合或布局轉(zhuǎn) 換。綜合轉(zhuǎn)換對網(wǎng)表中的對象和/或形成該對象之間的連接的網(wǎng)絡(luò)進(jìn)行修改。布局轉(zhuǎn)換對 網(wǎng)表中一個或多個對象的位置進(jìn)行修改。在本發(fā)明至少某些實(shí)施方式中的增量式迭代方法 可通過使用由設(shè)計(jì)度量(design metric)(例如,當(dāng)前電路網(wǎng)表、布局、時序、資源可用性以 及功率)所確定的適當(dāng)?shù)木C合與布局轉(zhuǎn)換,來提供不斷的改進(jìn)。在某些方面,在每次轉(zhuǎn)換之 后,對受到影響的設(shè)計(jì)度量進(jìn)行更新,以使得將來的轉(zhuǎn)換決策可基于精確的設(shè)計(jì)統(tǒng)計(jì)。所述 過程朝向設(shè)計(jì)的最終時序資源和功率閉合(enclosure)而增量式迭代。本發(fā)明至少某些實(shí)施方式的關(guān)鍵方面在于,在識別高層(high level)組件的特定資源類型之前進(jìn)行布局。例如,對具有期望權(quán)重以及相關(guān)的組件資源總量的可選實(shí)施形式 進(jìn)行分類,且布局器對布局進(jìn)行演變,以移動組件靠近期望實(shí)施形式的資源類型。在優(yōu)選實(shí)施方式中,本發(fā)明起始于表示RTL或行為設(shè)計(jì)(電路)的圖以及芯片資 源物理圖。執(zhí)行迭代轉(zhuǎn)換,其中每次轉(zhuǎn)換可對電路或電路中對象的布局進(jìn)行優(yōu)化或完善。在一種實(shí)施方式中,轉(zhuǎn)換由高層優(yōu)化構(gòu)成。該轉(zhuǎn)換通過規(guī)則或數(shù)學(xué)轉(zhuǎn)換而將組件 或多個組件優(yōu)化成功能等效且具有較優(yōu)特性(例如,時序、功率或資源消耗)的可選的一組 組件。此類轉(zhuǎn)換的一示例為重新組織算術(shù)表達(dá)式,以降低樹高從而改善延遲。另一示例為 資源共享或不共享。在另一實(shí)施方式中,高層優(yōu)化轉(zhuǎn)換將一組或多組電路對象從抽象的形式完善為更 為具體的形式。完善轉(zhuǎn)換的一示例為將算術(shù)表達(dá)式映射至芯片上的DSP資源。當(dāng)抽象形式 被完善之后,通常存在多個實(shí)施形式選擇。例如,算數(shù)表達(dá)式可通過芯片上的專用算數(shù)功能 (DSP塊)、存儲器內(nèi)的表查找來實(shí)施,或可用芯片上的較低層的邏輯組件(LUT或門和觸發(fā) 器)來構(gòu)建。行為綜合流程中的組件可具有基于可選規(guī)劃和資源共享所記錄的多個實(shí)施形 式。行為組件的此類可選形式還可基于當(dāng)前可用資源以及互連延遲來動態(tài)生成。在另一實(shí)施方式中,所述完善轉(zhuǎn)換還具有基于可選實(shí)施形式的質(zhì)量的緊急性度 量,且可根據(jù)緊急性而被選擇??筛鶕?jù)設(shè)計(jì)目標(biāo)(例如,區(qū)域消耗、功耗或時序)來測量實(shí)施 形式的質(zhì)量。還可包括其他更為深奧的目標(biāo),例如單一事件擾亂難度(single event upset hardness)。例如,如果設(shè)計(jì)包含一個大的存儲器以及若干個小型存儲器,且大存儲器在被 邏輯結(jié)構(gòu)實(shí)施時具有相對較差的實(shí)施質(zhì)量,則相比于將設(shè)計(jì)中的中型存儲器與芯片上稀有 的專用存儲資源相關(guān)聯(lián),將大存儲器與芯片上稀有的專用存儲資源相關(guān)聯(lián)則相對更為重要 一些。因此,大存儲器的緊急性度量遠(yuǎn)高于小存儲器的度量。一旦組件被映射至特定實(shí)施 形式并與芯片上的特定資源相關(guān)聯(lián),則到這些組件的連接便用作電路剩余部分的布局的錨 (anchor),從而改善了時序質(zhì)量以及可用資源的估算。在一種實(shí)施方式中,所述布局轉(zhuǎn)換可以是一個或多個可布局對象的位置的完善, 以改善布局度量,例如,實(shí)例擁塞、可布線性(routability)以及電路性能??刹季謱ο罂?由行為綜合組件、未被映射的邏輯的RTL塊、被映射的邏輯、或這些項(xiàng)的任意組合構(gòu)成。在一實(shí)施方式中,所述布局轉(zhuǎn)換能夠修改不同抽象化水平的對象。例如,一些可布 局對象可以是RTL塊,而其他可布局對象可以是被映射的門。
在另一實(shí)施方式中,可在所述布局被演化得足夠局部化以致于可確定可用資源并 估算布線延遲時,觸發(fā)完善轉(zhuǎn)換。根據(jù)本發(fā)明另一方面,用于設(shè)計(jì)集成電路的示例性方法提供一種增量式轉(zhuǎn)換迭代,其中綜合與布局轉(zhuǎn)換并沒有一定的順序,僅根據(jù)他們的功能而被選擇。電路設(shè)計(jì)自動化 基于選擇函數(shù)來選擇下一轉(zhuǎn)換(綜合或布線)。在每一次迭代時,計(jì)算預(yù)定的轉(zhuǎn)換列表的成 本。該成本可包括預(yù)測(look ahead)其他轉(zhuǎn)換中的成本變化。例如,如果將算術(shù)運(yùn)算映射 至ROM,則會移除用于其它運(yùn)算的實(shí)施形式的ROM選項(xiàng),從而增加了該其他運(yùn)算的成本。可 基于成本收斂標(biāo)準(zhǔn)(例如當(dāng)前布局、網(wǎng)表、資源、時序或功率)來選擇最佳轉(zhuǎn)換。下一轉(zhuǎn)換可以是布局更新、資源分配、綜合優(yōu)化、布局優(yōu)化或布線更新。因此,IC設(shè)計(jì)的狀態(tài)可增量式地朝向最終的電路規(guī)格和布置(layout)推進(jìn)。在另一實(shí)施方式中,迭代地執(zhí)行所述布局轉(zhuǎn)換,直至關(guān)鍵路徑開始成形,或直至 根據(jù)預(yù)定的擁塞閾值資源足夠分散。迭代性能的標(biāo)準(zhǔn)為時序、每資源層(per resource layer)的擁塞、區(qū)域利用率以及功率。所述每資源層的擁塞可通過使用資源層來確定。針對芯片上每一不同原始類型的 資源,存在一資源層。例如,如今的FPGA和結(jié)構(gòu)化ASIC均引入了原始芯片資源的不規(guī)則布 置。這些原始類型包括邏輯(LUTS)、觸發(fā)器、特定1/0單元(例如用于高速串行互連的串 化器/解串化器(SERDES))、各種具有不同容量的存儲組件以及用于加速DSP算法的高速 算術(shù)塊。除邏輯和觸發(fā)器之外,通常,這些資源均以稀疏且可能不規(guī)則的形式被包括。許多 FPGA具有有限數(shù)量的RAM、DSP以及以稀疏的列布置在芯片上的其他專用邏輯塊。例如,僅 在芯片布局中的兩列有DSP算術(shù)塊。資源層是針對每一原始類型所創(chuàng)建的分布圖,并記錄 了針對所述類型的可用資源位置以及所述類型的每一本原(primitive)的布局。如果局部 物理區(qū)供不應(yīng)求,則稱該層存在擁塞。在所述方法的典型示例中,用具有時序約束以及布局約束(例如10管腳、現(xiàn)有的 元件平面布置或現(xiàn)有的布局)的高層表示來生成所述集成電路的設(shè)計(jì)的初始狀態(tài)。該高層 表示可為硬件描述語言(HDL)代碼或?qū)τ布枋稣Z言(HDL)代碼進(jìn)行編譯之后的與技術(shù)無 關(guān)的RTL網(wǎng)表。在一實(shí)施方式中,首先由基于時序的一系列中性優(yōu)化(neutraloptimization)來 對所述集成電路設(shè)計(jì)的初始狀態(tài)的網(wǎng)表進(jìn)行優(yōu)化。所述中性優(yōu)化可以是很容易撤銷的任何 區(qū)域恢復(fù),例如資源共享或不共享;優(yōu)選基于扇出(fanout)表時序的加法樹分解;資源分 配;有助于跨層級優(yōu)化的網(wǎng)表的平化(flattening);復(fù)用器提取或重構(gòu)。在一實(shí)施方式中,集成電路設(shè)計(jì)的狀態(tài)基本流程從RTL網(wǎng)表發(fā)展至分解、因素分 解(factorization)、以及被映射及布線之后的網(wǎng)表。在該流程中,可執(zhí)行布局修改、資源分 配以及區(qū)域或時序優(yōu)化。在一實(shí)施方式中,可重復(fù)對布局和電路架構(gòu)進(jìn)行完善的過程,直至所有高層組件 均已被給定一個特定的實(shí)施形式且資源分配及布局已在芯片上展開以使得每個組件附近 均具有足夠的實(shí)施資源。基于此觀點(diǎn),可使用更多的傳統(tǒng)物理綜合流程來完成整個實(shí)施。在另一實(shí)施方式中,記錄所應(yīng)用的轉(zhuǎn)換及其潛在的可選轉(zhuǎn)換。可重復(fù)所述流程,并 可應(yīng)用可選轉(zhuǎn)換來實(shí)現(xiàn)更佳的效果。本發(fā)明還公開了包括軟件媒體的設(shè)備,所述軟件媒體可用于設(shè)計(jì)集成電路。例如,本發(fā)明包括數(shù)字處理系統(tǒng),該系統(tǒng)能夠根據(jù)本發(fā)明來設(shè)計(jì)集成電路,而且本發(fā)明還提供機(jī) 器可讀媒體,當(dāng)該機(jī)器可讀媒體在數(shù)字處理系統(tǒng)(例如計(jì)算機(jī)系統(tǒng))上執(zhí)行時,可促使該數(shù) 字處理器系統(tǒng)執(zhí)行用于設(shè)計(jì)集成電路的方法。通過附圖以及以下詳細(xì)描述,本發(fā)明的其他特征將顯而易見。


附圖中的圖示以示例的方式而非限定性地示出了本發(fā)明,其中相同的參考標(biāo)記表示相類似的元件。圖1顯示了現(xiàn)有技術(shù)的用于設(shè)計(jì)集成電路的方法;圖2顯示了現(xiàn)有技術(shù)的物理綜合的示例性方法;圖3顯示了根據(jù)本發(fā)明一種實(shí)施方式的設(shè)計(jì)集成電路的方法的流程圖;圖4顯示了根據(jù)本發(fā)明一種實(shí)施方式的設(shè)計(jì)集成電路的另一方法的流程圖;圖5A和圖5B顯示了根據(jù)本發(fā)明某些實(shí)施方式的設(shè)計(jì)集成電路的方法的細(xì)節(jié);圖6顯示了根據(jù)本發(fā)明一種實(shí)施方式的設(shè)計(jì)集成電路的方法的流程圖;圖7顯示了對形狀和資源進(jìn)行的示例性估算;圖8顯示了針對資源類型的示例性映射;圖9A和圖9B為存儲資源的示例性映射;圖IOA和圖IOB為示例性的資源共享實(shí)施形式;圖11顯示了加法樹分解的示例;圖12顯示了門級樹(gate tree)分解的示例;圖13A和圖13B顯示了切片優(yōu)化的示例;圖14顯示了復(fù)制優(yōu)化的示例;圖15顯示了香農(nóng)擴(kuò)展的示例;圖16A和圖16B顯示了復(fù)用器/可編程復(fù)用器合并(collapsing)及時序驅(qū)動分 解的示例;圖17顯示了可與本發(fā)明一起使用的數(shù)據(jù)處理系統(tǒng)的框圖示例。
具體實(shí)施例方式在此描述了用于設(shè)計(jì)集成電路或多個集成電路的方法和設(shè)備。在以下描述中,出 于說明的目的,列出了大量特定細(xì)節(jié),以提供對本發(fā)明的透徹理解。然而,對于本領(lǐng)域技術(shù) 人員而言很明顯的是,本發(fā)明可在缺少這些特定細(xì)節(jié)的情況下實(shí)施。在其他實(shí)例中,公知的 結(jié)構(gòu)、過程和裝置以框圖形式被顯示、或簡要地引用,以使得解釋不至過于繁瑣。本發(fā)明公開了設(shè)計(jì)集成電路的方法和設(shè)備,在一種實(shí)施方式中,所方法和設(shè)備將 布局和綜合整合到單個通道(pass)中。本發(fā)明的實(shí)施方式公開了一種物理綜合過程(稱 為架構(gòu)物理綜合),其中綜合與布局之間的相互作用出現(xiàn)在架構(gòu)層。這使得可利用集成電 路基板表示上的實(shí)際物理布局進(jìn)行綜合,可為綜合提供可用的局部資源以及與布局的實(shí)際 電路時序密切相關(guān)的延遲估算,從而可同時考慮綜合與布局之間的相互影響。此外,這可通 過考慮布局、擁塞估算以及目標(biāo)芯片架構(gòu)的特性(該特性包括但不限于不同資源的物理分 布、組件延遲以及互連延遲)的方式來提供作出高層架構(gòu)決策、映射高層組件或進(jìn)行高層電路轉(zhuǎn)換的自動化方法。根據(jù)本發(fā)明的一方面,在給定電路設(shè)計(jì)或HDL代碼表示的情況下,存在大量對綜合與布局進(jìn)行連結(jié)(interlink)的可選實(shí)施形式,尤其是對于具有給定分布 資源的現(xiàn)有元件平面布置。為獲得最佳設(shè)計(jì)實(shí)施形式,能夠基于當(dāng)前通過布局收集的可用 電路數(shù)據(jù)(例如,時序或功率)來回溯跟蹤早期的綜合決策是很重要的。因此,在本發(fā)明的一方面,在綜合周期的早期(例如,在電路架構(gòu)層、高層設(shè)計(jì)或 行為表示中)執(zhí)行布局,以允許精確評估各種設(shè)計(jì)實(shí)施形式的適用性。這對于并未在芯片 上均勻分布資源的預(yù)擴(kuò)散芯片(例如,F(xiàn)PGA和結(jié)構(gòu)化ASIC)而言是極其重要的。在預(yù)擴(kuò)散 芯片中,資源的位置和資源類型被預(yù)先定義,且以稀疏形式被分布。例如,如今的FPGA和結(jié) 構(gòu)化ASIC已引入了芯片資源不規(guī)則布置。這些組件可包含邏輯、觸發(fā)器、特定I/O單元(例 如,用于高速串行互聯(lián)的串化器/解串化器)、各種具有不同容量的存儲組件以及用于加速 DSP算法的高速算術(shù)塊。許多FPGA具有有限數(shù)量的RAM、DSP以及布置在芯片上的稀疏列 上的其他專用邏輯塊。例如,可僅在芯片布置中的兩列中有DSP算術(shù)塊。一方面,本發(fā)明提出了芯片架構(gòu)演進(jìn)中的這一變化,以在綜合流程起始處對物理 布局和架構(gòu)選擇進(jìn)行整合。該需求可位于RTL層或確定所需不同類型資源的數(shù)量的行為綜合層。當(dāng)前知曉資源布局信息以及在綜合過程早期(例如,設(shè)計(jì)中的許多組件并未具有 所選的實(shí)施形式時)對布局和綜合進(jìn)行整合可提供資源的優(yōu)化利用。例如,并不知曉資源 布置信息的RTL綜合過程可產(chǎn)生一中間網(wǎng)表,該中間網(wǎng)表過度使用了一些資源類型,而其 他資源類型并未得到充分利用。此外,資源類型決策可能與資源的物理位置并不協(xié)調(diào)。例 如,在芯片的局部部分所需的DSP資源可能超過了可獲得的資源。本套綜合方法可通過知 曉資源在芯片上的分布而提供這些資源的有效利用,且不僅可知曉是否存在足夠的特定資 源,而且還可知曉附近是否存在足夠的特定資源。因此,由于將信號布線至位于較遠(yuǎn)處的資 源從而可避免大的互連延遲。根據(jù)本發(fā)明的一方面,可在綜合仍處于高層電路表示(例如,設(shè)計(jì)中的許多組件 還不具有所選實(shí)施形式)、或門級描述仍待確定時,確定各種布局決策。該布局決策可使得 對電路參數(shù)(例如,時間延遲或功耗)進(jìn)行精確評估成為可能,且允許了一條實(shí)現(xiàn)最佳設(shè)計(jì) 實(shí)施形式的增量式路徑。在一種實(shí)施方式中,如圖3所示,在操作30中,過程起始于IC設(shè) 計(jì)的初始狀態(tài),該初始狀態(tài)可包括ESL或HDL語言、行為抽象化、或編譯后的HDL代碼至RTL 網(wǎng)表的高層抽象化,以及時序、元件平面布置、功率和布局約束。在操作31,執(zhí)行綜合轉(zhuǎn)換, 在該過程的早期階段,該轉(zhuǎn)換可為高層轉(zhuǎn)換。所述綜合轉(zhuǎn)換可不僅僅針對部分所述設(shè)計(jì)。 在操作32,在現(xiàn)有的電路表示上執(zhí)行布局轉(zhuǎn)換,且在早期階段,該轉(zhuǎn)換可以是架構(gòu)層上的布 局。所述布局轉(zhuǎn)換可不僅僅針對部分所述設(shè)計(jì)。在此操作處,布局決策可能需要各種假設(shè) 和估算,因?yàn)樵谠撛缙陔A段可能缺少詳細(xì)信息。之后在操作34,評估IC設(shè)計(jì)狀態(tài)的準(zhǔn)備程 度,如果該準(zhǔn)備程度滿足了所設(shè)計(jì)和規(guī)范的目標(biāo),則進(jìn)行至操作48中的傳統(tǒng)物理綜合。如 果所述目標(biāo)并未被滿足(這在該早期階段是很常見的),則循環(huán)回到另一輪綜合。綜合的下一迭代(當(dāng)前操作31)可對設(shè)計(jì)表示進(jìn)行改進(jìn),尤其是在擁有物理布局 信息(之前的操作32)之后。而且類似的,在擁有綜合的改進(jìn)之后,布局的下一迭代(當(dāng)前 操作32)可改良其對電路參數(shù)的估算。利用此類緊密循環(huán),綜合與布局可一起密切地工作, 以提供一條實(shí)現(xiàn)最佳設(shè)計(jì)表示的路徑,且不需要大量的返工(rework)。
在一實(shí)施方式中,所述綜合操作提供了電路設(shè)計(jì)表示的各種實(shí)施形式,且所述布 局操作可執(zhí)行電路參數(shù)分析,以助于縮小選擇范圍。例如,如果實(shí)施形式#1明顯較優(yōu),則其 將被選擇,從而將潛在實(shí)施形式的數(shù)量縮小為一。可選地,如果實(shí)施形式#2明顯位于設(shè)計(jì) 約束的范圍之外,則其可被排除,從而可使?jié)撛趯?shí)施形式的數(shù)量減一。
根據(jù)本發(fā)明的一方面,用于設(shè)計(jì)多個集成電路的示例性方法根據(jù)抽象機(jī)器規(guī)格給 出了經(jīng)整合的、相互影響且迭代的綜合與布局。在一種實(shí)施方式中,所述設(shè)計(jì)集成電路的示 例性方法增量式地改變IC設(shè)計(jì)的狀態(tài)。起始于IC設(shè)計(jì)的初始狀態(tài)(該初始狀態(tài)包括ESL 或HDL語言、行為抽象化、或編譯后的HDL代碼至RTL網(wǎng)表的高階抽象化,以及時序、元件平 面布置、功率和布局約束),所述示例性方法迭代地增量式地改變IC設(shè)計(jì)狀態(tài),直至達(dá)到了 最佳設(shè)計(jì)狀態(tài)。該最佳狀態(tài)優(yōu)選為滿足時序和布局約束的芯片原始級網(wǎng)表,之后該網(wǎng)表可 被傳遞至傳統(tǒng)的布局和布線過程,而不需要大規(guī)模的修正工作。因此,根據(jù)一方面,本發(fā)明公開了綜合與布局的迭代過程,其中每一次迭代對集成 電路的設(shè)計(jì)提供增量式改變?,F(xiàn)參考附圖4給出本發(fā)明某些實(shí)施方式的主要示例。圖4的 方法起始于操作40,其中生成IC設(shè)計(jì)的初始狀態(tài)。該IC設(shè)計(jì)的初始狀態(tài)包括行為表示或 高層RTL網(wǎng)表,該網(wǎng)表可由描述電路和邏輯的HDL源代碼編譯得到。所述與技術(shù)無關(guān)的RTL網(wǎng)表通常是設(shè)計(jì)的更高層的行為表示。這保存了抽象信 息,該抽象信息可用于最終映射步驟之前的過程。這與傳統(tǒng)綜合工具的不同之處在于,在進(jìn) 行語言編譯之后,立即將設(shè)計(jì)分段為微小的低層(門級)表示。通過保留更高層的行為表 示,綜合工具可在更為全局的水平上執(zhí)行優(yōu)化、劃分和元件平面布置,且通??山o出較好的 結(jié)果。通過對抽象數(shù)據(jù)進(jìn)行操作,所述綜合工具還可運(yùn)行得更快,并可處理更大型的設(shè)計(jì)。 所述高層RTL網(wǎng)表包含高層抽象化(例如,電路塊表示),該網(wǎng)表與任何特定廠商的技術(shù)或 架構(gòu)無關(guān)。所述IC設(shè)計(jì)的初始狀態(tài)還包括時序約束、功率約束以及布局約束,例如,IO管腳 位置、現(xiàn)有的元件平面布置或現(xiàn)有的布局(例如,IC芯片的尺寸和形狀、IP塊)。在操作42 中,增量式地改變所述IC設(shè)計(jì)的狀態(tài)。集成電路設(shè)計(jì)的狀態(tài)主要包括網(wǎng)表、時序數(shù)據(jù)、資源 信息、布局信息、布線信息和功率數(shù)據(jù)。設(shè)計(jì)狀態(tài)中的增量式改變可以是綜合或布局修改, 且這將在以下進(jìn)行描述。在本發(fā)明的一方面,所述改變是增量式的,這意味著設(shè)計(jì)優(yōu)化通常 通過對所有當(dāng)前信息(例如,時序估算和布局約束)進(jìn)行少量修改來進(jìn)行。所述增量式改 變允許所述設(shè)計(jì)滿懷信心地穩(wěn)步推進(jìn)。在一方面,所述增量式改變涉及增量式全局布局算 法,例如力導(dǎo)向(force directed)方法。在另一方面,所述增量式改變涉及全局優(yōu)化算法, 例如模擬退火法(simulatedarmealing)。在操作44中,評估所述IC設(shè)計(jì)的狀態(tài),并在操作 46做出是通過回到操作42來繼續(xù)進(jìn)一步的迭代還是在操作48完成設(shè)計(jì)流程的決策。本電路設(shè)計(jì)方法在集成電路設(shè)計(jì)的兩個基本步驟之間設(shè)置高度集成且迭代的過 程,該過程為綜合和物理設(shè)計(jì)(例如,布局和布線)。由于在沒有布局的情況下無法在綜合 中對設(shè)計(jì)約束進(jìn)行準(zhǔn)確估算,且在沒有綜合的情況下無法執(zhí)行布局,利用綜合與布局強(qiáng)烈 地相互依賴的理念,本發(fā)明的設(shè)計(jì)方法通過增量式迭代方法有效地將綜合與布局合并成一 個步驟過程。在一種實(shí)施方式中,本發(fā)明提供綜合/布局轉(zhuǎn)換的迭代。該迭代過程的主體可以 是布局轉(zhuǎn)換、綜合轉(zhuǎn)換或者綜合與布局轉(zhuǎn)換的組合。無論在哪種情況下,集成電路設(shè)計(jì)的狀態(tài)均增量式且迭代地朝向滿足設(shè)計(jì)目標(biāo)的芯片原始級的綜合或布局改變。圖5A和圖5B示 出了用于設(shè)計(jì)IC的部分流程的兩個示例,在圖5A所示方法的情況下,首先進(jìn)行布局轉(zhuǎn)換, 之后進(jìn)行綜合轉(zhuǎn)換,而圖5B中則相反。綜合、布局或綜合/布局的增量式且迭代的轉(zhuǎn)換提 供了在設(shè)計(jì)的任何狀態(tài)下綜合與布局之間的連續(xù)互動。綜合與布局的增量式且迭代的進(jìn)展 確保了所述綜合轉(zhuǎn)換總是具有最新且最精確的設(shè)計(jì)狀態(tài)信息(該信息包括延遲信息以及 來自布局轉(zhuǎn)換的局部資源可用性),且其中所述布局轉(zhuǎn)換總是基于最新的綜合網(wǎng)表,提供對 物理布局和連線信息的最好估算。布局與綜合轉(zhuǎn)換持續(xù)進(jìn)行,直至所述網(wǎng)表僅由芯片級本 原所構(gòu)成、滿足了設(shè)計(jì)目標(biāo)、且布局擁塞被減小至零件布局器(detail placer)可很容易獨(dú) 立地使得任何微小局部區(qū)域合乎規(guī)范的水平。該流程之后,可進(jìn)行傳統(tǒng)物理綜合流程,以完 成整個實(shí)施。圖6顯示了本發(fā)明的用于所述IC設(shè)計(jì)狀態(tài)的增量式改變的實(shí)施方式。本發(fā)明可 同時設(shè)置(Place)各層抽象化。相比于后期迭代(其中,設(shè)計(jì)幾乎由芯片本原所構(gòu)成),在 早期迭代期間,較高層的抽象化對象更為普遍。芯片本原實(shí)例通常為最低層表示。綜合轉(zhuǎn) 換逐步修改所述網(wǎng)表,將高層抽象化的對象變?yōu)楦唧w的對象。這些具體對象具有更為特 別的資源需求,該需求可在后續(xù)的綜合與布局轉(zhuǎn)換中被考慮。布局轉(zhuǎn)換確定網(wǎng)表實(shí)例(RTL 實(shí)例、未被映射的實(shí)例、被映射后的實(shí)例、或芯片原始級實(shí)例)的位置,從而確定電路中除 布線器(router)之外的網(wǎng)絡(luò)的長度及延遲。所述布局轉(zhuǎn)換可朝著規(guī)范布局(其中,規(guī)范的 布局意味著滿足對IC芯片資源的使用進(jìn)行管理的規(guī)則)逐步迭代電路參數(shù)。一般而言,在 早期迭代中,布局與規(guī)范相差較遠(yuǎn)。由于所述布局轉(zhuǎn)換可對對象位置進(jìn)行增量式改變,因此 布局轉(zhuǎn)換的單次迭代并不能創(chuàng)建合乎規(guī)范的布局。通過反復(fù)的布局轉(zhuǎn)換,所述布局將變得 合乎規(guī)范。在本實(shí)施方式中,所述布局轉(zhuǎn)換對于本電子設(shè)計(jì)自動化而言極其重要。在每一次迭代中,迭代的標(biāo)準(zhǔn)可以是時序數(shù)據(jù)、每資源層的擁塞、區(qū)域利用率、功 率水平或他們的任意組合。所述方法可進(jìn)一步包括可能的內(nèi)部循環(huán)迭代以優(yōu)化所述設(shè)計(jì)、 形成關(guān)鍵途徑、或根據(jù)預(yù)定閾值散布所述資源。通過本發(fā)明的綜合與布局轉(zhuǎn)換的增量式迭代方法的實(shí)施方式,在設(shè)計(jì)的任何階 段,總是可以在綜合轉(zhuǎn)換時獲得物理設(shè)計(jì)信息。因此,所述綜合中的優(yōu)化和轉(zhuǎn)化在時序、區(qū) 域以及對可布線性的影響方面總是最新的。在綜合中所作出的有關(guān)電路結(jié)構(gòu)的決策與所述 布局充分配合。本發(fā)明的綜合與布局轉(zhuǎn)換的增量式迭代方法有效地將綜合與布局轉(zhuǎn)換組合起來, 從而可同時優(yōu)化邏輯結(jié)構(gòu)以及電路的空間布局。在該方法的普通示例中,集成電路的設(shè)計(jì) 狀態(tài)增量式地向最終的電路規(guī)格和布置進(jìn)行改進(jìn)。迭代的布局轉(zhuǎn)換的改進(jìn)可以是網(wǎng)表或布局配置的成熟化的增加程度。設(shè)計(jì)的成熟 化通過以下各項(xiàng)的程度來度量網(wǎng)表僅由芯片級本原所構(gòu)成、滿足了設(shè)計(jì)目標(biāo)、以及布局擁 塞被減小至零件布局器(detail placer)可很容易獨(dú)立地使得任何微小局部區(qū)合乎規(guī)定的 水平。所述反復(fù)迭代的綜合轉(zhuǎn)換的改進(jìn)可以是綜合優(yōu)化,例如對對象或?qū)嵗M(jìn)行重構(gòu)或 復(fù)制以滿足時序約束。綜合優(yōu)化包括但不限于電路優(yōu)化、抽象組件分解、算術(shù)映射、不進(jìn) 行/進(jìn)行資源共享、加法樹分解、基于布局的與/或門分解、路徑復(fù)制、路徑繞行移除(path detour removal)、對離散資源(例如,RAM或DSP)的分配、邏輯因素分解、復(fù)用器重構(gòu)、或有助于跨層級優(yōu)化的網(wǎng)表平化。圖6顯示了該方法的實(shí)施方式,該實(shí)施方式起始于操作61,在操作61中生成IC設(shè) 計(jì)的初始狀態(tài)。該IC設(shè)計(jì)的初始狀態(tài)可以是具有相關(guān)狀態(tài)信息(例如,時序數(shù)據(jù)、資源信 息、布局信息、布線信息和/或功率數(shù)據(jù))的RTL網(wǎng)表。一般而言,所述IC設(shè)計(jì)的狀態(tài)包含 足夠的信息來指明電路需求,例如功能、時序、功率和元件平面布置。高層RTL網(wǎng)表包括一網(wǎng)表,該網(wǎng)表中大多數(shù)對象均為低層芯片本原的抽象表示。 多組相關(guān)本原可被表示為具有高層表示(表示經(jīng)RTL編碼的功能)的對象。集成電路的高 層表示或抽象表示可以是邏輯對象,表示RTL代碼或部分RTL代碼。每個對象通常表示多 個芯片本原,例如更為復(fù)雜的功能(例如,加法器、乘法器、復(fù)用器及順序邏輯)以及AND功 能、OR功能。具有高層表示的對象還可以包括存儲塊或私有(知識產(chǎn)權(quán)塊或IP)塊。其他 邏輯對象可為部分RTL代碼,以提供支持功能,例如膠合邏輯(提供緩沖器或接口功能)、時 序邏輯、控制邏輯或存儲邏輯。一些高層RTL對象還可以為芯片級本原。由對象構(gòu)成的網(wǎng) 表還可包括與每個對象相關(guān)的用于連線和布局的信息。所述對象可以包括用于變回至(map back to)相應(yīng)RTL代碼的信息。此外,RTL代碼可包含多個層級,其中多個功能被組合在一起。在一些情形中,多 個組件可從一個層級重新分組到另一層級,以優(yōu)化時序、布線、區(qū)域或功率需求。在其他情 形中,可在增量式迭代過程期間,整體或部分地對功能RTL層級進(jìn)行平化。首先,設(shè)計(jì)的初始狀態(tài)可包括約束,例如時序約束、功率約束和/或布局約束。例 如,布局約束可包括IO管腳的位置、現(xiàn)有的元件平面布置或現(xiàn)有的布局?jǐn)?shù)據(jù)。在示例性實(shí)施方式中,可由基于時序的一系列中性優(yōu)化來對所述設(shè)計(jì)的初始狀態(tài) 進(jìn)行首次優(yōu)化。所述中性優(yōu)化包括很容易撤銷的任何區(qū)域恢復(fù),例如,撤銷/進(jìn)行資源共 享;基于扇出表時序的加法樹分解;明顯的資源完善(refinement),例如如果設(shè)計(jì)中存在 巨大的RAM且僅存在一個可用的RAM塊資源,則所述RAM必須位于所述RAM塊;有助于跨層 級優(yōu)化的網(wǎng)表平化;以及復(fù)用器結(jié)構(gòu)的提取和重構(gòu)。在操作62,基于當(dāng)前設(shè)計(jì)狀態(tài)(當(dāng)前布局、網(wǎng)表、資源、時序、功率和布線)選擇下 一轉(zhuǎn)換,以增量式地改變所述IC設(shè)計(jì)的狀態(tài)。操作63-70為根據(jù)本發(fā)明一種實(shí)施方式的 普通轉(zhuǎn)換,包括布局或更新布局(63)、分配資源(64)、因素分解(65)、映射(66)、優(yōu)化邏輯 (67)、創(chuàng)建/完善實(shí)施形式(68)、更新布線(69)以及其他綜合(70)。所述轉(zhuǎn)換通常是小的 增量式操作,以允許布局與綜合準(zhǔn)確無誤的整合,即,在知曉布局的情況下執(zhí)行綜合,且在 知曉綜合的情況下執(zhí)行布局。因此,迭代和增量式轉(zhuǎn)換63-70包括布局與綜合操作,包括優(yōu)化轉(zhuǎn)換以及布局轉(zhuǎn) 換,所述優(yōu)化轉(zhuǎn)換例如為撤銷/進(jìn)行資源共享、加法樹分解、AND/OR門分解、邏輯復(fù)制、比特 拼接(bit splicing)、繞行移除、因素分解,所述布局轉(zhuǎn)換例如為對離散資源(RAM、DSP等) 的分配以及布線。在示例性實(shí)施方式中,在每一次迭代時,在操作62基于價(jià)值函數(shù)對各種潛在轉(zhuǎn)換 進(jìn)行評估。所述價(jià)值函數(shù)被設(shè)計(jì)為用于選擇最佳轉(zhuǎn)換來進(jìn)行首次操作,從而包括設(shè)計(jì)狀態(tài) 信息,例如時序、布局擁塞、布線擁塞、區(qū)域利用率以及功率。在評估之后,執(zhí)行最佳轉(zhuǎn)換,且 繼續(xù)進(jìn)行迭代,直至滿足了設(shè)計(jì)約束。在一方面,所述設(shè)計(jì)之后可進(jìn)行到傳統(tǒng)的門級布局和 布線。
在每一次迭代時,所述方法經(jīng)過一列選擇,并基于價(jià)值函數(shù)選擇最佳轉(zhuǎn)換。例如, 布局轉(zhuǎn)換與綜合轉(zhuǎn)換之間的選擇是基于時序收斂判別標(biāo)準(zhǔn)的。在關(guān)鍵路徑上,如果可能的 話,布局可試著縮短臨界網(wǎng)絡(luò)(critical net)。如果臨界網(wǎng)絡(luò)不能被縮短,則該網(wǎng)可用于物 理綜合優(yōu)化。根據(jù)本發(fā)明另一方面,用于設(shè)計(jì)集成電路的示例性方法提供轉(zhuǎn)換迭代,其中綜合 與布局轉(zhuǎn)換沒有一定的順序,其中在迭代中,下一轉(zhuǎn)換是基于集成電路設(shè)計(jì)的狀態(tài)而被選 擇的,以向具有時序和布局約束的最終配置改進(jìn)。在一種實(shí)施方式中,所述方法提供轉(zhuǎn)換選 擇算法,其中下一轉(zhuǎn)換是基于某一標(biāo)準(zhǔn)(例如,時序、每資源層的擁塞、區(qū)域利用率以及功 率)而被選擇的。所述 下一轉(zhuǎn)換可以是布局的更新,其中電路將經(jīng)歷一次迭代以進(jìn)行布局 改變,使得當(dāng)前網(wǎng)表具有更少的資源擁塞或更好地滿足設(shè)計(jì)目標(biāo)。所述下一轉(zhuǎn)換可已是綜 合優(yōu)化,例如,因素分解、優(yōu)化或分解。所述下一轉(zhuǎn)換可以是綜合優(yōu)化,例如分割、重構(gòu)或復(fù) 制,以滿足時序或關(guān)鍵路徑需求。所述下一轉(zhuǎn)換可以是綜合,其中當(dāng)前網(wǎng)表可朝著芯片原始 級網(wǎng)表被映射至較低的抽象水平,以定下電路規(guī)格和布置、或更新布線。所述下一轉(zhuǎn)換可以是布局優(yōu)化,例如元件平面布置劃分、資源分配、用于滿足時序 或關(guān)鍵路徑需求的邏輯重構(gòu)或復(fù)制、或更新實(shí)例布局的布線。所述下一轉(zhuǎn)換可以是綜合操 作,其中當(dāng)前網(wǎng)表可朝著芯片原始級網(wǎng)表被映射至較低的抽象水平,以定下電路規(guī)格和布 置。利用增量式轉(zhuǎn)換,設(shè)計(jì)狀態(tài)信息(例如,時序和功率)是最新的,從而可通過精確 考慮對目標(biāo)的影響來執(zhí)行優(yōu)化。在可選實(shí)施方式中,可選擇若干個轉(zhuǎn)換。之后應(yīng)用每個所選轉(zhuǎn)換來測量對設(shè)計(jì)狀 態(tài)的影響,并在之后進(jìn)行恢復(fù)或撤銷。之后,選擇和應(yīng)用最佳轉(zhuǎn)換。在一實(shí)施方式中,本發(fā)明的關(guān)鍵步驟為操作68,該操作針對網(wǎng)表中的每個RTL對 象創(chuàng)建或完善可能的實(shí)施形式選擇。相關(guān)函數(shù)執(zhí)行對每個可選實(shí)施形式所需的形狀和資源 的估算。在另一實(shí)施方式中,操作68還可以為每個實(shí)施形式分配權(quán)重,以表示優(yōu)選實(shí)施形 式。在架構(gòu)層合并了綜合與布局的本發(fā)明的一個關(guān)鍵優(yōu)點(diǎn)在于,允許對不同架構(gòu)實(shí)施形式 進(jìn)行評估。在沒有本架構(gòu)物理綜合的情況下,一旦在RTL綜合階段選擇了實(shí)施形式,則在門 級布局階段,將不可能對高層信息進(jìn)行恢復(fù)。如果其他實(shí)施形式已是優(yōu)選的,這可能造成次 優(yōu)選。因此,如果利用物理信息在RTL層作出了實(shí)施形式?jīng)Q策,則可獲得更佳的時序效果。 在電路已被映射用于布局和布局階段之后,該轉(zhuǎn)化將很難被執(zhí)行。隨著迭代的進(jìn)行以及設(shè)計(jì)狀態(tài)的完善,操作68可利用下級特性 (inferiorproperty)來排除實(shí)施形式選項(xiàng)。下面將利用函數(shù)示例F來解釋操作68,該函數(shù) F實(shí)現(xiàn)為F = S&(A*C) I I S&(B*C)。如果選擇信號S為1,則F為A與C之積,而如果選 擇S為0,則F為B與C之積。操作68針對該函數(shù)確定可行的可選實(shí)施形式。圖IOA和圖 IOB示出了兩個可行的可選實(shí)施形式,其中所述創(chuàng)建/完善實(shí)施形式操作可創(chuàng)建所述函數(shù)。 圖IOA顯示了使用兩個乘法器以及一個復(fù)用器的實(shí)施形式,如果輸出F對時序要求較為嚴(yán) 格且選擇信號S具有最新的到達(dá)時間,則該實(shí)施形式可能是所需的。圖IOB顯示了使用單 個乘法器和復(fù)用器的實(shí)施形式,如果輸入C為最新到達(dá)的信號、或者如果輸出F對時序要求 并不嚴(yán)格且需要減小區(qū)域,則該實(shí)施形式可能是所需的。這兩個可選實(shí)施形式示出了資源 共享/不共享。在沒有有關(guān)時序和功能布局的明確信息的情況下,普通高層綜合算法通常無法評估可選實(shí)施形式(例如,圖10A),因?yàn)槠涫褂觅Y源以用于兩個成本非常高的乘法器。 這即使在傳統(tǒng)流程的布局將未被利用的專用乘法器資源附近的該函數(shù)替換為其關(guān)鍵輸出 和在A、B和C之后到達(dá)的選擇信號S的情況下亦是如此。在本發(fā)明中,操作68可創(chuàng)建這兩 個實(shí)施形式以及可能創(chuàng)建排除明顯較差的實(shí)施形式之后的其他實(shí)施形式。例如,隨著迭代 的進(jìn)行,可清楚了解到,輸出F并不關(guān)鍵。在此情況下,操作68可將實(shí)施形式選項(xiàng)精簡至僅 圖IOB這一種情況,因?yàn)樵搶?shí)施形式使用更少的資源??蛇x地,如果F和選擇信號S非常關(guān) 鍵且附近存在實(shí)施乘法器的可用資源,則操作68可排除圖IOB中的實(shí)施形式。FPGA芯片通常具有多個預(yù)擴(kuò)散存儲資源(例如,觸發(fā)器)以及多個具有可變比特大小的塊(例如512、4K以及MRAM)。設(shè)計(jì)所需要的存儲組件的大小亦可改變。一般而言, 不清楚應(yīng)該如何實(shí)施這些存儲組件。例如,可利用觸發(fā)器、512的資源或者甚至4k的資源 來實(shí)現(xiàn)2至512比特之間的適當(dāng)大小的RAM。而且,芯片上用于較大存儲尺寸的資源站點(diǎn) (resource site)通常是非常稀少的。在之前的EDA工具中,在存儲器實(shí)施階段無法得到 布局信息。因此,實(shí)施形式?jīng)Q策是在沒有局部使用和精確時序信息的情況下作出的。該限 制可導(dǎo)致嚴(yán)重的性能下降。如果適當(dāng)大小的RAM被實(shí)施為512的資源且僅有的512站點(diǎn)位 于與所述RAM所連接至的邏輯相遠(yuǎn)離的位置,則使所述RAM成為512將導(dǎo)致很長的內(nèi)部連 線,且會使在起伏實(shí)施方式(flip-flow implementation)上使用512站點(diǎn)的延遲效果失 效。即使使用觸發(fā)器的實(shí)施形式的延遲可能較長,但如果該實(shí)施形式允許MM的觸發(fā)器與 該RAM所連接至的邏輯之間的互聯(lián)線路更短,則可能造成更高速的設(shè)計(jì)??蛇x地,如果所述 RAM的連接邏輯附近存在4K可用資源,則實(shí)施為4K可能是有益的。因此,存儲器實(shí)施形式 決策應(yīng)該在考慮各種可用存儲資源以及連接至存儲器的組件的位置的情況下作出。圖9A示出了存儲器實(shí)施形式?jīng)Q策的示例。該圖顯示了示例性芯片,該芯片具有位 于該芯片的頂部和底部的存儲資源。4比特的RAM連接至位于芯片右側(cè)的墊腳以及AND門。 如果該RAM被實(shí)施為存儲器且被置于芯片的頂部,則可能導(dǎo)致該存儲器與芯片的墊腳輸入 以及芯片所驅(qū)動的AND門之間的互聯(lián)線路非常長。圖9B顯示了同一邏輯的可選映射。通 過使用附近的邏輯來實(shí)施所述RAM,因此使得互聯(lián)線路和延遲更短。與操作68密切相關(guān)的是估算實(shí)施形式所需形狀和資源的函數(shù)。在一種實(shí)施方式 中,該函數(shù)執(zhí)行映射,以估算用于RTL組件的資源。在另一實(shí)施方式中,所述映射是針對目 標(biāo)芯片架構(gòu)的。這些資源估算是基于綜合的,該綜合被設(shè)計(jì)為估算邏輯需求以及特定組件 的輸入/輸出需求從而在目標(biāo)架構(gòu)中對模塊進(jìn)行實(shí)施。此外,在一種實(shí)施方式中,所述函數(shù) 還估算所述組件的時序轉(zhuǎn)換(timing transition)。圖7示出了將兩條總線A[31:0]與B[31:0]相加以得到第三條總線0[31:0]的加 法器的示例。實(shí)施該加法器所需的邏輯區(qū)域是通過轉(zhuǎn)換、估算所述實(shí)施形式、確定所需資源 以及從其輸入至其輸出的內(nèi)部轉(zhuǎn)變延遲而被估算的。在某些方面,例如,所述加法器可通過 使用兩個邏輯陣列塊(LAB)(每個邏輯陣列塊由16個查找表(LUT)構(gòu)成)來實(shí)施的。操作65-67及操作70為示例性綜合轉(zhuǎn)換,例如邏輯因素分解(操作65)、邏輯映 射(操作66)、邏輯優(yōu)化(操作67)以及抽象化(操作70),其中可修改RTL網(wǎng)表所表示的 組件和連接,以產(chǎn)生功能等效電路,該電路改善了設(shè)計(jì)狀態(tài),例如時序、功率。這些轉(zhuǎn)換可添 加或移除組件及其內(nèi)部連接。轉(zhuǎn)換示例包括執(zhí)行組件復(fù)制、或分割單一的RTL組件。所述示例性實(shí)施方式展現(xiàn)了一大類實(shí)施形式選項(xiàng)(這些實(shí)施形式選項(xiàng)可用于I/O、不同大小的存儲器、CPU以及DSP)中的一種非常簡單的情況。不同的設(shè)計(jì)可能需要以不 同的方式使用這些資源。本發(fā)明的抽象化轉(zhuǎn)換(操作70)能夠基于時序信息、被連接組件 的位置、每個資源類型的利用率以及布線利用來改變實(shí)施形式。所述抽象化轉(zhuǎn)換與所述創(chuàng) 建/完善轉(zhuǎn)換(操作68)相類似。雖然操作68創(chuàng)建了多個可選實(shí)施形式(該多個可選實(shí) 施形式被保存并在后續(xù)的迭代中被評估),但是,所述抽象化操作可從更為具體的實(shí)施形式 抽象化出抽象組件??紤]抽象組件的各種實(shí)施形式,并選擇最佳實(shí)施形式來替代原始實(shí)施 形式。該技巧可避免選擇,該技巧可列舉出所有可能的架構(gòu)映射選項(xiàng),并通過映射、布局以 及布線而運(yùn)行所有這些選項(xiàng)。圖11給出了抽象化轉(zhuǎn)換的示例,該圖顯示了加法樹分解操作。加法樹分解將η輸 入加法器分為m輸入加法樹。在沒有從布局得到延遲信息的情況下,該優(yōu)化不具有關(guān)于至 加法器的輸入位于何處的信息,且僅基于對輸入到達(dá)時間的粗略估算來形成加法樹。在本 示例中,如果所有的輸入均來自寄存器,則他們大致上具有相同的到達(dá)時間。所述分解將為 葉節(jié)點(diǎn)選擇(a, b)、(c,d)以及(e,f)組合。然而,輸入b和d、a*C可靠近放置。利用布 局信息,最好是為葉節(jié)點(diǎn)選擇(a,c)、(b,d)、(e, f)組合。這將在輸出端產(chǎn)生更佳的時序。圖12顯示了門級樹分解的另一抽象示例。綜合流程中的關(guān)鍵步驟為將大型門(具 有許多輸入,例如32個輸入AND門)分解成樹表示。該階段一般在流程早期執(zhí)行一次,以 及對樹分解的決策并不包括有關(guān)所述大型門的驅(qū)動器位置的任何信息。本發(fā)明包括作為轉(zhuǎn) 換的門級樹分解和重排,所述轉(zhuǎn)換是布局和時序識別。最不關(guān)鍵且最早到達(dá)的輸入信號被 置于所述樹的葉級,且與其他附近的次關(guān)鍵輸入分為一組。當(dāng)時序并非要素時,輸入信號根 據(jù)該信號的驅(qū)動器的位置而被分組。操作67的優(yōu)化邏輯轉(zhuǎn)換對網(wǎng)表進(jìn)行改變,以針對設(shè)計(jì)目標(biāo)(例如,時序或功率) 來進(jìn)行優(yōu)化。所述優(yōu)化轉(zhuǎn)換的示例為切片操作,如圖13A所示。如果寬的本原的輸入或輸 出間隔很遠(yuǎn),則對該本原進(jìn)行分割是有益的。該優(yōu)化只能基于布局信息被執(zhí)行。以下示例 顯示了此類情況,該示例針對2比特的存儲器a[l:0],其輸出間隔非常遠(yuǎn)。所述存儲器可被 分割成2個觸發(fā)器,該兩個觸發(fā)器之后可被置于靠近他們的輸出。在另一示例中,基于組件的扇出或扇入信號而對該組件進(jìn)行劃分。例如,圖13B所 示的示例顯示了存儲器,該存儲器基于該存儲器扇出的位置而被分為3個簇。從而,原始組 件(被示為單個框)被劃分,以創(chuàng)建三個新的組件,該三個組件根據(jù)其相應(yīng)的負(fù)載而被切 片??苫诮M件的輸入信號來應(yīng)用類似的劃分。該優(yōu)化是通用的,并不限于存儲器。圖14示出了另一示例性操作,即邏輯復(fù)制。復(fù)制的情形非常類似于分割。對于具 有多個相互遠(yuǎn)離的輸入或輸出的組件,制作該組件的副本并將其置于靠近關(guān)鍵負(fù)載是非常 有益的。該優(yōu)化可僅基于布局信息而被執(zhí)行。以下示例顯示了此類情況,該示例針對其輸 出相隔非常遠(yuǎn)的組件。該組件可被分割為兩個實(shí)例a_l和a_2,該兩個實(shí)例之后可被置于非 ??拷麄兊妮敵觥_@在驅(qū)動器的扇出很高時是很常見的。僅所述實(shí)例的一個副本被保持 在給定物理范圍內(nèi)。圖15顯示了另一示例性操作,即香農(nóng)擴(kuò)展。對于具有很大延遲的RTL元件的輸 入錐(input cone)處的邏輯(例如,加法器或乘法器),可將關(guān)鍵輸入網(wǎng)絡(luò)“置前(pull ahead) ”,以改善時序。所述邏輯被復(fù)制,且關(guān)鍵網(wǎng)絡(luò)被替換為恒定輸入0和1,以及復(fù)用器 被用于選擇兩個運(yùn)算符的輸出,且關(guān)鍵網(wǎng)絡(luò)選擇哪個運(yùn)算符副本是輸出??苫诤愣ㄝ斎雭磉M(jìn)一步簡化所述兩個邏輯副本。此外,這是優(yōu)選在知曉邏輯以及驅(qū)動該邏輯的關(guān)鍵網(wǎng)絡(luò)驅(qū)動器的位置的情況下而被執(zhí)行的優(yōu)化。。圖16A和16B顯示了再一示例性操作,即復(fù)用器/可編程復(fù)用器(該可編程復(fù)用 器被定義為具有獨(dú)熱編碼選擇的復(fù)用器)合并及時序驅(qū)動分解。大型復(fù)用器在商用電路中 是很常見的。對復(fù)用器進(jìn)行分解非常類似于之前提到的加法樹及AND/OR樹分解。只是選 擇邏輯使得復(fù)用器分解更加困難,因?yàn)樵跇鋬?nèi)移動較晚到達(dá)的輸入不僅會影響樹結(jié)構(gòu),而 且還會影響所述選擇邏輯。對于其他的分解而言,本發(fā)明包括基于布局與布線的時序信號, 以確定合適的分解。操作69為更新布線。本增量式迭代方法為集成電路提供了較佳的可布線性,以改 善設(shè)計(jì)的性能、噪聲靈敏度、產(chǎn)量、區(qū)域以及功率。增量式迭代過程可逐步改善芯片上的線 路擁塞,該線路擁塞為每單位區(qū)域所需的線路資源密度。所提到的許多轉(zhuǎn)換均對FPGA的功耗存在影響。例如,存儲器被分解的方式(列相 對行的形式)會影響該存儲器的功耗。行分解使用更少的功率,但需要附加復(fù)用,該附加復(fù) 用引入附加延遲。在本發(fā)明中,可確定用于優(yōu)化功耗的行相對列的分解,因?yàn)槔镁C合與布 局之間的密切聯(lián)系,可得到精確的延遲信息。操作63是布局轉(zhuǎn)換、或更新布局轉(zhuǎn)換。所述布局轉(zhuǎn)換對網(wǎng)表實(shí)例(例如,RTL對 象、未被映射的實(shí)例或芯片原始級實(shí)例)的位置進(jìn)行修改,從而可確定電路中除布線器操 作之外的網(wǎng)絡(luò)的長度和延遲。所述布局轉(zhuǎn)換可根據(jù)網(wǎng)表與布局的成熟化來使用各種布局方法。在示例性實(shí)施方 式中,本布局器采用增量式算法。增量式算法為響應(yīng)于輸入的微小改變而對算法輸出產(chǎn)生 增量式改變的算法。例如,可使用全局布局(例如,力導(dǎo)向布局)來放置成熟度較低的網(wǎng)表 和布局。所述力導(dǎo)向布局(FDP)方法是本發(fā)明全局布局的優(yōu)選選擇之一,因?yàn)槠錇樵隽渴?方法,其中FDP的迭代可生成增量式布局改變。一般而言,F(xiàn)DP使用二次規(guī)劃技術(shù)來對網(wǎng)絡(luò) 進(jìn)行建模,并確定重疊的實(shí)例應(yīng)該如何展開。在一實(shí)施方式中,第一步FDP解決了不受約束的二次規(guī)劃問題,該步驟僅對用于 對實(shí)例進(jìn)行互連的網(wǎng)絡(luò)進(jìn)行建模。該初始方案一般具有很高的擁塞。之后,F(xiàn)DP迭代地構(gòu) 建擴(kuò)張力(spreading force),以將實(shí)例從過度擁塞(很高的實(shí)例利用率)的區(qū)域移至不擁 塞(很高的資源可用性)的區(qū)域。這是所述用于使得FDP成為增量式算法的迭代步驟的屬 性??稍谒龅g對網(wǎng)表或其他設(shè)計(jì)狀態(tài)數(shù)據(jù)進(jìn)行改變。當(dāng)這些狀態(tài)改變是增量式的 時,F(xiàn)DP中的最終改變對于并未作出設(shè)計(jì)狀態(tài)改變的FDP而言也應(yīng)該是增量式的。存在各種FDP算法,但所有這些算法均共享一基本理念,即對實(shí)例應(yīng)該移向的方 向進(jìn)行計(jì)算,以消除過度擁塞的區(qū)域。在給定布局中,假定網(wǎng)絡(luò)所連接的實(shí)例對彼此施加吸 引力,該吸引力與實(shí)例之間的二次距離成正比。在之前的工作過程中,所有實(shí)例均相互排 斥,且被吸引至所有布局站點(diǎn),即使該站點(diǎn)并不適合于該實(shí)例。之后,實(shí)例被移動,直至系統(tǒng) 實(shí)現(xiàn)了最低能量狀態(tài)的平衡。之后,所述FDP方法基于施加于實(shí)例上的總力的方向來移動 該實(shí)例。一方面,本發(fā)明提供了用于對許多現(xiàn)代可再編程芯片的混雜(heterogeneous)資 源進(jìn)行尋址的新式混雜資源布局以及一些ASIC設(shè)計(jì)流程。例如,大多數(shù)FPGA具有各種預(yù)定 芯片資源,例如10、DSP、RAM、LUT、FF等,這些預(yù)定芯片資源僅存在于特定站點(diǎn)。這些預(yù)定資源是FPGA芯片的預(yù)擴(kuò)散屬性的結(jié)果。每個資源站點(diǎn)對于可置于該站點(diǎn)的實(shí)例數(shù)量存在 限制。例如,對于Altera Stratix-II芯片,可將16個或更少的LUT和FF置于LAB站點(diǎn), 且存在3個不同的RAM站點(diǎn),該三個RAM站點(diǎn)分別擁有512比特、4K比特以及64K比特。在示例性實(shí)施方式中,本增量式布局解決了混雜資源問題。在FPGA、結(jié)構(gòu)化ASIC 以及一些ASIC芯片中,資源可僅被置于某些站點(diǎn),該站點(diǎn)通常并未均勻分布在布局區(qū)域 上。大多數(shù)全局布局器(包括所有之前的FDP)均假定了混雜資源,其中任何實(shí)例(無論其 類型如何)均可被置于芯片邊界內(nèi)的任何有效區(qū)域。該先前方法簡化了布局問題,因?yàn)樗?有實(shí)例均被視為簡單的直線型對象(rectilinear object),且只要這些對象沒有重疊并位 于芯片邊界內(nèi),布局便是合乎規(guī)定的。該簡單矩形模型可允許特定類型的實(shí)例被置于資源 不夠充足的鄰域。該假設(shè)忽略了這一事實(shí),即對于混雜資源而言,每個資源均具有實(shí)例必須 被置于的特定組的站點(diǎn)。雖然該“組合的”布局可能不存在任何重疊,但當(dāng)考慮實(shí)際資源類 型時,該布局可能遠(yuǎn)遠(yuǎn)超出了規(guī)定范圍。模擬退火布局器中的一些先前工作過程已考慮了 資源信息,但這些布局器僅被用于放置靜態(tài)映射網(wǎng)表,而非RTL對象。此外,模擬退火可用 于非常小型的設(shè)計(jì),并且對于大型設(shè)計(jì)而言,模擬退火會由于運(yùn)行時間而變得非常困難。一方面,本發(fā)明對每個不同的資源站點(diǎn)分別進(jìn)行了建模,以使得在所有布局轉(zhuǎn)換 中,均可由布局器對資源需求進(jìn)行優(yōu)化。一方面,本發(fā)明對任意數(shù)量的站點(diǎn)類型(稱之為 “層”)進(jìn)行了建模。這些層被用于確定每一實(shí)例上的擴(kuò)張力。在一種實(shí)施方式中,所述層 創(chuàng)建于初始階段。針對芯片上存在的每個資源類型,創(chuàng)建層。層的資源站點(diǎn)記錄于該層的 供應(yīng)分布的相應(yīng)位置。分布為類似于矩陣的二維數(shù)據(jù)結(jié)構(gòu),其中一位置處的值給出了該位 置處的供應(yīng)的值。每個實(shí)例均被分配給為其消耗資源的層。消耗單個資源類型的實(shí)例被稱之為原始 實(shí)例,而消耗多個資源的實(shí)例被稱之為非原始實(shí)例。非原始實(shí)例的示例可以是狀態(tài)機(jī),該狀 態(tài)機(jī)消耗了 LUT和FF站點(diǎn)類型。分配給層的每個實(shí)例所利用的資源均被記錄在層使用分 布中。本方法規(guī)定了一種非原始實(shí)例,通過將所述非原始實(shí)例的區(qū)域記錄在具有該非原始 實(shí)例所需資源的所有層上來進(jìn)行處理所述非原始實(shí)例。這些使用所起的作用會反過來影響 每個非原始實(shí)例的層的力的計(jì)算。對于層而言,其使用與供應(yīng)分布之差即為該層的擁塞分布。針對先前的FDP方法, 可使用該擁塞分布來計(jì)算層上每個實(shí)例的力??赏ㄟ^考慮來自其每個資源層的力的加權(quán)平均值、或基于那些資源的局部擁塞來 計(jì)算非原始實(shí)例的力。應(yīng)用至每個層的權(quán)重可以是統(tǒng)一權(quán)重(uniform weight)或取決于 層資源的相對離散性的權(quán)重。資源的離散性可通過以下各項(xiàng)來描述資源所處位置間隔多 遠(yuǎn)、資源的稀疏程度如何、或資源分布的均勻程度或非均勻程度如何。在一實(shí)施方式中,可類似于非原始實(shí)例的情況計(jì)算具有多個可行實(shí)施方式的組件 的力??赏ㄟ^考慮來自其每個實(shí)施形式的資源層的力的加權(quán)平均值來計(jì)算所述力。應(yīng)用至 每個實(shí)施形式的資源的權(quán)重可以是統(tǒng)一權(quán)重或取決于選中給定實(shí)施形式的概率的權(quán)重。本發(fā)明的優(yōu)點(diǎn)在于,實(shí)例的力僅取決于使用相同資源類型的其他實(shí)例和對于該資 源類型的資源供應(yīng)。例如,如果實(shí)例A和B均具有使用資源C的部分,則實(shí)例A(或?qū)嵗鼳 中使用資源C的部分)上的力取決于實(shí)例B中使用資源C的部分,而且還取決于可用于布 局的資源C。不同層上的實(shí)例的擴(kuò)張力并不會相互影響。
—方面,當(dāng)全局布局器終止時,每個實(shí)例均位于適用于其類型的有效站點(diǎn)處或附 近,因此可利用很小的移動使得布局合乎規(guī)定。相比于先前的FDP (要求所有的實(shí)例均被建 模為單個類型,所有資源區(qū)域均被組合,且實(shí)例之后被散布在組合后的區(qū)域上)而言,該方 法是全新的。在示例性實(shí)施方式中,本發(fā)明的架構(gòu)物理綜合可改善資源利用問題。芯片資源超 出了電路需求的情況是很常見的。例如,在FPGA設(shè)計(jì)中,將被實(shí)施的電路可能需要150個 LUTS,而于其中實(shí)施該電路的芯片或部分具有256個LUTS。該問題被稱之為資源利用問題。 當(dāng)忽略該資源利用問題時,布局器通常將電路實(shí)例均勻散布于可用資源之上,即使可通過 具有可變資源密度的布局而實(shí) 現(xiàn)更佳的結(jié)果。先前的布局器要么忽略該問題,要么插入額 外的“填充”實(shí)例。填充實(shí)例是不會給電路添加連通性的額外實(shí)例?!疤畛洹睂?shí)例的使用也 是存在問題的,因?yàn)楸仨毚_定這些實(shí)例的位置。在示例性實(shí)施方式中,本發(fā)明采用區(qū)域移除方法來解決資源利用問題。對于力的 生成而言,每個資源層均被單獨(dú)考慮。在所述區(qū)域移除方法中,資源基于他們的質(zhì)量而被利 用,低質(zhì)量的資源被移除。首先確定質(zhì)量度量,之后分析資源供應(yīng),以基于他們的質(zhì)量來確 定資源的等級。之后,將低質(zhì)量的部分移除到布局器的布局站點(diǎn)考慮之外。由于布局中的 改變會影響資源的質(zhì)量,因此可在布局過程期間多次執(zhí)行等級評定和移除。因此,該過程非 常適用于本發(fā)明對設(shè)計(jì)狀態(tài)的迭代增量式改善。在一實(shí)施方式中,用于形成所述等級的質(zhì)量度量是基于資源的使用距離的。一種 計(jì)算力的方法的副產(chǎn)物是得到層的密度分布與格林函數(shù)的褶積(convolution)。該褶積的 結(jié)果可被視為拓?fù)鋱D,其中較高的點(diǎn)指示需要資源,較低的點(diǎn)表示缺少需求。由于分布是由 離散框構(gòu)成的,因此可基于褶積結(jié)果對這些離散框進(jìn)行分類??砂凑振薹e順序,通過以具有 最低值的資源為起始點(diǎn)來遍歷供應(yīng)并移除資源直至所需的資源被移除,以確定將被移除的 資源。一方面,所述方法可留下足夠的資源,以使得存在足夠的資源來滿足實(shí)例對該層的需 求,且使得芯片是可布線的。可選地,在其他示例性實(shí)施方式中,本發(fā)明采用力程(force range)方法來解決資 源利用問題。在所述力程方法中,作用于每個實(shí)例上的力均為來自多個力程的力的加權(quán)平 均值。一方面,短程加權(quán)因子與該短程區(qū)域內(nèi)實(shí)例的密度成正比,在所述短程區(qū)域中較高的 局部密度產(chǎn)生較強(qiáng)的力。因此,該比例性可增強(qiáng)實(shí)例擴(kuò)散,以減少重疊。利用所述力程方法,應(yīng)用至實(shí)例的力取決于該示例鄰域內(nèi)的實(shí)例密度。主要思想 在于,實(shí)例的擴(kuò)張力應(yīng)該取決于在其鄰域內(nèi)對該實(shí)例進(jìn)行合法化所需的區(qū)域。在大多數(shù)極 度擁塞的情況(所有實(shí)例均重疊在很小的鄰域內(nèi))中,可基于所有實(shí)例及所有資源的位置 來計(jì)算每個實(shí)例上的力。在最小擁塞的情況(其中實(shí)例在其鄰近并無其他實(shí)例,且直接位 于資源之上)中,實(shí)例將不具有任何力。對于這兩種極端情況之間的情況,所述力取決于對 實(shí)例進(jìn)行合法化所需的區(qū)域中的實(shí)例和資源。在一實(shí)施方式中,所述力程可分為近程、中程以及遠(yuǎn)程力。在其他實(shí)施方式中,可 使用更多或更少的力程。一般而言,在計(jì)算與存儲資源之間進(jìn)行折中來確定領(lǐng)域的合法區(qū) 域以及每個合法范圍的力。一方面,可通過改變格林函數(shù)的大小來對力進(jìn)行計(jì)算。遠(yuǎn)程格 林函數(shù)覆蓋整個布局區(qū)域;小型格林函數(shù)覆蓋圓形區(qū)域,該區(qū)域的半徑例如為平均實(shí)例區(qū) 域的五倍;以及中程格林函數(shù)具有的半徑例如為平均實(shí)例區(qū)域的10倍。實(shí)例上的力為該實(shí)例的近程、中程以及遠(yuǎn)程力的加權(quán)和。所應(yīng)用的權(quán)重由所述實(shí)例鄰域內(nèi)的密度所決定。如 果所述鄰域非常稠密,則所述長程力將具有非常高的權(quán)重,且近程權(quán)重為O。低密度區(qū)域內(nèi) 的實(shí)例將具有零長程權(quán)重以及很高的近程權(quán)重。本方法的另一方面在于,能夠確定很重要的架構(gòu)決策,該決策可確定哪些資源應(yīng)被用于實(shí)施架構(gòu)結(jié)構(gòu)。在架構(gòu)層,存在多個決策,例如在FPGA上,應(yīng)將小的RAM映射至512 比特的RAM資源還是4k比特的RAM資源。其他示例包括對乘法器實(shí)施形式及之前所提到 的諸如加法樹分解的情況的決策。但是本發(fā)明并不限于這些特定示例。利用布局信息的可 用性,本發(fā)明可對滿足設(shè)計(jì)目標(biāo)的重要架構(gòu)實(shí)施形式?jīng)Q策進(jìn)行完善。示例性的示例是這樣 的情況,即Ik比特的存儲器可被分配給兩個512比特的資源或單個4k比特的資源。如果 所述Ik比特的存儲器所連接的邏輯位于非??拷?12比特或4k比特站點(diǎn)的位置,則所述 實(shí)施形式對于能否成功實(shí)施是非常關(guān)鍵的。在所述Ik存儲器的連接邏輯非??拷?12比 特的資源且所述4k比特的資源較遠(yuǎn)的情況下,不佳地映射至4k資源將導(dǎo)致電路性能大幅 減低。使用布局信息來作出此類及其他架構(gòu)決策是非常重要的。在示例性實(shí)施方式中,可通過將可變層實(shí)例的部分區(qū)域包含在該實(shí)例可被映射至 的每個層的使用中來進(jìn)行實(shí)施方式的完善。在我們的Ik比特的示例的情況下,所述實(shí)例的 區(qū)域可部分包含于512層和4k層。該實(shí)例上的力可通過利用其潛在層的力的加權(quán)和、或利 用具有最小幅值的力來確定。利用具有最小幅值的力背后的原因在于與該力相關(guān)聯(lián)的層應(yīng) 該具有較低鄰域密度。在其他示例性實(shí)施方式中,通過不將具有多個可能的資源實(shí)施形式的實(shí)例包含于 任何層的使用中來開始資源實(shí)施。在針對所有層執(zhí)行區(qū)域移除操作之后,可考慮這些可變 實(shí)施形式實(shí)例。對于可變實(shí)施形式實(shí)例而言,其每個可能的層的潛在供應(yīng)均被考慮。所述 潛在供應(yīng)是由所述區(qū)域移除操作從全部供應(yīng)(full supply)移除的區(qū)域。每一實(shí)施層上的 潛在供應(yīng)均被檢查,以確定哪個具有移除區(qū)域的層在實(shí)例被置于該移除區(qū)域上時破壞性最 低。之后,所述實(shí)例被分配給所述最低破壞性的層。所述分配資源轉(zhuǎn)換(操作64)負(fù)責(zé)將實(shí)例分配給其特定芯片資源??墒褂酶鞣N布 局算法來進(jìn)行該操作,包括力導(dǎo)向布局、模擬退火、混雜(Mongrel)、最小切割布局、數(shù)字優(yōu) 化布局、基于評估的布局以及其他特選布局算法。雖然本發(fā)明的大多數(shù)實(shí)施方式欲用于HDL設(shè)計(jì)綜合軟件程序中,但是本發(fā)明并非 必須限于此類應(yīng)用。雖然可使用其他語言和計(jì)算機(jī)程序(例如,可編寫計(jì)算機(jī)程序來對硬 件進(jìn)行描述,從而所述計(jì)算機(jī)程序可被視為HDL形式的表達(dá)且可被編譯,或者在一些實(shí)施 方式中,本發(fā)明可分配和重新分配在不使用HDL的情況下被創(chuàng)建的邏輯表示,例如,網(wǎng)表), 但本發(fā)明的多個實(shí)施方式是在用于HDL綜合系統(tǒng)尤其是那些為用于具有特定廠商技術(shù)/架 構(gòu)的集成電路而設(shè)計(jì)的系統(tǒng)的情況下而被描述的。所公知的是,目標(biāo)架構(gòu)通常由可編程IC 供應(yīng)商來確定。目標(biāo)架構(gòu)的一種示例為集成電路(該集成電路為加利福尼亞州圣何塞市 Xilinx公司的現(xiàn)場可編程門陣列)的可編程查找表(LTUS)以及相關(guān)邏輯。目標(biāo)架構(gòu)/技 術(shù)的其他示例包括現(xiàn)場可編程門陣列和來自廠商(例如,阿爾特拉、朗訊科技、超微設(shè)備以 及萊迪思半導(dǎo)體)的復(fù)雜可編程邏輯器件中的那些公知架構(gòu)。對于某些實(shí)施方式,本發(fā)明 還可用于專用集成電路(ASIC)。本發(fā)明的一種實(shí)施方式可以是電路設(shè)計(jì)和綜合計(jì)算機(jī)輔助設(shè)計(jì)軟件,該軟件被實(shí)現(xiàn)為存儲于機(jī)器可讀媒介(例如,CD ROM、磁性硬盤或光盤或各種其它可選儲存裝置)中的 計(jì)算機(jī)程序。此外,可用數(shù)字處理系統(tǒng)(例如,傳統(tǒng)的通用計(jì)算機(jī)系統(tǒng))來執(zhí)行本發(fā)明的許 多方法。還可以使用被設(shè)計(jì)或編程為僅執(zhí)行一種功能的專用計(jì)算機(jī)。圖17顯示了可與本發(fā)明一起使用的普通計(jì)算機(jī)系統(tǒng)的一種示例??墒褂迷撚?jì)算 機(jī)系統(tǒng)來執(zhí)行以HDL代碼進(jìn)行描述的設(shè)計(jì)的邏輯綜合。注意,雖然圖17示出了計(jì)算機(jī)系統(tǒng) 的各種組件,但其并非意欲表示所有的特定架構(gòu)或?qū)@些組件進(jìn)行互聯(lián)的方式,因?yàn)榇祟?細(xì)節(jié)與本發(fā)明并非確切相關(guān)。應(yīng)該注意的是,圖17的架構(gòu)僅是出于解釋說明的目的而提供 的,可與本發(fā)明結(jié)合使用的計(jì)算機(jī)系統(tǒng)或其他數(shù)字處理系統(tǒng)并不限于該特定架構(gòu)。還應(yīng)該 理解的是,具有更少、或可能更多組件的網(wǎng)絡(luò)計(jì)算機(jī)以及其他數(shù)據(jù)處理系統(tǒng)也可與本發(fā)明 一起使用。圖17的計(jì)算機(jī)系統(tǒng)17可為例如蘋果麥金塔(Macintosh)計(jì)算機(jī)。如圖17所示,作為一種數(shù)據(jù)處理系統(tǒng)的計(jì)算機(jī)系統(tǒng)101包括總線102,該總線102 耦合到微處理器103、ROM 107、易失性RAM 105和非易失性存儲器106。微處理器103 (該 微處理器103可以是來自英特爾、摩托羅拉公司或IBM的微處理器)耦合到緩沖存儲器 104。總線102將所述各種組件互連在一起,并且將所述組件103、107、105和106互連到顯 示器控制器和顯示器設(shè)備108以及諸如輸入/輸出(I/O)設(shè)備的外圍設(shè)備,所述輸入/輸 出(I/O)設(shè)備可為鼠標(biāo)、鍵盤、調(diào)制解調(diào)器、網(wǎng)絡(luò)接口、打印機(jī)、掃描儀、視頻攝像機(jī)以及本 領(lǐng)域中眾所公知的其它設(shè)備。通常,輸入/輸出設(shè)備110通過輸入/輸出控制器109耦合 到系統(tǒng)。易失性RAM 105通常被實(shí)現(xiàn)為需要連續(xù)供電以刷新或保持存儲器中的數(shù)據(jù)的動態(tài) RAM(DRAM)。非易失性存儲器106通常為磁性硬盤驅(qū)動器、磁性光驅(qū)、光驅(qū)、DVD RAM或即使 系統(tǒng)掉電之后也保持?jǐn)?shù)據(jù)的其它類型的存儲器系統(tǒng)。通常,所述非易失性存儲器還可以為 隨機(jī)存取存儲器,雖然對此并無要求。雖然圖17顯示了非易失性存儲器是直接耦合到數(shù)據(jù) 處理系統(tǒng)中的其它組件的本地設(shè)備,但可以理解的是,本發(fā)明可以利用遠(yuǎn)離系統(tǒng)的非易失 性存儲器,例如通過網(wǎng)絡(luò)接口(例如,調(diào)制解調(diào)器或以太網(wǎng)接口)耦合到數(shù)據(jù)處理系統(tǒng)的網(wǎng) 絡(luò)存儲設(shè)備。如本領(lǐng)域中所公知的那樣,總線102可以包括通過各種橋接器、控制器和/或 適配器來彼此相互連接的一個或多個總線。在一種實(shí)施方式中,I/O控制器109包括用于 控制USB外圍設(shè)備的USB(通用串行總線)適配器和/或用于控制IEEE-1394外圍設(shè)備的 IEEE-1394總線適配器。通過本說明書顯而易見的是,本發(fā)明的各方面可以至少部分地在軟件中體現(xiàn)。也 就是說,可以在計(jì)算機(jī)系統(tǒng)或其它數(shù)據(jù)處理系統(tǒng)中響應(yīng)于其處理器(例如,微處理器)執(zhí)行 包含在存儲器(例如,ROM 107、易失性RAM 105、非易失性存儲器106、高速緩沖存儲器104 或遠(yuǎn)程存儲設(shè)備)中的指令序列來實(shí)現(xiàn)所述技術(shù)。在各種實(shí)施方式中,可以與軟件指令相 結(jié)合地使用硬線連接電路來實(shí)現(xiàn)本發(fā)明。因此,所述技術(shù)不限于硬件電路和軟件的任何特 定組合,也不限于由數(shù)據(jù)處理系統(tǒng)執(zhí)行的指令的任何特定源。另外,通過本說明書,各種功 能和操作被描述為由軟件代碼來執(zhí)行或引起以簡化說明。然而,本領(lǐng)域技術(shù)人員可意識到, 此類表達(dá)的意思是所述功能是由處理器(例如,微處理器1103)執(zhí)行代碼而引起的??墒褂脵C(jī)器可讀介質(zhì)存儲軟件和數(shù)據(jù),當(dāng)該軟件和數(shù)據(jù)由數(shù)據(jù)處理系統(tǒng)執(zhí)行時,可促使該系統(tǒng)執(zhí)行本發(fā)明的各種方法。該可執(zhí)行軟件和數(shù)據(jù)可存儲于各種位置,包括例如 ROM 107、易失性RAM 105、非易失性存儲器106和/或緩沖存儲器104。部分所述軟件和/ 數(shù)據(jù)可存儲于這些存儲設(shè)備中的任一者中。
因此,機(jī)器可讀介質(zhì)包括以機(jī)器(例如,計(jì)算機(jī)、網(wǎng)絡(luò)設(shè)備、個人數(shù)字助理、制造工 具、具有一組一個或多個處理器的任何設(shè)備等等)可訪問的形式提供(即,存儲和/或發(fā) 送)信息的任何機(jī)構(gòu)。例如,機(jī)器可讀介質(zhì)包括可記錄/非可記錄媒介(例如,只讀存儲器 (ROM)、隨機(jī)存取存儲器(RAM)、磁盤儲存媒介、光學(xué)儲存媒介、閃存設(shè)備等等)以及信號傳 播的電學(xué)、光學(xué)、聲學(xué)或其它形式(例如,載波、紅外信號、數(shù)字信號等)等。在上述說明書中,已參考本發(fā)明的特定示例性實(shí)施方式描述了本發(fā)明。很顯然,在不脫離所附權(quán)利要求的所提出的更為寬泛的精神和范圍的情況下,可對本發(fā)明作出各種修 改。因此,說明書和附圖應(yīng)被視為說明性,而不是約束性的。
權(quán)利要求
一種設(shè)計(jì)集成電路的方法,該方法包括將芯片資源劃分為多個部分;基于質(zhì)量度量來計(jì)算所述部分的等級;以及將具有最低等級的部分從布局轉(zhuǎn)換的考慮范圍中移除。
2.根據(jù)權(quán)利要求1所述的方法,其中所述芯片資源超出了所述集成電路的需求。
3.根據(jù)權(quán)利要求1所述的方法,其中所述部分被移除,以使得所述芯片資源滿足電路 需求。
4.根據(jù)權(quán)利要求1所述的方法,該方法還包括以下步驟重復(fù)執(zhí)行等級評定與移除,直 至達(dá)到了預(yù)定標(biāo)準(zhǔn)。
5.根據(jù)權(quán)利要求1所述的方法,其中被移除部分中的一些部分在下一迭代移除過程中被重新考慮。
6.根據(jù)權(quán)利要求1所述的方法,其中被移除部分中的一些部分被永久移除,且在下一 迭代移除過程中不會被重新考慮。
7.根據(jù)權(quán)利要求1所述的方法,其中所述質(zhì)量度量包括距資源使用的距離。
8.根據(jù)權(quán)利要求1所述的方法,其中計(jì)算所述等級包括計(jì)算所述資源中實(shí)例密度與格 林函數(shù)的褶積。
9.一種包含多個可執(zhí)行指令的機(jī)器可讀介質(zhì),所述可執(zhí)行指令在數(shù)字處理系統(tǒng)上被執(zhí) 行時,促使所述數(shù)字處理系統(tǒng)執(zhí)行設(shè)計(jì)集成電路(IC)的方法,該方法包括將芯片資源劃分為多個部分;基于質(zhì)量度量來計(jì)算所述部分的等級;以及將具有最低等級的部分從布局轉(zhuǎn)換的考慮范圍中移除。
10.根據(jù)權(quán)利要求9所述的介質(zhì),其中所述芯片資源超出了所述集成電路的需求。
11.根據(jù)權(quán)利要求9所述的介質(zhì),其中所述部分被移除,以使得所述芯片資源滿足電路需求。
12.根據(jù)權(quán)利要求9所述的介質(zhì),該方法還包括以下步驟重復(fù)執(zhí)行等級評定與移除, 直至達(dá)到了預(yù)定標(biāo)準(zhǔn)。
13.根據(jù)權(quán)利要求9所述的介質(zhì),其中被移除部分中的一些部分在下一迭代移除過程中被重新考慮。
14.根據(jù)權(quán)利要求9所述的介質(zhì),其中被移除部分中的一些部分被永久移除,且在下一 迭代移除過程中不會被重新考慮。
15.根據(jù)權(quán)利要求9所述的介質(zhì),其中所述質(zhì)量度量包括距資源使用的距離。
16.根據(jù)權(quán)利要求9所述的介質(zhì),其中計(jì)算所述等級包括計(jì)算所述資源中實(shí)例密度與 格林函數(shù)的褶積。
17.一種計(jì)算作用于芯片上集成電路的實(shí)例布局中的實(shí)例上的總力的方法,該方法包括計(jì)算所述實(shí)例與元件之間的力,所述元件為所述集成電路中的另一實(shí)例和所述芯片上 的芯片資源中的至少一者,所述力是所述實(shí)例和所述元件之間的距離的函數(shù); 基于到所述實(shí)例的距離而將所述實(shí)例的鄰域劃分為多個鄰域區(qū)域; 根據(jù)所述實(shí)例與每個鄰域區(qū)域的元件之間的力,計(jì)算作用于所述實(shí)例上的多個鄰域力;以及通過對所述鄰域力進(jìn)行加權(quán)求和來計(jì)算作用于所述實(shí)例上的總力。
18.根據(jù)權(quán)利要求17所述的方法,其中所述實(shí)例的鄰域被劃分為三個鄰域區(qū)域本地 鄰域區(qū)域、中間鄰域區(qū)域以及遠(yuǎn)程鄰域區(qū)域。
19.根據(jù)權(quán)利要求18所述的方法,其中本地鄰域區(qū)域覆蓋半徑大約為平均實(shí)例區(qū)域的 5倍的區(qū)域。
20.根據(jù)權(quán)利要求18所述的方法,其中中間鄰域區(qū)域覆蓋半徑大約為平均實(shí)例區(qū)域的 10倍的區(qū)域。
21.根據(jù)權(quán)利要求18所述的方法,其中遠(yuǎn)程鄰域區(qū)域覆蓋整個區(qū)域。
22.根據(jù)權(quán)利要求17所述的方法,其中所述鄰域區(qū)域包括短程鄰域區(qū)域,且其中短程 鄰域力的權(quán)重與短程鄰域區(qū)域中的實(shí)例密度成正比。
23.根據(jù)權(quán)利要求17所述的方法,其中所述鄰域區(qū)域包括遠(yuǎn)程鄰域,且其中遠(yuǎn)程鄰域 力的權(quán)重與短程鄰域區(qū)域中的實(shí)例密度成反比。
24.根據(jù)權(quán)利要求17所述的方法,其中所述鄰域區(qū)域還由使實(shí)例周圍的使用合乎規(guī)范 所需的區(qū)域來確定。
25.根據(jù)權(quán)利要求17所述的方法,其中所述元件為所述集成電路中的另一實(shí)例,且其 中所述實(shí)例與所述另一實(shí)例之間的力為排斥力。
26.根據(jù)權(quán)利要求17所述的方法,其中所述多個鄰域力中的鄰域力通過對資源類型力 進(jìn)行加權(quán)求和來計(jì)算,每個資源類型力包括所述實(shí)例與集成電路中具有同一資源類型的部 分其他實(shí)例之間的力,以及所述實(shí)例與具有同一資源類型的芯片資源之間的力。
27.根據(jù)權(quán)利要求26所述的方法,其中所述另一實(shí)例為具有一種資源類型的原始實(shí) 例,且其中所述實(shí)例與所述另一實(shí)例之間的力包括一個資源類型力分量。
28.根據(jù)權(quán)利要求26所述的方法,其中所述另一實(shí)例為具有多種資源類型的非原始實(shí) 例,且其中所述實(shí)例與所述另一實(shí)例之間的力包括多個資源類型力分量。
29.根據(jù)權(quán)利要求26所述的方法,其中所述資源類型力的權(quán)重為所述資源類型的離散 性的函數(shù)。
30.根據(jù)權(quán)利要求17所述的方法,其中所述元件為與所述實(shí)例具有同一類型的芯片資 源,且其中所述實(shí)例與所述芯片資源之間的力為吸引力。
31.一種包含多個可執(zhí)行指令的機(jī)器可讀介質(zhì),所述可執(zhí)行指令在數(shù)字處理系統(tǒng)上被 執(zhí)行時,促使所述數(shù)字處理系統(tǒng)執(zhí)行一種計(jì)算作用于芯片上集成電路的實(shí)例布局中的實(shí)例 上的總力的方法,該方法包括計(jì)算所述實(shí)例與所述集成電路中另一實(shí)例之間的力,所述力是兩個實(shí)例之間的距離的 函數(shù);基于到所述實(shí)例的距離而將所述實(shí)例的鄰域劃分為多個鄰域區(qū)域;通過將所述實(shí)例與每個鄰域區(qū)域的元件之間的力相加來計(jì)算作用于所述實(shí)例上的多 個鄰域力;以及通過對所述鄰域力進(jìn)行加權(quán)求和來計(jì)算作用于所述實(shí)例上的總力。
32.根據(jù)權(quán)利要求31所述的介質(zhì),其中所述實(shí)例的鄰域被劃分為三個鄰域區(qū)域本地 鄰域區(qū)域、中間鄰域區(qū)域以及遠(yuǎn)程鄰域區(qū)域。
33.根據(jù)權(quán)利要求32所述的介質(zhì),其中本地鄰域區(qū)域覆蓋半徑大約為平均實(shí)例區(qū)域的 5倍的區(qū)域。
34.根據(jù)權(quán)利要求32所述的介質(zhì),其中中間鄰域區(qū)域覆蓋半徑大約為平均實(shí)例區(qū)域的 10倍的區(qū)域。
35.根據(jù)權(quán)利要求32所述的介質(zhì),其中遠(yuǎn)程鄰域區(qū)域覆蓋整個區(qū)域。
36.根據(jù)權(quán)利要求31所述的介質(zhì),其中所述鄰域區(qū)域包括短程鄰域區(qū)域,且其中短程 鄰域力的權(quán)重與短程鄰域區(qū)域中的實(shí)例密度成正比。
37.根據(jù)權(quán)利要求31所述的介質(zhì),其中所述鄰域區(qū)域包括遠(yuǎn)程鄰域,且其中遠(yuǎn)程鄰域 力的權(quán)重與短程鄰域區(qū)域中的實(shí)例密度成反比。
38.根據(jù)權(quán)利要求31所述的介質(zhì),其中所述鄰域區(qū)域還由使實(shí)例周圍的使用合乎規(guī)范 所需的區(qū)域來確定。
39.根據(jù)權(quán)利要求31所述的介質(zhì),其中所述元件為所述集成電路中的另一實(shí)例,且其 中所述實(shí)例與所述另一實(shí)例之間的力為排斥力。
40.根據(jù)權(quán)利要求31所述的介質(zhì),其中所述多個鄰域力中的鄰域力通過對資源類型力 進(jìn)行加權(quán)求和來計(jì)算,每一資源類型力包括所述實(shí)例與集成電路中具有同一資源類型的部 分其他實(shí)例之間的力,以及所述實(shí)例與具有同一資源類型的芯片資源之間的力。
41.根據(jù)權(quán)利要求40所述的介質(zhì),其中所述另一實(shí)例為具有一種資源類型的原始實(shí) 例,且其中所述實(shí)例與所述另一實(shí)例之間的力包括一個資源類型力分量。
42.根據(jù)權(quán)利要求40所述的介質(zhì),其中所述另一實(shí)例為具有多種資源類型的非原始實(shí) 例,且其中所述實(shí)例與所述另一實(shí)例之間的力包括多個資源類型力分量。
43.根據(jù)權(quán)利要求40所述的介質(zhì),其中所述資源類型力的權(quán)重為所述資源類型的離散 性的函數(shù)。
44.根據(jù)權(quán)利要求31所述的介質(zhì),其中所述元件為與所述實(shí)例具有同一類型的芯片資 源,且其中所述實(shí)例與所述芯片資源之間的力為吸引力。
45.一種計(jì)算作用于集成電路的實(shí)例布局中的非原始實(shí)例上的總力的方法,所述非原 始實(shí)例消耗多種類型的資源,所述方法包括將每種類型的非原始實(shí)例分配給各自的資源類型層,該資源類型層為資源類型的表示;根據(jù)所述實(shí)例與所述資源類型層中的其他實(shí)例和資源之間的力,計(jì)算所述資源類型層 的資源類型層力;以及通過對所述資源類型層力進(jìn)行加權(quán)求和來計(jì)算作用于所述實(shí)例上的總力。
46.根據(jù)權(quán)利要求45所述的方法,其中權(quán)重為統(tǒng)一權(quán)重。
47.根據(jù)權(quán)利要求45所述的方法,其中權(quán)重為層的資源的離散性的函數(shù)。
48.一種包含多個可執(zhí)行指令的機(jī)器可讀介質(zhì),所述可執(zhí)行指令在數(shù)字處理系統(tǒng)上被 執(zhí)行時,促使所述數(shù)字處理系統(tǒng)執(zhí)行一種計(jì)算作用于集成電路的實(shí)例布局中的非原始實(shí)例 上的總力的方法,所述非原始實(shí)例消耗多種類型的資源,所述方法包括將每種類型的非原始實(shí)例分配給各自的資源類型層,該資源類型層為資源類型的表示;根據(jù)所述實(shí)例與所述資源類型層中的其他實(shí)例和資源之間的力,計(jì)算所述資源類型層的資源類型層力;以及通過對所述資源類型層力進(jìn)行加權(quán)求和來計(jì)算作用于所述實(shí)例上的總力。
49.根據(jù)權(quán)利要求48所述的方法,其中權(quán)重為統(tǒng)一權(quán)重。
50.根據(jù)權(quán)利要求48所述的方法,其中權(quán)重為層的資源的離散性的函數(shù)。
51.一種計(jì)算作用于集成電路的實(shí)例布局中的實(shí)例上的總力的方法,該方法包括 確定用于實(shí)例的一部分的多種資源類型;將所述實(shí)例的一部分置于每個資源類型層,該資源類型層為所述資源類型的表示; 根據(jù)來自所述資源類型層的力,來計(jì)算作用于所述實(shí)例上的總力。
52.根據(jù)權(quán)利要求51所述的方法,其中所述總力為來自所述資源類型層的力的加權(quán)禾口。
53.根據(jù)權(quán)利要求51所述的方法,其中來自所述資源類型層的力包括所述實(shí)例與所述 資源類型層中其他實(shí)例之間的力。
54.根據(jù)權(quán)利要求51所述的方法,其中來自所述資源類型層的力包括所述實(shí)例與所述 資源類型層中的資源之間的力。
55.根據(jù)權(quán)利要求51所述的方法,其中權(quán)重為統(tǒng)一權(quán)重。
56.根據(jù)權(quán)利要求51所述的方法,其中權(quán)重為層的資源的離散性的函數(shù)。
57.根據(jù)權(quán)利要求51所述的方法,其中所述總力為來自所述資源類型層的力之中具有 最小幅值的力。
58.一種包含多個可執(zhí)行指令的機(jī)器可讀介質(zhì),所述可執(zhí)行指令在數(shù)字處理系統(tǒng)上被 執(zhí)行時,促使所述數(shù)字處理系統(tǒng)執(zhí)行一種計(jì)算作用于集成電路的實(shí)例布局中的實(shí)例上的總 力的方法,該方法包括確定用于實(shí)例的一部分的多種資源類型;將所述實(shí)例的一部分置于每個資源類型層,該資源類型層為所述資源類型的表示; 根據(jù)來自所述資源類型層的力,計(jì)算作用于所述實(shí)例上的總力。
59.根據(jù)權(quán)利要求58所述的介質(zhì),其中所述總力為來自所述資源類型層的力的加權(quán)禾口。
60.根據(jù)權(quán)利要求58所述的介質(zhì),其中來自所述資源類型層的力包括所述實(shí)例與所述 資源類型層中其他實(shí)例之間的力。
61.根據(jù)權(quán)利要求58所述的介質(zhì),其中來自所述資源類型層的力包括所述實(shí)例與所述 資源類型層中的資源之間的力。
62.根據(jù)權(quán)利要求58所述的介質(zhì),其中權(quán)重為統(tǒng)一權(quán)重。
63.根據(jù)權(quán)利要求58所述的介質(zhì),其中權(quán)重為層的資源的離散性的函數(shù)。
64.根據(jù)權(quán)利要求58所述的介質(zhì),其中所述總力為來自所述資源類型層的力之中具有 最小幅值的力。
65.一種計(jì)算作用于集成電路的實(shí)例布局中的實(shí)例上的總力的方法,該方法包括確定所述實(shí)例的單個資源部分,該單個資源部分僅能夠被分配給一個資源類型層,該 資源類型層為資源類型的表示;將所述實(shí)例的單個資源部分置于相應(yīng)的資源類型層;根據(jù)來自所述相應(yīng)的資源類型層的力,計(jì)算作用于所述實(shí)例上的總力;確定所述實(shí)例的多資源部分,該多資源部分能夠被分配給多個潛在的資源類型層; 計(jì)算由將所述實(shí)例的多資源部分置于每個潛在資源層所導(dǎo)致的破壞性度量; 將所述實(shí)例的多資源部分置于呈現(xiàn)最低破壞性度量的潛在資源類型層。
66.根據(jù)權(quán)利要求65所述的方法,其中所述破壞性度量由作用于實(shí)例上的較高的力來表不。
67.根據(jù)權(quán)利要求65所述的方法,其中作用于實(shí)例上的力包括所述實(shí)例與同一資源類 型層上其他實(shí)例之間的排斥力,以及所述實(shí)例與同一資源類型層上的資源之間的吸引力。
68.一種包含多個可執(zhí)行指令的機(jī)器可讀介質(zhì),所述可執(zhí)行指令在數(shù)字處理系統(tǒng)上被 執(zhí)行時,促使所述數(shù)字處理系統(tǒng)執(zhí)行一種計(jì)算作用于集成電路的實(shí)例布局中的實(shí)例上的總 力的方法,該方法包括確定所述實(shí)例的單個資源部分,該單個資源部分僅能夠被分配給一個資源類型層,該 資源類型層為資源類型的表示;將所述實(shí)例的單個資源部分置于相應(yīng)的資源類型層;根據(jù)來自所述相應(yīng)的資源類型層的力,計(jì)算作用于所述實(shí)例上的總力;確定所述實(shí)例的多資源部分,該多資源部分能夠被分配給多個潛在的資源類型層;計(jì)算由將所述實(shí)例的多資源部分置于每個潛在資源層所導(dǎo)致的破壞性度量;將所述實(shí)例的多資源部分置于呈現(xiàn)最低破壞性度量的潛在資源類型層。
69.根據(jù)權(quán)利要求68所述的介質(zhì),其中所述破壞性度量由作用于實(shí)例上的較高的力來 表不。
70.根據(jù)權(quán)利要求68所述的介質(zhì),其中作用于實(shí)例上的力包括所述實(shí)例與同一資源類 型層上其他實(shí)例之間的排斥力,以及所述實(shí)例與同一資源類型層上的資源之間的吸引力。
全文摘要
本發(fā)明公開了用于設(shè)計(jì)集成電路的方法和設(shè)備。根據(jù)一方面,本發(fā)明的電路設(shè)計(jì)公開了綜合與布局的迭代過程,其中每一次迭代均提供對集成電路的設(shè)計(jì)的增量式改變。本發(fā)明的增量式迭代方法可通過綜合到布線以及布線到綜合來提供連續(xù)進(jìn)步,具有在知曉當(dāng)前實(shí)例布局的情況下進(jìn)行綜合的增量式改進(jìn),以及在知曉當(dāng)前電路邏輯的情況下進(jìn)行布局的增量式改進(jìn)。根據(jù)另一方面,本發(fā)明的電路設(shè)計(jì)公開了增量式力導(dǎo)向布局轉(zhuǎn)換,該轉(zhuǎn)換利用資源層解決混雜資源分布問題,其中作用于實(shí)例上的力為來自其資源層的力基于這些資源的局部擁塞的加權(quán)平均值。另外,增量式區(qū)域移除方法可被用于基于諸如資源需求拓?fù)溆成涞牧?dǎo)向布局轉(zhuǎn)換通過質(zhì)量度量來解決資源利用問題。
文檔編號G06F17/50GK101809576SQ200880100093
公開日2010年8月18日 申請日期2008年7月23日 優(yōu)先權(quán)日2007年7月23日
發(fā)明者B·勒莫尼耶, B·哈爾平, K·S·麥克爾文 申請人:新思公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1