CN101809576B - 构架物理综合 - Google Patents
构架物理综合 Download PDFInfo
- Publication number
- CN101809576B CN101809576B CN200880100093.8A CN200880100093A CN101809576B CN 101809576 B CN101809576 B CN 101809576B CN 200880100093 A CN200880100093 A CN 200880100093A CN 101809576 B CN101809576 B CN 101809576B
- Authority
- CN
- China
- Prior art keywords
- resource
- layout
- design
- chip
- integrated circuit
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/392—Floor-planning or layout, e.g. partitioning or placement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/12—Timing analysis or timing optimisation
Abstract
本发明公开了用于设计集成电路的方法和设备。根据一方面,本发明的电路设计公开了综合与布局的迭代过程,其中每一次迭代均提供对集成电路的设计的增量式改变。本发明的增量式迭代方法可通过综合到布线以及布线到综合来提供连续进步,具有在知晓当前实例布局的情况下进行综合的增量式改进,以及在知晓当前电路逻辑的情况下进行布局的增量式改进。根据另一方面,本发明的电路设计公开了增量式力导向布局转换,该转换利用资源层解决混杂资源分布问题,其中作用于实例上的力为来自其资源层的力基于这些资源的局部拥塞的加权平均值。另外,增量式区域移除方法可被用于基于诸如资源需求拓扑映射的力导向布局转换通过质量度量来解决资源利用问题。
Description
相关申请
本申请要求于2007年7月23日提交的美国临时申请No.60/951,436(档案号:02986.P059Z)的优先权,该临时申请作为参考而被结合于此。本申请还与于2008年7月22日提交的名称为“Architectural Physical Synthesis”的申请no.12/177,867(档案号:02986.P1116)相关,并与该申请于同一日提交。
本发明主要涉及集成电路设计领域,并且尤其涉及通过高层描述(highlevel description)的综合(synthesis)过程来进行集成电路设计。
背景技术
对于VLSI(超大规模集成)级的数字电路设计工艺而言,设计者常常采用计算机辅助技术。已开发了诸如硬件描述语言(HDL)的标准语言来描述数字电路,以辅助复杂数字电路的设计和模拟。诸如VHDL和Verilog的多种硬件描述语言已逐渐成为行业标准。VHDL和Verilog是通用硬件描述语言,其允许使用抽象数据类型来定义芯片原始级、寄存器传输级(RTL)或行为级的硬件模型。随着器件工艺继续进步,已开发了各种产品设计工具以使HDL适合用于新的器件和设计风格。
在利用HDL代码设计集成电路时,首先编写代码,并由HDL编译器对所编写的代码进行编译。HDL源代码在某一层描述电路元件,且编译程序通过所述编译而产生RTL网表(nestlist)。RTL网表由多个RTL对象或组件以及多个网络(net)(该网络为所述组件之间的信号连接)构成。所述RTL 网表通常是与技术无关的网表,因为其与特定厂商的集成电路(例如,现场可编程门阵列(FPGA)或专用集成电路(ASIC))的技术或架构无关。所述RTL网表对应于电路元件的示意性表示(与行为表示相比)。然后执行映射操作,以从与技术无关的RTL网表转换到可以用来创建厂商技术或架构中的电路的技术专用网表,所述映射操作包括对实例(instance)进行布局以及对互连(interconnection)进行布线,以使得电路满足给定的时序、间隔和功率约束。
如图1所示,早期的电子设计自动化(EDA)是完全将HDL综合与布局/布线过程相分离的。在操作11,准备HDL代码。在操作13,对操作11中所准备的HDL进行编译并综合,以产生网表,通常通过执行逻辑优化对该网表进行优化。在此之后,映射过程将所述网表映射至特定目标技术/架构。在操作13结束之后,便已完成了综合,且现在可提供专用于厂商的IC中使用的技术/架构的网表。该网表有效地位于门级,且基于预布局信息(例如,扇出计数、或所连接的组件类型及尺寸)通过使用互连性质统计模型来对时序分析进行估算。在综合之后,可在操作15对逻辑电路执行传统的布局操作,并在操作17对网表进行局部改变(仅在芯片原始级、单元级或门级上),以满足时序性能。之后,在操作19执行传统布线操作,以创建每一IC中的电路设计。如果存在一些未满足的约束,则所述过程通过回路迭代(iteration)进行修改。
以前,当在早期综合工具中实例延迟较为突出时,基于统计模型的时序估算是足够精确的,从而综合与布局的分离需要相对较少次迭代来返回至HDL和综合阶段。
然而,利用收缩技术节点,互连延迟变得非常显著,超过了门延迟。这导致综合操作中的延迟估算与布局和布线操作之后的实际延迟之间的关联越来越小,致使后综合(post-synthesis)与后布置(post-layout)结果之间缺 乏时序预测能力。因此,在很多情况下,在布局和布线过程之后,电路物理布置无法满足电路设计标准,且通常设计必须从综合步骤重新开始,并重复综合/布局/布线过程。
为对综合进行改善,在综合过程期间考虑与设计相关的物理特性(例如,布局)是非常重要的。现已采用了一系列技术来将布局信息引入综合过程,例如元件平面布置、区域内最佳化(IPO)以及物理综合。
在元件平面布置(floorplanning)技术中,设计被划分成芯片上的多个区,并在通过使用统计模型来估算区内的互连的同时,针对区间互连使用基于布局的互连估算。可在RTL阶段早期或初始综合运行之后使用元件平面布置。元件平面布置可被扩展为将RTL组件划分、复制以及切割成多个区,并与RTL级时序和区域模型相组合。之后,可使用来自区间时序的改善后的时序来更精确地驱动RTL级优化。手动产生高质量的元件平面布置是非常困难的,且要求用户拥有熟练的技术。自动元件平面布置器(例如,太拉系统(Tera System)(美国专利6,145,117和6,360,356)中的元件平面布置器)可创建多个区,并将RTL组件分配给多个区。因为综合被去耦合(decouple),且在自动元件平面布置之后,因此在元件平面布置期间,时序和区域信息的准确度很低。
一种称为区域内最佳化(IPO)的技术提供了从布局和布线延迟至综合域的逆向注解。仅因为细节布局未被更新,关键路径会被重新优化,经修改的网络的互连延迟会返回到统计模型。如果做出了许多改变,则后续的最终网表的合法化(legalization)可能需要将实例移动至远离他们初始位置的位置,导致巨大的延迟估算误差。基于此原因,在需要显著改变以实现时序闭合(enclosure)时,IPO被视为是不稳定的。
另一技术是物理综合,该技术是对IPO技术的改进,其中对被映射网表的少量优化与增量式(incremental)重新合法化相交织,以保持延迟和资源 度量的精确性。该技术的限制在于,个别改变受限于资源的适度增加,或者IPO技术的不稳定问题可能会再次出现。目前存在多种用于物理综合的算法。图2显示了一种通过使用基于被布局实例邻近性(proximity)的时序估算而提供物理综合引擎的算法。在操作23中对被映射网表初始布局之后,在操作24(仅在芯片原始级执行)中物理综合操作选择电路中用于增量式优化及重新布局的部分。
从上述描述可知,亟需对电子设计自动化进行算法改进。
现有专利还涉及或描述了芯片综合,这些专利包括:美国专利6,519,754、6,711,729、7,010,769、6,145,117以及6,360,356。论文(Bo Hu,Timing-DrivenPlacement for Heterogeneous Field Programmable Gate Array,IEEE/ACMInternational Conference on Computer-Aided Design,2006年11月(ICCAD′06),383-388页(ISSN:1092-3152;ISBN 1-59593-389-1))中最近描述了一种布局算法。
发明内容
本发明公开了用于设计集成电路的方法和设备。在示例性实施方式中,本发明的电路设计公开了综合与布局的迭代过程,该过程起始于RTL或行为级,其中每一次迭代均通过集成电路设计的转换而提供增量式改变。在某些方面,所述转换可以是综合或布局转换。综合转换对网表中的对象和/或形成该对象之间的连接的网络进行修改。布局转换对网表中一个或多个对象的位置进行修改。在本发明至少某些实施方式中的增量式迭代方法可通过使用由设计度量(design metric)(例如,当前电路网表、布局、时序、资源可用性以及功率)所确定的适当的综合与布局转换,来提供不断的改进。在某些方面,在每次转换之后,对受到影响的设计度量进行更新,以使得将来的转换决策可基于精确的设计统计。所述过程朝向设计的最终时序资源和功率闭 合(enclosure)而增量式迭代。
本发明至少某些实施方式的关键方面在于,在识别高层(high level)组件的特定资源类型之前进行布局。例如,对具有期望权重以及相关的组件资源总量的可选实施形式进行分类,且布局器对布局进行演变,以移动组件靠近期望实施形式的资源类型。
在优选实施方式中,本发明起始于表示RTL或行为设计(电路)的图以及芯片资源物理图。执行迭代转换,其中每次转换可对电路或电路中对象的布局进行优化或完善。
在一种实施方式中,转换由高层优化构成。该转换通过规则或数学转换而将组件或多个组件优化成功能等效且具有较优特性(例如,时序、功率或资源消耗)的可选的一组组件。此类转换的一示例为重新组织算术表达式,以降低树高从而改善延迟。另一示例为资源共享或不共享。
在另一实施方式中,高层优化转换将一组或多组电路对象从抽象的形式完善为更为具体的形式。完善转换的一示例为将算术表达式映射至芯片上的DSP资源。当抽象形式被完善之后,通常存在多个实施形式选择。例如,算数表达式可通过芯片上的专用算数功能(DSP块)、存储器内的表查找来实施,或可用芯片上的较低层的逻辑组件(LUT或门和触发器)来构建。行为综合流程中的组件可具有基于可选规划和资源共享所记录的多个实施形式。行为组件的此类可选形式还可基于当前可用资源以及互连延迟来动态生成。
在另一实施方式中,所述完善转换还具有基于可选实施形式的质量的紧急性度量,且可根据紧急性而被选择。可根据设计目标(例如,区域消耗、功耗或时序)来测量实施形式的质量。还可包括其他更为深奥的目标,例如单一事件扰乱难度(single event upset hardness)。例如,如果设计包含一个大的存储器以及若干个小型存储器,且大存储器在被逻辑结构实施时具有相对较差的实施质量,则相比于将设计中的中型存储器与芯片上稀有的专用存 储资源相关联,将大存储器与芯片上稀有的专用存储资源相关联则相对更为重要一些。因此,大存储器的紧急性度量远高于小存储器的度量。一旦组件被映射至特定实施形式并与芯片上的特定资源相关联,则到这些组件的连接便用作电路剩余部分的布局的锚(anchor),从而改善了时序质量以及可用资源的估算。
在一种实施方式中,所述布局转换可以是一个或多个可布局对象的位置的完善,以改善布局度量,例如,实例拥塞、可布线性(routability)以及电路性能。可布局对象可由行为综合组件、未被映射的逻辑的RTL块、被映射的逻辑、或这些项的任意组合构成。
在一实施方式中,所述布局转换能够修改不同抽象化水平的对象。例如,一些可布局对象可以是RTL块,而其他可布局对象可以是被映射的门。
在另一实施方式中,可在所述布局被演化得足够局部化以致于可确定可用资源并估算布线延迟时,触发完善转换。
根据本发明另一方面,用于设计集成电路的示例性方法提供一种增量式转换迭代,其中综合与布局转换并没有一定的顺序,仅根据他们的功能而被选择。电路设计自动化基于选择函数来选择下一转换(综合或布线)。在每一次迭代时,计算预定的转换列表的成本。该成本可包括预测(look ahead)其他转换中的成本变化。例如,如果将算术运算映射至ROM,则会移除用于其它运算的实施形式的ROM选项,从而增加了该其他运算的成本。可基于成本收敛标准(例如当前布局、网表、资源、时序或功率)来选择最佳转换。
下一转换可以是布局更新、资源分配、综合优化、布局优化或布线更新。因此,IC设计的状态可增量式地朝向最终的电路规格和布置(layout)推进。
在另一实施方式中,迭代地执行所述布局转换,直至关键路径开始成形,或直至根据预定的拥塞阈值资源足够分散。迭代性能的标准为时序、每资源 层(per resource layer)的拥塞、区域利用率以及功率。
所述每资源层的拥塞可通过使用资源层来确定。针对芯片上每一不同原始类型的资源,存在一资源层。例如,如今的FPGA和结构化ASIC均引入了原始芯片资源的不规则布置。这些原始类型包括逻辑(LUTS)、触发器、特定I/O单元(例如用于高速串行互连的串化器/解串化器(SERDES))、各种具有不同容量的存储组件以及用于加速DSP算法的高速算术块。除逻辑和触发器之外,通常,这些资源均以稀疏且可能不规则的形式被包括。许多FPGA具有有限数量的RAM、DSP以及以稀疏的列布置在芯片上的其他专用逻辑块。例如,仅在芯片布局中的两列有DSP算术块。资源层是针对每一原始类型所创建的分布图,并记录了针对所述类型的可用资源位置以及所述类型的每一本原(primitive)的布局。如果局部物理区供不应求,则称该层存在拥塞。
在所述方法的典型示例中,用具有时序约束以及布局约束(例如IO管脚、现有的元件平面布置或现有的布局)的高层表示来生成所述集成电路的设计的初始状态。该高层表示可为硬件描述语言(HDL)代码或对硬件描述语言(HDL)代码进行编译之后的与技术无关的RTL网表。
在一实施方式中,首先由基于时序的一系列中性优化(neutraloptimization)来对所述集成电路设计的初始状态的网表进行优化。所述中性优化可以是很容易撤销的任何区域恢复,例如资源共享或不共享;优选基于扇出(fanout)表时序的加法树分解;资源分配;有助于跨层级优化的网表的平化(flattening);复用器提取或重构。
在一实施方式中,集成电路设计的状态基本流程从RTL网表发展至分解、因素分解(factorization)、以及被映射及布线之后的网表。在该流程中,可执行布局修改、资源分配以及区域或时序优化。
在一实施方式中,可重复对布局和电路架构进行完善的过程,直至所有 高层组件均已被给定一个特定的实施形式且资源分配及布局已在芯片上展开以使得每个组件附近均具有足够的实施资源。基于此观点,可使用更多的传统物理综合流程来完成整个实施。
在另一实施方式中,记录所应用的转换及其潜在的可选转换。可重复所述流程,并可应用可选转换来实现更佳的效果。
本发明还公开了包括软件媒体的设备,所述软件媒体可用于设计集成电路。例如,本发明包括数字处理系统,该系统能够根据本发明来设计集成电路,而且本发明还提供机器可读媒体,当该机器可读媒体在数字处理系统(例如计算机系统)上执行时,可促使该数字处理器系统执行用于设计集成电路的方法。
通过附图以及以下详细描述,本发明的其他特征将显而易见。
附图说明
附图中的图示以示例的方式而非限定性地示出了本发明,其中相同的参考标记表示相类似的元件。
图1显示了现有技术的用于设计集成电路的方法;
图2显示了现有技术的物理综合的示例性方法;
图3显示了根据本发明一种实施方式的设计集成电路的方法的流程图;
图4显示了根据本发明一种实施方式的设计集成电路的另一方法的流程图;
图5A和图5B显示了根据本发明某些实施方式的设计集成电路的方法的细节;
图6显示了根据本发明一种实施方式的设计集成电路的方法的流程图;
图7显示了对形状和资源进行的示例性估算;
图8显示了针对资源类型的示例性映射;
图9A和图9B为存储资源的示例性映射;
图10A和图10B为示例性的资源共享实施形式;
图11显示了加法树分解的示例;
图12显示了门级树(gate tree)分解的示例;
图13A和图13B显示了切片优化的示例;
图14显示了复制优化的示例;
图15显示了香农扩展的示例;
图16A和图16B显示了复用器/可编程复用器合并(collapsing)及时序驱动分解的示例;
图17显示了可与本发明一起使用的数据处理系统的框图示例。
具体实施方式
在此描述了用于设计集成电路或多个集成电路的方法和设备。在以下描述中,出于说明的目的,列出了大量特定细节,以提供对本发明的透彻理解。然而,对于本领域技术人员而言很明显的是,本发明可在缺少这些特定细节的情况下实施。在其他实例中,公知的结构、过程和装置以框图形式被显示、或简要地引用,以使得解释不至过于繁琐。
本发明公开了设计集成电路的方法和设备,在一种实施方式中,所方法和设备将布局和综合整合到单个通道(pass)中。本发明的实施方式公开了一种物理综合过程(称为架构物理综合),其中综合与布局之间的相互作用出现在架构层。这使得可利用集成电路基板表示上的实际物理布局进行综合,可为综合提供可用的局部资源以及与布局的实际电路时序密切相关的延迟估算,从而可同时考虑综合与布局之间的相互影响。此外,这可通过考虑布局、拥塞估算以及目标芯片架构的特性(该特性包括但不限于不同资源的物理分布、组件延迟以及互连延迟)的方式来提供作出高层架构决策、映射 高层组件或进行高层电路转换的自动化方法。根据本发明的一方面,在给定电路设计或HDL代码表示的情况下,存在大量对综合与布局进行连结(interlink)的可选实施形式,尤其是对于具有给定分布资源的现有元件平面布置。为获得最佳设计实施形式,能够基于当前通过布局收集的可用电路数据(例如,时序或功率)来回溯跟踪早期的综合决策是很重要的。
因此,在本发明的一方面,在综合周期的早期(例如,在电路架构层、高层设计或行为表示中)执行布局,以允许精确评估各种设计实施形式的适用性。这对于并未在芯片上均匀分布资源的预扩散芯片(例如,FPGA和结构化ASIC)而言是极其重要的。在预扩散芯片中,资源的位置和资源类型被预先定义,且以稀疏形式被分布。例如,如今的FPGA和结构化ASIC已引入了芯片资源不规则布置。这些组件可包含逻辑、触发器、特定I/O单元(例如,用于高速串行互联的串化器/解串化器)、各种具有不同容量的存储组件以及用于加速DSP算法的高速算术块。许多FPGA具有有限数量的RAM、DSP以及布置在芯片上的稀疏列上的其他专用逻辑块。例如,可仅在芯片布置中的两列中有DSP算术块。
一方面,本发明提出了芯片架构演进中的这一变化,以在综合流程起始处对物理布局和架构选择进行整合。该需求可位于RTL层或确定所需不同类型资源的数量的行为综合层。
当前知晓资源布局信息以及在综合过程早期(例如,设计中的许多组件并未具有所选的实施形式时)对布局和综合进行整合可提供资源的优化利用。例如,并不知晓资源布置信息的RTL综合过程可产生一中间网表,该中间网表过度使用了一些资源类型,而其他资源类型并未得到充分利用。此外,资源类型决策可能与资源的物理位置并不协调。例如,在芯片的局部部分所需的DSP资源可能超过了可获得的资源。本套综合方法可通过知晓资源在芯片上的分布而提供这些资源的有效利用,且不仅可知晓是否存在足够 的特定资源,而且还可知晓附近是否存在足够的特定资源。因此,由于将信号布线至位于较远处的资源从而可避免大的互连延迟。
根据本发明的一方面,可在综合仍处于高层电路表示(例如,设计中的许多组件还不具有所选实施形式)、或门级描述仍待确定时,确定各种布局决策。该布局决策可使得对电路参数(例如,时间延迟或功耗)进行精确评估成为可能,且允许了一条实现最佳设计实施形式的增量式路径。在一种实施方式中,如图3所示,在操作30中,过程起始于IC设计的初始状态,该初始状态可包括ESL或HDL语言、行为抽象化、或编译后的HDL代码至RTL网表的高层抽象化,以及时序、元件平面布置、功率和布局约束。在操作31,执行综合转换,在该过程的早期阶段,该转换可为高层转换。所述综合转换可不仅仅针对部分所述设计。在操作32,在现有的电路表示上执行布局转换,且在早期阶段,该转换可以是架构层上的布局。所述布局转换可不仅仅针对部分所述设计。在此操作处,布局决策可能需要各种假设和估算,因为在该早期阶段可能缺少详细信息。之后在操作34,评估IC设计状态的准备程度,如果该准备程度满足了所设计和规范的目标,则进行至操作48中的传统物理综合。如果所述目标并未被满足(这在该早期阶段是很常见的),则循环回到另一轮综合。
综合的下一迭代(当前操作31)可对设计表示进行改进,尤其是在拥有物理布局信息(之前的操作32)之后。而且类似的,在拥有综合的改进之后,布局的下一迭代(当前操作32)可改良其对电路参数的估算。利用此类紧密循环,综合与布局可一起密切地工作,以提供一条实现最佳设计表示的路径,且不需要大量的返工(rework)。
在一实施方式中,所述综合操作提供了电路设计表示的各种实施形式,且所述布局操作可执行电路参数分析,以助于缩小选择范围。例如,如果实施形式#1明显较优,则其将被选择,从而将潜在实施形式的数量缩小为一。 可选地,如果实施形式#2明显位于设计约束的范围之外,则其可被排除,从而可使潜在实施形式的数量减一。
根据本发明的一方面,用于设计多个集成电路的示例性方法根据抽象机器规格给出了经整合的、相互影响且迭代的综合与布局。在一种实施方式中,所述设计集成电路的示例性方法增量式地改变IC设计的状态。起始于IC设计的初始状态(该初始状态包括ESL或HDL语言、行为抽象化、或编译后的HDL代码至RTL网表的高阶抽象化,以及时序、元件平面布置、功率和布局约束),所述示例性方法迭代地增量式地改变IC设计状态,直至达到了最佳设计状态。该最佳状态优选为满足时序和布局约束的芯片原始级网表,之后该网表可被传递至传统的布局和布线过程,而不需要大规模的修正工作。
因此,根据一方面,本发明公开了综合与布局的迭代过程,其中每一次迭代对集成电路的设计提供增量式改变。现参考附图4给出本发明某些实施方式的主要示例。图4的方法起始于操作40,其中生成IC设计的初始状态。该IC设计的初始状态包括行为表示或高层RTL网表,该网表可由描述电路和逻辑的HDL源代码编译得到。
所述与技术无关的RTL网表通常是设计的更高层的行为表示。这保存了抽象信息,该抽象信息可用于最终映射步骤之前的过程。这与传统综合工具的不同之处在于,在进行语言编译之后,立即将设计分段为微小的低层(门级)表示。通过保留更高层的行为表示,综合工具可在更为全局的水平上执行优化、划分和元件平面布置,且通常可给出较好的结果。通过对抽象数据进行操作,所述综合工具还可运行得更快,并可处理更大型的设计。所述高层RTL网表包含高层抽象化(例如,电路块表示),该网表与任何特定厂商的技术或架构无关。
所述IC设计的初始状态还包括时序约束、功率约束以及布局约束,例 如,IO管脚位置、现有的元件平面布置或现有的布局(例如,IC芯片的尺寸和形状、IP块)。在操作42中,增量式地改变所述IC设计的状态。集成电路设计的状态主要包括网表、时序数据、资源信息、布局信息、布线信息和功率数据。设计状态中的增量式改变可以是综合或布局修改,且这将在以下进行描述。在本发明的一方面,所述改变是增量式的,这意味着设计优化通常通过对所有当前信息(例如,时序估算和布局约束)进行少量修改来进行。所述增量式改变允许所述设计满怀信心地稳步推进。在一方面,所述增量式改变涉及增量式全局布局算法,例如力导向(force directed)方法。在另一方面,所述增量式改变涉及全局优化算法,例如模拟退火法(simulatedannealing)。在操作44中,评估所述IC设计的状态,并在操作46做出是通过回到操作42来继续进一步的迭代还是在操作48完成设计流程的决策。
本电路设计方法在集成电路设计的两个基本步骤之间设置高度集成且迭代的过程,该过程为综合和物理设计(例如,布局和布线)。由于在没有布局的情况下无法在综合中对设计约束进行准确估算,且在没有综合的情况下无法执行布局,利用综合与布局强烈地相互依赖的理念,本发明的设计方法通过增量式迭代方法有效地将综合与布局合并成一个步骤过程。
在一种实施方式中,本发明提供综合/布局转换的迭代。该迭代过程的主体可以是布局转换、综合转换或者综合与布局转换的组合。无论在哪种情况下,集成电路设计的状态均增量式且迭代地朝向满足设计目标的芯片原始级的综合或布局改变。图5A和图5B示出了用于设计IC的部分流程的两个示例,在图5A所示方法的情况下,首先进行布局转换,之后进行综合转换,而图5B中则相反。综合、布局或综合/布局的增量式且迭代的转换提供了在设计的任何状态下综合与布局之间的连续互动。综合与布局的增量式且迭代的进展确保了所述综合转换总是具有最新且最精确的设计状态信息(该信息包括延迟信息以及来自布局转换的局部资源可用性),且其中所述布局转换 总是基于最新的综合网表,提供对物理布局和连线信息的最好估算。布局与综合转换持续进行,直至所述网表仅由芯片级本原所构成、满足了设计目标、且布局拥塞被减小至零件布局器(detail placer)可很容易独立地使得任何微小局部区域合乎规范的水平。该流程之后,可进行传统物理综合流程,以完成整个实施。
图6显示了本发明的用于所述IC设计状态的增量式改变的实施方式。本发明可同时设置(place)各层抽象化。相比于后期迭代(其中,设计几乎由芯片本原所构成),在早期迭代期间,较高层的抽象化对象更为普遍。芯片本原实例通常为最低层表示。综合转换逐步修改所述网表,将高层抽象化的对象变为更具体的对象。这些具体对象具有更为特别的资源需求,该需求可在后续的综合与布局转换中被考虑。布局转换确定网表实例(RTL实例、未被映射的实例、被映射后的实例、或芯片原始级实例)的位置,从而确定电路中除布线器(router)之外的网络的长度及延迟。所述布局转换可朝着规范布局(其中,规范的布局意味着满足对IC芯片资源的使用进行管理的规则)逐步迭代电路参数。一般而言,在早期迭代中,布局与规范相差较远。由于所述布局转换可对对象位置进行增量式改变,因此布局转换的单次迭代并不能创建合乎规范的布局。通过反复的布局转换,所述布局将变得合乎规范。在本实施方式中,所述布局转换对于本电子设计自动化而言极其重要。
在每一次迭代中,迭代的标准可以是时序数据、每资源层的拥塞、区域利用率、功率水平或他们的任意组合。所述方法可进一步包括可能的内部循环迭代以优化所述设计、形成关键途径、或根据预定阈值散布所述资源。
通过本发明的综合与布局转换的增量式迭代方法的实施方式,在设计的任何阶段,总是可以在综合转换时获得物理设计信息。因此,所述综合中的优化和转化在时序、区域以及对可布线性的影响方面总是最新的。在综合中所作出的有关电路结构的决策与所述布局充分配合。
本发明的综合与布局转换的增量式迭代方法有效地将综合与布局转换组合起来,从而可同时优化逻辑结构以及电路的空间布局。在该方法的普通示例中,集成电路的设计状态增量式地向最终的电路规格和布置进行改进。
迭代的布局转换的改进可以是网表或布局配置的成熟化的增加程度。设计的成熟化通过以下各项的程度来度量:网表仅由芯片级本原所构成、满足了设计目标、以及布局拥塞被减小至零件布局器(detail placer)可很容易独立地使得任何微小局部区合乎规定的水平。
所述反复迭代的综合转换的改进可以是综合优化,例如对对象或实例进行重构或复制以满足时序约束。综合优化包括但不限于:电路优化、抽象组件分解、算术映射、不进行/进行资源共享、加法树分解、基于布局的与/或门分解、路径复制、路径绕行移除(path detour removal)、对离散资源(例如,RAM或DSP)的分配、逻辑因素分解、复用器重构、或有助于跨层级优化的网表平化。
图6显示了该方法的实施方式,该实施方式起始于操作61,在操作61中生成IC设计的初始状态。该IC设计的初始状态可以是具有相关状态信息(例如,时序数据、资源信息、布局信息、布线信息和/或功率数据)的RTL网表。一般而言,所述IC设计的状态包含足够的信息来指明电路需求,例如功能、时序、功率和元件平面布置。
高层RTL网表包括一网表,该网表中大多数对象均为低层芯片本原的抽象表示。多组相关本原可被表示为具有高层表示(表示经RTL编码的功能)的对象。集成电路的高层表示或抽象表示可以是逻辑对象,表示RTL代码或部分RTL代码。每个对象通常表示多个芯片本原,例如更为复杂的功能(例如,加法器、乘法器、复用器及顺序逻辑)以及AND功能、OR功能。具有高层表示的对象还可以包括存储块或私有(知识产权块或IP)块。其他逻辑对象可为部分RTL代码,以提供支持功能,例如胶合逻辑(提供 缓冲器或接口功能)、时序逻辑、控制逻辑或存储逻辑。一些高层RTL对象还可以为芯片级本原。由对象构成的网表还可包括与每个对象相关的用于连线和布局的信息。所述对象可以包括用于变回至(map back to)相应RTL代码的信息。
此外,RTL代码可包含多个层级,其中多个功能被组合在一起。在一些情形中,多个组件可从一个层级重新分组到另一层级,以优化时序、布线、区域或功率需求。在其他情形中,可在增量式迭代过程期间,整体或部分地对功能RTL层级进行平化。
首先,设计的初始状态可包括约束,例如时序约束、功率约束和/或布局约束。例如,布局约束可包括IO管脚的位置、现有的元件平面布置或现有的布局数据。
在示例性实施方式中,可由基于时序的一系列中性优化来对所述设计的初始状态进行首次优化。所述中性优化包括很容易撤销的任何区域恢复,例如,撤销/进行资源共享;基于扇出表时序的加法树分解;明显的资源完善(refinement),例如如果设计中存在巨大的RAM且仅存在一个可用的RAM块资源,则所述RAM必须位于所述RAM块;有助于跨层级优化的网表平化;以及复用器结构的提取和重构。
在操作62,基于当前设计状态(当前布局、网表、资源、时序、功率和布线)选择下一转换,以增量式地改变所述IC设计的状态。操作63-70为根据本发明一种实施方式的普通转换,包括布局或更新布局(63)、分配资源(64)、因素分解(65)、映射(66)、优化逻辑(67)、创建/完善实施形式(68)、更新布线(69)以及其他综合(70)。所述转换通常是小的增量式操作,以允许布局与综合准确无误的整合,即,在知晓布局的情况下执行综合,且在知晓综合的情况下执行布局。
因此,迭代和增量式转换63-70包括布局与综合操作,包括优化转换以 及布局转换,所述优化转换例如为撤销/进行资源共享、加法树分解、AND/OR门分解、逻辑复制、比特拼接(bit splicing)、绕行移除、因素分解,所述布局转换例如为对离散资源(RAM、DSP等)的分配以及布线。
在示例性实施方式中,在每一次迭代时,在操作62基于价值函数对各种潜在转换进行评估。所述价值函数被设计为用于选择最佳转换来进行首次操作,从而包括设计状态信息,例如时序、布局拥塞、布线拥塞、区域利用率以及功率。在评估之后,执行最佳转换,且继续进行迭代,直至满足了设计约束。在一方面,所述设计之后可进行到传统的门级布局和布线。
在每一次迭代时,所述方法经过一列选择,并基于价值函数选择最佳转换。例如,布局转换与综合转换之间的选择是基于时序收敛判别标准的。在关键路径上,如果可能的话,布局可试着缩短临界网络(critical net)。如果临界网络不能被缩短,则该网可用于物理综合优化。
根据本发明另一方面,用于设计集成电路的示例性方法提供转换迭代,其中综合与布局转换没有一定的顺序,其中在迭代中,下一转换是基于集成电路设计的状态而被选择的,以向具有时序和布局约束的最终配置改进。在一种实施方式中,所述方法提供转换选择算法,其中下一转换是基于某一标准(例如,时序、每资源层的拥塞、区域利用率以及功率)而被选择的。所述下一转换可以是布局的更新,其中电路将经历一次迭代以进行布局改变,使得当前网表具有更少的资源拥塞或更好地满足设计目标。所述下一转换可已是综合优化,例如,因素分解、优化或分解。所述下一转换可以是综合优化,例如分割、重构或复制,以满足时序或关键路径需求。所述下一转换可以是综合,其中当前网表可朝着芯片原始级网表被映射至较低的抽象水平,以定下电路规格和布置、或更新布线。
所述下一转换可以是布局优化,例如元件平面布置划分、资源分配、用于满足时序或关键路径需求的逻辑重构或复制、或更新实例布局的布线。所 述下一转换可以是综合操作,其中当前网表可朝着芯片原始级网表被映射至较低的抽象水平,以定下电路规格和布置。
利用增量式转换,设计状态信息(例如,时序和功率)是最新的,从而可通过精确考虑对目标的影响来执行优化。
在可选实施方式中,可选择若干个转换。之后应用每个所选转换来测量对设计状态的影响,并在之后进行恢复或撤销。之后,选择和应用最佳转换。
在一实施方式中,本发明的关键步骤为操作68,该操作针对网表中的每个RTL对象创建或完善可能的实施形式选择。相关函数执行对每个可选实施形式所需的形状和资源的估算。在另一实施方式中,操作68还可以为每个实施形式分配权重,以表示优选实施形式。在架构层合并了综合与布局的本发明的一个关键优点在于,允许对不同架构实施形式进行评估。在没有本架构物理综合的情况下,一旦在RTL综合阶段选择了实施形式,则在门级布局阶段,将不可能对高层信息进行恢复。如果其他实施形式已是优选的,这可能造成次优选。因此,如果利用物理信息在RTL层作出了实施形式决策,则可获得更佳的时序效果。在电路已被映射用于布局和布局阶段之后,该转化将很难被执行。
随着迭代的进行以及设计状态的完善,操作68可利用下级特性(inferiorproperty)来排除实施形式选项。下面将利用函数示例F来解释操作68,该函数F实现为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),因为其使用资源以用于两个成本非常高的乘法器。这即使在传统流程的布局将未被利用的专用乘法器资源附近的该函数替换为其关键输出和在A、B和C之后到达的选择信号S的情况下亦是如此。在本发明中,操作68可创建这两个实施形式以及可能创建排除明显较差的实施形式之后的其他实施形式。例如,随着迭代的进行,可清楚了解到,输出F并不关键。在此情况下,操作68可将实施形式选项精简至仅图10B这一种情况,因为该实施形式使用更少的资源。可选地,如果F和选择信号S非常关键且附近存在实施乘法器的可用资源,则操作68可排除图10B中的实施形式。
FPGA芯片通常具有多个预扩散存储资源(例如,触发器)以及多个具有可变比特大小的块(例如512、4K以及MRAM)。设计所需要的存储组件的大小亦可改变。一般而言,不清楚应该如何实施这些存储组件。例如,可利用触发器、512的资源或者甚至4k的资源来实现2至512比特之间的适当大小的RAM。而且,芯片上用于较大存储尺寸的资源站点(resource site)通常是非常稀少的。在之前的EDA工具中,在存储器实施阶段无法得到布局信息。因此,实施形式决策是在没有局部使用和精确时序信息的情况下作出的。该限制可导致严重的性能下降。如果适当大小的RAM被实施为512的资源且仅有的512站点位于与所述RAM所连接至的逻辑相远离的位置,则使所述RAM成为512将导致很长的内部连线,且会使在起伏实施方式(flip-flow implementation)上使用512站点的延迟效果失效。即使使用触发器的实施形式的延迟可能较长,但如果该实施形式允许RAM的触发器与该RAM所连接至的逻辑之间的互联线路更短,则可能造成更高速的设计。可 选地,如果所述RAM的连接逻辑附近存在4K可用资源,则实施为4K可能是有益的。因此,存储器实施形式决策应该在考虑各种可用存储资源以及连接至存储器的组件的位置的情况下作出。
图9A示出了存储器实施形式决策的示例。该图显示了示例性芯片,该芯片具有位于该芯片的顶部和底部的存储资源。4比特的RAM连接至位于芯片右侧的垫脚以及AND门。如果该RAM被实施为存储器且被置于芯片的顶部,则可能导致该存储器与芯片的垫脚输入以及芯片所驱动的AND门之间的互联线路非常长。图9B显示了同一逻辑的可选映射。通过使用附近的逻辑来实施所述RAM,因此使得互联线路和延迟更短。
与操作68密切相关的是估算实施形式所需形状和资源的函数。在一种实施方式中,该函数执行映射,以估算用于RTL组件的资源。在另一实施方式中,所述映射是针对目标芯片架构的。这些资源估算是基于综合的,该综合被设计为估算逻辑需求以及特定组件的输入/输出需求从而在目标架构中对模块进行实施。此外,在一种实施方式中,所述函数还估算所述组件的时序转换(timing transition)。
图7示出了将两条总线A[31:0]与B[31:0]相加以得到第三条总线O[31:0]的加法器的示例。实施该加法器所需的逻辑区域是通过转换、估算所述实施形式、确定所需资源以及从其输入至其输出的内部转变延迟而被估算的。在某些方面,例如,所述加法器可通过使用两个逻辑阵列块(LAB)(每个逻辑阵列块由16个查找表(LUT)构成)来实施的。
操作65-67及操作70为示例性综合转换,例如逻辑因素分解(操作65)、逻辑映射(操作66)、逻辑优化(操作67)以及抽象化(操作70),其中可修改RTL网表所表示的组件和连接,以产生功能等效电路,该电路改善了设计状态,例如时序、功率。这些转换可添加或移除组件及其内部连接。转换示例包括执行组件复制、或分割单一的RTL组件。
所述示例性实施方式展现了一大类实施形式选项(这些实施形式选项可用于I/O、不同大小的存储器、CPU以及DSP)中的一种非常简单的情况。不同的设计可能需要以不同的方式使用这些资源。本发明的抽象化转换(操作70)能够基于时序信息、被连接组件的位置、每个资源类型的利用率以及布线利用来改变实施形式。所述抽象化转换与所述创建/完善转换(操作68)相类似。虽然操作68创建了多个可选实施形式(该多个可选实施形式被保存并在后续的迭代中被评估),但是,所述抽象化操作可从更为具体的实施形式抽象化出抽象组件。考虑抽象组件的各种实施形式,并选择最佳实施形式来替代原始实施形式。该技巧可避免选择,该技巧可列举出所有可能的架构映射选项,并通过映射、布局以及布线而运行所有这些选项。
图11给出了抽象化转换的示例,该图显示了加法树分解操作。加法树分解将n输入加法器分为m输入加法树。在没有从布局得到延迟信息的情况下,该优化不具有关于至加法器的输入位于何处的信息,且仅基于对输入到达时间的粗略估算来形成加法树。在本示例中,如果所有的输入均来自寄存器,则他们大致上具有相同的到达时间。所述分解将为叶节点选择(a,b)、(c,d)以及(e,f)组合。然而,输入b和d、a和c可靠近放置。利用布局信息,最好是为叶节点选择(a,c)、(b,d)、(e,f)组合。这将在输出端产生更佳的时序。
图12显示了门级树分解的另一抽象示例。综合流程中的关键步骤为将大型门(具有许多输入,例如32个输入AND门)分解成树表示。该阶段一般在流程早期执行一次,以及对树分解的决策并不包括有关所述大型门的驱动器位置的任何信息。本发明包括作为转换的门级树分解和重排,所述转换是布局和时序识别。最不关键且最早到达的输入信号被置于所述树的叶级,且与其他附近的次关键输入分为一组。当时序并非要素时,输入信号根据该信号的驱动器的位置而被分组。
操作67的优化逻辑转换对网表进行改变,以针对设计目标(例如,时序或功率)来进行优化。所述优化转换的示例为切片操作,如图13A所示。如果宽的本原的输入或输出间隔很远,则对该本原进行分割是有益的。该优化只能基于布局信息被执行。以下示例显示了此类情况,该示例针对2比特的存储器a[1:0],其输出间隔非常远。所述存储器可被分割成2个触发器,该两个触发器之后可被置于靠近他们的输出。
在另一示例中,基于组件的扇出或扇入信号而对该组件进行划分。例如,图13B所示的示例显示了存储器,该存储器基于该存储器扇出的位置而被分为3个簇。从而,原始组件(被示为单个框)被划分,以创建三个新的组件,该三个组件根据其相应的负载而被切片。可基于组件的输入信号来应用类似的划分。该优化是通用的,并不限于存储器。
图14示出了另一示例性操作,即逻辑复制。复制的情形非常类似于分割。对于具有多个相互远离的输入或输出的组件,制作该组件的副本并将其置于靠近关键负载是非常有益的。该优化可仅基于布局信息而被执行。以下示例显示了此类情况,该示例针对其输出相隔非常远的组件。该组件可被分割为两个实例a_1和a_2,该两个实例之后可被置于非常靠近他们的输出。这在驱动器的扇出很高时是很常见的。仅所述实例的一个副本被保持在给定物理范围内。
图15显示了另一示例性操作,即香农扩展。对于具有很大延迟的RTL元件的输入锥(input cone)处的逻辑(例如,加法器或乘法器),可将关键输入网络“置前(pull ahead)”,以改善时序。所述逻辑被复制,且关键网络被替换为恒定输入0和1,以及复用器被用于选择两个运算符的输出,且关键网络选择哪个运算符副本是输出。可基于恒定输入来进一步简化所述两个逻辑副本。此外,这是优选在知晓逻辑以及驱动该逻辑的关键网络驱动器的位置的情况下而被执行的优化。。
图16A和16B显示了再一示例性操作,即复用器/可编程复用器(该可编程复用器被定义为具有独热编码选择的复用器)合并及时序驱动分解。大型复用器在商用电路中是很常见的。对复用器进行分解非常类似于之前提到的加法树及AND/OR树分解。只是选择逻辑使得复用器分解更加困难,因为在树内移动较晚到达的输入不仅会影响树结构,而且还会影响所述选择逻辑。对于其他的分解而言,本发明包括基于布局与布线的时序信号,以确定合适的分解。
操作69为更新布线。本增量式迭代方法为集成电路提供了较佳的可布线性,以改善设计的性能、噪声灵敏度、产量、区域以及功率。增量式迭代过程可逐步改善芯片上的线路拥塞,该线路拥塞为每单位区域所需的线路资源密度。
所提到的许多转换均对FPGA的功耗存在影响。例如,存储器被分解的方式(列相对行的形式)会影响该存储器的功耗。行分解使用更少的功率,但需要附加复用,该附加复用引入附加延迟。在本发明中,可确定用于优化功耗的行相对列的分解,因为利用综合与布局之间的密切联系,可得到精确的延迟信息。
操作63是布局转换、或更新布局转换。所述布局转换对网表实例(例如,RTL对象、未被映射的实例或芯片原始级实例)的位置进行修改,从而可确定电路中除布线器操作之外的网络的长度和延迟。
所述布局转换可根据网表与布局的成熟化来使用各种布局方法。在示例性实施方式中,本布局器采用增量式算法。增量式算法为响应于输入的微小改变而对算法输出产生增量式改变的算法。例如,可使用全局布局(例如,力导向布局)来放置成熟度较低的网表和布局。所述力导向布局(FDP)方法是本发明全局布局的优选选择之一,因为其为增量式方法,其中FDP的迭代可生成增量式布局改变。一般而言,FDP使用二次规划技术来对网络进 行建模,并确定重叠的实例应该如何展开。
在一实施方式中,第一步FDP解决了不受约束的二次规划问题,该步骤仅对用于对实例进行互连的网络进行建模。该初始方案一般具有很高的拥塞。之后,FDP迭代地构建扩张力(spreading force),以将实例从过度拥塞(很高的实例利用率)的区域移至不拥塞(很高的资源可用性)的区域。这是所述用于使得FDP成为增量式算法的迭代步骤的属性。可在所述迭代之间对网表或其他设计状态数据进行改变。当这些状态改变是增量式的时,FDP中的最终改变对于并未作出设计状态改变的FDP而言也应该是增量式的。
存在各种FDP算法,但所有这些算法均共享一基本理念,即对实例应该移向的方向进行计算,以消除过度拥塞的区域。在给定布局中,假定网络所连接的实例对彼此施加吸引力,该吸引力与实例之间的二次距离成正比。在之前的工作过程中,所有实例均相互排斥,且被吸引至所有布局站点,即使该站点并不适合于该实例。之后,实例被移动,直至系统实现了最低能量状态的平衡。之后,所述FDP方法基于施加于实例上的总力的方向来移动该实例。
一方面,本发明提供了用于对许多现代可再编程芯片的混杂(heterogeneous)资源进行寻址的新式混杂资源布局以及一些ASIC设计流程。例如,大多数FPGA具有各种预定芯片资源,例如IO、DSP、RAM、LUT、FF等,这些预定芯片资源仅存在于特定站点。这些预定资源是FPGA芯片的预扩散属性的结果。每个资源站点对于可置于该站点的实例数量存在限制。例如,对于Altera Stratix-II芯片,可将16个或更少的LUT和FF置于LAB站点,且存在3个不同的RAM站点,该三个RAM站点分别拥有512比特、4K比特以及64K比特。
在示例性实施方式中,本增量式布局解决了混杂资源问题。在FPGA、 结构化ASIC以及一些ASIC芯片中,资源可仅被置于某些站点,该站点通常并未均匀分布在布局区域上。大多数全局布局器(包括所有之前的FDP)均假定了混杂资源,其中任何实例(无论其类型如何)均可被置于芯片边界内的任何有效区域。该先前方法简化了布局问题,因为所有实例均被视为简单的直线型对象(rectilinear object),且只要这些对象没有重叠并位于芯片边界内,布局便是合乎规定的。该简单矩形模型可允许特定类型的实例被置于资源不够充足的邻域。该假设忽略了这一事实,即对于混杂资源而言,每个资源均具有实例必须被置于的特定组的站点。虽然该“组合的”布局可能不存在任何重叠,但当考虑实际资源类型时,该布局可能远远超出了规定范围。模拟退火布局器中的一些先前工作过程已考虑了资源信息,但这些布局器仅被用于放置静态映射网表,而非RTL对象。此外,模拟退火可用于非常小型的设计,并且对于大型设计而言,模拟退火会由于运行时间而变得非常困难。
一方面,本发明对每个不同的资源站点分别进行了建模,以使得在所有布局转换中,均可由布局器对资源需求进行优化。一方面,本发明对任意数量的站点类型(称之为“层”)进行了建模。这些层被用于确定每一实例上的扩张力。在一种实施方式中,所述层创建于初始阶段。针对芯片上存在的每个资源类型,创建层。层的资源站点记录于该层的供应分布的相应位置。分布为类似于矩阵的二维数据结构,其中一位置处的值给出了该位置处的供应的值。
每个实例均被分配给为其消耗资源的层。消耗单个资源类型的实例被称之为原始实例,而消耗多个资源的实例被称之为非原始实例。非原始实例的示例可以是状态机,该状态机消耗了LUT和FF站点类型。分配给层的每个实例所利用的资源均被记录在层使用分布中。本方法规定了一种非原始实例,通过将所述非原始实例的区域记录在具有该非原始实例所需资源的所有 层上来进行处理所述非原始实例。这些使用所起的作用会反过来影响每个非原始实例的层的力的计算。
对于层而言,其使用与供应分布之差即为该层的拥塞分布。针对先前的FDP方法,可使用该拥塞分布来计算层上每个实例的力。
可通过考虑来自其每个资源层的力的加权平均值、或基于那些资源的局部拥塞来计算非原始实例的力。应用至每个层的权重可以是统一权重(uniform weight)或取决于层资源的相对离散性的权重。资源的离散性可通过以下各项来描述:资源所处位置间隔多远、资源的稀疏程度如何、或资源分布的均匀程度或非均匀程度如何。
在一实施方式中,可类似于非原始实例的情况计算具有多个可行实施方式的组件的力。可通过考虑来自其每个实施形式的资源层的力的加权平均值来计算所述力。应用至每个实施形式的资源的权重可以是统一权重或取决于选中给定实施形式的概率的权重。
本发明的优点在于,实例的力仅取决于使用相同资源类型的其他实例和对于该资源类型的资源供应。例如,如果实例A和B均具有使用资源C的部分,则实例A(或实例A中使用资源C的部分)上的力取决于实例B中使用资源C的部分,而且还取决于可用于布局的资源C。不同层上的实例的扩张力并不会相互影响。
一方面,当全局布局器终止时,每个实例均位于适用于其类型的有效站点处或附近,因此可利用很小的移动使得布局合乎规定。相比于先前的FDP(要求所有的实例均被建模为单个类型,所有资源区域均被组合,且实例之后被散布在组合后的区域上)而言,该方法是全新的。
在示例性实施方式中,本发明的架构物理综合可改善资源利用问题。芯片资源超出了电路需求的情况是很常见的。例如,在FPGA设计中,将被实施的电路可能需要150个LUTS,而于其中实施该电路的芯片或部分具有256 个LUTS。该问题被称之为资源利用问题。当忽略该资源利用问题时,布局器通常将电路实例均匀散布于可用资源之上,即使可通过具有可变资源密度的布局而实现更佳的结果。先前的布局器要么忽略该问题,要么插入额外的“填充”实例。填充实例是不会给电路添加连通性的额外实例。“填充”实例的使用也是存在问题的,因为必须确定这些实例的位置。
在示例性实施方式中,本发明采用区域移除方法来解决资源利用问题。对于力的生成而言,每个资源层均被单独考虑。在所述区域移除方法中,资源基于他们的质量而被利用,低质量的资源被移除。首先确定质量度量,之后分析资源供应,以基于他们的质量来确定资源的等级。之后,将低质量的部分移除到布局器的布局站点考虑之外。由于布局中的改变会影响资源的质量,因此可在布局过程期间多次执行等级评定和移除。因此,该过程非常适用于本发明对设计状态的迭代增量式改善。
在一实施方式中,用于形成所述等级的质量度量是基于资源的使用距离的。一种计算力的方法的副产物是得到层的密度分布与格林函数的褶积(convolution)。该褶积的结果可被视为拓扑图,其中较高的点指示需要资源,较低的点表示缺少需求。由于分布是由离散框构成的,因此可基于褶积结果对这些离散框进行分类。可按照褶积顺序,通过以具有最低值的资源为起始点来遍历供应并移除资源直至所需的资源被移除,以确定将被移除的资源。一方面,所述方法可留下足够的资源,以使得存在足够的资源来满足实例对该层的需求,且使得芯片是可布线的。
可选地,在其他示例性实施方式中,本发明采用力程(force range)方法来解决资源利用问题。在所述力程方法中,作用于每个实例上的力均为来自多个力程的力的加权平均值。一方面,短程加权因子与该短程区域内实例的密度成正比,在所述短程区域中较高的局部密度产生较强的力。因此,该比例性可增强实例扩散,以减少重叠。
利用所述力程方法,应用至实例的力取决于该示例邻域内的实例密度。主要思想在于,实例的扩张力应该取决于在其邻域内对该实例进行合法化所需的区域。在大多数极度拥塞的情况(所有实例均重叠在很小的邻域内)中,可基于所有实例及所有资源的位置来计算每个实例上的力。在最小拥塞的情况(其中实例在其邻近并无其他实例,且直接位于资源之上)中,实例将不具有任何力。对于这两种极端情况之间的情况,所述力取决于对实例进行合法化所需的区域中的实例和资源。
在一实施方式中,所述力程可分为近程、中程以及远程力。在其他实施方式中,可使用更多或更少的力程。一般而言,在计算与存储资源之间进行折中来确定领域的合法区域以及每个合法范围的力。一方面,可通过改变格林函数的大小来对力进行计算。远程格林函数覆盖整个布局区域;小型格林函数覆盖圆形区域,该区域的半径例如为平均实例区域的五倍;以及中程格林函数具有的半径例如为平均实例区域的10倍。实例上的力为该实例的近程、中程以及远程力的加权和。所应用的权重由所述实例邻域内的密度所决定。如果所述邻域非常稠密,则所述长程力将具有非常高的权重,且近程权重为0。低密度区域内的实例将具有零长程权重以及很高的近程权重。
本方法的另一方面在于,能够确定很重要的架构决策,该决策可确定哪些资源应被用于实施架构结构。在架构层,存在多个决策,例如在FPGA上,应将小的RAM映射至512比特的RAM资源还是4k比特的RAM资源。其他示例包括对乘法器实施形式及之前所提到的诸如加法树分解的情况的决策。但是本发明并不限于这些特定示例。利用布局信息的可用性,本发明可对满足设计目标的重要架构实施形式决策进行完善。示例性的示例是这样的情况,即1k比特的存储器可被分配给两个512比特的资源或单个4k比特的资源。如果所述1k比特的存储器所连接的逻辑位于非常靠近512比特或4k比特站点的位置,则所述实施形式对于能否成功实施是非常关键的。在所述 1k存储器的连接逻辑非常靠近512比特的资源且所述4k比特的资源较远的情况下,不佳地映射至4k资源将导致电路性能大幅减低。使用布局信息来作出此类及其他架构决策是非常重要的。
在示例性实施方式中,可通过将可变层实例的部分区域包含在该实例可被映射至的每个层的使用中来进行实施方式的完善。在我们的1k比特的示例的情况下,所述实例的区域可部分包含于512层和4k层。该实例上的力可通过利用其潜在层的力的加权和、或利用具有最小幅值的力来确定。利用具有最小幅值的力背后的原因在于与该力相关联的层应该具有较低邻域密度。
在其他示例性实施方式中,通过不将具有多个可能的资源实施形式的实例包含于任何层的使用中来开始资源实施。在针对所有层执行区域移除操作之后,可考虑这些可变实施形式实例。对于可变实施形式实例而言,其每个可能的层的潜在供应均被考虑。所述潜在供应是由所述区域移除操作从全部供应(full supply)移除的区域。每一实施层上的潜在供应均被检查,以确定哪个具有移除区域的层在实例被置于该移除区域上时破坏性最低。之后,所述实例被分配给所述最低破坏性的层。
所述分配资源转换(操作64)负责将实例分配给其特定芯片资源。可使用各种布局算法来进行该操作,包括力导向布局、模拟退火、混杂(Mongrel)、最小切割布局、数字优化布局、基于评估的布局以及其他特选布局算法。
虽然本发明的大多数实施方式欲用于HDL设计综合软件程序中,但是本发明并非必须限于此类应用。虽然可使用其他语言和计算机程序(例如,可编写计算机程序来对硬件进行描述,从而所述计算机程序可被视为HDL形式的表达且可被编译,或者在一些实施方式中,本发明可分配和重新分配在不使用HDL的情况下被创建的逻辑表示,例如,网表),但本发明的多个实施方式是在用于HDL综合系统尤其是那些为用于具有特定厂商技术/架构 的集成电路而设计的系统的情况下而被描述的。所公知的是,目标架构通常由可编程IC供应商来确定。目标架构的一种示例为集成电路(该集成电路为加利福尼亚州圣何塞市Xilinx公司的现场可编程门阵列)的可编程查找表(LTUS)以及相关逻辑。目标架构/技术的其他示例包括现场可编程门阵列和来自厂商(例如,阿尔特拉、朗讯科技、超微设备以及莱迪思半导体)的复杂可编程逻辑器件中的那些公知架构。对于某些实施方式,本发明还可用于专用集成电路(ASIC)。
本发明的一种实施方式可以是电路设计和综合计算机辅助设计软件,该软件被实现为存储于机器可读媒介(例如,CD ROM、磁性硬盘或光盘或各种其它可选储存装置)中的计算机程序。此外,可用数字处理系统(例如,传统的通用计算机系统)来执行本发明的许多方法。还可以使用被设计或编程为仅执行一种功能的专用计算机。
图17显示了可与本发明一起使用的普通计算机系统的一种示例。可使用该计算机系统来执行以HDL代码进行描述的设计的逻辑综合。注意,虽然图17示出了计算机系统的各种组件,但其并非意欲表示所有的特定架构或对这些组件进行互联的方式,因为此类细节与本发明并非确切相关。应该注意的是,图17的架构仅是出于解释说明的目的而提供的,可与本发明结合使用的计算机系统或其他数字处理系统并不限于该特定架构。还应该理解的是,具有更少、或可能更多组件的网络计算机以及其他数据处理系统也可与本发明一起使用。图17的计算机系统17可为例如苹果麦金塔(Macintosh)计算机。
如图17所示,作为一种数据处理系统的计算机系统101包括总线102,该总线102耦合到微处理器103、ROM 107、易失性RAM 105和非易失性存储器106。微处理器103(该微处理器103可以是来自英特尔、摩托罗拉公司或IBM的微处理器)耦合到缓冲存储器104。总线102将所述各种组件 互连在一起,并且将所述组件103、107、105和106互连到显示器控制器和显示器设备108以及诸如输入/输出(I/O)设备的外围设备,所述输入/输出(I/O)设备可为鼠标、键盘、调制解调器、网络接口、打印机、扫描仪、视频摄像机以及本领域中众所公知的其它设备。通常,输入/输出设备110通过输入/输出控制器109耦合到系统。易失性RAM 105通常被实现为需要连续供电以刷新或保持存储器中的数据的动态RAM(DRAM)。非易失性存储器106通常为磁性硬盘驱动器、磁性光驱、光驱、DVD RAM或即使系统掉电之后也保持数据的其它类型的存储器系统。通常,所述非易失性存储器还可以为随机存取存储器,虽然对此并无要求。虽然图17显示了非易失性存储器是直接耦合到数据处理系统中的其它组件的本地设备,但可以理解的是,本发明可以利用远离系统的非易失性存储器,例如通过网络接口(例如,调制解调器或以太网接口)耦合到数据处理系统的网络存储设备。如本领域中所公知的那样,总线102可以包括通过各种桥接器、控制器和/或适配器来彼此相互连接的一个或多个总线。在一种实施方式中,I/O控制器109包括用于控制USB外围设备的USB(通用串行总线)适配器和/或用于控制IEEE-1394外围设备的IEEE-1394总线适配器。
通过本说明书显而易见的是,本发明的各方面可以至少部分地在软件中体现。也就是说,可以在计算机系统或其它数据处理系统中响应于其处理器(例如,微处理器)执行包含在存储器(例如,ROM 107、易失性RAM 105、非易失性存储器106、高速缓冲存储器104或远程存储设备)中的指令序列来实现所述技术。在各种实施方式中,可以与软件指令相结合地使用硬线连接电路来实现本发明。因此,所述技术不限于硬件电路和软件的任何特定组合,也不限于由数据处理系统执行的指令的任何特定源。另外,通过本说明书,各种功能和操作被描述为由软件代码来执行或引起以简化说明。然而,本领域技术人员可意识到,此类表达的意思是所述功能是由处理器(例如, 微处理器1103)执行代码而引起的。
可使用机器可读介质存储软件和数据,当该软件和数据由数据处理系统执行时,可促使该系统执行本发明的各种方法。该可执行软件和数据可存储于各种位置,包括例如ROM 107、易失性RAM 105、非易失性存储器106和/或缓冲存储器104。部分所述软件和/数据可存储于这些存储设备中的任一者中。
因此,机器可读介质包括以机器(例如,计算机、网络设备、个人数字助理、制造工具、具有一组一个或多个处理器的任何设备等等)可访问的形式提供(即,存储和/或发送)信息的任何机构。例如,机器可读介质包括可记录/非可记录媒介(例如,只读存储器(ROM)、随机存取存储器(RAM)、磁盘储存媒介、光学储存媒介、闪存设备等等)以及信号传播的电学、光学、声学或其它形式(例如,载波、红外信号、数字信号等)等。
在上述说明书中,已参考本发明的特定示例性实施方式描述了本发明。很显然,在不脱离所附权利要求的所提出的更为宽泛的精神和范围的情况下,可对本发明作出各种修改。因此,说明书和附图应被视为说明性,而不是约束性的。
Claims (16)
1.一种利用资源以设计集成电路的方法,该方法包括:
将所述集成电路的芯片资源划分为多个部分;
基于用于所述集成电路的芯片资源的质量度量来对所述部分执行等级评定以确定具有最低等级的部分;以及
将所述具有最低等级的部分从布局转换的考虑范围中移除,其中所述划分、所述执行等级评定和所述移除中的至少一者由处理器来执行。
2.根据权利要求1所述的方法,其中所述芯片资源超出了所述集成电路的需求。
3.根据权利要求1所述的方法,其中所述部分被移除,以使得所述芯片资源满足电路需求。
4.根据权利要求1所述的方法,该方法还包括以下步骤:重复执行等级评定与移除,直至达到了预定标准。
5.根据权利要求1所述的方法,其中被移除部分中的一些部分在下一迭代移除过程中被重新考虑。
6.根据权利要求1所述的方法,其中被移除部分中的一些部分被永久移除,且在下一迭代移除过程中不会被重新考虑。
7.根据权利要求1所述的方法,其中所述质量度量包括资源的使用距离。
8.根据权利要求1所述的方法,其中所述执行等级评定包括计算所述资源中实例密度与格林函数的褶积。
9.一种利用资源以设计集成电路(IC)的数字处理系统,该数字处理系统包括:
用于将所述集成电路的芯片资源划分为多个部分的构件;
用于基于用于所述集成电路的芯片资源的质量度量来对所述部分执行等级评定以确定具有最低等级的部分的构件;以及
用于将所述具有最低等级的部分从布局转换的考虑范围中移除的构件,其中所述划分、执行等级评定和移除中的至少一者是由处理器执行的。
10.根据权利要求9所述的数字处理系统,其中所述芯片资源超出了所述集成电路的需求。
11.根据权利要求9所述的数字处理系统,其中所述部分被移除,以使得所述芯片资源满足电路需求。
12.根据权利要求9所述的数字处理系统,该系统进一步包括:用于重复执行等级评定与移除,直至达到了预定标准的构件。
13.根据权利要求9所述的数字处理系统,其中被移除部分中的一些部分在下一迭代移除过程中被重新考虑。
14.根据权利要求9所述的数字处理系统,其中被移除部分中的一些部分被永久移除,且在下一迭代移除过程中不会被重新考虑。
15.根据权利要求9所述的数字处理系统,其中所述质量度量包括资源的使用距离。
16.根据权利要求9所述的数字处理系统,其中所述执行等级评定包括计算所述资源中实例密度与格林函数的褶积。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US95143607P | 2007-07-23 | 2007-07-23 | |
US60/951,436 | 2007-07-23 | ||
US12/177,869 | 2008-07-22 | ||
US12/177,869 US8595674B2 (en) | 2007-07-23 | 2008-07-22 | Architectural physical synthesis |
PCT/US2008/009050 WO2009014750A2 (en) | 2007-07-23 | 2008-07-23 | Architectural physical synthesis |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101809576A CN101809576A (zh) | 2010-08-18 |
CN101809576B true CN101809576B (zh) | 2014-02-19 |
Family
ID=40139168
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200880100093.8A Active CN101809576B (zh) | 2007-07-23 | 2008-07-23 | 构架物理综合 |
Country Status (5)
Country | Link |
---|---|
US (2) | US8595674B2 (zh) |
EP (1) | EP2171624A2 (zh) |
JP (1) | JP5608079B2 (zh) |
CN (1) | CN101809576B (zh) |
WO (1) | WO2009014750A2 (zh) |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8595674B2 (en) | 2007-07-23 | 2013-11-26 | Synopsys, Inc. | Architectural physical synthesis |
US8819608B2 (en) * | 2007-07-23 | 2014-08-26 | Synopsys, Inc. | Architectural physical synthesis |
US20090241082A1 (en) * | 2008-03-19 | 2009-09-24 | Amundson Michael D | Method and System for Generating an Accurate Physical Realization for an Integrated Circuit Having Incomplete Physical Constraints |
US8307315B2 (en) * | 2009-01-30 | 2012-11-06 | Synopsys, Inc. | Methods and apparatuses for circuit design and optimization |
US9576092B2 (en) * | 2009-02-24 | 2017-02-21 | Mentor Graphics Corporation | Synthesis using multiple synthesis engine configurations |
US8739088B1 (en) * | 2009-10-16 | 2014-05-27 | Xilinx, Inc. | Using constraints wtihin a high-level modeling system for circuit design |
US8091057B1 (en) * | 2009-10-23 | 2012-01-03 | Xilinx, Inc. | Synthesis, place, and route responsive to reasons for critical paths not meeting performance objective |
US8751986B2 (en) * | 2010-08-06 | 2014-06-10 | Synopsys, Inc. | Method and apparatus for automatic relative placement rule generation |
US8271920B2 (en) * | 2010-08-25 | 2012-09-18 | International Business Machines Corporation | Converged large block and structured synthesis for high performance microprocessor designs |
US8276107B2 (en) * | 2010-10-18 | 2012-09-25 | Algotochip Corporation | Integrated data model based framework for driving design convergence from architecture optimization to physical design closure |
US8516412B2 (en) * | 2011-08-31 | 2013-08-20 | International Business Machines Corporation | Soft hierarchy-based physical synthesis for large-scale, high-performance circuits |
US8484589B2 (en) * | 2011-10-28 | 2013-07-09 | Apple Inc. | Logical repartitioning in design compiler |
US8375345B1 (en) * | 2012-02-16 | 2013-02-12 | International Business Machines Corporation | Soft-bounded hierarchical synthesis |
KR101888940B1 (ko) * | 2012-03-28 | 2018-08-17 | 삼성전자주식회사 | 패턴 레이아웃을 디자인하는 방법 |
US9524363B2 (en) * | 2012-05-31 | 2016-12-20 | Globalfoundries Inc. | Element placement in circuit design based on preferred location |
CN103885819B (zh) * | 2012-12-21 | 2017-11-17 | 中国科学院微电子研究所 | 一种针对fpga面积优化的优先级资源共享方法 |
JP2015095692A (ja) * | 2013-11-08 | 2015-05-18 | キヤノン株式会社 | 半導体集積回路、及び、該半導体集積回路を備える情報処理装置 |
US10078717B1 (en) | 2013-12-05 | 2018-09-18 | The Mathworks, Inc. | Systems and methods for estimating performance characteristics of hardware implementations of executable models |
US9817931B1 (en) * | 2013-12-05 | 2017-11-14 | The Mathworks, Inc. | Systems and methods for generating optimized hardware descriptions for models |
US20150178436A1 (en) * | 2013-12-20 | 2015-06-25 | Lattice Semiconductor Corporation | Clock assignments for programmable logic device |
US9209821B2 (en) * | 2014-01-24 | 2015-12-08 | Intel Corporation | Apparatus for generating quadrature clock phases from a single-ended odd-stage ring oscillator |
US9361417B2 (en) | 2014-02-07 | 2016-06-07 | Synopsys, Inc. | Placement of single-bit and multi-bit flip-flops |
CN104809302B (zh) * | 2015-05-07 | 2018-04-13 | 上海安路信息科技有限公司 | Rtl电路综合中的资源共享方法及其系统 |
US10783292B1 (en) * | 2015-05-21 | 2020-09-22 | Pulsic Limited | Automated analog layout |
US10586004B2 (en) * | 2015-06-22 | 2020-03-10 | Altera Corporation | Method and apparatus for utilizing estimations for register retiming in a design compilation flow |
WO2018006048A1 (en) * | 2016-06-30 | 2018-01-04 | The Regents Of The University Of California | Interactive incremental synthesis flow for integrated circuit design |
EP3333735B1 (en) * | 2016-12-12 | 2021-07-07 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Method and computer program for determining a placement of at least one circuit for a reconfigurable logic device |
CN107315863B (zh) * | 2017-06-12 | 2021-01-08 | 深圳市国微电子有限公司 | 布局优化方法及装置、终端及存储介质 |
US10467373B2 (en) * | 2018-02-21 | 2019-11-05 | Xilinx, Inc. | Method of selecting routing resources in a multi-chip integrated circuit device |
US10586005B1 (en) | 2018-03-21 | 2020-03-10 | Xilinx, Inc. | Incremental synthesis for changes to a circuit design |
CN111753483B (zh) * | 2020-06-30 | 2022-03-22 | 无锡中微亿芯有限公司 | 一种多裸片结构fpga的布局方法 |
US11907634B2 (en) | 2021-09-01 | 2024-02-20 | International Business Machines Corporation | Automating addition of power supply rails, fences, and level translators to a modular circuit design |
US11663381B2 (en) | 2021-09-07 | 2023-05-30 | International Business Machines Corporation | Clock mapping in an integrated circuit design |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5712793A (en) * | 1995-11-20 | 1998-01-27 | Lsi Logic Corporation | Physical design automation system and process for designing integrated circuit chips using fuzzy cell clusterization |
Family Cites Families (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH01142922A (ja) | 1987-11-30 | 1989-06-05 | Omron Tateisi Electron Co | プリンタ用アダプタ |
JP2537280B2 (ja) * | 1989-10-06 | 1996-09-25 | 川崎製鉄株式会社 | 集積回路における回路ブロック配置の設計装置 |
JP3034907B2 (ja) * | 1990-05-11 | 2000-04-17 | 株式会社東芝 | 自動フロアプラン装置及び方法 |
JPH0659686B2 (ja) | 1990-10-29 | 1994-08-10 | ダイアホイルヘキスト株式会社 | コンデンサー用二軸配向ポリエステルフィルム |
JPH05342290A (ja) | 1992-06-08 | 1993-12-24 | Nec Corp | 要素配置方法および装置 |
JPH06266801A (ja) | 1993-03-15 | 1994-09-22 | Nec Corp | フロアプランを考慮した論理合成方法 |
JP3424997B2 (ja) | 1995-01-31 | 2003-07-07 | 富士通株式会社 | 回路設計装置 |
JP2954894B2 (ja) | 1996-12-13 | 1999-09-27 | 株式会社半導体理工学研究センター | 集積回路設計方法、集積回路設計のためのデータベース装置および集積回路設計支援装置 |
JPH1185819A (ja) | 1997-09-02 | 1999-03-30 | Matsushita Electric Ind Co Ltd | 部品配置装置 |
US6249902B1 (en) | 1998-01-09 | 2001-06-19 | Silicon Perspective Corporation | Design hierarchy-based placement |
US6145117A (en) | 1998-01-30 | 2000-11-07 | Tera Systems Incorporated | Creating optimized physical implementations from high-level descriptions of electronic design using placement based information |
US6519754B1 (en) | 1999-05-17 | 2003-02-11 | Synplicity, Inc. | Methods and apparatuses for designing integrated circuits |
JP2001142922A (ja) | 1999-11-15 | 2001-05-25 | Matsushita Electric Ind Co Ltd | 半導体集積回路装置の設計方法 |
US6581191B1 (en) | 1999-11-30 | 2003-06-17 | Synplicity, Inc. | Hardware debugging in a hardware description language |
US7047163B1 (en) | 2000-03-13 | 2006-05-16 | International Business Machines Corporation | Method and apparatus for applying fine-grained transforms during placement synthesis interaction |
US6415426B1 (en) | 2000-06-02 | 2002-07-02 | Incentia Design Systems, Inc. | Dynamic weighting and/or target zone analysis in timing driven placement of cells of an integrated circuit design |
US6711729B1 (en) | 2000-12-05 | 2004-03-23 | Synplicity, Inc. | Methods and apparatuses for designing integrated circuits using automatic reallocation techniques |
JP3953740B2 (ja) * | 2001-02-27 | 2007-08-08 | 富士通株式会社 | 配置方法、配置プログラム、および記録媒体 |
US6480991B1 (en) | 2001-04-11 | 2002-11-12 | International Business Machines Corporation | Timing-driven global placement based on geometry-aware timing budgets |
JP2005517223A (ja) | 2001-06-08 | 2005-06-09 | マグマ・デザイン・オートメーション・インコーポレイテッド | 階層的な集積回路設計システムのモジュールに対する設計制約の生成方法 |
AU2003223051A1 (en) | 2002-05-23 | 2003-12-12 | Koninklijke Philips Electronics N.V. | Integrated circuit design method |
US7827510B1 (en) | 2002-06-07 | 2010-11-02 | Synopsys, Inc. | Enhanced hardware debugging with embedded FPGAS in a hardware description language |
US7210112B2 (en) * | 2002-08-21 | 2007-04-24 | California Institute Of Technology | Element placement method and apparatus |
US7107568B2 (en) * | 2002-10-07 | 2006-09-12 | Hewlett-Packard Development Company, Lp. | System and method for reducing wire delay or congestion during synthesis of hardware solvers |
JP2004164627A (ja) | 2002-10-22 | 2004-06-10 | Matsushita Electric Ind Co Ltd | 高位合成方法 |
US6925628B2 (en) | 2002-10-22 | 2005-08-02 | Matsushita Electric Industrial Co., Ltd. | High-level synthesis method |
US7003747B2 (en) | 2003-05-12 | 2006-02-21 | International Business Machines Corporation | Method of achieving timing closure in digital integrated circuits by optimizing individual macros |
US7337100B1 (en) | 2003-06-12 | 2008-02-26 | Altera Corporation | Physical resynthesis of a logic design |
US8095903B2 (en) | 2004-06-01 | 2012-01-10 | Pulsic Limited | Automatically routing nets with variable spacing |
US7788625B1 (en) | 2005-04-14 | 2010-08-31 | Xilinx, Inc. | Method and apparatus for precharacterizing systems for use in system level design of integrated circuits |
CN100347710C (zh) | 2005-05-13 | 2007-11-07 | 清华大学 | 多端线网插入缓冲器优化时延的标准单元总体布线方法 |
EP1907957A4 (en) | 2005-06-29 | 2013-03-20 | Otrsotech Ltd Liability Company | INVESTMENT METHODS AND SYSTEMS |
GB0516634D0 (en) | 2005-08-12 | 2005-09-21 | Univ Sussex | Electronic circuit design |
CN100362520C (zh) | 2005-09-09 | 2008-01-16 | 深圳市海思半导体有限公司 | 一种专用集成电路综合系统及方法 |
US7451416B2 (en) | 2006-03-17 | 2008-11-11 | International Business Machines Corporation | Method and system for designing an electronic circuit |
US8332793B2 (en) | 2006-05-18 | 2012-12-11 | Otrsotech, Llc | Methods and systems for placement and routing |
JP4783268B2 (ja) * | 2006-11-17 | 2011-09-28 | 株式会社東芝 | 半導体レイアウト設計装置 |
US8819608B2 (en) | 2007-07-23 | 2014-08-26 | Synopsys, Inc. | Architectural physical synthesis |
US8595674B2 (en) | 2007-07-23 | 2013-11-26 | Synopsys, Inc. | Architectural physical synthesis |
-
2008
- 2008-07-22 US US12/177,869 patent/US8595674B2/en active Active
- 2008-07-23 EP EP08794757A patent/EP2171624A2/en not_active Withdrawn
- 2008-07-23 JP JP2010518234A patent/JP5608079B2/ja active Active
- 2008-07-23 CN CN200880100093.8A patent/CN101809576B/zh active Active
- 2008-07-23 WO PCT/US2008/009050 patent/WO2009014750A2/en active Application Filing
-
2013
- 2013-11-21 US US14/086,911 patent/US10268797B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5712793A (en) * | 1995-11-20 | 1998-01-27 | Lsi Logic Corporation | Physical design automation system and process for designing integrated circuit chips using fuzzy cell clusterization |
Also Published As
Publication number | Publication date |
---|---|
CN101809576A (zh) | 2010-08-18 |
US20090031278A1 (en) | 2009-01-29 |
JP5608079B2 (ja) | 2014-10-15 |
JP2010534375A (ja) | 2010-11-04 |
EP2171624A2 (en) | 2010-04-07 |
WO2009014750A9 (en) | 2009-04-09 |
WO2009014750A2 (en) | 2009-01-29 |
US20140082579A1 (en) | 2014-03-20 |
US8595674B2 (en) | 2013-11-26 |
US10268797B2 (en) | 2019-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101809576B (zh) | 构架物理综合 | |
CN101821737A (zh) | 构架物理综合 | |
US6711729B1 (en) | Methods and apparatuses for designing integrated circuits using automatic reallocation techniques | |
JP5147991B2 (ja) | 電子回路の階層的次数ランキングされたシミュレーション | |
Kahng | New directions for learning-based IC design tools and methodologies | |
CN106503282A (zh) | 集成电路设计的增量寄存器重定时 | |
CN107918694A (zh) | 用于减少集成电路上的延迟的方法 | |
CN104239595A (zh) | 用于实现用于设计规划和架构探索的系统级设计工具的方法和装置 | |
Chen et al. | Simultaneous timing driven clustering and placement for FPGAs | |
WO2007147150A2 (en) | Simultaneous dynamical integration applied to detailed placement | |
Dhar et al. | An effective timing-driven detailed placement algorithm for FPGAs | |
JP2003500745A (ja) | 業者間アプリケーションサービスプロバイダー | |
US8032855B1 (en) | Method and apparatus for performing incremental placement on a structured application specific integrated circuit | |
Zhang et al. | Reclaiming over-the-IP-block routing resources with buffering-aware rectilinear Steiner minimum tree construction | |
TWI475415B (zh) | 架構之實體合成 | |
Murgai | Technology-dependent logic optimization | |
Iida | Design Methodology | |
Xu | FPGA placement and global routing tool improvement based on simulated annealing and routing algorithms | |
Jahanian et al. | Improved predictability, timing yield and power consumption using hierarchical highways-on-chip planning methodology | |
Jahanian et al. | Performance and timing yield enhancement using Highway-on-Chip Planning | |
Fudos et al. | Placement and Routing in Computer Aided Design of Standard Cell Arrays by Exploiting the Structure of the Interconnection Graph | |
Otten | Layout synthesis: a retrospective | |
Cong et al. | Technology mapping | |
Chen | Unified synthesis techniques for high performance FPGA designs | |
Pangracious et al. | Two Dimensional FPGAs: Configuration and CAD Flow |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |