[go: up one dir, main page]

TWI475415B - Architectural physical synthesis - Google Patents

Architectural physical synthesis Download PDF

Info

Publication number
TWI475415B
TWI475415B TW097127996A TW97127996A TWI475415B TW I475415 B TWI475415 B TW I475415B TW 097127996 A TW097127996 A TW 097127996A TW 97127996 A TW97127996 A TW 97127996A TW I475415 B TWI475415 B TW I475415B
Authority
TW
Taiwan
Prior art keywords
item
resource
force
resource type
instance
Prior art date
Application number
TW097127996A
Other languages
Chinese (zh)
Other versions
TW200915122A (en
Inventor
Kenneth S Mcelvain
Benoit Lemonnier
Bill Halpin
Original Assignee
Synopsys Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Synopsys Inc filed Critical Synopsys Inc
Publication of TW200915122A publication Critical patent/TW200915122A/en
Application granted granted Critical
Publication of TWI475415B publication Critical patent/TWI475415B/en

Links

Landscapes

  • Design And Manufacture Of Integrated Circuits (AREA)

Description

架構之實體合成Entity synthesis of architecture

本發明一般係關於積體電路設計領域,且更特定言之係關於根據高階描述透過合成程序之積體電路設計。The present invention relates generally to the field of integrated circuit design, and more particularly to integrated circuit design through a synthesis program in accordance with high order descriptions.

此申請案主張2007年7月23日申請之美國臨時申請案第60/951,436號(檔案號02986.P059Z)之權利,該臨時申請案係以引用的方式併入本文內。此申請案還關於___申請之申請案第___號,標題為「架構之實體合成」(檔案號02986.P058)並與其同日申請。This application claims the benefit of U.S. Provisional Application Serial No. 60/951,436, filed on Jul. 23, 2007, which is incorporated herein by reference. This application is also related to the application ___ of the ___ application, entitled "Entity Synthesis of the Framework" (Archive No. 02986.P058) and applied for it on the same day.

關於在VLSI(極大規模整合)技術之規模上設計數位電路,設計者們經常運用電腦輔助技術。已開發諸如硬體描述語言(HDL)之標準語言來說明數位電路以輔助複雜數位電路之設計及模擬。數種硬體描述語言(諸如VHDL與Verilog)已演化為產業標準。VHDL與Verilog係通用硬體描述語言,其允許在晶片原型層次、暫存器轉移層次(RTL)或行為層次使用抽象資料類型來定義一硬體模型。隨著器件技術不斷進步,已開發各種產品設計工具來使HDL適用更新型器件與設計風格。Regarding the design of digital circuits on the scale of VLSI (very large scale integration) technology, designers often use computer-aided technology. Standard languages such as Hardware Description Language (HDL) have been developed to illustrate digital circuits to aid in the design and simulation of complex digital circuits. Several hardware description languages, such as VHDL and Verilog, have evolved into industry standards. VHDL and Verilog are general-purpose hardware description languages that allow abstract data types to be used to define a hardware model at the wafer prototype level, scratchpad transfer level (RTL), or behavior level. As device technology continues to advance, various product design tools have been developed to make HDL suitable for newer devices and design styles.

在使用一HDL碼設計一積體電路中,先編寫碼並接著藉由一HDL編譯器來加以編譯。該HDL原始碼在某層次說明電路元件,然後該編譯器根據此編譯中產生一RTL電路規劃清單(netlist)。一RTL電路規劃清單由複數個RTL物件或組件以及複數個網路所組成,該等網路係該等組件之間的 信號連接。該RTL電路規劃清單可以係一技術獨立電路規劃清單,因為其獨立於一特定供應商之積體電路之技術或架構,諸如場可程式化閘陣列(FPGA)或一特定應用積體電路(ASIC)。該RTL電路規劃清單對應於電路元件之一示意性表示(相對於一行為表示)。接著實行一映射操作以從該技術獨立RTL電路規劃清單轉換至一特定技術電路規劃清單,其可用以在供應商之技術或架構中建立電路,包括放置該等例項並安排該等互連路徑,使得該電路滿足給定時序、空間及電力約束。In designing an integrated circuit using an HDL code, the code is first written and then compiled by an HDL compiler. The HDL source code specifies the circuit components at a level, and then the compiler generates an RTL circuit plan list (netlist) based on the compilation. An RTL circuit planning list consists of a plurality of RTL objects or components and a plurality of networks between the components Signal connection. The RTL circuit planning list can be a technically independent circuit planning list because it is independent of the technology or architecture of a particular vendor's integrated circuit, such as a field programmable gate array (FPGA) or a specific application integrated circuit (ASIC). ). The RTL circuit plan list corresponds to a schematic representation of one of the circuit elements (relative to a behavioral representation). A mapping operation is then performed to transition from the technology independent RTL circuit planning list to a particular technology circuit planning list that can be used to build circuits in the vendor's technology or architecture, including placing the instances and arranging the interconnect paths So that the circuit meets the given timing, space and power constraints.

早期電子設計自動化(EDA)大體上將HDL合成與圖1所示之安置/安排路徑程序分開。在操作11中,準備HDL碼。在操作13中,編譯並合成在操作11中所準備之HDL以產生一電路規劃清單,其一般藉由實行邏輯最佳化來加以最佳化。其後,一映射程序映射該電路規劃清單至一特定目標技術/架構。在操作13結束時,已完成合成且即可提供一電路規劃清單,其係特定於供應商之IC中所使用之技術/架構。此電路規劃清單有效地處於一閘位準,時序分析係基於諸如扇出計數或連接組件類型及大小之預放安資訊使用該等互連特性之統計模型來加以估計。在合成之後,在操作15中在邏輯電路上實行一習知放置操作,在操作17中對該電路規劃清單(僅在一晶片原型或單元或閘位準)作局部改變以滿足時序效能。接著在操作19中實行一習知安排路徑操作以便在該等IC之各IC中建立一電路設計。若存在任一未滿足約束,則該程序使用迴圈返回反覆進行修Early Electronic Design Automation (EDA) generally separated HDL synthesis from the placement/scheduling path procedure shown in Figure 1. In operation 11, an HDL code is prepared. In operation 13, the HDL prepared in operation 11 is compiled and synthesized to produce a circuit plan list that is generally optimized by performing logic optimization. Thereafter, a mapping program maps the circuit planning list to a specific target technology/architecture. At the end of operation 13, the synthesis is completed and a circuit plan list is provided that is specific to the technology/architecture used in the vendor's IC. This circuit planning list is effectively at a gate level, and timing analysis is estimated based on statistical models such as fan-out counts or pre-amplification information for the type and size of connected components using these interconnect characteristics. After synthesis, a conventional placement operation is performed on the logic circuit in operation 15 where the circuit planning list (only on a wafer prototype or cell or gate level) is locally changed to meet timing performance. A conventional scheduling path operation is then performed in operation 19 to establish a circuit design in each IC of the ICs. If any of the unconstrained constraints exist, the program uses the loopback to return to repair

改。change.

從前,當例項延遲在早期合成工具中佔據主導地位時,基於該等統計模型之時序估計充分精確,使得分離合成與安置要求相對較少的反覆回至該等HDL及合成階段。In the past, when the case delays dominated the early synthesis tools, the timing estimates based on the statistical models were sufficiently accurate, so that the separation synthesis and placement requirements were relatively small and returned to the HDL and synthesis stages.

然而,隨著技術節點不斷縮小,該等互連延遲變得顯著,從而超過該等閘延遲。此導致在合成操作中的延遲估計變得越來越少關聯於安置及安排路徑操作之後的實際延遲,從而引起後合成與後布局結果之間的時序可預測性不足。因而在許多情況下,在該等安置及安排路徑程序之後,電路實體布局無法滿足電路設計準則,故設計者們經常必須從合成步驟起重頭開始並重複該等合成/安置/安排路徑程序。However, as technology nodes continue to shrink, these interconnect delays become significant, exceeding the gate delay. This results in less and less delay estimates in the synthesis operation associated with the actual delays after placement and scheduling of the path operations, resulting in insufficient timing predictability between post-synthesis and post-layout results. Thus, in many cases, after such placement and routing procedures, the circuit entity layout cannot meet the circuit design criteria, so designers often have to start from the synthesis step and repeat the synthesis/placement/arrange path procedures.

為了改良合成,在合成程序期間說明相關聯於設計(例如安置)之實體特性較為重要。已採用一系列技術來將安置資訊帶入合成程序內,諸如平面佈置圖(floorplan)、現場最佳化(IPO)及實體合成。In order to improve the synthesis, it is important to account for the physical characteristics associated with the design (eg, placement) during the synthesis procedure. A range of techniques have been employed to bring placement information into the synthesis process, such as floorplans, on-site optimization (IPO), and physical synthesis.

在平面佈置圖技術中,在晶片上將設計劃分成多個區域並使用以安置為主的互連估計用於區域間互連,同時使用統計模型來估計一區域內的互連。平面佈置圖既可在早期RTL階段使用,也可稍後在運行一初始合成之後使用。平面佈置圖可延伸至將RTL組件劃分、複製及切片(slice)成多個區域並組合RTL層次時序及面積模型。可接著使用來自區域間時序的改良時序來更精確地驅動RTL層次最佳化。手動產生一較佳品質平面佈置圖具挑戰性且要求嫺熟 的使用者。類似於來自Tera Systems者(美國專利6,145,117與6,360,356)之自動平面佈置圖可建立區域並向其指派RTL組件。因為合成係解耦並遵循自動平面佈置圖,故在平面佈置圖期間時序及面積資訊之精度較差。In the floorplanning technique, the design is divided into multiple regions on the wafer and interconnected with the placement is estimated for inter-regional interconnection, while statistical models are used to estimate the interconnections within an area. The floor plan can be used either in the early RTL phase or later after running an initial synthesis. The floor plan can be extended to divide, copy, and slice the RTL components into multiple regions and combine the RTL hierarchical timing and area models. The improved timing from inter-region timing can then be used to drive RTL level optimization more precisely. Manually producing a better quality floor plan is challenging and demanding User. An automatic floor plan similar to that from Tera Systems (US Patents 6, 145, 117 and 6, 360, 356) establishes an area and assigns an RTL component to it. Because the synthesis system is decoupled and follows the automatic floor plan, the accuracy of the timing and area information during the floor plan is poor.

一稱為現場最佳化(IPO)之技術提供放置及安排路徑延遲之反向演譯至合成域內。關鍵路徑得到重新最佳化,但因為不更新詳細安置,故用於修改後網路之互連延遲回到統計模型。若作許多改變,則所得電路規劃清單之下列合法化可能要求將例項遠離其初始位置移開,從而導致較大的延遲估計誤差。為此原因,在要求明顯變化以獲得時序封閉時,視IPO為不穩定。A technique called on-site optimization (IPO) provides for the placement and scheduling of inverse interpretation of path delays into the synthesis domain. The critical path is re-optimized, but because the detailed placement is not updated, the interconnect delay for the modified network is returned to the statistical model. If many changes are made, the following legalization of the resulting circuit plan list may require that the instance be moved away from its initial position, resulting in a larger delay estimation error. For this reason, IPO is unstable when significant changes are required to obtain timing closure.

另一技術係實體合成,其係超過IPO技術之一改良,其中在一映射電路規劃清單上的一小量最佳化與遞增重新合法化交錯以維持延遲及資源度量之保真度。此技術之一限制在於,個別改變限於最適度的資源增加或IPO技術重新表面處理之不穩定問題。目前,存在數個不同演算法用於實體合成。圖2顯示一演算法,其使用基於安置例項之近接性的時序估計來提供一實體合成引擎。在操作23中最初放置映射電路規劃清單之後,在僅在晶片原型層次下實行的操作24中,該實體合成操作選擇電路之部分用於遞增最佳化及重新安置。Another technique is entity synthesis, which is an improvement over one of the IPO techniques in which a small amount of optimization and incremental re-legalization interleaving on a mapping circuit planning list maintains the fidelity of delay and resource metrics. One limitation of this technique is that individual changes are limited to the most appropriate resource increase or the instability of the IPO technology resurface treatment. Currently, there are several different algorithms for entity synthesis. Figure 2 shows an algorithm that provides a physical synthesis engine using timing estimates based on the proximity of the placement items. After the mapping circuit plan list is initially placed in operation 23, portions of the entity synthesis operation selection circuit are used for incremental optimization and relocation in operation 24 that is only performed at the wafer prototype level.

根據前述,可看出,需要用於電子設計自動化之演算法改良。From the foregoing, it can be seen that there is a need for an algorithmic improvement for electronic design automation.

先前專利還關於或說明晶片合成,且該些專利包括: U.S.專利6,519,754、6,711,729、7,010,769、6,145,117及6,360,356。安置演算法最近書面說明於:Bo Hu,Timing-Driven Placement for Heterogeneous Field Programmable Gate Array(用於異質場可程式化閘陣列之時序驅動安置),IEEE/ACM國際電腦輔助設計研討會,2006年11月(ICCAD '06),第383至388頁(ISSN:1092-3152、ISBN 1-59593-389-1)。The prior patent also relates to or describes wafer synthesis, and the patents include: U.S. Patents 6,519,754, 6,711,729, 7,010,769, 6,145,117 and 6,360,356. The placement algorithm was recently written in: Bo Hu, Timing-Driven Placement for Heterogeneous Field Programmable Gate Array (Time Series Driven Placement for Heterogeneous Field Programmable Gate Arrays), IEEE/ACM International Computer Aided Design Workshop, 2006 11 Month (ICCAD '06), pp. 383-388 (ISSN: 1092-3152, ISBN 1-59593-389-1).

本發明揭示用以設計一積體電路之方法及裝置。在範例性具體實施例中,本發明電路設計揭示一種合成及安置之反覆程序,其開始於RTL或行為層次,其中各反覆透過該積體電路設計之變換來提供遞增變化。在特定態樣中,該變換可以係一合成或安置變換。一合成變換修改在電路規劃清單內的該等物件及/或在該等物件之間形成連接之網路。一安置變換修改在該電路規劃清單中一或多個物件之位置。本發明之至少特定具體實施例之遞增反覆方案使用諸如目前電路電路規劃清單、安置、時序、資源可用性及電力之設計度量所決定之適當合成及安置變換來提供一連續前進。在特定態樣中,在各變換之後,更新受影響的設計度量,使得未來變換決策係基於一精確設計統計。該程序朝該設計之最終時序資源及電力封閉遞增反覆。The present invention discloses a method and apparatus for designing an integrated circuit. In an exemplary embodiment, the circuit design of the present invention reveals a repetitive process of synthesis and placement that begins at an RTL or behavioral level, where each of the inverses provides an incremental change through the transformation of the integrated circuit design. In a particular aspect, the transformation can be a composite or placement transformation. A synthetic transformation modifies the objects within the circuit planning list and/or the network forming a connection between the objects. A placement transformation modifies the location of one or more objects in the circuit planning list. The incremental reversal scheme of at least some embodiments of the present invention provides a continuous progression using appropriate synthesis and placement transformations as determined by current circuit circuit planning manifests, placement, timing, resource availability, and power design metrics. In a particular aspect, after each transformation, the affected design metrics are updated such that future transformation decisions are based on an accurate design statistic. The program is incrementally repeated towards the final timing resources and power closure of the design.

本發明之至少特定具體實施例之一關鍵態樣在於,安置發生於已為高階組件識別特定資源類型之前。例如,分類用於組件之具有所需權重及相關聯資源總數之替代性實施 方案且放置器演化該安置以移動該等組件靠近用於所需實施方案之資源類型。A key aspect of at least one particular embodiment of the present invention is that placement occurs before a particular resource type has been identified for a higher order component. For example, the classification is used for alternative implementations of components with the required weights and the total number of associated resources The scheme and the placer evolve the placement to move the components close to the type of resource used for the desired implementation.

在一較佳具體實施例中,本發明開始於一圖表,其代表晶片資源之一RTL或行為設計(電路)以及一實體地圖。實行反覆變換,其中各變換產生電路中電路或物件安置之一最佳化或精緻化。In a preferred embodiment, the invention begins with a diagram representing one of the wafer resources RTL or behavioral design (circuitry) and a physical map. A reverse transformation is performed in which one of the circuits or objects in each of the transformation generation circuits is optimized or refined.

在一具體實施例中,一變換由一高階最佳化所組成。此變換透過一規則或數學變換來最佳化一組件或複數個組件成一組功能相當替代性組件,其具有諸如時序、電力或資源消耗之出色特性。此一變換之一範例係重新組織算術運算式以減少樹高度來改良延遲。另一範例係資源共用或不共用。In a specific embodiment, a transform consists of a high order optimization. This transformation optimizes a component or a plurality of components into a set of functionally equivalent alternative components through a regular or mathematical transformation that has excellent characteristics such as timing, power, or resource consumption. An example of this transformation is to reorganize the arithmetic expression to reduce the height of the tree to improve the delay. Another example is resource sharing or not sharing.

在另一具體實施例中,該高階最佳化變換將(多個)群組的(多個)電路物件從更抽象形式精緻化至更具體形式。一精緻化變換之一範例係映射一算術運算式至晶片上的一DSP資源上。當精緻化一抽象形式時,通常存在許多實施方案選擇。例如,一算術表達式可藉由晶片上的一特殊用途算術功能(一DSP組塊)、藉由在一記憶體內的表查找(LUT或閘及正反器)或構建在晶片上該等低階邏輯組件外來加以實施。來自一行為合成流之組件可能具有基於替代性排程與資源共用註冊的多個實施方案。用於行為組件之此類替代例還可基於目前可用資源與互連延遲來加以動態產生。In another embodiment, the high order optimization transform refines the circuit object(s) of the group(s) from a more abstract form to a more specific form. An example of a refined transformation maps an arithmetic expression to a DSP resource on the wafer. When refining an abstract form, there are often many implementation options. For example, an arithmetic expression can be performed by a special purpose arithmetic function on the wafer (a DSP block), by a table lookup (LUT or gate and flip-flop) in a memory or on a wafer. The hierarchical logic components are implemented externally. Components from a behavioral composite stream may have multiple implementations based on alternative scheduling and resource sharing registrations. Such alternatives for behavioral components can also be dynamically generated based on currently available resources and interconnect delays.

在另一具體實施例中,該等精緻化變換還基於替代性實 施方案之品質具有一緊急度量並按緊急次序來加以選擇。一實施方案之品質根據設計目標(諸如面積消耗、電力消耗或時序)來加以測量。還可包括諸如單事件翻轉硬度之其他更多深奧目標。例如,若一設計包含一大型記憶體與數個小型記憶體,且該大型記憶體在由邏輯組構實施時具有一相對較差實施品質時,在設計中將該大型記憶體與晶片上的稀缺特殊用途記憶體資源相關聯比中型記憶體相對重要得多。則用於該大型記憶體之緊急度量將會遠高於用於該等小型記憶體之度量。一旦將組件映射至一特定實施方案並相關聯於晶片上的特定資源,至該些組件的該等連接用作用於安置電路之剩餘者之錨,從而改良時序及可用資源估計之品質。In another embodiment, the refinement transformations are also based on alternative realities. The quality of the program has an urgent metric and is selected in urgent order. The quality of an embodiment is measured according to design goals such as area consumption, power consumption, or timing. Other more esoteric targets such as single event flip hardness can also be included. For example, if a design includes a large memory and a plurality of small memories, and the large memory has a relatively poor implementation quality when implemented by a logical fabric, the large memory and the wafer are scarce in the design. Special-purpose memory resources are much more important than medium-sized memory. The emergency metric for this large memory will be much higher than the metric for these small memories. Once the components are mapped to a particular implementation and associated with particular resources on the wafer, the connections to the components serve as anchors for the remainder of the placement circuitry, thereby improving the quality of timing and available resource estimates.

在一具體實施例中,該安置變換可以係一或多個可安置物件之位置之一精緻化,以改良安置度量,諸如:例項擁塞、可安排路徑性及電路效能。一可安置物件可由一行為合成組件、一未映射邏輯之RTL組塊、映射邏輯或該些者之任一組合組成。In one embodiment, the placement transformation may be refined by one of the locations of one or more configurable items to improve placement metrics such as example congestion, arrangability, and circuit performance. A configurable object can be comprised of a behavioral composition component, an unmapped logic RTL chunk, mapping logic, or any combination of these.

在一具體實施例中,該安置變換能夠修改不同抽象層次的物件。例如,一些可安置物件可能係RTL組塊,而其他可能係映射閘。In a specific embodiment, the placement transformation can modify objects of different levels of abstraction. For example, some of the configurable items may be RTL chunks, while others may map gates.

在另一具體實施例中,在安置局部充分演化使得可決定可用資源並估計安排之路徑延遲時觸發一精緻化變換。In another embodiment, a refinement transform is triggered when the placement is fully evolved such that the available resources can be determined and the scheduled path delay is estimated.

依據本發明之另一態樣,一種用於設計積體電路之範例性方法提供一遞增變換反覆,其中該等合成及安置變換不 按任何次序,但僅針對其功能性而選擇。該電路設計自動化基於一選擇功能來選擇下一變換,即合成或安置。在各反覆,計算用於一預定變換清單之成本。該成本可能包括對其他變換之成本變化的預測。例如,若一算術運算映射至一ROM,則可移除ROM選項以實施另一運算,從而提高其成本。基於諸如目前安置、電路規劃清單、資源、時序或電力之成本收斂準則來選擇最佳變換。In accordance with another aspect of the present invention, an exemplary method for designing an integrated circuit provides an incremental transform repeat, wherein the composite and placement transforms are not In any order, but only for its functionality. The circuit design automation is based on a selection function to select the next transformation, ie synthesis or placement. At each iteration, the cost for a predetermined list of changes is calculated. This cost may include predictions of changes in costs of other transformations. For example, if an arithmetic operation is mapped to a ROM, the ROM option can be removed to perform another operation, thereby increasing its cost. The optimal transformation is selected based on cost convergence criteria such as current placement, circuit planning inventory, resources, timing, or power.

下一變換可以係一安置更新、一資源指派、一合成最佳化、一安置最佳化或一安排之路徑更新。因而,IC設計之狀態朝最終電路規格及布局遞增進展。The next transformation may be a placement update, a resource assignment, a synthesis optimization, a placement optimization, or an arrangement of path updates. As a result, the state of the IC design is moving toward the final circuit specification and layout.

在另一具體實施例中,反覆地實行該等安置變換,直至關鍵路徑開始成形或直至依據一預定擁塞臨限值充分散佈資源。用於反覆效能之準則係時序、每資源層擁塞、面積利用及電力。In another embodiment, the placement transformations are performed repeatedly until the critical path begins to form or until resources are fully dispersed in accordance with a predetermined congestion threshold. The criteria for repetitive performance are timing, congestion per resource layer, area utilization, and power.

每資源層擁塞可藉由使用資源層來加以決定。對於晶片上的各不同原型類型資源均存在一資源層。例如,現今的FPGA與結構化ASIC已引入原型晶片資源之不規則布局。該些原型類型包括邏輯(LUT)、正反器、用於高速串聯互連之特殊I/O單元(諸如SERDES)、具有不同容量及高速算術組塊以加速DSP演算法之各種記憶體組件。除邏輯與正反器外,一般而言,該些資源均以一稀疏且可能不規則的方式來加以包括。許多FPGA具有在晶片上以稀疏行配置的的一有限數量RAM、DSP以及其他專用邏輯組塊。例如,DSP算術組塊可能在晶片布局內僅在2行內可用。一 資源層係一針對各原型類型而建立之分佈地圖並記錄用於該類型之可用資源位置與該類型之各原型之安置。一層在存在一使用多於供應之局部化實體區域時認為係擁塞的。Congestion per resource layer can be determined by using the resource layer. There is a resource layer for each of the different prototype type resources on the wafer. For example, today's FPGAs and structured ASICs have introduced irregular layouts of prototype wafer resources. These prototype types include logic (LUT), flip-flops, special I/O units for high-speed serial interconnects (such as SERDES), various memory components with different capacities and high-speed arithmetic chunks to accelerate DSP algorithms. In addition to logic and flip-flops, in general, these resources are included in a sparse and possibly irregular manner. Many FPGAs have a limited amount of RAM, DSP, and other dedicated logic blocks that are sparsely arranged on the wafer. For example, DSP arithmetic chunks may be available in only 2 rows within the wafer layout. One The resource layer is a distribution map established for each prototype type and records the placement of available resource locations for that type and the placement of prototypes of that type. A layer is considered to be congested when there is a localized physical area that is used more than supplied.

在此方法之一典型範例中,從具有時序約束與安置約束之一高階表示(諸如IO接針、現有平面佈置圖或現有安置)產生積體電路設計之一初始狀態。該高階表示可以係一硬體描述語言(HDL)碼或在根據一硬體描述語言(HDL)碼編譯之後的一技術獨立RTL電路規劃清單。In one typical example of this method, an initial state of the integrated circuit design is produced from a high-order representation with timing constraints and placement constraints, such as an IO pin, an existing floor plan, or an existing placement. The higher order representation can be a hardware description language (HDL) code or a technically independent RTL circuit planning list compiled after a hardware description language (HDL) code.

在一具體實施例中,先基於時序藉由一系列中性最佳化來最佳化積體電路設計之初始狀態之電路規劃清單。該等中性最佳化可以係可容易撤銷之任一區域之一回復(諸如資源共用或不共用);加法器樹分解,其較佳的係基於扇出表時序;一資源指派、電路規劃清單之一壓平合併(flatten)以橫跨階層促進最佳化;多工器擷取或重構。In one embodiment, the circuit planning list of the initial state of the integrated circuit design is optimized based on a series of neutral optimizations based on timing. The neutral optimization may be one of any areas that may be easily revoked (such as resource sharing or non-common); adder tree decomposition, preferably based on fan-out table timing; a resource assignment, circuit planning One of the lists flattens to promote optimization across the hierarchy; the multiplexer captures or reconstructs.

在一具體實施例中,該積體電路之設計狀態之一般流從一RTL電路規劃清單進展至一分解及因子分解,接著至一映射及安排路徑電路規劃清單。透過整個流來實行安置修改、資源指派及面積或時序最佳化。In one embodiment, the general flow of the design state of the integrated circuit progresses from an RTL circuit planning list to a decomposition and factorization, and then to a mapping and scheduling path circuit planning list. Placement modifications, resource assignments, and area or timing optimization are implemented through the entire flow.

在一具體實施例中,精緻化安置及電路架構之程序重複直至已給予所有高階組件一特定實施方案與資源指派且該安置已散佈在晶片上使得每一組件具有足夠的附近資源用於實施。一更傳統實體合成流可從此刻用以完成該實施方案。In one embodiment, the refinement placement and circuit architecture procedures are repeated until all of the higher order components have been assigned a particular implementation and resource assignment and the placement has been spread across the wafer such that each component has sufficient nearby resources for implementation. A more conventional physical synthesis stream can be used to complete this embodiment from now on.

在另一具體實施例中,記錄所應用的變換及其潛在替代 例。可重複該流且可應用該等替代性變換以獲得更佳結果。In another embodiment, the applied transform and its potential replacement are recorded example. This stream can be repeated and these alternative transformations can be applied to achieve better results.

本發明還揭示裝置,包括可用以設計積體電路的軟體媒體。例如,本發明包括數位處理系統,其能夠依據本發明設計積體電路,且本發明還提供機器可讀取媒體,其在一數位處理系統(諸如一電腦系統)上執行時引起該數位處理系統實行一種用於設計積體電路之方法。The present invention also discloses apparatus including software media that can be used to design integrated circuits. For example, the present invention includes a digital processing system capable of designing an integrated circuit in accordance with the present invention, and the present invention also provides a machine readable medium that causes the digital processing system to be executed on a digital processing system, such as a computer system A method for designing an integrated circuit is implemented.

根據下列附圖及詳細說明將會明白本發明之其他特徵。Other features of the invention will be apparent from the description and drawings.

本文中說明用於設計一積體電路或複數個積體電路之方法及裝置。在下列說明中,為了解釋目的,提出許多特定細節,以便徹底瞭解本發明。不過,習知此項技術者會瞭解,沒有該些特定細節本發明仍能實施。在其他例項中,熟知結構、程序及器件均以方塊圖形式顯示或以一概要方式引用以便提供一解釋而無不適當的細節。Methods and apparatus for designing an integrated circuit or a plurality of integrated circuits are described herein. In the following description, for the purposes of illustration However, it will be apparent to those skilled in the art that the present invention can be practiced without these specific details. In other instances, well-known structures, <RTIgt; </ RTI> <RTIgt; </ RTI> <RTIgt; </ RTI> <RTIgt; </ RTI> <RTIgt;

本發明揭示用以設計一積體電路之方法及裝置,在一具體實施例,其以一單一遍次組合安置與合成。本發明之一具體實施例揭示一種實體合成程序,稱為架構實體合成,其中在合成與安置之間的交互作用在一架構層次上發生。此允許合成與在一積體電路之基板之一表示上的實際實體安置一起發生,從而提供可用局部資源與延遲估計密切相關聯於來自安置之實際電路時序的合成,並因而可同時考量合成與安置之間的交互作用。此外,此可提供一種進行高階架構決策之自動化方法,從而以一方式映射高階組件 或進行高階電路變換,使得將安置、擁塞估計及目標晶片架構之特性(包括但不限於不同資源之實體分佈、組件延遲及互連延遲)考量在內。依據本發明之一態樣,認識到,給定一電路設計或一HDL碼表示,存在互鏈合成與安置的大量替代性實施方案,尤其對於具有給定分佈資源之一現有平面佈置圖而言。為了實現一最佳設計實施方案,較重要的係能夠基於透過安置採集的目前可用電路資料(諸如時序或電力)原路返回一更早合成決策。The present invention discloses a method and apparatus for designing an integrated circuit. In a specific embodiment, it is placed and combined in a single pass. One embodiment of the present invention discloses a physical compositing procedure, referred to as architectural entity compositing, in which interaction between compositing and placement occurs at an architectural level. This allows the synthesis to occur with the actual physical placement on one of the substrates of the integrated circuit, thereby providing a usable local resource that is closely related to the delay estimate to the synthesis from the actual circuit timing of the placement, and thus can simultaneously consider the synthesis and The interaction between placements. In addition, this provides an automated way to make high-level architectural decisions that map high-level components in one way. Or performing high-order circuit transformations to account for placement, congestion estimation, and characteristics of the target wafer architecture, including but not limited to physical distribution of different resources, component delays, and interconnect delays. In accordance with one aspect of the present invention, it is recognized that given a circuit design or an HDL code representation, there are a number of alternative implementations of inter-chain synthesis and placement, particularly for an existing floor plan having one of a given distribution resource. . In order to achieve an optimal design implementation, it is more important to be able to return to an earlier synthesis decision based on the currently available circuit data (such as timing or power) collected through the placement.

因而,在本發明之一態樣中,在高階設計或行為表示中,在早期合成循環中,例如在電路架構層次中,實行安置以允許各種設計實施方案之適用性之精確評估。此對於諸如FPGA與結構化ASIC之預擴散晶片尤其重要,其中資源不均勻地分佈在晶片上。在預擴散晶片中,資源位置及資源類型係以一稀疏方式來預定並分佈。例如,現今的FPGA與結構化ASIC已引入晶片資源之不規則布局。該些組件可能包含邏輯、正反器、用於高速串聯互連之特殊I/O單元(諸如SERDES)、具有不同容量及高速算術組塊以加速DSP演算法之各種記憶體組件。許多FPGA具有在晶片上以稀疏行配置的一有限數量RAM、DSP以及其他專用邏輯組塊。例如,DSP算術組塊可能在晶片布局內僅在2行內可用。Thus, in one aspect of the invention, in high-order designs or behavioral representations, placement is performed in an early synthesis cycle, such as at a circuit architecture level, to allow for an accurate assessment of the applicability of various design implementations. This is especially important for pre-diffused wafers such as FPGAs and structured ASICs where resources are unevenly distributed across the wafer. In pre-diffused wafers, resource locations and resource types are predetermined and distributed in a sparse manner. For example, today's FPGAs and structured ASICs have introduced irregular layouts of wafer resources. These components may include logic, flip-flops, special I/O units for high-speed serial interconnects (such as SERDES), various memory components with different capacities and high-speed arithmetic chunks to accelerate DSP algorithms. Many FPGAs have a limited amount of RAM, DSP, and other dedicated logic blocks that are sparsely arranged on the wafer. For example, DSP arithmetic chunks may be available in only 2 rows within the wafer layout.

在一態樣中,本發明解決在晶片架構演化中的此變化以在合成流開始時整合實體放置與架構選擇。此要求可處於RTL層次或行為合成層次處,其中決定不同類型的要求資 源之數目。In one aspect, the present invention addresses this change in wafer architecture evolution to integrate entity placement and architecture selection at the beginning of the composite stream. This requirement can be at the RTL level or at the behavioral synthesis level, where different types of requirements are determined The number of sources.

在一早期合成程序(例如在一設計之許多組件未曾選擇一實施方案時)資源布局資訊之目前意識以及安置與合成之整合可提供一最佳資源利用。例如,未意識到資源布局資訊之一RTL合成程序可能導致一中間電路規劃清單,該中間電路規劃清單過度使用一些資源資料,而其他資源類型卻利用不足。此外,該等資源類型決策可能不相容於該等資源之實體位置。例如,可在晶片之一局部化部分內要求多個超過可用者的DSP資源。本合成方法可藉由瞭解該些資源在晶片上的分佈以及不僅瞭解存在足夠的一特定資源,而且了解附近有足夠資源來提供其一有效率利用。因而,可避免起因於投送信號至不同放置資源的大互連延遲。The current awareness of resource layout information and the integration of placement and synthesis in an early synthesis process (e.g., when an assembly has not been selected for many components) provides an optimal resource utilization. For example, an RTL synthesis program that is unaware of resource layout information may result in an intermediate circuit planning list that overuses some resource material while other resource types are underutilized. In addition, these resource type decisions may not be compatible with the physical location of the resources. For example, multiple DSP resources beyond the available ones may be required within one of the localized portions of the wafer. The synthesis method can provide an efficient use of the resources by knowing the distribution of the resources on the wafer and not only knowing that there is enough specific resources, but also knowing that there are sufficient resources nearby. Thus, large interconnect delays due to the delivery of signals to different placement resources can be avoided.

依據本發明之一態樣,在合成仍處於一高階電路表示(例如在一設計中的許多組件可能仍未具有一選定實施方案)或一閘位準描述仍待決定時決定各種安置決策。該些安置決策可能實現精確評估電路參數,諸如時序延遲或電力消耗,從而准許一遞增路徑朝向一最佳設計實施方案。在一具體實施例中,如圖3所示,在操作30中,該程序開始於IC設計之一初始狀態,其可能包括ESL或HDL語言、一行為抽象或一編譯HDL碼至RTL電路規劃清單之一高階抽象,加上時序、平面佈置圖、電力及放置約束。在操作31中,實行一合成變換,其在該程序之一早期階段將會係一高階變換。此合成變換可能僅針對該設計之一部分。在 操作32中,在現有電路表示上實行安置變換,並在一早期階段,將會係在一架構層次的一安置。此安置變換可能僅針對該設計之一部分。在此操作時的該等安置決策可能要求各種假定與估計,由於可能在此早期階段錯過詳細資訊。接著在操作34評估該IC狀態之準備就緒,且若其滿足設計與合法目標,則在操作48中繼續移動至傳統實體合成。如在此早期階段可能的,若不滿足該等目標,則將會迴圈返回至另一回合合成。In accordance with one aspect of the present invention, various placement decisions are made while the synthesis is still in a higher order circuit representation (e.g., many components in a design may still not have a selected implementation) or a gate level specification is yet to be determined. These placement decisions may enable accurate evaluation of circuit parameters, such as timing delay or power consumption, thereby permitting an incremental path toward an optimal design implementation. In one embodiment, as shown in FIG. 3, in operation 30, the program begins with an initial state of the IC design, which may include an ESL or HDL language, a behavioral abstraction, or a compiled HDL code to the RTL circuit planning list. One of the high-level abstractions, plus timing, floor plans, power, and placement constraints. In operation 31, a synthetic transformation is performed which will be a higher order transformation at an early stage of the procedure. This composite transformation may only be part of this design. in In operation 32, the placement transformation is performed on the existing circuit representation and, at an early stage, will be placed at an architectural level. This placement transformation may only be part of the design. Such placement decisions at this time may require various assumptions and estimates as detailed information may be missed at this early stage. The IC state is then ready for operation at operation 34, and if it meets the design and legal goals, then move to the traditional entity synthesis in operation 48. As may be possible at this early stage, if these goals are not met, the loop will be returned to another round of synthesis.

下一合成反覆(目前操作31)將會改良設計表示,尤其係在具備實體安置資訊(先前操作32)之後。且類似地,下一安置反覆(目前操作32)將在具備一合成改良之後改良其電路參數估計。使用此類密切迴圈,合成與安置可一起緊密工作以提供一路徑至一最佳設計表示而無明顯重做。The next synthetic iteration (current operation 31) will improve the design representation, especially after having physical placement information (previous operation 32). And similarly, the next placement override (current operation 32) will improve its circuit parameter estimates after having a synthesis improvement. Using such close loops, the synthesis and placement can work together to provide a path to an optimal design representation without significant redoing.

在一具體實施例中,該合成操作為一電路設計表示提供各種實施方案,且該安置操作可執行電路參數分析以幫助縮小該等選項。例如,若實施方案#1明顯出色,則其將被選擇,並將潛在實施方案之數目縮小至一。或者,若實施方案#2明顯超出該等設計約束之範疇,則其將被排除,從而將潛在實施方案之數目縮小一。In one embodiment, the synthesizing operation provides various implementations for a circuit design representation, and the placement operation can perform circuit parameter analysis to help narrow down the options. For example, if implementation #1 is significantly better, it will be selected and the number of potential implementations will be reduced to one. Alternatively, if implementation #2 clearly falls outside the scope of such design constraints, it will be excluded, thereby reducing the number of potential implementations by one.

依據本發明之一態樣,一種用於設計複數個積體電路之範例性方法從一抽象機器規格中提出一整合、交互作用且反覆合成及安置。在一具體實施例中,該設計積體電路之範例性方法遞增改變IC設計之狀態。開始於IC設計之一初始狀態,其包含ESL或HDL語言、一行為抽象或一編譯 HDL碼至RTL電路規劃清單之一高階抽象,加上時序、平面佈置圖、電力及安置約束,該範例性方法遞增地反覆改變該IC設計狀態,直至到達一最佳化設計狀態。該最佳化狀態較佳的係滿足該等時序及安置約束的一晶片原型層次電路規劃清單,其可接著傳遞至一傳統安置及安排路徑程序而無任一廣泛重做。In accordance with one aspect of the present invention, an exemplary method for designing a plurality of integrated circuits proposes an integration, interaction, and recombination and placement from an abstract machine specification. In one embodiment, the exemplary method of designing an integrated circuit incrementally changes the state of the IC design. Start with an initial state of IC design that includes ESL or HDL language, a behavioral abstraction, or a compilation A high-level abstraction of the HDL code to RTL circuit planning list, plus timing, floor plan, power, and placement constraints, the incremental method incrementally and repeatedly changes the IC design state until an optimized design state is reached. The optimized state is preferably a wafer prototype hierarchical circuit planning list that satisfies the timing and placement constraints, which can then be passed to a conventional placement and routing procedure without any extensive redoing.

依據一態樣,本發明揭示一合成及安置之反覆程序,其中各反覆在積體電路設計上提供遞增變化。將參考圖4提供本發明之特定具體實施例之一一般範例。圖4之方法開始於操作40,其中產生一IC設計之一初始狀態。該IC設計之初始狀態包含一行為表示或高階RTL電路規劃清單,其可由一HDL原始碼來編譯,該原始碼描述電路與邏輯。According to one aspect, the present invention discloses a repetitive process of synthesis and placement in which each of the inverses provides incremental changes in the design of the integrated circuit. A general example of a particular embodiment of the invention will be provided with reference to FIG. The method of Figure 4 begins at operation 40 where an initial state of an IC design is generated. The initial state of the IC design includes a behavioral representation or high-order RTL circuit planning list that can be compiled by an HDL source code that describes the circuit and logic.

該技術獨立RTL電路規劃清單一般係該設計之一更高階行為表示。此保存抽象資訊以在最終映射步驟前供程序使用。此點不同於傳統合成工具,其在進行語言編譯之後立即將設計分段成精細、低層次(閘)表示。藉由保存一更高階行為表示,一合成工具可執行最佳化,在一遠更全域的層次劃分並平面佈置圖且一般會遞交更佳結果。藉由在抽象資料上操作,該合成工具還可更快地操作並處理更大設計。該高階RTL電路規劃清單包含獨立於任一特定供應商技術或架構之高階抽象,諸如電路組塊表示。The technical independent RTL circuit planning list is generally a higher order behavior representation of the design. This saves the abstract information for use by the program before the final mapping step. This is different from traditional synthesis tools, which segment the design into a fine, low-level (gate) representation immediately after language compilation. By preserving a higher order behavioral representation, a synthesis tool can perform optimizations, partitioning and planarizing the map at a far more global level and generally delivering better results. By working on abstract data, the compositing tool can also operate and process larger designs faster. The high-order RTL circuit planning list contains high-order abstractions that are independent of any particular vendor technology or architecture, such as circuit block representations.

該IC設計之初始狀態進一步包含時序約束、電力約束及安置約束,諸如IO接針位置、現有平面佈置圖或現有安置(例如IC晶片之大小及形狀、IP組塊)。在操作42中,遞增 改變IC設計之狀態。該積體電路設計之狀態一般包含一電路規劃清單、時序資料、資源資訊、安置資訊、安排路徑資訊及電力資料。在設計狀態中的遞增變化可以係合成或安置修改,且下面將進一步作說明。在本發明之一態樣中,該等變化係遞增的,意味著該等設計最佳化一般隨著小幅修改諸如時序估計與安置約束之所有目前資訊而繼續。該等遞增變化允許設計滿懷信心地進展,使得穩步地進展。在一態樣中,該等遞增變化涉及一遞增全域放置演算法,諸如力引導方法。在另一態樣中,該等遞增變化涉及全域最佳化演算法,諸如模擬退火。在操作44中,評估該IC設計之狀態,並在操作46中決定是否繼續藉由返回操作42進一步反覆,或在操作48完成設計流而做出決策。The initial state of the IC design further includes timing constraints, power constraints, and placement constraints, such as IO header locations, existing floor plans, or existing placements (eg, size and shape of the IC die, IP chunks). In operation 42, increment Change the state of the IC design. The state of the integrated circuit design generally includes a circuit planning list, timing information, resource information, placement information, routing information, and power data. Incremental changes in the design state can be combined or modified, and will be further described below. In one aspect of the invention, the variations are incremental, meaning that the design optimizations generally continue with minor modifications to all current information such as timing estimates and placement constraints. These incremental changes allow the design to progress with confidence and progress steadily. In one aspect, the incremental changes involve an incremental global placement algorithm, such as a force steering method. In another aspect, the incremental changes involve a global optimization algorithm, such as simulated annealing. In operation 44, the state of the IC design is evaluated, and in operation 46 it is determined whether to continue to repeat by return operation 42, or to complete the design flow at operation 48 to make a decision.

本電路設計方法在積體電路設計中的兩個基本步驟(即合成與實體設計(例如安置與安排路徑))之間提供一高度整合且交互作用程序。概念上合成與安置強烈相互依賴,由於沒有安置,在合成上無法精確估計設計約束,而沒有合成,無法實行安置,故本發明設計方法使用遞增反覆方案將合成與安置有效地合併成一步驟程序。This circuit design method provides a highly integrated and interactive procedure between two basic steps in the design of an integrated circuit, namely, synthesis and physical design (eg, placement and routing). Conceptually, the synthesis and placement are strongly interdependent. Since there is no resettlement, the design constraints cannot be accurately estimated in the synthesis, and there is no synthesis, and the resettlement cannot be implemented. Therefore, the design method of the present invention uses the incremental and repeated scheme to effectively combine the synthesis and the placement into a one-step procedure.

在一具體實施例中,本發明提供合成/安置變換之一反覆。該反覆程序之主體可以係一安置變換、一合成變換或合成與安置變換之一組合。在任一情況下,該積體電路設計之狀態朝滿足該等設計目標之一晶片原型層次電路規劃清單之合成或安置遞增且反覆地變化。圖5A及5B顯示用於設計一IC之一流之一部分的兩個範例;在圖5A所示之方 法之情況下,先發生一安置變換,隨後進行一合成變換,而在圖5B中則發生反向情況。合成、安置或合成/放置之遞增及反覆變換在該設計之任一狀態處在合成與安置之間提供一連續反覆。該合成及安置之遞增及反覆進展保證該合成變換始終具有最新且最精確的設計狀態資訊,其包括來自安置變換之延遲資訊與局部資源可用性,且其中該等安置變換始終基於最近合成電路規劃清單來提供用於實體安置與安排路徑資訊的最佳估計。安置及合成變換繼續直至電路規劃清單僅由晶片層次原型所組成,滿足該等設計目標,然後將安置擁塞減少至一層次,其中一詳細放置器可容易地獨立合法化任一較小局部區域。此流後面可跟隨一傳統實體合成流來完成實施方案。In a specific embodiment, the present invention provides a reversal of one of the synthesis/placement transformations. The body of the repeated procedure may be a combination of a placement transformation, a synthetic transformation, or a synthesis and placement transformation. In either case, the state of the integrated circuit design changes incrementally and repeatedly toward the synthesis or placement of the wafer prototype hierarchy circuit planning list that satisfies one of the design goals. Figures 5A and 5B show two examples for designing a portion of an IC stream; the square shown in Figure 5A In the case of the method, a placement transformation occurs first, followed by a synthetic transformation, and in Fig. 5B, a reverse situation occurs. The incremental and repeated transformations of synthesis, placement, or synthesis/placement provide a continuous reversal between synthesis and placement at either state of the design. The incremental and repetitive progress of the synthesis and placement ensures that the synthetic transformation always has the most up-to-date and accurate design state information, including delay information from the placement transformation and local resource availability, and wherein the placement transformations are always based on the most recent synthetic circuit planning list. To provide the best estimate for entity placement and scheduling path information. The placement and synthesis transformations continue until the circuit planning list consists of only wafer level prototypes that meet these design goals and then reduces placement congestion to a level where a detailed placer can easily legalize any smaller local area independently. This stream can be followed by a conventional entity synthesis stream to complete the implementation.

圖6顯示用於遞增改變IC設計狀態之本發明之一具體實施例。本發明可同時放置所有抽象層次。在早期反覆期間,在更高抽象層次的物件比在其中設計主要由晶片原型所組成之稍後反覆中更普遍。該等晶片原型例項一般係最低階的表示。合成變換逐漸地修改電路規劃清單,將在一更高抽象層次的該等物件變成更具體的物件。該些具體物件具有更特定的資源要求,接著在下列合成與安置變換中將其考量在內。安置變換決定電路規劃清單例項之位置,即RTL例項、未映射例項、映射例項或晶片原型層次例項,從而隨同路由器決定電路中網路之長度及延遲。該安置變換可朝一合法放置逐漸反覆電路安置,其中合法安置意味著滿足主導IC晶片之資源使用的該等規則。一般而 言,在該等早期反覆中,該安置將會不合法。由於該安置變換在物件位置上進行遞增變化,故該安置變換之單一反覆將不會在一合法放置中建立。係透過重覆安置變換,該安置將變得合法。在此具體實施例中,該安置變換係本電子設計自動化之中心。Figure 6 shows a specific embodiment of the invention for incrementally changing the design state of an IC. The present invention can place all levels of abstraction simultaneously. During the early iterations, objects at a higher level of abstraction are more prevalent than later in the design where the design consists primarily of wafer prototypes. These wafer prototypes are generally the lowest order representations. Synthetic transformations gradually modify the circuit plan list to turn those objects at a higher level of abstraction into more specific objects. These specific items have more specific resource requirements and are then considered in the following synthesis and placement transformations. The placement transformation determines the location of the circuit planning list item, ie, the RTL instance, the unmapped instance item, the mapping example item, or the wafer prototype level item, thereby determining the length and delay of the network in the circuit along with the router. The placement transformation can be placed over a legally placed gradual repeating circuit, where legal placement means that the rules governing the use of resources of the leading IC chip are met. Generally In this early reversal, the placement will be illegal. Since the placement change is incrementally changed at the location of the object, a single iteration of the placement transformation will not be established in a legal placement. The placement will become legal through repeated placement changes. In this particular embodiment, the placement transformation is the center of the electronic design automation.

在各反覆中,用於一反覆之準則可以係時序資料、每資源層擁塞、面積利用、電力位準或其任一組合。該方法可進一步包含一可能內部迴圈反覆以最佳化設計,以成形關鍵路徑,或以散佈該等資源至一預定臨限值。In each iteration, the criteria for a repeat may be time series data, congestion per resource layer, area utilization, power level, or any combination thereof. The method can further include a possible internal loop reversal to optimize the design to shape the critical path, or to spread the resources to a predetermined threshold.

使用合成及安置變換之遞增反覆之本發明方法之一具體實施例,在設計之所有階段中在合成變換中始終可使用實體設計資訊。因而,在合成中的該等最佳化及變換始終在時序及區域並還在可安排路徑性影響上係最新的。在合成中進行關於電路結構之決策與安置完全協調一致。In one embodiment of the method of the present invention, which uses an incrementally repeated synthesis and placement transformation, the entity design information can always be used in the synthesis transformation at all stages of the design. Thus, such optimizations and transformations in the synthesis are always up-to-date in terms of timing and region and also in arranging pathological effects. The decision-making and placement of the circuit structure is fully coordinated in the synthesis.

合成及安置變換之遞增反覆之本發明方法有效地組合該等合成及安置變換以同時最佳化邏輯結構以及一電路之空間安置。在此方法之一典型範例中,該積體電路設計之狀態朝最終電路規格及布局遞增進展。The inventive method of incrementally recombining and arranging transformations effectively combines the synthesis and placement transformations to simultaneously optimize the logical structure and spatial placement of a circuit. In a typical example of this approach, the state of the integrated circuit design progresses toward the final circuit specification and layout.

該反覆性安置變換之進展可以係電路規劃清單或一安置組態之一增加成熟度位準。一設計之成熟度係藉由電路規劃清單僅由晶片層次原型所組成、滿足該等設計目標以及將安置擁塞減少至一位準,其中一細節放置器可容易獨立地合法化任一較小局部區域的程度來加以測量。The progress of the reversal placement transformation may be one of a circuit planning list or a placement configuration to increase the maturity level. The maturity of a design is made up of only the wafer level prototypes by the circuit planning list, satisfying the design goals and reducing the placement congestion to a certain level. One detail placer can easily legalize any smaller part independently. The extent of the area is measured.

該反覆合成變換之進展可以係一合成最佳化,諸如物件 或實體之重構或複製,以滿足時序約束。合成最佳化包括但不限於一電路最佳化、一抽象組件分解、一算術映射、一撤銷/復原資源共用、一加法器樹分解、一基於安置之及/或閘分解、路徑複製、一路徑迂迴(detour)移除、至諸如RAM或DSP之離散資源的一指派、一邏輯因子分解、多工器重構或一電路規劃清單之一壓平合併以橫跨階層促進最佳化。The progress of the inverse synthetic transformation can be optimized for a synthesis, such as an object Or entity reconstruction or replication to meet timing constraints. Synthesis optimization includes, but is not limited to, a circuit optimization, an abstract component decomposition, an arithmetic mapping, an undo/restore resource sharing, an adder tree decomposition, a placement based and/or gate decomposition, path replication, and a Path detour removal, an assignment to discrete resources such as RAM or DSP, a logic factorization, multiplexer reconstruction, or a circuit planning list is flattened to promote optimization across the hierarchy.

圖6中顯示此方法之具體實施例,其開始於一操作61,其中產生IC設計之一初始狀態。該IC設計之狀態可以係一RTL網路,其具有相關聯狀態資訊,諸如時序資料、資源資訊、安置資訊、安排路徑資訊及/或電力資料。一般而言,該IC設計之狀態包含足夠資訊來指定該等電路要求,諸如功能性、時序、電力及平面佈置圖。A specific embodiment of this method is shown in Figure 6, beginning with an operation 61 in which an initial state of an IC design is generated. The state of the IC design can be an RTL network with associated status information such as timing information, resource information, placement information, routing information, and/or power data. In general, the state of the IC design contains enough information to specify such circuit requirements, such as functionality, timing, power, and floor plan.

高階RTL電路規劃清單包含一電路規劃清單,其中大多數物件係該等低階晶片原型之抽象。多個群組的相關聯原型可使用更高階表示來表示成物件,其表示由RTL所編碼之功能性。該積體電路設計之高階或抽象表示可以係邏輯物件,其表示RTL碼或其部分。各物件一般表示多個晶片原型,例如更複雜的功能,諸如加法器、乘法器、多工器與順序邏輯以及AND功能、OR功能。高階表示之物件還可包括記憶體組塊或私人(智慧財產權組塊或IP)組塊。其他邏輯物件可以係RTL碼之部分以提供支援功能,諸如膠合邏輯(提供緩衝器或介接功能)、時序邏輯、控制邏輯或記憶體邏輯。一些高階RTL物件還可能係晶片層次原型。 該物件電路規劃清單還包括用於佈線及安置的相關聯於各物件之資訊。該等物件可包括用以映射回至對應RTL碼之資訊。The high-order RTL circuit planning list contains a circuit planning list in which most objects are abstractions of these low-order wafer prototypes. Associated prototypes for multiple groups may be represented as objects using a higher order representation that represents the functionality encoded by the RTL. The higher order or abstract representation of the integrated circuit design can be a logical object that represents an RTL code or portion thereof. Each object generally represents a plurality of wafer prototypes, such as more complex functions such as adders, multipliers, multiplexers and sequential logic, as well as AND functions, OR functions. Objects represented by higher order may also include memory chunks or private (intellectual property chunks or IP) chunks. Other logical objects may be part of the RTL code to provide support functions such as glue logic (providing buffer or interface functions), timing logic, control logic or memory logic. Some high-order RTL objects may also be wafer level prototypes. The object circuit planning list also includes information related to each item for routing and placement. The objects may include information to map back to the corresponding RTL code.

此外,RTL碼可包含階層,其中功能係一起分組。在一些情形下,可從一階層至另一階層重新分組組件以便最佳化時序、安排路徑、面積或電力要求。在其他情形下,可在該遞增反覆程序期間整體或部分地壓平合併功能性RTL階層。In addition, the RTL code can include a hierarchy in which the functions are grouped together. In some cases, components may be regrouped from one level to another to optimize timing, routing, area, or power requirements. In other cases, the merged functional RTL hierarchy may be flattened, in whole or in part, during the incremental repeat procedure.

開始時,設計之初始狀態可包含約束,諸如時序約束、電力約束及/或安置約束。例如,安置約束可包括IO接針之位置、現有平面佈置圖或現有安置資料。Initially, the initial state of the design may include constraints such as timing constraints, power constraints, and/or placement constraints. For example, the placement constraints may include the location of the IO pin, the existing floor plan, or existing placement information.

在範例性具體實施例中,先藉由基於時序的一系列中性最佳化來最佳化設計之初始狀態。該等中性最佳化包括可容易撤銷的任一區域回復,例如撤銷/復原資源共用;基於扇出表時序之加法器樹分解;明顯的資源精緻化,例如,若在設計中存在一巨大RAM且僅存在一RAM組塊資源可用,則該RAM不得不前往該處;壓平合併電路規劃清單以橫跨階層促進最佳化;以及擷取並重構多工器結構。In an exemplary embodiment, the initial state of the design is first optimized by a series of timing-based neutral optimizations. Such neutral optimizations include any regional replies that can be easily revoked, such as undo/restore resource sharing; adder tree decomposition based on fan-out table timing; significant resource refinement, for example, if there is a huge in design RAM and only one RAM chunk resource is available, then the RAM has to go there; flatten the merged circuit plan list to promote optimization across the hierarchy; and capture and reconstruct the multiplexer structure.

基於目前設計狀態(目前安置、電路規劃清單、時序、電力及安排路徑)在操作62中選擇一下一變換以遞增改變IC設計之狀態。操作63至70係依據本發明之一具體實施例之典型變換,包含安置或更新安置(63)、指派資源(64)、因子分解(65)、映射(66)、最佳化邏輯(67)、建立/精緻化實施方案(68)、更新安排之路徑(69)及其他合成(70)。該等 變換一般係較小、遞增操作以准許無縫整合安置與合成,如此,使用安置知識來實行合成,並使用合成知識來實行安置。Based on the current design state (current placement, circuit planning list, timing, power, and scheduling path), a change is selected in operation 62 to incrementally change the state of the IC design. Operations 63 through 70 are typical transformations in accordance with an embodiment of the present invention, including placement or update placement (63), assignment of resources (64), factorization (65), mapping (66), optimization logic (67) , establish/refine the implementation plan (68), update the route (69) and other synthesis (70). Such Transformations are generally small, incremental operations to permit seamless integration of placement and synthesis, such that placement knowledge is used to perform the synthesis, and synthetic knowledge is used to perform the placement.

該等反覆且遞增變換63至70因而包含安置及合成操作,包括最佳化變換,諸如撤銷/復原資源共用、加法器樹分解、AND/OR閘分解、邏輯複製、位元疊接(bit splicing)、迂迴移除、因子分解及放置變換(諸如至離散資源(RAM、DSP等)之指派)及安排路徑。These repeated and incremental transforms 63 through 70 thus include placement and synthesis operations, including optimization transformations such as undo/restore resource sharing, adder tree decomposition, AND/OR gate decomposition, logical replication, bit splicing. ), round-trip removal, factorization, and placement transformations (such as assignments to discrete resources (RAM, DSP, etc.) and scheduling paths.

在範例性具體實施例中,在各反覆處,即操作62,基於一成本函數來評估各種潛在變換。該成本函數係設計以選擇最佳變換來先操作,並因此包括設計狀態資訊,諸如時序、安置擁塞、安排之路徑擁塞、面積利用及電力。評估後,實行最佳變換且該反覆繼續直至滿足該等設計約束。在一態樣中,該設計接著可繼續至傳統閘位準安置及安排路徑。In an exemplary embodiment, various potential transformations are evaluated based on a cost function at each iteration, operation 62. The cost function is designed to operate with the choice of the best transform, and thus includes design status information such as timing, placement congestion, scheduled path congestion, area utilization, and power. After the evaluation, the best transformation is implemented and the continuation continues until the design constraints are met. In one aspect, the design can then continue to the conventional gate placement and routing.

在各反覆,該方法瀏覽一選擇清單,然後基於一成本函數來選擇最佳變換。例如,在一安置變換與一合成變換之間的選擇係基於一時序收斂準則。在一關鍵路徑上,如可能的話,安置可嘗試縮短關鍵網路。若無法縮短關鍵網路,則該等網路可用於實體合成最佳化。In each iteration, the method browses a selection list and then selects the best transformation based on a cost function. For example, the choice between a placement transformation and a composite transformation is based on a timing closure criterion. On a critical path, if possible, placement can try to shorten critical networks. If the critical network cannot be shortened, then those networks can be used for physical synthesis optimization.

依據本發明之另一態樣,一種用於設計積體電路之範例性方法提供一變換反覆,其中該等合成及安置變換不按任何次序,但僅針對其功能性而選擇。該方法提供在合成與安置之間的較佳整合,其中在反覆內,基於積體電路設計 之狀態來選擇下一變換,以朝具有時序及安置約束之最終組態進展。在一具體實施例中,該方法提供一變換選擇演算法,其中係基於諸如時序、每資源層擁塞、面積利用及電力之特定準則來選擇下一變換。下一變換可以係放置之一更新,其中該電路將會經歷一反覆以在更少資源擁塞下為目前電路規劃清單進行安置變化或更佳地滿足設計目標。下一變換可以係一合成最佳化,諸如一因子分解、一最佳化或一分解。下一變換可以係一合成最佳化,諸如分割、重構或複製,以滿足時序或關鍵路徑要求。下一變換可以係合成,其中可朝向晶片原型層次電路規劃清單將目前電路規劃清單映射成更低抽象層次以最終化電路規格及布局或更新安排之路徑。In accordance with another aspect of the present invention, an exemplary method for designing an integrated circuit provides a transform reversal wherein the synthesizing and placement transforms are not in any order, but are selected only for their functionality. This method provides a better integration between synthesis and placement, where within the inverse, based on integrated circuit design The state is selected to select the next transformation to progress toward the final configuration with timing and placement constraints. In a specific embodiment, the method provides a transform selection algorithm in which the next transform is selected based on specific criteria such as timing, per-resource layer congestion, area utilization, and power. The next transformation can be one of the placement updates, where the circuit will undergo a repetitive to place changes to the current circuit planning list with less resource congestion or better meet the design goals. The next transformation can be a synthetic optimization, such as a factorization, an optimization, or a decomposition. The next transformation can be a synthetic optimization, such as segmentation, reconstruction, or replication to meet timing or critical path requirements. The next transformation can be synthesized, where the current circuit planning list can be mapped to a lower level of abstraction toward the wafer prototype hierarchical circuit planning list to finalize the circuit specifications and layout or update routing paths.

下一變換可以係一安置最佳化,諸如平面佈置圖劃分、資源指派、邏輯重構或複製以滿足時序或關鍵路徑要求,或為例項安置更新安排之路徑。下一變換可以係一合成操作,其中可朝向晶片原型層次電路規劃清單將目前電路規劃清單映射成更低抽象層次以最終化電路規格及布局。The next transformation may be a placement optimization, such as floor plan partitioning, resource assignment, logical reconstruction or replication to meet timing or critical path requirements, or a path for an item placement update schedule. The next transformation can be a compositing operation in which the current circuit planning list can be mapped to a lower level of abstraction toward the wafer prototype hierarchical circuit planning list to finalize the circuit specifications and layout.

使用遞增變換,諸如時序及電力之設計狀態資訊係最新的,且因為可在精確檢視對目標的影響來實行最佳化。Using incremental transforms, design state information such as timing and power is up to date, and optimization can be performed because of the ability to accurately view the impact on the target.

在一替代性具體實施例中,選擇數個變換。接著施加各選定變換以測量對設計狀態的影響並返回或撤銷。接著選擇並施加最佳變換。In an alternative embodiment, several transforms are selected. Each selected transform is then applied to measure the effect on the design state and return or revoke. Then select and apply the best transformation.

在一具體實施例中,本發明之一關鍵步驟係操作68,其為電路規劃清單中的各RTL物件建立或精緻化可能的實施 方案選擇。一相關聯功能實行要求用於該等實施方案替代例之各實施方案替代例之形狀及資源之估計。在另一具體實施例中,操作68還可指派權重至各實施方案,指示較佳實施方案。在一架構層次併入合成與安置的本發明之一關鍵優點在於,其允許評估不同的架構實施方案。不使用本架構實體合成,一旦在RTL合成階段選取一實施方案,在閘位準安置階段,將會不可能回復高階資訊。此點可導致次最佳性,若其他實施方案本來較佳的話。因此,若使用實體資訊在RTL層次進行實施方案決策,則可獲得更佳的時序結果。一旦已為安置及安排路徑階段映射電路,此變換極難以實行。In a specific embodiment, one of the key steps of the present invention is operation 68, which establishes or refines the possible implementation of each RTL object in the circuit planning list. plan selection. An associated function implements an estimate of the shape and resources required for alternative embodiments of the alternatives to the embodiments. In another embodiment, operation 68 may also assign weights to various embodiments, indicating a preferred embodiment. One of the key advantages of the present invention that incorporates synthesis and placement at an architectural level is that it allows for the evaluation of different architectural implementations. Without the use of this architecture entity synthesis, once an implementation plan is selected during the RTL synthesis phase, it will be impossible to recover high-level information during the quasi-relocation phase of the gate. This can lead to suboptimality if other embodiments are preferred. Therefore, if you use entity information to make implementation decisions at the RTL level, you can get better timing results. This transformation is extremely difficult to implement once the circuit has been mapped for placement and scheduling.

隨著反覆進行且設計狀態精緻化,操作68排除具有劣等性質之實施方案選擇。函數F之範例將會用以解釋操作68,該函數實施F=S &(A*C)∥~S &(B * C)。若選擇信號S為1,則F係A與C相乘之結果,而若S為0,則F係B與C相乘之結果。操作68為此函數決定可能的實施方案替代例。圖10A及10B解說該建立/精緻化實施方案操作可為此函數建立的兩個可能實施方案替代例。圖10A顯示利用兩個乘法器與一多工器的一實施方案,其可能在輸出F係時序關鍵且選擇信號S具有最近到達時間時合乎需要。圖10B顯示利用一單一乘法器與多工器的一實施方案,其將在輸入C係最近到達信號或在輸出F非時序關鍵且需要面積減少時更合乎需要。該兩個替代例解說資源共用/不共用。不使用關於該功能之時序及安置的資訊,一典型高階合成演 算法將一般不會評估諸如圖10A之一替代例,由於其使用用於兩個極昂貴乘法器之資源。甚至在其中傳統流的安置在專用未利用乘法器資源附近放置此功能,其輸出關鍵且選擇信號S在A、B及C後到達的情況下此仍將會係如此情況。在此發明中,操作68將會建立該些實施方案二者,以及可能其他,從而在其顯然低於標準時排除替代例。例如,隨著反覆進行,可能顯然輸出F並不關鍵。在此情況下,操作68將會精緻化實施方案選擇至僅圖10B者,由於此替代例使用更少資源。或者,操作68可能在F與選擇線S較關鍵且存在附近可用資源以實施該等乘法器時排除圖10B中的實施方案。As it proceeds over and the design state is refined, operation 68 excludes implementation options with inferior properties. An example of function F will be used to interpret operation 68, which implements F = S & (A * C) ∥ ~ S & (B * C). If the selection signal S is 1, the F system is multiplied by C, and if S is 0, the F system B is multiplied by C. Operation 68 determines a possible implementation alternative to this function. 10A and 10B illustrate two possible implementation alternatives that the setup/refinishment implementation operation can establish for this function. FIG. 10A shows an embodiment utilizing two multipliers and a multiplexer, which may be desirable when the output F system timing is critical and the selection signal S has the most recent arrival time. Figure 10B shows an embodiment utilizing a single multiplier and multiplexer that would be more desirable when the input C-system arrives at the most recent signal or when the output F is non-timing critical and requires area reduction. The two alternatives illustrate resource sharing/non-sharing. Do not use information about the timing and placement of this feature, a typical high-level synthesis The algorithm will generally not evaluate an alternative such as Figure 10A because it uses resources for two very expensive multipliers. This is the case even in the case where the placement of the legacy stream is placed near the dedicated unused multiplier resource, its output is critical and the selection signal S arrives after A, B and C. In this invention, operation 68 will establish both of these embodiments, and possibly others, to exclude alternatives when they are clearly below standard. For example, as it goes on, it may be obvious that the output F is not critical. In this case, operation 68 will refine the implementation selection to only Figure 10B, since this alternative uses less resources. Alternatively, operation 68 may exclude the embodiment of FIG. 10B when F is more critical than selection line S and there are nearby resources available to implement the multipliers.

FPGA晶片一般具有複數個預擴散記憶體資源,諸如正反器、及可變位元大小(諸如512、4K)之組塊與MRAM。一設計所要求之該等記憶體組件還在大小上變化。一般而言,不清楚將如何實施該些記憶體組件。例如,在兩個與512個位元之間的一適度大小RAM可使用正反器、一512資源或甚至一4K資源來加以實施。而且,用於更大記憶體大小之資源場所一般僅在晶片上稀疏可用。在先前EDA工具中,安置資訊在記憶體實施階段不可用。因此,在沒有局部使用與精確時序資訊的情況下進行實施決策。此限制可導致嚴重的效能劣化。若將適度大小的RAM實施為一512資源且唯一可用的512場所遠離RAM所連接之邏輯而定位,則強迫該RAM成為一512將會導致一較長互連且使在一馳張實施方案上使用一512場所之延遲好處無效。即使 使用正反器之一實施方案的延遲可能更長,但若此實施方案允許在RAM之正反器與RAM所連接之邏輯之間的更短互連,則可能導致一更快設計。或者,若在RAM的連接邏輯附近存在一可用4K資源,則實施作為4K可能較有利。因而應在各種可用記憶體資源與連接至記憶體之組件之位置的考量內進行記憶體實施方案決策。FPGA chips typically have a plurality of pre-diffused memory resources, such as flip-flops, and blocks of variable bit sizes (such as 512, 4K) and MRAM. The memory components required by a design also vary in size. In general, it is not clear how these memory components will be implemented. For example, a modest size RAM between two and 512 bits can be implemented using a flip flop, a 512 resource, or even a 4K resource. Moreover, resource locations for larger memory sizes are generally only sparsely available on the wafer. In previous EDA tools, placement information was not available during the memory implementation phase. Therefore, implementation decisions are made without local use and precise timing information. This limitation can result in severe performance degradation. If a modest amount of RAM is implemented as a 512 resource and the only available 512 location is located away from the logic to which the RAM is connected, then forcing the RAM to be a 512 will result in a longer interconnect and on a chirp implementation. The delay benefit of using a 512 place is invalid. even if The delay of using one of the embodiments of the flip-flop may be longer, but if this embodiment allows for a shorter interconnection between the flip-flop of the RAM and the logic to which the RAM is connected, it may result in a faster design. Alternatively, if there is a 4K resource available in the vicinity of the connection logic of the RAM, it may be advantageous to implement it as 4K. Memory implementation decisions should therefore be made within the consideration of the various available memory resources and the location of the components connected to the memory.

圖9A解說一記憶體實施方案決策之一範例。該圖顯示一範例性晶片,在晶片頂部及底部具有記憶體資源。一4位元RAM係連接至在晶片右側的一觸點與一AND閘。若該RAM係實施為記憶體並放置在晶片頂部,則其可導致極長的互連至其觸點輸入以及至其所驅動之AND閘。圖9B顯示相同邏輯之一替代性映射。該RAM係使用附近邏輯來實施並由此更短的互連及延遲。Figure 9A illustrates an example of a memory implementation decision. The figure shows an exemplary wafer with memory resources at the top and bottom of the wafer. A 4-bit RAM is connected to a contact on the right side of the wafer and an AND gate. If the RAM is implemented as a memory and placed on top of the wafer, it can result in an extremely long interconnection to its contact input and to the AND gate it drives. Figure 9B shows an alternative mapping of the same logic. This RAM is implemented using nearby logic and thus shorter interconnects and delays.

緊密相關聯於操作68的係一函數,其估計要求用於一實施方案之形狀及資源。在一具體實施例中,此函數實行一映射用於為RTL組件估計資源之目的。在另一具體實施例中,此映射係特定於目標晶片架構。該些資源估計係基於一合成,其係設計用以估計特定組件之該等邏輯要求及輸入/輸出要求以便在目標架構中實施該模組。此外,在一具體實施例中,該函數還為該組件估計該等時序轉變。A system-function that is closely related to operation 68, which estimates the shape and resources required for an embodiment. In a specific embodiment, this function implements a mapping for the purpose of estimating resources for the RTL component. In another embodiment, this mapping is specific to the target wafer architecture. The resource estimates are based on a synthesis designed to estimate the logic requirements and input/output requirements of a particular component to implement the module in the target architecture. Moreover, in a specific embodiment, the function also estimates the timing transitions for the component.

圖7解說一加法器之一範例,其增加兩個匯流排A[31:0]與B[31:0]以產生一第三匯流排O[31:0]。透過一變換來估計要求用以實施該加法器之邏輯區域,估計該實施方案,決定所要求資源與從其輸入至其輸出之內部轉變延遲。在 特定態樣中,例如,可使用兩個邏輯陣列組塊(LAB)來實施該加法器,各由16個查找表(LUT)所組成。Figure 7 illustrates an example of an adder that adds two busbars A[31:0] and B[31:0] to produce a third busbar O[31:0]. A transformation is used to estimate the logical region required to implement the adder, and the implementation is estimated to determine the required resource and the internal transition delay from its input to its output. in In a particular aspect, for example, two adder arrays (LABs) can be used to implement the adder, each consisting of 16 lookup tables (LUTs).

操作65至67與操作70係範例性合成轉換,例如,邏輯因子分解(操作65)、邏輯映射(操作66)、邏輯最佳化(操作67)及抽象(操作70),其中修改由該RTL電路規劃清單所代表之該等組件及連接,導致一功能性等效電路,其改良設計狀態,例如時序、電力。該些變換可增加或移除組件以及其互連。變換範例包括實行組件之一複製,或分割一整體RTL組件。Operations 65 through 67 and operation 70 are exemplary synthetic transformations, such as logic factorization (operation 65), logic mapping (operation 66), logic optimization (operation 67), and abstraction (operation 70), where modification is performed by the RTL The components and connections represented by the circuit planning list result in a functional equivalent circuit that improves the design state, such as timing, power. These transformations can add or remove components and their interconnections. The transformation paradigm includes performing one of the components to copy, or splitting an overall RTL component.

該範例性具體實施例表示針對I/O、不同大小之記憶體、CPU及DSP存在的一極大類別實施方案選擇之一極簡單情況。不同設計可能想要以不同的方式來使用該些資源。本發明的抽象變換(即操作70)能夠取決於時序資訊、連接組件之位置、各資源類型之利用及安排路徑利用來改變實施方案。該抽象變換類似於建立/精緻化變換(即操作68)。雖然操作68建立在未來反覆中維持並評估的複數個替代性實施方案,但該抽象操作代之從一更詳細實施方案抽象至一抽象組件。考量該抽象組件之各種實施方案並選取最佳實施方案以替代最初實施方案。此能力避免替代例,其用以列舉所有可能的架構映射選擇並從映射、安置及安排路徑從頭到尾運行全部該些者。This exemplary embodiment represents one of the extremely simple cases of a very large class of implementation choices for I/O, different sized memory, CPU, and DSP. Different designs may want to use these resources in different ways. The abstract transformation of the present invention (i.e., operation 70) can change implementations depending on timing information, location of connection components, utilization of various resource types, and scheduling path utilization. This abstract transformation is similar to the build/render transform (ie, operation 68). While operation 68 establishes a plurality of alternative implementations that are maintained and evaluated in future reversals, the abstract operations are instead abstracted from a more detailed implementation to an abstract component. Various embodiments of the abstract component are considered and the best implementation is chosen to replace the original implementation. This ability avoids an alternative that enumerates all possible architectural mapping choices and runs all of them from top to bottom from mapping, placement, and scheduling paths.

在圖11中給出該抽象變換之一範例,顯示一加法器樹分解操作。該加法器樹分解將一n輸入加法器分裂成一m輸入加法器樹。沒有從安置中導出延遲資訊,此最佳化將不會 具有關於至該加法器之該等輸入定位何處的資訊且僅可基於該等輸入到達時間之一粗略估計形成該樹。在該範例中,若所有輸入均來自暫存器,則其大致具有相同的到達時間。該分解將會為該等葉節點拾取(a,b)、(c,d)及(e,f)組合。然而,可一起靠近地放置輸入b及d、a及c。使用該安置資訊,為該等葉節點拾取(a,c)、(b,d)、(e,f)組合更佳。此將會在輸出處產生更佳的時序。An example of this abstract transformation is given in Figure 11, which shows an adder tree decomposition operation. The adder tree decomposition splits an n-input adder into an m-input adder tree. No delay information is exported from the placement, this optimization will not There is information about where the inputs to the adder are located and the tree can only be roughly estimated based on one of the input arrival times. In this example, if all inputs come from the scratchpad, they have roughly the same arrival time. This decomposition will pick up the combinations of (a, b), (c, d) and (e, f) for the leaf nodes. However, the inputs b and d, a and c can be placed close together. Using the placement information, it is preferable to pick up (a, c), (b, d), (e, f) combinations for the leaf nodes. This will produce better timing at the output.

閘樹分解之另一抽象範例如圖12所示。在一合成流中的一關鍵步驟係將具有許多輸入之一大型閘(諸如一32輸入AND閘)分解成一樹表示。此階段通常在該流中早期一次實行並在樹分解上的決策不會包括關於該大型閘之該等驅動器之位置的任一資訊。本發明包括閘樹分解與重新分解作為變換,其具安置與時序意識。最少關鍵最早到達輸入放置在該樹之葉層次並與其他附近較少關鍵輸入來一起分組。當時序並非一因素時,按信號驅動器的位置來分組輸入信號。Another abstract example of gate tree decomposition is shown in Figure 12. A key step in a composite stream is to decompose a large gate (such as a 32 input AND gate) with one of many inputs into a tree representation. The decision that this phase is usually performed early in the flow and on the tree decomposition does not include any information about the location of the drives for the large gate. The present invention includes damper decomposition and re-decomposition as a transformation with placement and timing awareness. The least critical earliest arrival input is placed at the leaf level of the tree and grouped with fewer key inputs near it. When the timing is not a factor, the input signals are grouped by the position of the signal driver.

該最佳化邏輯變換(即操作67)改變電路規劃清單以最佳化設計目標,諸如時序或電力。該最佳化變換之一範例係如圖13A所示之切片操作。若一較寬原型之該等輸入或輸出分開較遠,則分割該原型可能較有利。此最佳化只能基於安置資訊來實行。下列範例針對一2位元記憶體a[1:0]顯示此點之一情況,該記憶體的輸出極遠地分開。此記憶體可分割成兩個正反器,將其接著可極靠近其輸出地放置。The optimized logic transformation (ie, operation 67) changes the circuit planning list to optimize design goals, such as timing or power. An example of this optimization transformation is the slicing operation as shown in Figure 13A. If the inputs or outputs of a wider prototype are separated far apart, it may be advantageous to split the prototype. This optimization can only be implemented based on placement information. The following example shows one of the points for a 2-bit memory a[1:0] whose output is very far apart. This memory can be split into two flip-flops, which can then be placed very close to its output.

在另一範例中,基於其扇出或扇入信號之位置來劃分一 組件。例如,圖13B所示之範例顯示一記憶體,其已基於該記憶體之扇出之位置分裂成三個簇。因而,已劃分顯示為一單一方塊之原始組件以建立三個新組件,依據其對應負載而分割。可基於一組件之該等輸入信號來施加類似劃分。此最佳化較通用且不限於記憶體。In another example, a segment is based on the position of its fan-out or fan-in signal. Component. For example, the example shown in Figure 13B shows a memory that has been split into three clusters based on the location of the fanout of the memory. Thus, the original component, which is shown as a single block, has been divided to create three new components that are split according to their corresponding loads. Similar partitioning can be applied based on the input signals of a component. This optimization is more general and not limited to memory.

另一範例性操作係圖14所示之邏輯複製。用於複製之該等條件極類似於分割。對於具有較遠分開之輸入或輸出的一組件,複製該組件並將其靠近一關鍵負載放置可能較有利。此最佳化只能基於安置資訊來實行。下面範例針對一組件a顯示此點之一情況,該組件的輸出極遠地分開。其可分割成兩個例項a_1與a_2,接著將其可極靠近其輸出地放置。此在該驅動器之扇出較高時極為常見。在一給定實體範圍內保存該例項之僅一副本。Another exemplary operation is the logical copy shown in FIG. These conditions for copying are very similar to segmentation. For a component with farther separate inputs or outputs, it may be advantageous to duplicate the component and place it close to a critical load. This optimization can only be implemented based on placement information. The following example shows one of the points for a component a, whose output is very far apart. It can be split into two instance items a_1 and a_2, which can then be placed very close to its output. This is very common when the fanout of the drive is high. Save only one copy of the instance within a given entity.

另一範例性操作係圖15所示之向農(Shannon)展開。對於在具有一較大延遲之一RTL元件之輸入錐體處的邏輯,諸如一加法器或一乘法器,可「前拉」關鍵輸入網路以改良時序。複製該邏輯並使用恆定輸入0及1來取代關鍵網路,然後使用一多工器來選擇該兩個運算子之輸出,關鍵網路選擇哪個運算子副本為輸出。可基於該等恆定輸入來進一步簡化該兩個邏輯副本。再次,此係一最佳化,其在該邏輯位置與驅動該邏輯之該等關鍵網路之該等驅動器之知識下最佳地實行。Another exemplary operation is shown in Figure 15 for Shannon. For logic at the input cone of an RTL component with a large delay, such as an adder or a multiplier, the critical input network can be "pushed" to improve timing. Copy the logic and replace the critical network with constant inputs 0 and 1, then use a multiplexer to select the output of the two operators, and the critical network choose which operator copy is the output. The two logical copies can be further simplified based on the constant inputs. Again, this is an optimization that is best performed under the knowledge of the logical location and the drivers of the critical networks that drive the logic.

另一範例性操作係Mux/PMux(一PMux係定義為具有一一位元有效編碼選擇之一多工器)摺疊(collapse)及時序驅動 分解,如圖16A及16B所示。大型多工器在商用電路中極常見。分解一多工器類似於先前提及的加法器樹與及/或樹分解,但選擇邏輯使Mux分解更加困難,由於在樹內移動一稍晚到達輸入不僅會影響樹結構,還會影響選擇邏輯。如同其他分解,本發明包括基於安置與安排路徑之時序資訊以決定適當的分解。Another exemplary operation is Mux/PMux (a PMux is defined as a multiplexer with a one-bit effective coding option) collapse and timing drive. Decomposed as shown in Figures 16A and 16B. Large multiplexers are very common in commercial circuits. Decomposing a multiplexer is similar to the adder tree and/or tree decomposition mentioned earlier, but the selection logic makes the Mux decomposition more difficult, because moving in the tree a little later to reach the input will not only affect the tree structure, but also affect the selection. logic. As with other decompositions, the present invention includes timing information based on placement and scheduling paths to determine appropriate decomposition.

操作69正在更新安排之路徑。本遞增反覆方法提供較佳可安排路徑性用於積體電路用以改良設計之效能、雜訊敏感度、良率、面積及電力。該遞增反覆程序可逐漸改良晶片上的佈線擁塞,即每單位面積所要求之佈線資源之密度。Operation 69 is updating the path of the arrangement. This incrementally repeating method provides better configurable routing for integrated circuits to improve design performance, noise sensitivity, yield, area, and power. This incremental repeat procedure can gradually improve the wiring congestion on the wafer, that is, the density of wiring resources required per unit area.

所提及之許多變換已影響FPGA所消耗之電力。例如,分解一記憶體所採取之方式(行形式對列)會影響其所消耗之電力。一列分解使用更少電力,但要求額外多工,從而引入額外延遲。可在本發明中實行決定一列對行分解以最佳化電力消耗,因為使用在合成與安置之間的本密切連接,可使用精確延遲資訊。Many of the transformations mentioned have affected the power consumed by the FPGA. For example, the way in which a memory is decomposed (row form versus column) affects the power it consumes. A column of decomposition uses less power, but requires extra multiplexes, introducing additional delays. A list of row decompositions can be implemented in the present invention to optimize power consumption because accurate delay information can be used using this close connection between synthesis and placement.

操作63係一安置變換或一更新安置變換。該安置變換修改電路規劃清單例項之位置,諸如RTL物件、未映射例項或晶片原型層次例項,並從而隨同路由器操作決定該等電路中該等網路之長度及延遲。Operation 63 is a placement transformation or an update placement transformation. The placement transform modifies the location of the circuit plan list items, such as RTL objects, unmapped instances, or wafer prototype level items, and thereby determines the length and latency of the networks in the circuits along with the router operation.

該安置變換可取決於電路規劃清單與安置之成熟度來使用各種安置方法。在範例性具體實施例中,本放置器運用遞增演算法。一遞增演算法係回應一較小輸入變化來產生 遞增演算法輸出變化的一演算法。例如,諸如力引導安置之全域安置可用於放置較不成熟電路規劃清單與安置。該力引導安置(FDP)方法係在本發明中用於全域安置之較佳選擇之一者,因為其係一遞增方法,其中FDP之一反覆產生遞增安置變化。一般而言,FDP使用一種二次程式化技術來模型化該等網路並決定應如何散佈重疊的例項。This placement transformation can use various placement methods depending on the circuit planning list and the maturity of the placement. In an exemplary embodiment, the presentplacer utilizes an incremental algorithm. An incremental algorithm is generated in response to a small input change An algorithm that increments the output of the algorithm. For example, global placement such as force guided placement can be used to place less mature circuit planning lists and placements. The Force Directed Placement (FDP) method is one of the preferred choices for global placement in the present invention because it is an incremental method in which one of the FDPs repeatedly produces incremental placement changes. In general, FDP uses a secondary stylization technique to model the networks and determine how overlapping instances should be spread.

在一具體實施例中,該第一步驟FDP解決一未約束二次程式化問題,其僅模型化互連該等例項之該等網路。此最初解答通常具有極高的擁塞。FDP接著反覆地構造散佈力以將例項從過擁塞(較高例項使用)之區域移動至欠擁塞區域(較高資源可用性)。係該些反覆步驟之性質使FDP成為一遞增演算法。可在該些反覆之間改變電路規劃清單或其他設計狀態資料。當該些狀態變化遞增時,在FDP內所得變化還應在未進行設計狀態變化情況下的本來面貌上遞增。In a specific embodiment, the first step FDP addresses an unconstrained secondary stylization problem that only models the networks interconnecting the instances. This initial answer usually has very high congestion. The FDP then repeatedly constructs the spreading force to move the instance from the area of over-congestion (higher use) to the under-congested area (higher resource availability). The nature of these repeated steps makes the FDP an incremental algorithm. Circuit planning lists or other design status data can be changed between these reversals. As these state changes increase, the resulting changes in the FDP should also increase in the original appearance without a change in design state.

存在各種FDP演算法,但全部均共用計算應移動一例項之方向以解析過度擁塞區域之基本概念。在一特定安置中,假定由一網路所連接之該等例項與該等例項之間的二次方距離成比例而彼此強加一吸引力。在此先前工作中,所有例項彼此排斥並吸引至所有安置場所,即使該場所不適合於該例項。接著移除例項,直至該系統在一最小能量狀態下實現均衡。因而該FDP方法係基於在其上所強加之總力之方向上移動該等例項。There are various FDP algorithms, but all share the basic concept of calculating the direction in which an item should be moved to resolve an over-congested area. In a particular arrangement, it is assumed that the instances connected by a network are proportional to the quadratic distance between the instances and impose an attraction on each other. In this previous work, all of the items were excluded from each other and attracted to all placements, even if the site was not suitable for the case. The instance is then removed until the system is equalized in a minimum energy state. Thus the FDP method moves the instances based on the direction of the total force imposed thereon.

在一態樣中,本發明提供新穎異質資源安置以從許多數 據機可再程式化晶片與一些ASIC設計流來解決該等異質資源。例如,大多數FPGA具有各種預定義的晶片資源,諸如IO、DSP、RAM、LUT、FF等,其僅在特定場所可用。該些預定義資源係FPGA晶片之預擴散性質之一結果。各資源場所對可放置在場所之實體數目具有一限制。例如,對於Altera Stratix-II晶片,可在一LAB場所放置16個或更少的LUT與FF,且存在3個不同RAM場所保持512位元組、4K位元組及64K位元組。In one aspect, the present invention provides novel heterogeneous resource placement from a number of The machine can reprogram the wafer and some ASIC design streams to solve these heterogeneous resources. For example, most FPGAs have a variety of predefined wafer resources, such as IO, DSP, RAM, LUT, FF, etc., which are only available at specific locations. These predefined resources are one of the results of the pre-diffusion properties of the FPGA chip. Each resource location has a limit on the number of entities that can be placed in the location. For example, for Altera Stratix-II wafers, 16 or fewer LUTs and FFs can be placed in one LAB location, and there are 3 different RAM locations holding 512 bytes, 4K bytes, and 64K bytes.

在範例性具體實施例中,本遞增安置解決異質資源問題。在FPGA中,可僅在經常不均勻分佈在安置區域上的特定場所內放置結構化ASIC及一些ASIC晶片、資源。大多數全域放置器(包括所有先前FDP)已採用同質資源,其中不論其類型,任一例項均可放置在在晶片邊界內的任一有效區域處。此先前方案簡化該安置問題,由於所有範圍均可視為簡單直線物件,且只要該些物件不會重疊並放置於晶片邊界內,安置均將會係合法的。此簡單矩形模型可允許相鄰不適當的資源放置一特定類型的例項。此假定忽略,對於該等異質資源,各資源具有一組特定場所,其中必須放置例項。雖然此「組合」安置可能不具有任一重疊,但當考量實際資源類型時,該安置可能不合法。在模擬退火放置器中的一些先前工作已將資源資訊考量在內,但僅一直該些放置器來放置靜止映射電路規劃清單,並非RTL物件。此外,使用模擬退火用於遠更小的設計並由於運行時間而變得難以用於大型設計。In an exemplary embodiment, the incremental placement addresses a heterogeneous resource issue. In an FPGA, structured ASICs and some ASIC chips and resources can be placed only in specific locations that are often unevenly distributed over the placement area. Most global placers (including all previous FDPs) have employed homogeneous resources, regardless of their type, and any of the items can be placed at any effective area within the wafer boundary. This prior approach simplifies this placement problem, since all ranges can be considered as simple linear objects, and as long as the objects do not overlap and are placed within the wafer boundaries, placement will be legal. This simple rectangular model allows adjacent inappropriate resources to place a particular type of instance. This assumption is ignored, for each of these heterogeneous resources, each resource has a specific set of places in which the instance must be placed. Although this "combination" placement may not have any overlap, the placement may not be legal when considering the actual resource type. Some prior work in the simulated annealing placer has taken into account the resource information, but only the placers have been placing the static mapping circuit planning list, not the RTL object. In addition, the use of simulated annealing for far smaller designs has become difficult to use for large designs due to runtime.

在一態樣中,本發明單獨模型化不同資源場所,使得在所有安置變換中,由該放置器來最佳化該等資源要求。在一態樣中,本發明模型化任意數目的場所類型,成為「層」。該些層係用以決定各例項上的散佈力。在一具體實施例中,在該等初始化階段中建立該等層。針對在晶片上存在的各資源類型來建立一層。一層之該等資源場所係在其位置處記錄於該層之供應分佈內。一分佈係一矩陣狀、二維資料結構,在位置的一值在該位置給予該供應之值。In one aspect, the present invention separately models different resource locations such that in all placement transformations, the placer optimizes the resource requirements. In one aspect, the present invention models any number of venue types to become "layers." These layers are used to determine the spreading force on each item. In a specific embodiment, the layers are established in the initialization stages. A layer is created for each resource type that exists on the wafer. The resource locations of a layer are recorded in the supply distribution of the layer at their location. A distribution is a matrix-like, two-dimensional data structure at which a value at the location gives the value of the supply.

各例項係指派至其為之消耗資源之該(等)層。消耗一單一資源類型之該等例項係稱為原型例項,而消耗多個資源者則成為非原型。一非原型之一範例將會係一狀態機,其消耗LUT與FF場所類型二者。由指派至一層之各例項所利用之該等資源係記錄於該等層使用分佈內。本發明提供非原型,其由在其為之具有資源之所有層上記錄其區域來加以處理。該些使用貢獻將進而影響用於該等非原型層之各層之力計算。Each item is assigned to the (etc.) layer for which it consumes resources. These items that consume a single resource type are called prototype items, while those that consume multiple resources become non-prototypes. An example of a non-prototype would be a state machine that consumes both LUT and FF site types. The resources utilized by the various instances assigned to one layer are recorded in the layer usage profiles. The present invention provides a non-prototype that is processed by recording its area on all layers for which it has resources. These usage contributions will in turn affect the force calculations for the various layers of the non-prototype layers.

對於一層,在其使用與供應分佈之間的差異係用於該層的擁塞分佈。如同先前FDP方法,此擁塞分佈係用以為層上的各例項計算力。For a layer, the difference between its usage and supply distribution is used for the congestion distribution of that layer. As with the previous FDP method, this congestion distribution is used to calculate the force for each instance on the layer.

用於一非原型例項之力係藉由對來自其資源層之各資源層之該等力進行一加權平均或基於該等資源之局部擁塞來加以計算。施加至各層之加權可以係一均勻加權或一取決於該層之資源之相對離散度的加權。資源離散度可特徵化 為該等資源分開多遠而定位、該等資源多稀疏或分佈該等資源均勻或不均勻。The force for a non-prototype case is calculated by weighting the forces of the resource layers from its resource layers or based on local congestion of the resources. The weight applied to each layer may be a uniform weighting or a weighting that depends on the relative dispersion of the resources of the layer. Resource dispersion can be characterized Positioning for how far apart the resources are, how sparse the resources are, or distributing the resources evenly or unevenly.

在一具體實施例中,類似於非原型例項之情況,計算用於具有多個可能實施方案之一組件的力。該力係藉由對來自其實施方案之資源層之各層的該等力進行加權平均來加以計算。施加至各實施方案之資源之加權可以係一均勻加權或一取決於將選取給定實施方案之機率的加權。In a specific embodiment, similar to the case of a non-prototype example, a force for a component having one of a plurality of possible implementations is calculated. The force is calculated by weighted averaging the forces from the layers of the resource layer of its implementation. The weighting of the resources applied to the various embodiments may be a uniform weighting or a weighting depending on the probability that a given implementation will be selected.

本發明之一優點在於,一例項之力僅取決於使用相同資源類型的其他例項與用於該類型之資源供應。例如,若例項A及B各具有使用一資源C之一部分,則在例項A上(或在使用資源C之例項A之部分上)的力取決於使用資源C之例項B之部分,並還取決於可用於安置之資源C。在不同層上的例項不會影響彼此的散佈力。One advantage of the present invention is that the force of an item depends only on other instances that use the same resource type and the resource supply for that type. For example, if each of items A and B has a portion that uses a resource C, then the force on item A (or on the portion of item A using resource C) depends on the portion of instance B that uses resource C. And also depends on the resources C available for placement. Cases on different layers do not affect each other's spread.

在一態樣中,當該全域放置器終止時,各例項將處於一適用於其類型之有效場所或其附近,故可很少改良地合法化該安置。此方案比較先前FDP較新穎,先前FDP要求將所有例項模型化為一單一類型並組合所有資源區域並接著在該組合區域上散佈該等例項。In one aspect, when the global placer terminates, each item will be in or near an effective location suitable for its type, so the placement can be legalized with little improvement. This scheme compares the previous FDP with a novelty. Previous FDP requirements modeled all the instances into a single type and combined all resource regions and then spread the instances on the combined region.

在範例性具體實施例中,本發明架構實體合成可提供改良至資料利用問題。情況經常係晶片資源超出電路之要求。例如,在一FPGA設計中,欲實施之電路可能在內部實施其之晶片或部分具有256個LUT時要求150個LUT。此問題係稱為資源利用問題。當該忽略該資源利用問題時,放置器一般會在可用資源上均勻地散佈電路例項,即使一 更佳結果可藉由在該等資源上具有不同密度之一安置來實現。先前放置器已忽略此問題或強加額外「填充物」例項。填充物例項係不添加任何連接性至電路之額外例項。使用「填充物」例項還成問題,由於必須為該些例項決定位置。In an exemplary embodiment, the architectural entity synthesis of the present invention may provide improvements to data utilization issues. The situation is often that the wafer resources exceed the requirements of the circuit. For example, in an FPGA design, the circuit to be implemented may require 150 LUTs when the chip or portion of its internal implementation has 256 LUTs. This issue is known as a resource utilization issue. When ignoring the resource utilization problem, the placer will generally spread the circuit instances evenly over the available resources, even if Better results can be achieved by placing one of the different densities on the resources. The previous placer has ignored this issue or imposed an additional "filler" instance. The filler instance is an additional instance that does not add any connectivity to the circuit. Using the "filler" example is also problematic because the position must be determined for these items.

在範例性具體實施例中,本發明運用一區域移除方法來解決該資源利用問題。如同力產生,單獨考量各資源層。在該區域移除方法中,該等資源係基於其品質來加以利用,同時移除低品質的資源。先決定一品質度量,並接著分析資源供應以基於其品質來決定該等資源之一評級。接著由該放置器作為放置場所將該些低品質部分從考量中移除。由於安置變化影響該等資源之品質,故該評級與移除可在該安置程序期間多次實行。該程序因而完全適合於設計狀態之本發明之反覆且遞增改良。In an exemplary embodiment, the present invention utilizes a region removal method to address the resource utilization problem. As with force generation, consider each resource layer separately. In the region removal method, the resources are utilized based on their quality while removing low quality resources. A quality metric is determined first, and then the resource supply is analyzed to determine one of the resources based on its quality. These low quality parts are then removed from the consideration by the placer as a place of placement. Since the placement changes affect the quality of the resources, the rating and removal can be performed multiple times during the placement process. The program is thus well suited to the repeated and incremental improvements of the present invention in the design state.

在一具體實施例中,用以形成該評級之品質度量係基於資源與使用之距離。一計算力之方法之一副產物係層之密度分佈與一格林(Green)函數之捲積。此捲積之結果可視為一拓撲地圖,其中更高點指示對資源的一需求而更低點指示需求之缺乏。由於分佈係由離散方塊所組成,故可基於該捲積結果來挑選該些方塊。該等欲移除資源可接著藉由橫過供應並按捲積挑選次序以具有最低值之資源開始移除資源直至移除所需要求來加以決定。在一態樣中,該方法可留下足夠資源,使得存在足夠資源來滿足該層上的實體需求並使得該晶片將可安排路徑。In a specific embodiment, the quality metric used to form the rating is based on the distance between the resource and the usage. A method of calculating the force is a convolution of the density distribution of the byproduct layer with a Green function. The result of this convolution can be viewed as a topological map where a higher point indicates a demand for resources and a lower point indicates a lack of demand. Since the distribution is composed of discrete squares, the squares can be selected based on the convolution result. The desire to remove the resource can then be determined by traversing the supply and starting the removal of the resource with the lowest value resource in the convolution pick order until the required requirement is removed. In one aspect, the method can leave sufficient resources such that there are sufficient resources to satisfy the physical requirements on the layer and cause the wafer to be routed.

或者,在其他範例性具體實施例中,本發明運用一力範圍方法來解決該資源利用問題。在該力範圍方法中,作用在各例項上的力係來自複數個力範圍之該等力之一加權平均。在一態樣中,短程加權因數係與短程區域內的例項密度成比例,其中一較高局部密度導致一較高力。此比例性因而可提高例項散佈以減少重疊。Alternatively, in other exemplary embodiments, the present invention utilizes a range approach to address this resource utilization problem. In the force range method, the force acting on each of the instances is a weighted average of one of the forces from the plurality of force ranges. In one aspect, the short-range weighting factor is proportional to the density of the instances in the short-range region, with a higher local density resulting in a higher force. This proportionality thus increases the dispersion of instances to reduce overlap.

使用該力範圍方法,施加至一例項之力取決於相鄰例項的例項密度。一般理念在於,一例項之散佈力應取決於合法化在其相鄰區域內之例項所需之面積。在最極端的擁塞情況下,其中所有例項在一較小相鄰區域內重疊,將基於所有例項與所有資源之位置來計算在各例項上的該等力。在最少擁塞情況下,其中一例項在其附近不具有任何其他例項,且直接位於一資源上,則該例項將不具有任何力。對於在該些兩個極端之間的情況,該力取決於在合法化例項所需之面積內的例項與資源。Using this force range method, the force applied to an item depends on the density of the items of adjacent items. The general idea is that the spread of an item should depend on the area required to legalize the items in its adjacent area. In the most extreme case of congestion, where all of the instances overlap within a small adjacent area, the forces on each instance are calculated based on the location of all instances and all resources. In the case of least congestion, where an item does not have any other items in its vicinity and is directly located on a resource, the item will have no force. For the case between these two extremes, the force depends on the items and resources within the area required to legalize the item.

在一具體實施例中,可將力範圍切斷成局部、中程及長程力。在其他具體實施例中,可使用更多或更少的力範圍。一般而言,其係計算與記憶體資源之一折衷以決定用於一相鄰區域之合法化面積與用於各合法化範圍之該等力。在一態樣中,藉由改變格林函數之大小來計算該等力。長程格林函數覆蓋整個放置區域,較小格林函數覆蓋具有(例如)五倍於平均例項區域之一半徑的一圓形區域;而中程格林函數具有(例如)10倍於平均例項區域之一半徑。在一例項上的力係該例項之局部、中程及長程力之加 權和。所施加加權係藉由在該例項之鄰域內的密度來加以決定。若該鄰域極密集,則該長程力將會具有一極高權重且局部權重將為0。在一低密度區域內的一例項將會具有一零長程權重與一較高局部權重。In a specific embodiment, the range of forces can be cut into local, medium and long range forces. In other embodiments, more or less force ranges may be used. In general, it is a compromise between computational and memory resources to determine the legalized area for an adjacent region and the forces for each legalization range. In one aspect, the forces are calculated by varying the magnitude of the Green's function. The long-range Green's function covers the entire placement area, and the smaller Green's function covers a circular area having, for example, five times the radius of one of the average case areas; and the medium-range Green's function has, for example, 10 times the average case area a radius. The force on one case is the sum of the local, medium and long range of the case. Right and. The weight applied is determined by the density within the neighborhood of the example. If the neighborhood is extremely dense, the long range force will have a very high weight and the local weight will be zero. An item in a low density region will have a zero long range weight and a higher local weight.

本方法之另一態樣係決定重要架構決策之能力,該等決策決定在實施一架構構造中應使用之資源。在架構層次,存在許多決策,諸如在一FPGA上,是否應將一小型RAM映射至512位元RAM資源或4k位元RAM資源。其他範例包括乘法器實施方案與先前聲明情況(諸如加法器樹分解)之決策。但本發明不限於該些特定範例。由於可使用安置資訊,本發明精緻化滿足該等設計目標之重要架構實施方案決策。一範例性範例係可指派一1k位元記憶體至兩個512位元資源或一單一4k位元資源之情況。此實施方案可能在1k位元記憶體所連接之邏輯極靠近512位元或4k位元場所而定位時對於一成功實施方案極為關鍵。在該1k記憶體之連接邏輯極靠近512位元資源且該等4k位元資源更遠之情況下,一非最佳映射至4k資源將會導致一實質更低效能電路。使用放置資訊進行此及其他架構決策較為重要。Another aspect of the method is the ability to determine important architectural decisions that determine the resources that should be used in implementing an architectural construct. At the architectural level, there are many decisions, such as whether a small RAM should be mapped to a 512-bit RAM resource or a 4k-bit RAM resource on an FPGA. Other examples include the decision of the multiplier implementation and previously stated conditions, such as adder tree decomposition. However, the invention is not limited to these specific examples. Because of the availability of placement information, the present invention refines important architectural implementation decisions that meet these design goals. An exemplary example is where a 1k bit of memory can be assigned to two 512 bit resources or a single 4k bit resource. This embodiment may be critical to a successful implementation when the logic connected to the 1k-bit memory is located close to a 512-bit or 4k-bit location. In the case where the connection logic of the 1k memory is very close to 512 bit resources and the 4k bit resources are further away, a non-optimal mapping to 4k resources will result in a substantially lower performance circuit. It is important to use placement information to make this and other architectural decisions.

在範例性具體實施例中,該實施方案精緻化係藉由針對例項可能映射之各層在使用中包括彈性層例項之面積之一部分來加以處理。在1k位元範例之情況下,將會在512層與4k層二者內部分包括實體之面積。在例項上的力係藉由獲取其潛在層進行該等力之一加權和或獲取具有最少量值之力來加以決定。在獲取具有最少量值之力後面的理由在 於,相關聯於此力之層應具有一較低相鄰區域密度。In an exemplary embodiment, this embodiment refinement is handled by including a portion of the area of the elastic layer instance in use for each layer that the item may map. In the case of the 1k-bit example, the area of the entity will be partially included in both the 512-layer and the 4k-layer. The force on the example is determined by taking its potential layer to weight one of the forces or to obtain the force with the least amount. The reason behind the ability to get the least amount of value is Thus, the layer associated with this force should have a lower adjacent region density.

在其他範例性具體實施例中,該資源實施方案藉由使具有多個可能資源實施方案之例項不包括在任意層之使用內來開始。在已針對所有層實行區域移除操作之後,考量該些彈性實施方案例項。對於一彈性實施方案例項,考量其可能層之各層之潛在供應。該潛在供應係由該區域移除操作從整個供應中移除的面積。檢查在該等實施層之各層上的潛在供應以決定哪個層已移除在將例項放置於此移除面積內時將會最少分裂性的面積。接著指派該例項至該最少分裂性層。In other exemplary embodiments, the resource implementation begins by including instances of multiple possible resource implementations that are not included in the use of any of the layers. These elastic implementation examples are considered after the region removal operations have been performed for all layers. For a flexible implementation example, consider the potential supply of the layers of its possible layers. The potential supply is the area that the removal operation removes from the entire supply by the area. The potential supply on each of the layers of the implementation layer is examined to determine which layer has removed the area that will be least cleavable when the instance is placed within this removal area. The instance is then assigned to the least mitotic layer.

該指派資源變換(操作64)負責決定指派一例項至其特定晶片資源。可使用各種安置演算法用於此操作,包括力引導安置、模擬退火、Mongrel、最小切片安置、數值最佳化安置、以演化為主安置及其他細節安置演算法。The assigned resource transformation (operation 64) is responsible for deciding to assign an instance of an item to its particular wafer resource. Various placement algorithms can be used for this operation, including force guided placement, simulated annealing, Mongrel, minimum slice placement, numerical optimization placement, evolution-based placement, and other detail placement algorithms.

雖然希望本發明之多數具體實施例用於一HDL設計合成軟體程序,但本發明不限於此類使用。儘管可使用其他語言及電腦程式(例如可寫入一電腦程式以說明硬體並因而視為在一HDL內的一運算式並可加以編譯或在一些具體實施例中,本發明可分配或重新分配一邏輯表示,例如一電路規劃清單,其不使用一HDL來建立),但將會在用於一HDL合成系統以及特別係該等設計用於與具有特定供應商技術/架構之積體電路一起使用者之背景下說明本發明之具體實施例。如所熟知,目標架構一般係由可程式化IC之一供應者來加以決定。一目標架構之範例係可程式化查找 表(LUT)以及該等積體電路(其係來自加州聖何塞市Xilinx,Inc.之場可程式化閘陣列)之相關聯邏輯。目標架構/技術之其他範例包括在來自諸如Altera、Lucent Technology、Advanced Micro Devices及Lattice Semiconductor之供應商的場可程式化閘陣列與複雜可程式化邏輯器件中的該等熟知架構。對於特定具體實施例,本發明還可與特定應用積體電路(ASIC)一起運用。While most of the specific embodiments of the present invention are intended for use in an HDL design synthesis software program, the invention is not limited to such use. Although other languages and computer programs may be used (eg, a computer program can be written to illustrate the hardware and thus be considered as an expression within an HDL and can be compiled or in some embodiments, the invention can be assigned or re-allocated Allocating a logical representation, such as a circuit planning list, which is not built using an HDL, but will be used in an HDL synthesis system and in particular for such integrated circuits with specific vendor technologies/architectures Specific embodiments of the invention are described in the context of a user. As is well known, the target architecture is generally determined by one of the providers of programmable ICs. An example of a target architecture is a programmatic lookup The associated logic of the table (LUT) and the integrated circuits (which are field programmable gate arrays from Xilinx, Inc., San Jose, CA). Other examples of target architectures/technologies include such well-known architectures in field programmable gate arrays and complex programmable logic devices from vendors such as Altera, Lucent Technology, Advanced Micro Devices, and Lattice Semiconductor. For a particular embodiment, the invention may also be utilized with a particular application integrated circuit (ASIC).

本發明之一具體實施例可能係一種電路設計及合成電腦輔助設計軟體,其係實施為一電腦程式,該電腦程式係儲存於一機器可讀取媒體內,諸如一CD ROM或一磁性硬碟或一光碟或各種其他替代性儲存器件內。此外,本發明之該等方法之許多者可使用一數位處理系統來實行,諸如一習知通用電腦系統。還可使用特殊用途電腦,其係設計或程式化以僅實行一功能。One embodiment of the present invention may be a circuit design and a synthetic computer-aided design software implemented as a computer program stored in a machine readable medium such as a CD ROM or a magnetic hard disk. Or on a compact disc or a variety of other alternative storage devices. Moreover, many of the methods of the present invention can be implemented using a digital processing system, such as a conventional general purpose computer system. Special purpose computers can also be used, which are designed or programmed to perform only one function.

圖17顯示可與本發明一起使用之一典型電腦系統之一範例。該電腦系統係用以實行在一HDL碼中說明之一設計之邏輯合成。應注意,雖然圖17解說一電腦系統之各種組件,但並不希望代表互連該等組件之任一特定架構或方式,如此此類細節並不與本發明有密切關係。應注意,僅出於解說目的來提供圖17之架構且一電腦系統或結合本發明使用之其他數位處理系統不限於此特性架構。還應瞭解,還可與本發明一起使用網路電腦及具有更少組件或可能更多組件之其他資料處理系統。圖17之電腦系統可能係(例如)一Apple Macintosh電腦。Figure 17 shows an example of a typical computer system that can be used with the present invention. The computer system is used to implement a logical synthesis of one of the designs described in an HDL code. It should be noted that while Figure 17 illustrates various components of a computer system, it is not intended to represent any particular architecture or manner of interconnecting such components, such details are not germane to the present invention. It should be noted that the architecture of Figure 17 is provided for illustrative purposes only and that a computer system or other digital processing system used in connection with the present invention is not limited to this feature architecture. It should also be appreciated that a networked computer and other data processing systems having fewer components or possibly more components may also be used with the present invention. The computer system of Figure 17 may be, for example, an Apple Macintosh computer.

如圖17所示,作為一資料處理系統之一形式的電腦系統101包括一匯流排102,其係耦合至一微處理器103與一ROM 107與揮發性RAM 105與一非揮發性記憶體106。微處理器103(可能係來自Intel或Motorola,Inc.或IBM之一微處理器)係耦合至快取記憶體104。匯流排102一起互連該些各種組件並還互連該些組件103、107、105及106至一顯示器控制器與顯示器件108以及至週邊器件,諸如輸入/輸出(I/O)器件,其可能係滑鼠、鍵盤、數據機、網路介面、印表機、掃描機、視訊相機及在此項中所熟知之其他器件。一般而言,輸入/輸出器件110係透過輸入/輸出控制器109來耦合至該系統。非揮發性RAM 105一般實施為動態RAM(DRAM),其不斷要求電力以便再新或維持該記憶體內的資料。非揮發性記憶體106一般為一磁性硬碟機或一磁光驅動器或一光學驅動器或一DVD RAM或甚至在從系統移除電力之後仍維持資料之其他類型記憶體系統。一般而言,該非揮發性記憶體還將係一隨機存取記憶體,但不要求此點。雖然圖17顯示該非揮發性記憶體係直接耦合至該資料處理系統中該等組件之剩餘者的一本機器件,但應瞭解,本發明可利用一遠離該系統之非揮發性記憶體,諸如一網路儲存器件,其係透過一網路介面(諸如一資料機或乙太網路介面)來耦合至該資料處理系統。匯流排102可包括透過各種橋接器、控制器及/或配接器彼此連接之一或多個匯流排,如此項技術中所熟知。在一具體實施例中,I/O控制器109包括一USB(通用串列匯流排)配接器用 於控制USB周邊器件及/或一IEEE-1394匯流排配接器用於控制IEEE-1394周邊器件。As shown in FIG. 17, a computer system 101 in the form of a data processing system includes a busbar 102 coupled to a microprocessor 103 and a ROM 107 and a volatile RAM 105 and a non-volatile memory 106. . Microprocessor 103 (which may be from one of Intel or Motorola, Inc. or one of IBM's microprocessors) is coupled to cache memory 104. The busbars 102 interconnect the various components together and also interconnect the components 103, 107, 105, and 106 to a display controller and display device 108 and to peripheral devices, such as input/output (I/O) devices, It may be a mouse, keyboard, modem, network interface, printer, scanner, video camera, and other devices well known in the art. In general, input/output device 110 is coupled to the system via input/output controller 109. Non-volatile RAM 105 is typically implemented as a dynamic RAM (DRAM) that continuously requires power to renew or maintain data in the memory. The non-volatile memory 106 is typically a magnetic hard disk drive or a magneto-optical drive or an optical drive or a DVD RAM or other type of memory system that still maintains data after power is removed from the system. In general, the non-volatile memory will also be a random access memory, but this is not required. Although FIG. 17 shows that the non-volatile memory system is directly coupled to a native device of the remainder of the components of the data processing system, it will be appreciated that the present invention may utilize a non-volatile memory remote from the system, such as a A network storage device coupled to the data processing system via a network interface, such as a data modem or an Ethernet interface. Busbar 102 may include one or more busbars connected to each other through various bridges, controllers, and/or adapters, as is well known in the art. In a specific embodiment, the I/O controller 109 includes a USB (Universal Serial Bus) adapter. The USB peripheral device and/or an IEEE-1394 bus adapter are used to control the IEEE-1394 peripheral device.

根據此說明應明白,可以軟體至少部分地具體化本發明之態樣。即,該等技術可回應其處理器(諸如一微處理器)來實作於一電腦系統或其他資料處理系統內,該處理器執行包含於一記憶體(諸如ROM 107、非揮發性RAM 105、非揮發性記憶體106、快取記憶體104或一遠端儲存器件)之指令序列。在各種具體實施例中,可組合軟體指令來使用硬佈線電路以實施本發明。因而,該等技術不限於硬體電路與軟體之任一特定組合,也不限於用於該資料處理系統所執行之該等指令的任一特定來源。此外,在此說明書整篇中,各種功能及操縱係說明為由軟體碼實行或引起以簡化說明。然而,習知此項技術者應認識到,此類表述意指該等功能產生自一處理器(諸如微處理器103)執行該碼。It will be apparent from this description that the aspects of the invention may be at least partially embodied in a software. That is, the techniques can be implemented in a computer system or other data processing system in response to a processor (such as a microprocessor) executing in a memory (such as ROM 107, non-volatile RAM 105). The instruction sequence of the non-volatile memory 106, the cache memory 104, or a remote storage device. In various embodiments, software instructions can be combined to implement hardwired circuits to implement the present invention. Thus, the techniques are not limited to any particular combination of hardware circuitry and software, and are not limited to any particular source of such instructions for execution by the data processing system. In addition, throughout this specification, various functions and operating systems are described as being implemented or caused by a software code to simplify the description. However, those skilled in the art will recognize that such expression means that the functions are generated from a processor (such as microprocessor 103) executing the code.

可使用一機器可讀取媒體來儲存軟體及資料,該軟體及資料在由一資料處理系統執行時引起該系統實行本發明之各種方法。此可執行軟體及資料可儲存於各種位置內,包括(例如)範例性ROM 107、非揮發性RAM 105、非揮發性記憶體106及/或快取記憶體104。此軟體及/或資料之部分可儲存於該些儲存器件之任一者內。A machine readable medium can be used to store software and materials that, when executed by a data processing system, cause the system to perform the various methods of the present invention. The executable software and materials can be stored in a variety of locations including, for example, exemplary ROM 107, non-volatile RAM 105, non-volatile memory 106, and/or cache memory 104. Portions of the software and/or data may be stored in any of the storage devices.

因而,一機器可讀取媒體包括任一機構,其以一可由一機器(例如,一電腦、網路器件、個人數位助理、製造工具、具有一組一或多個處理器之任一器件等)存取之形式提供(即儲存及/或發送)資訊。例如,一機器可讀取媒體包 括可記錄/不可記錄媒體(例如,唯讀記憶體(ROM)、隨機存取記憶體(RAM)、磁碟儲存媒體、光學儲存媒體、快閃記憶體器件等)以及電性、光學、聲學或是其他形式的傳播訊號(例如載波、紅外線信號、數位訊號)等。Thus, a machine readable medium includes any mechanism that can be a machine (eg, a computer, a network device, a personal digital assistant, a manufacturing tool, any device having a set of one or more processors, etc.) The form of access provides (ie, stores and/or transmits) information. For example, a machine readable media package Recordable/non-recordable media (eg, read-only memory (ROM), random access memory (RAM), disk storage media, optical storage media, flash memory devices, etc.) and electrical, optical, acoustic Or other forms of propagation signals (such as carrier waves, infrared signals, digital signals).

在前述規格書中,本發明已參考其特定範例性具體實施例作說明。顯而易見,可對其進行各種修改,而不會脫離隨附申請專利範圍所提出之本發明之更廣大精神及範疇。據此該規格書及圖式係視為一解說性意義而非一限制性意義。In the foregoing specification, the invention has been described with reference to specific exemplary embodiments thereof. It is apparent that various modifications may be made thereto without departing from the broader spirit and scope of the invention as set forth in the appended claims. Accordingly, the specification and drawings are to be regarded as illustrative and not limiting.

101‧‧‧電腦系統101‧‧‧ computer system

102‧‧‧匯流排102‧‧‧ busbar

103‧‧‧微處理器103‧‧‧Microprocessor

105‧‧‧揮發性RAM105‧‧‧Volatile RAM

106‧‧‧非揮發性記憶體106‧‧‧Non-volatile memory

107‧‧‧ROM107‧‧‧ROM

108‧‧‧顯示器件108‧‧‧Display device

109‧‧‧輸入/輸出控制器109‧‧‧Input/Output Controller

110‧‧‧輸入/輸出器件110‧‧‧Input/Output Devices

已在附圖中藉由範例而非限制方式來解說本發明,其中相同參考符號指示類似元件。The invention is illustrated by way of example and not limitation,

圖1顯示用於設計積體電路之一先前技術方法。Figure 1 shows a prior art method for designing an integrated circuit.

圖2顯示實體合成之一先前技術範例性方法。Figure 2 shows one prior art exemplary method of entity synthesis.

圖3顯示依據本發明之一具體實施例用以設計一積體電路之一方法之一流程圖。3 shows a flow chart of one method for designing an integrated circuit in accordance with an embodiment of the present invention.

圖4顯示依據本發明之一具體實施例用以設計一積體電路之另一方法之一流程圖。4 shows a flow chart of another method for designing an integrated circuit in accordance with an embodiment of the present invention.

圖5A及5B顯示依據本發明之特定具體實施例用以設計一積體電路之一方法之細節。5A and 5B show details of a method for designing an integrated circuit in accordance with a particular embodiment of the present invention.

圖6顯示依據本發明之一具體實施例用以設計一積體電路之一方法之一流程圖。6 shows a flow chart of one method for designing an integrated circuit in accordance with an embodiment of the present invention.

圖7顯示形狀與資源之一範例性估計。Figure 7 shows an exemplary estimate of one of the shapes and resources.

圖8顯示用於一資源類型之一範例性映射。Figure 8 shows an exemplary mapping for one of the resource types.

圖9A及9B係一記憶體資源之範例性映射。9A and 9B are exemplary mappings of a memory resource.

圖10A及10B係範例性資源共用實施方案。10A and 10B are exemplary resource sharing implementations.

圖11顯示一加法器樹分解之一範例。Figure 11 shows an example of an adder tree decomposition.

圖12顯示一閘樹分解之一範例。Figure 12 shows an example of a brake tree decomposition.

圖13A及13B顯示一切片最佳化之範例。Figures 13A and 13B show an example of a slice optimization.

圖14顯示一複製最佳化之一範例。Figure 14 shows an example of a replication optimization.

圖15顯示一向農擴展之一範例。Figure 15 shows an example of a one-way agricultural expansion.

圖16A及16B顯示mux/pmux摺疊及時序驅動分解之範例。16A and 16B show examples of mux/pmux folding and timing driven decomposition.

圖17顯示可與本發明一起使用之一資料處理系統之一方塊圖範例。Figure 17 shows an example of a block diagram of one of the data processing systems that can be used with the present invention.

(無元件符號說明)(no component symbol description)

Claims (70)

一種設計一積體電路之方法,該方法包含:將一晶片資源劃分成複數個區段;基於一品質度量來計算該等區段之等級;以及藉由一安置變換將具有最低等級之該等區段從考量中移除。A method of designing an integrated circuit, the method comprising: dividing a wafer resource into a plurality of segments; calculating a rank of the segments based on a quality metric; and having the lowest level by a placement transformation The section was removed from consideration. 如請求項1之方法,其中該晶片資源超過該積體電路之要求。The method of claim 1, wherein the wafer resource exceeds a requirement of the integrated circuit. 如請求項1之方法,其中移除該等區段,使得該晶片資源滿足該電路要求。The method of claim 1, wherein the segments are removed such that the wafer resource satisfies the circuit requirements. 如請求項1之方法,其進一步包含重覆評級並移除直至實現一預定準則之步驟。The method of claim 1, further comprising the step of repeating the rating and removing until a predetermined criterion is achieved. 如請求項1之方法,其中在一下一反覆移除程序中重新考量該等移除區段之一些區段。The method of claim 1, wherein some sections of the removed sections are reconsidered in a next repeated removal procedure. 如請求項1之方法,其中永久性移除該等移除區段之一些區段且在一下一反覆移除程序中不重新考量。The method of claim 1, wherein some of the sections of the removed section are permanently removed and are not reconsidered in a next repeated removal procedure. 如請求項1之方法,其中該品質度量包含與該資源之使用的距離。The method of claim 1, wherein the quality metric comprises a distance from use of the resource. 如請求項1之方法,其中計算該等級包含:計算在該資源中例項之一密度與一格林函數之一捲積。The method of claim 1, wherein calculating the level comprises calculating a convolution of one of the instances of the resource with a Green's function. 一種機器可讀取媒體,其包含複數個可執行指令,當在一數位處理系統上執行時其引起該數位處理系統實行一種設計一積體電路(IC)之方法,該方法包含:將一晶片資源劃分成複數個區段; 基於一品質度量來計算該等區段之等級;以及藉由一安置變換將具有最低等級之該等區段從考量中移除。A machine readable medium comprising a plurality of executable instructions that, when executed on a digital processing system, cause the digital processing system to perform a method of designing an integrated circuit (IC), the method comprising: placing a wafer The resources are divided into a plurality of sections; The ranks of the segments are calculated based on a quality metric; and the segments having the lowest rank are removed from the consideration by a placement transformation. 如請求項9之媒體,其中該晶片資源超過該積體電路之要求。The medium of claim 9, wherein the wafer resource exceeds a requirement of the integrated circuit. 如請求項9之媒體,其中移除該等區段,使得該晶片資源滿足該電路要求。The medium of claim 9, wherein the segments are removed such that the wafer resource satisfies the circuit requirements. 如請求項9之媒體,其進一步包含重覆評級並移除直至實現一預定準則之步驟。As with the media of claim 9, it further includes the steps of repeating the rating and removing until a predetermined criterion is achieved. 如請求項9之媒體,其中在一下一反覆移除程序中重新考量該等移除區段之一些區段。The media of claim 9, wherein some segments of the removed segments are reconsidered in a next repeated removal procedure. 如請求項9之媒體,其中永久性移除該等移除區段之一些區段且在一下一反覆移除程序中不重新考量。The media of claim 9, wherein some of the sections of the removed section are permanently removed and are not reconsidered in a next repeated removal procedure. 如請求項9之媒體,其中該品質度量包含與該資源之使用的距離。The media of claim 9, wherein the quality metric comprises a distance from the use of the resource. 如請求項9之媒體,其中計算該等級包含計算在該資源中例項之一密度與一格林函數之一捲積。The media of claim 9, wherein calculating the level comprises convolving a density of one of the instances in the resource with a Green's function. 一種針對在一晶片上的一積體電路在一例項安置中計算在一例項上之一總力之方法,其包含:計算在該例項與一元件之間的一力,該元件係在該積體電路中的另一例項與在該晶片上的一晶片資源之至少一者,該力係在該例項與該元件之間距離的一函數;基於至該例項之距離將該例項之一相鄰區域劃分成複數個相鄰區域; 作為在該例項與各相鄰區域之元件之間該等力之一函數來計算在該例項上的複數個相鄰力;以及藉由該等相鄰力之一加權和來計算在該例項上的一總力。A method for calculating a total force on an item in an item arrangement for an integrated circuit on a wafer, comprising: calculating a force between the item and an element, the element is Another example of an integrated circuit and at least one of a wafer resource on the wafer, the force being a function of a distance between the instance and the component; the term being based on the distance to the example One adjacent area is divided into a plurality of adjacent areas; Calculating a plurality of adjacent forces on the item as a function of the force between the item and each of the adjacent regions; and calculating by weighting one of the adjacent forces A total force on the item. 如請求項17之方法,其中用於一例項之相鄰區域係劃分成三個相鄰區域,即一局部相鄰區域、一中等相鄰區域及一長程相鄰區域。The method of claim 17, wherein the adjacent region for an item is divided into three adjacent regions, that is, a partial adjacent region, a medium adjacent region, and a long-range adjacent region. 如請求項18之方法,其中一局部相鄰區域覆蓋具有大約5倍於該平均例項區域之一半徑的一區域。The method of claim 18, wherein a partially adjacent region covers an area having a radius of about five times one of the average instance regions. 如請求項18之方法,其中一中等相鄰區域覆蓋具有大約10倍於該平均例項區域之一半徑的一區域。The method of claim 18, wherein a medium adjacent region covers an area having a radius of about 10 times one of the average case regions. 如請求項18之方法,其中一長程相鄰區域覆蓋總區域。The method of claim 18, wherein a long-range adjacent area covers the total area. 如請求項17之方法,其中該等相鄰區域包含一短程相鄰區域且其中用於一短程相鄰力之權重與在一短程相鄰區域內的例項密度成比例。The method of claim 17, wherein the adjacent regions comprise a short range adjacent region and wherein a weight for a short range neighboring force is proportional to an item density in a short range adjacent region. 如請求項17之方法,其中該等相鄰區域包含一長程相鄰區域且其中用於一長程相鄰力之權重與在一短程相鄰區域內的例項密度成反比。The method of claim 17, wherein the adjacent regions comprise a long range adjacent region and wherein the weight for a long range adjacent force is inversely proportional to the density of the instances in a short range adjacent region. 如請求項17之方法,其中該等相鄰區域係由合法化環繞一例項之使用所需之區域來進一步決定。The method of claim 17, wherein the adjacent regions are further determined by legalizing the area required to surround the use of an item. 如請求項17之方法,其中該元件係在該積體電路內的另一例項且其中在該例項與該另一例項之間的力係一斥力。The method of claim 17, wherein the component is another item within the integrated circuit and wherein the force between the instance and the other instance is a repulsive force. 如請求項17之方法,其中該複數個相鄰力之一相鄰力係 藉由資源類型力之一加權和來加以計算,各資源類型力包含在該例項與在該積體電路內具有相同資料類型之其他例項之部分之間的該等力以及在該例項與相同資源類型之該等晶片資源之間的該等力。The method of claim 17, wherein the one of the plurality of adjacent forces is adjacent to the force system Calculated by weighting one of the resource type forces, each resource type force is included in the case and the other part of the other item having the same data type in the integrated circuit and in the example Such forces between the wafer resources of the same resource type. 如請求項26之方法,其中該另一例項係具有一資源類型的一原型例項,且其中在該例項與該另一例項之間的力包含一資源類型力分量。The method of claim 26, wherein the another instance item has a prototype item of a resource type, and wherein the force between the item item and the other item item comprises a resource type force component. 如請求項26之方法,其中該另一例項係具有複數個資源類型的一非原型例項,且其中在該例項與該另一例項之間的力包含複數個資源類型力分量。The method of claim 26, wherein the another instance item has a non-prototype item of a plurality of resource types, and wherein the force between the item item and the other item item comprises a plurality of resource type force components. 如請求項26之方法,其中該等資源類型力之權重係該資源類型之離散度之一函數。The method of claim 26, wherein the weight of the resource type is a function of one of the dispersions of the resource type. 如請求項17之方法,其中該元件係與該例項相同類型的一晶片資源且其中在該例項與該晶片資源之間的力係一吸引力。The method of claim 17, wherein the component is a wafer resource of the same type as the instance and wherein the force between the instance and the wafer resource is attractive. 一種機器可讀取媒體,其包含複數個可執行指令,當在一數位處理系統上執行時其引起該數位處理系統實行一種針對在一晶片上的一積體電路在一例項安置中計算在一例項上之一總力之方法,該方法包含:計算在該積體電路中在該例項與另一例項之間的一力,該力係在該兩個例項之間距離的一函數;基於至該例項之距離將該例項之相鄰區域劃分成複數個相鄰區域;藉由相加在該例項與各相鄰區域之元件之間的該等力 來計算在該例項上的複數個相鄰力;以及藉由該等相鄰力之一加權和來計算在該例項上的一總力。A machine readable medium comprising a plurality of executable instructions which, when executed on a digital processing system, cause the digital processing system to perform an integrated circuit on a wafer for calculation in an example of placement A method of total force, the method comprising: calculating a force between the instance and another instance in the integrated circuit, the force being a function of a distance between the two instances; Dividing the adjacent region of the instance into a plurality of adjacent regions based on the distance to the example; by adding the forces between the instance and the elements of the adjacent regions To calculate a plurality of adjacent forces on the item; and to calculate a total force on the item by weighting one of the adjacent forces. 如請求項31之媒體,其中用於一例項之相鄰區域係劃分成三個相鄰區域,即一局部相鄰區域、一中等相鄰區域及一長程相鄰區域。The medium of claim 31, wherein the adjacent area for an item is divided into three adjacent areas, that is, a partial adjacent area, a medium adjacent area, and a long-range adjacent area. 如請求項32之媒體,其中一局部相鄰區域覆蓋具有大約5倍於該平均例項區域之一半徑的一區域。In the medium of claim 32, wherein a portion of the local area covers an area having a radius of about five times one of the average item areas. 如請求項32之媒體,其中一中等相鄰區域覆蓋具有大約10倍於該平均例項區域之一半徑的一區域。As in the medium of claim 32, a mediumly adjacent region covers an area having a radius of about 10 times one of the average case regions. 如請求項32之媒體,其中一長程相鄰區域覆蓋總區域。As in the medium of claim 32, a long-range adjacent area covers the total area. 如請求項31之媒體,其中該等相鄰區域包含一短程相鄰區域且其中用於一短程相鄰力之權重與在一短程相鄰區域內的例項密度成比例。The medium of claim 31, wherein the adjacent regions comprise a short range adjacent region and wherein the weight for a short range neighboring force is proportional to the density of the instances in a short range adjacent region. 如請求項31之媒體,其中該等相鄰區域包含一長程相鄰區域且其中用於一長程相鄰力之權重與在一短程相鄰區域內的例項密度成反比。The medium of claim 31, wherein the adjacent regions comprise a long range adjacent region and wherein the weight for a long range adjacent force is inversely proportional to the density of the instances in a short range adjacent region. 如請求項31之媒體,其中該等相鄰區域係由合法化環繞一例項之使用所需之區域來進一步決定。The media of claim 31, wherein the adjacent regions are further determined by legalizing the area required to surround the use of an item. 如請求項31之媒體,其中該元件係在該積體電路內的另一例項且其中在該例項與該另一例項之間的力係一斥力。The medium of claim 31, wherein the component is another instance within the integrated circuit and wherein the force between the instance and the other instance is a repulsive force. 如請求項31之媒體,其中該複數個相鄰力之一相鄰力係藉由資源類型力之一加權和來加以計算,各資源類型力 包含在該例項與在該積體電路中具有相同資料類型之其他例項之部分之間的該等力以及在該例項與相同資源類型之晶片資源之間的該等力。The media of claim 31, wherein one of the plurality of adjacent forces is calculated by weighting one of resource type forces, each resource type force The force is included between the item and the portion of the other item having the same data type in the integrated circuit and the force between the item and the wafer resource of the same resource type. 如請求項40之媒體,其中該另一例項係具有一資源類型的一原型例項,且其中在該例項與該另一例項之間的力包含一資源類型力分量。The media of claim 40, wherein the other instance has a prototype instance of a resource type, and wherein the force between the instance and the other instance comprises a resource type force component. 如請求項40之媒體,其中該另一例項係具有複數個資源類型的一非原型例項,且其中在該例項與該另一例項之間的力包含複數個資源類型力分量。The medium of claim 40, wherein the another instance has a non-prototype item of a plurality of resource types, and wherein the force between the item and the other item comprises a plurality of resource type force components. 如請求項40之媒體,其中該等資源類型力之權重係該資源類型之離散度之一函數。The medium of claim 40, wherein the weight of the resource type is a function of one of the dispersions of the resource type. 如請求項31之媒體,其中該元件係與該例項相同類型的一晶片資源且其中在該例項與該晶片資源之間的力係一吸引力。The medium of claim 31, wherein the component is a wafer resource of the same type as the instance and wherein the force between the instance and the wafer resource is attractive. 一種針對一積體電路在一例項安置中計算在一非原型例項上之一總力之方法,該非原型例項消耗多於一個類型的資源,該方法包含:指派該等非原型例項之各類型至一個別資源類型層內,該資源類型層係該資源類型之一表示;作為在該例項與在該資源類型層內其他例項及資源之間該等力之一函數來為該資源類型層計算一資源類型層力;以及藉由該等資源類型層力之一加權和來計算在該例項上的一總力。A method for calculating a total force on a non-prototype item in an item placement in an item placement, the non-prototype item consuming more than one type of resource, the method comprising: assigning the non-prototype item Within each layer to a different resource type layer, the resource type layer is represented by one of the resource types; as a function of the force between the instance item and other instances and resources in the resource type layer The resource type layer calculates a resource type layer force; and calculates a total force on the item by weighting one of the resource type layer forces. 如請求項45之方法,其中該權重係一均勻權重。The method of claim 45, wherein the weight is a uniform weight. 如請求項45之方法,其中該權重係該層之資源之離散度之一函數。The method of claim 45, wherein the weight is a function of one of the dispersions of resources of the layer. 一種機器可讀取媒體,其包含複數個可執行指令,當在一數位處理系統上執行時其引起該數位處理系統實行一種針對一積體電路在一例項安置中計算在一非原型例項上之一總力之方法,該非原型例項消耗多於一個類型的資源,該方法包含:指派該等非原型例項之各類型至一個別資源類型層內,該資源類型層係該資源類型之一表示;作為在該例項與在該資源類型層內其他例項及資源之間該等力之一函數來為該資源類型層計算一資源類型層力;以及藉由該等資源類型層力之一加權和來計算在該例項上的一總力。A machine readable medium comprising a plurality of executable instructions that, when executed on a digital processing system, cause the digital processing system to perform a calculation on a non-prototype item in an item placement for an integrated circuit In a method of total force, the non-prototype item consumes more than one type of resource, and the method includes: assigning each type of the non-prototype item to a layer of another resource type, the resource type layer is the resource type a representation; calculating a resource type layer force for the resource type layer as a function of the force between the instance item and other instances and resources within the resource type layer; and by using the resource type layer One of the weighted sums is used to calculate a total force on the item. 如請求項48之媒體,其中該權重係一均勻權重。The media of claim 48, wherein the weight is a uniform weight. 如請求項48之媒體,其中該權重係該層之資源之離散度之一函數。The medium of claim 48, wherein the weight is a function of one of the dispersions of resources of the layer. 一種針對一積體電路在一例項安置中計算在一例項上之一總力之方法,該方法包含:為該例項之一部分決定複數個資源類型;在各資源類型層內放置該例項之該部分,該資源類型層係該資源類型之一表示;作為來自該等資源類型層之該等力之一函數來計算在 該例項上的一總力。A method for calculating a total force on an item in an item placement in an item arrangement, the method comprising: determining a plurality of resource types for one part of the item; placing the item in each resource type layer In the portion, the resource type layer is represented by one of the resource types; as a function of the forces from the resource type layers, A total force on this item. 如請求項51之方法,其中該總力係來自該等資源類型層之該等力之一加權和。The method of claim 51, wherein the total force is a weighted sum of the forces from the resource type layers. 如請求項51之方法,其中來自該等資源類型層之力包含在該例項與在該等資源類型層中其他例項之間的該等力。The method of claim 51, wherein the force from the resource type layers is included in the instance and the other items in the resource type layer. 如請求項51之方法,其中來自該等資源類型層之力包含在該例項與在該等資源類型層中該等資源之間的該等力。The method of claim 51, wherein the force from the resource type layers is included in the instance and the resources between the resources in the resource type layer. 如請求項51之方法,其中該權重係一均勻權重。The method of claim 51, wherein the weight is a uniform weight. 如請求項51之方法,其中該權重係該層之資源之離散度之一函數。The method of claim 51, wherein the weight is a function of one of the dispersions of resources of the layer. 如請求項51之方法,其中該總力係在來自該等資源類型層之該等力中具有一最少量值的一力。The method of claim 51, wherein the total force is a force having a minimum amount of the forces from the resource type layers. 一種機器可讀取媒體,其包含複數個可執行指令,當在一數位處理系統上執行時其引起該數位處理系統實行一種針對一積體電路在一例項安置中計算在一例項上之一總力之方法,該方法包含:為該例項之一部分決定複數個資源類型;在各資源類型層內放置該例項之該部分,該資源類型層係該資源類型之一表示;作為來自該等資源類型層之該等力之一函數來計算在該例項上的一總力。A machine readable medium comprising a plurality of executable instructions that, when executed on a digital processing system, cause the digital processing system to perform a calculation of one of the items in an item placement for an integrated circuit a method for force, the method comprising: determining a plurality of resource types for one of the items; placing the portion of the item in each resource type layer, the resource type layer being represented by one of the resource types; One of these forces of the resource type layer calculates a total force on the instance. 如請求項58之媒體,其中該總力係來自該等資源類型層 之該等力之一加權和。The medium of claim 58, wherein the total force is from the resource type layer One of these forces is weighted. 如請求項58之媒體,其中來自該等資源類型層之力包含在該例項與在該等資源類型層中其他例項之間的該等力。The medium of claim 58, wherein the force from the resource type layers is included in the instance and the other items in the resource type layer. 如請求項58之媒體,其中來自該等資源類型層之力包含在該例項與在該等資源類型層中該等資源之間的該等力。The medium of claim 58, wherein the force from the resource type layers is included in the instance and the resources between the resources in the resource type layer. 如請求項58之媒體,其中該權重係一均勻權重。The media of claim 58, wherein the weight is a uniform weight. 如請求項58之媒體,其中該權重係該層之資源之離散度之一函數。The medium of claim 58, wherein the weight is a function of one of the dispersions of resources of the layer. 如請求項58之媒體,其中該總力係在來自該等資源類型層之該等力中具有一最少量值的一力。The medium of claim 58, wherein the total force is a force having a minimum amount of the forces from the resource type layers. 一種針對一積體電路在一例項安置中計算在一例項上之一總力之方法,該方法包含:決定可僅指派至一資源類型層之該例項之一單一資源部分,該資源類型層係該資源類型之一表示;在該對應資源類型層內放置該例項之該單一資源部分;作為來自該對應資源類型層之該等力之一函數來計算在該例項上的一總力;決定可指派至複數個潛在資源類型層的該例項之一多資源部分;計算一分裂度量,其係藉由放置該例項之多資源部分在各潛在資源類型層內所引起; 放置該例項之該多資源部分於呈現最少分裂度量之潛在資源類型層內。A method for calculating a total force on an item in an item placement in an item arrangement, the method comprising: determining a single resource part of the item that can be assigned only to a resource type layer, the resource type layer Representing one of the resource types; placing the single resource portion of the instance in the corresponding resource type layer; calculating a total force on the instance as a function of the force from the corresponding resource type layer Determining a multi-resource portion of the instance that can be assigned to a plurality of potential resource type layers; calculating a splitting metric that is caused by placing a plurality of resource portions of the instance within each potential resource type layer; The multi-resource portion of the instance is placed within a potential resource type layer that exhibits the least splitting metric. 如請求項65之方法,其中該分裂度量係由在一例項上的更高力來加以表示。The method of claim 65, wherein the splitting metric is represented by a higher force on an item. 如請求項65之方法,其中在一例項上的該力包含在該例項與在相同資源類型層內的其他例項之間的該等斥力與在該例項與在相同資源類型層內的該等資源之間的該等吸引力。The method of claim 65, wherein the force on the one of the items is included in the instance and the other items in the same resource type layer and the same in the same resource type layer Such attraction between these resources. 一種機器可讀取媒體,其包含複數個可執行指令,當在一數位處理系統上執行時其引起該數位處理系統實行一種針對一積體電路在一例項安置中計算在一例項上之一總力之方法,該方法包含:決定可僅指派至一資源類型層的該例項之一單一資源部分,該資源類型層係該資源類型之一表示;在該對應資源類型層內放置該例項之該單一資源部分;作為來自該對應資源類型層之該等力之一函數來計算在該例項上的一總力;決定可指派至複數個潛在資源類型層的該例項之一多資源部分;計算一分裂度量,其係藉由放置該例項之多資源部分在各潛在資源類型層內所引起;放置該例項之該多資源部分於呈現最少分裂度量之潛在資源類型層內。A machine readable medium comprising a plurality of executable instructions that, when executed on a digital processing system, cause the digital processing system to perform a calculation of one of the items in an item placement for an integrated circuit a method for determining a single resource portion of the instance that can be assigned only to a resource type layer, the resource type layer being represented by one of the resource types; placing the instance in the corresponding resource type layer The single resource portion; a total force on the instance as a function of the force from the corresponding resource type layer; determining one of the plurality of resources of the instance that can be assigned to the plurality of potential resource type layers Part of calculating a splitting metric caused by placing a plurality of resource portions of the instance within each potential resource type layer; placing the multi-resource portion of the instance within a potential resource type layer that exhibits a minimum splitting metric. 如請求項68之媒體,其中該分裂度量係由在一例項上的更高力來加以表示。The media of claim 68, wherein the splitting metric is represented by a higher force on an item. 如請求項68之媒體,其中在一例項上的該力包含在該例項與在相同資源類型層內的其他例項之間的該等斥力與在該例項與在相同資源類型層內的該等資源之間的該等吸引力。The medium of claim 68, wherein the force on an item is included in the instance and the other items in the same resource type layer and the same in the same resource type layer Such attraction between these resources.
TW097127996A 2007-07-23 2008-07-23 Architectural physical synthesis TWI475415B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US95143607P 2007-07-23 2007-07-23

Publications (2)

Publication Number Publication Date
TW200915122A TW200915122A (en) 2009-04-01
TWI475415B true TWI475415B (en) 2015-03-01

Family

ID=44725655

Family Applications (2)

Application Number Title Priority Date Filing Date
TW97128023A TW200915123A (en) 2007-07-23 2008-07-23 Architectural physical synthesis
TW097127996A TWI475415B (en) 2007-07-23 2008-07-23 Architectural physical synthesis

Family Applications Before (1)

Application Number Title Priority Date Filing Date
TW97128023A TW200915123A (en) 2007-07-23 2008-07-23 Architectural physical synthesis

Country Status (1)

Country Link
TW (2) TW200915123A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI608372B (en) * 2015-10-05 2017-12-11 台灣積體電路製造股份有限公司 Power state coverage metric and method for estimating the same

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8959472B1 (en) * 2013-09-27 2015-02-17 Arm Limited Considering compatibility of adjacent boundary regions for standard cells placement and routing

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW508445B (en) * 2000-01-18 2002-11-01 Cadence Design Systems Iinc Hierarchical test circuit structure for chips with multiple circuit blocks
TW200620018A (en) * 2006-03-03 2006-06-16 Univ Chang Gung A method for MIMO RLCG interconnects model order reduction technique using the global Arnoldi algorithm
US20070094623A1 (en) * 2005-10-24 2007-04-26 Haizhou Chen Timing, noise, and power analysis of integrated circuits
US20070150846A1 (en) * 2005-06-29 2007-06-28 Furnish Geoffrey M Methods and Systems for Placement

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW508445B (en) * 2000-01-18 2002-11-01 Cadence Design Systems Iinc Hierarchical test circuit structure for chips with multiple circuit blocks
US20070150846A1 (en) * 2005-06-29 2007-06-28 Furnish Geoffrey M Methods and Systems for Placement
US20070094623A1 (en) * 2005-10-24 2007-04-26 Haizhou Chen Timing, noise, and power analysis of integrated circuits
TW200620018A (en) * 2006-03-03 2006-06-16 Univ Chang Gung A method for MIMO RLCG interconnects model order reduction technique using the global Arnoldi algorithm

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI608372B (en) * 2015-10-05 2017-12-11 台灣積體電路製造股份有限公司 Power state coverage metric and method for estimating the same

Also Published As

Publication number Publication date
TW200915122A (en) 2009-04-01
TW200915123A (en) 2009-04-01

Similar Documents

Publication Publication Date Title
JP5608079B2 (en) Architectural physical synthesis
JP5706689B2 (en) Architectural physical synthesis
US10318686B2 (en) Methods for reducing delay on integrated circuits by identifying candidate placement locations in a leveled graph
US9589090B1 (en) Method and apparatus for performing multiple stage physical synthesis
US6789248B1 (en) Method and apparatus to perform resistance and capacitance (RC) parameter customization for better timing closure results in physical synthesis and optimization
US9740808B2 (en) Method and apparatus for implementing a system-level design tool for design planning and architecture exploration
Hutton et al. FPGA synthesis and physical design
Chen et al. Simultaneous timing driven clustering and placement for FPGAs
CN102598004B (en) For the method and apparatus performing hardware assisted placement
TWI475415B (en) Architectural physical synthesis
Dai et al. Silicon virtual prototyping: The new cockpit for nanometer chip design
Iida Design Methodology
US9804843B1 (en) Method and apparatus for linear function processing in pipelined storage circuits
Yang Thermal, Power Delivery and Reliability Management for 3D ICS
Coudert LOGICAL AND PHYSICAL DESIGN
Tom Channel width reduction techniques for System-on-Chip circuits in field-programmable gate arrays
Leow Post-routing analytical models for homogeneous fpga architectures
Coudert Logical and Physical Design: A Flow Perspective
Sayal EDA design for Microscale Modular Assembled ASIC (M2A2) circuits
Mark A system-level synthetic circuit generator for fpga architectural analysis
Choi Performance driven optimization of VLSI layout