国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

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

      文檔序號:6477878閱讀:157來源:國知局
      專利名稱:構(gòu)架物理綜合的制作方法
      技術領域
      本發(fā)明主要涉及集成電路設計領域,并且尤其涉及通過高層描述(highlevel description)的綜合(synthesis)過程來進行集成電路設計。
      背景技術
      對于VLSI (超大規(guī)模集成)級的數(shù)字電路設計工藝而言,設計者常常采用計算機 輔助技術。已開發(fā)了諸如硬件描述語言(HDL)的標準語言來描述數(shù)字電路,以輔助復雜數(shù) 字電路的設計和模擬。諸如VHDL和Verilog的多種硬件描述語言已逐漸成為行業(yè)標準。 VHDL和Verilog是通用硬件描述語言,其允許使用抽象數(shù)據(jù)類型來定義芯片原始級、寄存 器傳輸級(RTL)或行為級的硬件模型。隨著器件工藝繼續(xù)進步,已開發(fā)了各種產(chǎn)品設計工 具以使HDL適合用于新的器件和設計風格。在利用HDL代碼設計集成電路時,首先編寫代碼,并由HDL編譯器對所編寫的代碼 進行編譯。HDL源代碼在某一層描述電路元件,且編譯程序通過所述編譯而產(chǎn)生RTL網(wǎng)表 (nestlist)。RTL網(wǎng)表由多個RTL對象或組件以及多個網(wǎng)絡(net)(該網(wǎng)絡為所述組件之 間的信號連接)構(gòu)成。所述RTL網(wǎng)表通常是與技術無關的網(wǎng)表,因為其與特定廠商的集成 電路(例如,現(xiàn)場可編程門陣列(FPGA)或?qū)S眉呻娐?ASIC))的技術或架構(gòu)無關。所述 RTL網(wǎng)表對應于電路元件的示意性表示(與行為表示相比)。然后執(zhí)行映射操作,以從與技 術無關的RTL網(wǎng)表轉(zhuǎn)換到可以用來創(chuàng)建廠商技術或架構(gòu)中的電路的技術專用網(wǎng)表,所述映 射操作包括對實例(instance)進行布局以及對互連(interconnection)進行布線,以使得 電路滿足給定的時序、間隔和功率約束。如圖1所示,早期的電子設計自動化(EDA)是完全將HDL綜合與布局/布線過程 相分離的。在操作11,準備HDL代碼。在操作13,對操作11中所準備的HDL進行編譯并綜 合,以產(chǎn)生網(wǎng)表,通常通過執(zhí)行邏輯優(yōu)化對該網(wǎng)表進行優(yōu)化。在此之后,映射過程將所述網(wǎng) 表映射至特定目標技術/架構(gòu)。在操作13結(jié)束之后,便已完成了綜合,且現(xiàn)在可提供專用 于廠商的IC中使用的技術/架構(gòu)的網(wǎng)表。該網(wǎng)表有效地位于門級,且基于預布局信息(例 如,扇出計數(shù)、或所連接的組件類型及尺寸)通過使用互連性質(zhì)統(tǒng)計模型來對時序分析進 行估算。在綜合之后,可在操作15對邏輯電路執(zhí)行傳統(tǒng)的布局操作,并在操作17對網(wǎng)表進 行局部改變(僅在芯片原始級、單元級或門級上),以滿足時序性能。之后,在操作19執(zhí)行 傳統(tǒng)布線操作,以創(chuàng)建每一 IC中的電路設計。如果存在一些未滿足的約束,則所述過程通 過回路迭代(iteration)進行修改。
      以前,當在早期綜合工具中實例延遲較為突出時,基于統(tǒng)計模型的時序估算是足 夠精確的,從而綜合與布局的分離需要相對較少次迭代來返回至HDL和綜合階段。然而,利用收縮技術節(jié)點,互連延遲變得非常顯著,超過了門延遲。這導致綜合 操作中的延遲估算與布局和布線操作之后的實際延遲之間的關聯(lián)越來越小,致使后綜合 (post-synthesis)與后布置(post-layout)結(jié)果之間缺乏時序預測能力。因此,在很多情 況下,在布局和布線過程之后,電路物理布置無法滿足電路設計標準,且通常設計必須從綜 合步驟重新開始,并重復綜合/布局/布線過程。為對綜合進行改善,在綜合過程期間考慮與設計相關的物理特性(例如,布局)是非常重要的?,F(xiàn)已采用了一系列技術來將布局信息引入綜合過程,例如元件平面布置、區(qū)域 內(nèi)最佳化(IPO)以及物理綜合。在元件平面布置(floorplarming)技術中,設計被劃分成芯片上的多個區(qū),并在 通過使用統(tǒng)計模型來估算區(qū)內(nèi)的互連的同時,針對區(qū)間互連使用基于布局的互連估算???在RTL階段早期或初始綜合運行之后使用元件平面布置。元件平面布置可被擴展為將RTL 組件劃分、復制以及切割成多個區(qū),并與RTL級時序和區(qū)域模型相組合。之后,可使用來自 區(qū)間時序的改善后的時序來更精確地驅(qū)動RTL級優(yōu)化。手動產(chǎn)生高質(zhì)量的元件平面布置 是非常困難的,且要求用戶擁有熟練的技術。自動元件平面布置器(例如,太拉系統(tǒng)(Tera System)(美國專利6,145,117和6,360,356)中的元件平面布置器)可創(chuàng)建多個區(qū),并將 RTL組件分配給多個區(qū)。因為綜合被去耦合(decouple),且在自動元件平面布置之后,因此 在元件平面布置期間,時序和區(qū)域信息的準確度很低。一種稱為區(qū)域內(nèi)最佳化(IPO)的技術提供了從布局和布線延遲至綜合域的逆向 注解。僅因為細節(jié)布局未被更新,關鍵路徑會被重新優(yōu)化,經(jīng)修改的網(wǎng)絡的互連延遲會返回 到統(tǒng)計模型。如果做出了許多改變,則后續(xù)的最終網(wǎng)表的合法化(legalization)可能需要 將實例移動至遠離他們初始位置的位置,導致巨大的延遲估算誤差?;诖嗽?,在需要顯 著改變以實現(xiàn)時序閉合(enclosure)時,IPO被視為是不穩(wěn)定的。另一技術是物理綜合,該技術是對IPO技術的改進,其中對被映射網(wǎng)表的少量優(yōu) 化與增量式(incremental)重新合法化相交織,以保持延遲和資源度量的精確性。該技術 的限制在于,個別改變受限于資源的適度增加,或者IPO技術的不穩(wěn)定問題可能會再次出 現(xiàn)。目前存在多種用于物理綜合的算法。圖2顯示了一種通過使用基于被布局實例鄰近性 (proximity)的時序估算而提供物理綜合引擎的算法。在操作23中對被映射網(wǎng)表初始布局 之后,在操作24(僅在芯片原始級執(zhí)行)中物理綜合操作選擇電路中用于增量式優(yōu)化及重 新布局的部分。從上述描述可知,亟需對電子設計自動化進行算法改進?,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ā)明公開了用于設計集成電路的方法和設備。在示例性實施方式中,本發(fā)明的電路設計公開了綜合與布局的迭代過程,該過程起始于RTL或行為級,其中每一次迭代均 通過集成電路設計的轉(zhuǎn)換而提供增量式改變。在某些方面,所述轉(zhuǎn)換可以是綜合或布局轉(zhuǎn) 換。綜合轉(zhuǎn)換對網(wǎng)表中的對象和/或形成該對象之間的連接的網(wǎng)絡進行修改。布局轉(zhuǎn)換對 網(wǎng)表中一個或多個對象的位置進行修改。在本發(fā)明至少某些實施方式中的增量式迭代方法 可通過使用由設計度量(design metric)(例如,當前電路網(wǎng)表、布局、時序、資源可用性以 及功率)所確定的適當?shù)木C合與布局轉(zhuǎn)換,來提供不斷的改進。在某些方面,在每次轉(zhuǎn)換之 后,對受到影響的設計度量進行更新,以使得將來的轉(zhuǎn)換決策可基于精確的設計統(tǒng)計。所述 過程朝向設計的最終時序資源和功率閉合(enclosure)而增量式迭代。本發(fā)明至少某些實施方式的關鍵方面在于,在識別高層(high level)組件的特定資源類型之前進行布局。例如,對具有期望權(quán)重以及相關的組件資源總量的可選實施形式 進行分類,且布局器對布局進行演變,以移動組件靠近期望實施形式的資源類型。在優(yōu)選實施方式中,本發(fā)明起始于表示RTL或行為設計(電路)的圖以及芯片資 源物理圖。執(zhí)行迭代轉(zhuǎn)換,其中每次轉(zhuǎn)換可對電路或電路中對象的布局進行優(yōu)化或完善。在一種實施方式中,轉(zhuǎn)換由高層優(yōu)化構(gòu)成。該轉(zhuǎn)換通過規(guī)則或數(shù)學轉(zhuǎn)換而將組件 或多個組件優(yōu)化成功能等效且具有較優(yōu)特性(例如,時序、功率或資源消耗)的可選的一組 組件。此類轉(zhuǎn)換的一示例為重新組織算術表達式,以降低樹高從而改善延遲。另一示例為 資源共享或不共享。在另一實施方式中,高層優(yōu)化轉(zhuǎn)換將一組或多組電路對象從抽象的形式完善為更 為具體的形式。完善轉(zhuǎn)換的一示例為將算術表達式映射至芯片上的DSP資源。當抽象形式 被完善之后,通常存在多個實施形式選擇。例如,算數(shù)表達式可通過芯片上的專用算數(shù)功能 (DSP塊)、存儲器內(nèi)的表查找來實施,或可用芯片上的較低層的邏輯組件(LUT或門和觸發(fā) 器)來構(gòu)建。行為綜合流程中的組件可具有基于可選規(guī)劃和資源共享所記錄的多個實施形 式。行為組件的此類可選形式還可基于當前可用資源以及互連延遲來動態(tài)生成。在另一實施方式中,所述完善轉(zhuǎn)換還具有基于可選實施形式的質(zhì)量的緊急性度 量,且可根據(jù)緊急性而被選擇??筛鶕?jù)設計目標(例如,區(qū)域消耗、功耗或時序)來測量實施 形式的質(zhì)量。還可包括其他更為深奧的目標,例如單一事件擾亂難度(single event upset hardness)。例如,如果設計包含一個大的存儲器以及若干個小型存儲器,且大存儲器在被 邏輯結(jié)構(gòu)實施時具有相對較差的實施質(zhì)量,則相比于將設計中的中型存儲器與芯片上稀有 的專用存儲資源相關聯(lián),將大存儲器與芯片上稀有的專用存儲資源相關聯(lián)則相對更為重要 一些。因此,大存儲器的緊急性度量遠高于小存儲器的度量。一旦組件被映射至特定實施 形式并與芯片上的特定資源相關聯(lián),則到這些組件的連接便用作電路剩余部分的布局的錨 (anchor),從而改善了時序質(zhì)量以及可用資源的估算。在一種實施方式中,所述布局轉(zhuǎn)換可以是一個或多個可布局對象的位置的完善, 以改善布局度量,例如,實例擁塞、可布線性(routability)以及電路性能??刹季謱ο罂?由行為綜合組件、未被映射的邏輯的RTL塊、被映射的邏輯、或這些項的任意組合構(gòu)成。在一實施方式中,所述布局轉(zhuǎn)換能夠修改不同抽象化水平的對象。例如,一些可布 局對象可以是RTL塊,而其他可布局對象可以是被映射的門。
      在另一實施方式中,可在所述布局被演化得足夠局部化以致于可確定可用資源并 估算布線延遲時,觸發(fā)完善轉(zhuǎn)換。根據(jù)本發(fā)明另一方面,用于設計集成電路的示例性方法提供一種增量式轉(zhuǎn)換迭代,其中綜合與布局轉(zhuǎn)換并沒有一定的順序,僅根據(jù)他們的功能而被選擇。電路設計自動化 基于選擇函數(shù)來選擇下一轉(zhuǎn)換(綜合或布線)。在每一次迭代時,計算預定的轉(zhuǎn)換列表的成 本。該成本可包括預測(look ahead)其他轉(zhuǎn)換中的成本變化。例如,如果將算術運算映射 至ROM,則會移除用于其它運算的實施形式的ROM選項,從而增加了該其他運算的成本???基于成本收斂標準(例如當前布局、網(wǎng)表、資源、時序或功率)來選擇最佳轉(zhuǎn)換。下一轉(zhuǎn)換可以是布局更新、資源分配、綜合優(yōu)化、布局優(yōu)化或布線更新。因此,IC設計的狀態(tài)可增量式地朝向最終的電路規(guī)格和布置(layout)推進。在另一實施方式中,迭代地執(zhí)行所述布局轉(zhuǎn)換,直至關鍵路徑開始成形,或直至 根據(jù)預定的擁塞閾值資源足夠分散。迭代性能的標準為時序、每資源層(per resource layer)的擁塞、區(qū)域利用率以及功率。所述每資源層的擁塞可通過使用資源層來確定。針對芯片上每一不同原始類型的 資源,存在一資源層。例如,如今的FPGA和結(jié)構(gòu)化ASIC均引入了原始芯片資源的不規(guī)則布 置。這些原始類型包括邏輯(LUTS)、觸發(fā)器、特定1/0單元(例如用于高速串行互連的串 化器/解串化器(SERDES))、各種具有不同容量的存儲組件以及用于加速DSP算法的高速 算術塊。除邏輯和觸發(fā)器之外,通常,這些資源均以稀疏且可能不規(guī)則的形式被包括。許多 FPGA具有有限數(shù)量的RAM、DSP以及以稀疏的列布置在芯片上的其他專用邏輯塊。例如,僅 在芯片布局中的兩列有DSP算術塊。資源層是針對每一原始類型所創(chuàng)建的分布圖,并記錄 了針對所述類型的可用資源位置以及所述類型的每一本原(primitive)的布局。如果局部 物理區(qū)供不應求,則稱該層存在擁塞。在所述方法的典型示例中,用具有時序約束以及布局約束(例如10管腳、現(xiàn)有的 元件平面布置或現(xiàn)有的布局)的高層表示來生成所述集成電路的設計的初始狀態(tài)。該高層 表示可為硬件描述語言(HDL)代碼或?qū)τ布枋稣Z言(HDL)代碼進行編譯之后的與技術無 關的RTL網(wǎng)表。在一實施方式中,首先由基于時序的一系列中性優(yōu)化(neutraloptimization)來 對所述集成電路設計的初始狀態(tài)的網(wǎng)表進行優(yōu)化。所述中性優(yōu)化可以是很容易撤銷的任何 區(qū)域恢復,例如資源共享或不共享;優(yōu)選基于扇出(fanout)表時序的加法樹分解;資源分 配;有助于跨層級優(yōu)化的網(wǎng)表的平化(flattening);復用器提取或重構(gòu)。在一實施方式中,集成電路設計的狀態(tài)基本流程從RTL網(wǎng)表發(fā)展至分解、因素分 解(factorization)、以及被映射及布線之后的網(wǎng)表。在該流程中,可執(zhí)行布局修改、資源分 配以及區(qū)域或時序優(yōu)化。在一實施方式中,可重復對布局和電路架構(gòu)進行完善的過程,直至所有高層組件 均已被給定一個特定的實施形式且資源分配及布局已在芯片上展開以使得每個組件附近 均具有足夠的實施資源。基于此觀點,可使用更多的傳統(tǒng)物理綜合流程來完成整個實施。在另一實施方式中,記錄所應用的轉(zhuǎn)換及其潛在的可選轉(zhuǎn)換??芍貜退隽鞒蹋?可應用可選轉(zhuǎn)換來實現(xiàn)更佳的效果。本發(fā)明還公開了包括軟件媒體的設備,所述軟件媒體可用于設計集成電路。例如,本發(fā)明包括數(shù)字處理系統(tǒng),該系統(tǒng)能夠根據(jù)本發(fā)明來設計集成電路,而且本發(fā)明還提供機 器可讀媒體,當該機器可讀媒體在數(shù)字處理系統(tǒng)(例如計算機系統(tǒng))上執(zhí)行時,可促使該數(shù) 字處理器系統(tǒng)執(zhí)行用于設計集成電路的方法。通過附圖以及以下詳細描述,本發(fā)明的其他特征將顯而易見。


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