CN103914297A - 适于考虑重新定时的可编程器件配置方法 - Google Patents
适于考虑重新定时的可编程器件配置方法 Download PDFInfo
- Publication number
- CN103914297A CN103914297A CN201410003425.8A CN201410003425A CN103914297A CN 103914297 A CN103914297 A CN 103914297A CN 201410003425 A CN201410003425 A CN 201410003425A CN 103914297 A CN103914297 A CN 103914297A
- Authority
- CN
- China
- Prior art keywords
- instruction
- crucial
- logic path
- argin
- path
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Logic Circuits (AREA)
Abstract
一种利用用户逻辑设计配置集成电路器件的方法包括分析用户逻辑设计以标识用户逻辑设计内的关键循环逻辑路径和次关键循环逻辑路径;对关键循环逻辑路径和次关键循环逻辑路径应用定时优化;以及对除关键循环逻辑路径和次关键循环逻辑路径以外的逻辑路径进行重新定时。
Description
技术领域
本发明涉及用于包括例如现场可编程门阵列(FPGA)或者其它类型的可编程逻辑器件(PLD)的集成电路器件的设计或配置方法,并且涉及考虑对该设计或配置进行重新定时的能力的、用于设计或配置这样的器件的设计或配置方法。
背景技术
早期的可编程器件是一次性可配置的。例如,配置可以通过“吹”—即打开—可熔链接而被实现。可替换地,配置可以已经被存储在可编程只读存储器中。那些器件通常为用户提供将这些器件配置用于“乘积和”(或者“P-TERM”)逻辑操作的能力。后来,并入可擦除式可编程只读存储器(EPROM)以用于配置的这样的可编程逻辑器件成为可用,允许器件被重新配置。
再后来,并入静态随机访问存储器(SRAM)元件以用于配置的可编程器件成为可用。这些也可以被重新配置的器件将它们的配置存储在诸如EPROM之类的非易失性存储器中,当器件被上电时配置从所述非易失性存储器中被载入到SRAM元件中。这些器件通常为用户提供将器件配置用于查找表类型的逻辑操作的能力。
虽然已经有可能简单地通过在头脑中确定各个元件应当被布局在哪里来人工配置最早期的可编程逻辑器件,但是与即便是这些较早期的器件有关常见的是提供编程软件,该编程软件允许用户按需要对逻辑进行布图然后将该逻辑转换成针对可编程器件的配置。就当前更大的器件而言,在没有这样的软件的情况下尝试对逻辑进行布图是不现实的。类似的软件可以被用来设计诸如专用集成电路(ASIC)之类的固定逻辑器件。
一些用户逻辑设计如果可以被优化,则这些用户逻辑设计将能够工作在更高的时钟速度下。然而,已知的配置方法不总是考虑到所有可能的优化。
发明内容
针对可编程集成电路器件的已知配置方法以及针对专用集成电路的设计方法通过检测具有最久延迟的路径并应用优化技术来减少或“压碎(crush)”那些延迟来优化电路设计。然而,这些技术可能并没有适当地考虑到通过移动设计内的寄存器来对设计进行“重新定时”的能力。
具体而言,单向或“前馈”逻辑路径适合流水线。另一方面,循环逻辑路径(即循环)较不适合流水线。如果用户逻辑设计既包括前馈逻辑路径又包括循环逻辑路径,则注重于优化具有最久延迟的路径的技术可能注重于能够通过重新定时而被缩短的路径,而忽略了其它看似更短的路径,这些路径在其它路径的重新定时之后仍然是较长的路径。然而,如果设计方法可以考虑由于重新定时而变得可用的改进,则对那些虽然看上去更短但是实际上一旦应用重新定时就变得更长的电路路径应用优化。
本发明提供了用于标识这样的逻辑路径的方法,这些逻辑路径是关键的而又不能够通过重新定时缩短,并且因而应当是优化工作的重点,具有比那些能够通过重新定时缩短的路径更高的优化优先级。因为能够通过重新定时缩短的路径是那些单向路径,所以本发明的实施例在具有对之后进行重新定时可用的“感知”的情况下标识出循环逻辑路径并且尤其标识出那些关键的和次关键的循环路径,以使得那些路径可以被优化,而其它路径仍然可通过重新定时来缩短。
因此,根据本发明,提供了一种利用用户逻辑设计配置集成电路器件的方法。该方法包括分析用户逻辑设计以标识用户逻辑设计内的关键和次关键循环逻辑路径,对关键和次关键循环逻辑路径应用定时优化,并且对除关键和次关键循环逻辑路径以外的逻辑路径进行重新定时。
还提供了被编码有用于执行这样的方法的指令的机器可读数据存储介质。
附图说明
在结合附图考虑以下的详细描述之后,本发明的更多特征、其本质和各种优点将变得明显,在附图中相似的标号从始至终指代相似的部件,并且在附图中:
图1示出了可以利用本发明的实施例来优化的电路的示例;
图2示出了对图1的电路应用已知的优化技术的示例;
图3示出了可以利用本发明的实施例来优化的电路的另一示例;
图4示出了根据本发明的实施例的优化图3的电路的示例;
图5示出了由图4的优化所得到的有效电路;
图6示出了根据本发明的实施例的方法的示例;
图7示出了已知的可编程器件配置设计流程;
图8示出了根据本发明的实施例的可编程器件配置设计流程;
图9是被编码有用于执行根据本发明的方法的机器可执行指令的集合的磁数据存储介质的截面图;
图10是被编码有用于执行根据本发明的方法的机器可执行指令的集合的光可读数据存储介质的截面图;
图11是采用并入本发明的可编程逻辑器件的说明性系统的简化框图。
具体实施方式
在假设重新定时可用的情况下的定时分析是已知的。这样的方法尝试近似在电路中的每个点处的循环时间裕量,其中循环时间裕量(slack)是在其影响最优循环之前可以被添加到电路连接的延迟的量。这类似于传统定时分析中的时间裕量,但是假设寄存器可以被自由地移动以减小时钟周期。电路中的每处连接的循环时间裕量继而可以被用于引导优化工具以最小化对最终的重新定时有害的效果。
虽然循环时间裕量的确定是一种预测最终的重新定时的效果的准确方式,但是循环时间裕量是难以计算的。准确确定针对电路中的每处连接的循环时间裕量的计算工作量与电路中节点的数目的平方成比例。由于精确计算循环时间裕量的复杂度,因此已知的方法替代性地产生循环时间裕量的近似。
具体而言,循环时间裕量可以在寄存器可以被移动的情况下利用时序定时分析被精确地或近似地计算,将每个寄存器认为是能够去掉相当于目标时钟周期的延迟的。当定时分析针对电路中的特定参考点而被执行时,一些寄存器从路径中去掉一些延迟,而其它电路元件对该路径添加延迟。因此,寄存器的实际位置放置是无关紧要的,但是其对路径的影响在长度方面被考虑。然而,由单一时序定时分析确定的时间裕量只关于所使用的参考点而言是有效的。
结果,如果要使用电路中的每一个点作为参考并执行多次时序定时分析,则真正的循环时间裕量可以通过多次时序定时分析来计算在每个节点处观察到的最小时间裕量而被得到。然而,这对于实际使用而言太过复杂。因此,各种已知的方法被用来近似循环时间裕量,每种方法都引入不准确度。
本发明的实施例中的方法经由时间裕量和时间裕量比向器件配置软件提供信息,允许软件注重于对最终的重新定时做出限制的电路拓扑结构。
要被优化的电路可以用与图1中所示的图类似的图结构来表示,图1示出了大得多的电路的一个部分100。单向路径101包括节点111、121、131、141、151、161、171和181,而循环路径102包括节点141、151和191。单向路径101包括六个寄存器--五个靠近节点111并且一个靠近节点181,而循环路径102包括靠近节点191的一个寄存器。
如果单向路径被认为是循环的(输入被连接到输出),则延迟与寄存器的比(DRR)--即,总延迟除以寄存器的数目--可以针对每个路径而被计算。在图1中示出了每个节点之间的延迟。单向路径101具有总延迟14和DRR14/6=2.33,而循环路径102具有总延迟8和DRR8/1=8。
重新定时不能够实现低于任意循环的最大DRR的时钟周期。因此,根据本发明的实施例,为了注重于对最终的重新定时做出限制的电路拓扑结构,应当找到最关键的循环,即那些具有最大DRR的循环。
关键循环可以通过找到“负循环”的技术来检测。根据这样一种技术,图1中所示的路径101,102通过以下步骤被转换成图2的路径201,202,所述步骤即将每个延迟乘以-1,并向具有寄存器的每个节点分配如下延迟,该延迟相当于寄存器的数目乘以目标时钟周期。在图2的示例中,目标时钟周期为7。在图2中,路径201具有总权重35+7-(2×7)=28并且因此是“正循环”,而路径202具有总权重7-3-3-2=-1并且因此是“负循环”。电路的最大DRR以及关键循环可以通过以下步骤而被找到,所述步骤即从对目标周期的估计开始并且进行二分搜索以找到创建负循环的最高目标周期(有若干种用于找到负循环的已知技术)。该负循环是关键循环,并且该目标周期是最大DRR。
虽然之前描述了如何找到具有最大DRR的单个关键循环,但是现实中可能存在具有接近最大DRR的DRR、并且将导致针对重新定时步骤的问题的若干个循环。那些“次关键”循环可以例如通过以下步骤来找到,所述步骤即迭代使用负循环寻找器并且每当找到负循环时将该循环标识为次关键循环并且向该循环的每个边添加小的延迟。该循环将不再是负的,但是再次运行负循环寻找器可以突出另一当前为负的路径。这个过程可以利用同一目标周期而迭代地进行,直到再也找不到负循环为止。所述迭代可以按更低的目标周期继续进行,所述目标周期可以继续被减小以找到全部次关键循环,一直到达到某个预先设置的限值为止,与关键路径的接近程度由该限值确定。
已知的是基于由被提供有电路延迟的估计的定时分析引擎计算出的时间裕量来驱动电路优化。与以上所定义的循环时间裕量类似,时间裕量被定义为在其超过针对使用节点或边的路径的定时要求之前可以被添加到该节点或边的延迟的量。这与循环时间裕量的区别主要在于不假设寄存器可以移动。
优化被优选地应用于具有低时间裕量或者零时间裕量的节点或者边。在一些情况下,时间裕量比代替时间裕量而被使用。时间裕量比是时间裕量与节点或边处的要求的比。简单的定时驱动成本函数可以表示如下:
这样的成本函数以可能增加具有高时间裕量比的电路元件的延迟为代价实现针对具有非常低的时间裕量比的电路元件的延迟改善,并且不考虑重新定时的可能性。
在电路设计或者配置软件在其成本计算中已经使用了时间裕量或者时间裕量比的地方,根据本发明的修改可以使所述软件为重新定时感知的。关键或次关键循环中所涉及的电路组件的时间裕量和时间裕量比可以通过移动寄存器而被减小,以使得优化工具将其工作集中在那些循环上。类似地,不在关键或次关键循环中的电路组件的时间裕量和时间裕量比可以通过移动寄存器而被增加以帮助提供一些优化灵活性。被应用于时间裕量和时间裕量比的精确的修改方式可以是想要的结果的函数并且可以根据经验来确定。例如,一个实施例可以是将关键循环中所有的节点或边的时间裕量和时间裕量比减小为零,同时将所有不在关键循环中的节点或边的时间裕量和时间裕量比增加固定的量。
计算循环时间裕量的方法可以通过仔细选择用于时序定时分析的参考点而被进一步改进。一种可能性是选择从关键和次关键循环中的每个循环中选出的一个节点作为参考点。这些选择可以在运行时间期间被更新。例如,布局例程可以对定时分析例程进行若干次调用以更新其对时间裕量和时间裕量比的了解。在这些调用期间,可以运行关键循环找寻例程以提供新的参考点的源。这些新的参考点可以被添加到要在时序定时分析期间使用的参考点的集合中。随着时间的推移,该集合将发展为包括更多的参考点以得到每个节点处的循环时间裕量的准确描绘。
循环时间裕量可以基于被用于获得循环时间裕量的寄存器的数目而被转换为循环时间裕量比。循环时间裕量比是时间裕量比的规格化值,结果为0与1之间的数。随元件的循环时间裕量比变得更加接近于0时,该元件被认为是更加关键的,而当元件的循环时间裕量比变得更加接近于1时,该元件被认为较不关键。除了作为时序定时分析的部分而一般在每个节点处被计算出的到达时间和所需时间之外,这个量值还可以通过追踪寄存器的数目而确定。用于将循环时间裕量转换为循环时间裕量比的一个公式可以是:
cycle_slackratioi=cycle_slacki/(num_registersi×clock_period)
这一用于将循环时间裕量转换为循环时间裕量比的公式允许循环时间裕量比被考虑作为定时成本的因素。
即使特定节点或边可能具有暗示这些节点或边与其它节点或边相比不太关键的相对较高的“常规”时间裕量或时间裕量比,根据本发明的实施例的寄存器的移动也可能具有改变针对一些节点或者全部节点的循环时间裕量或者循环时间裕量比的效果,使得由循环时间裕量或循环时间裕量比所指示的关键程度可以与常规时间裕量或时间裕量比所暗示的关键程度不同(在一些情况下显著不同)。在一些实施例中,循环时间裕量比的效果与常规时间裕量比的效果的这一差异可以通过按如下方式利用加权常量对循环时间裕量比和常规时间裕量比进行组合而被考虑:
slackratioi=α×cycle_slackratioi+(1-α)×regular_slackratioi
加权常量α控制定时成本中所使用的时间裕量比是否完全基于循环时间裕量比、常规时间裕量比或者这两者的某种混合。
根据本发明的其它实施例,配置或设计软件所使用的成本函数可以被改变以添加追踪关键循环的大小的另一组件。这样的经改变的成本函数的一个示例可以是:
其中loop_crit是对每个关键循环进行加权以使得更多的关注被给予最关键的循环的量值。这一量值可以反映当前情势或者可能包括关于循环过去有多么关键的历史数据。这一成本函数会追踪每个关键循环的长度(即总延迟)和寄存器的数目。减小关键循环的大小的优化将改善新的定时成本。改变参数α和β可以对集中在传统的定时驱动的优化和重新定时感知优化上的工作量进行权衡。
作为对应用时序定时分析和循环时间裕量的替代,根据本发明的其它实施例,在假设有之后的重新定时操作的情况下对设计的定时关键部件的标识可以基于时钟歪斜。这种方法可以很容易地整合到理解时钟歪斜的现有的定时分析架构中。优选地,定时分析理解正负两种时钟歪斜,但是在负歪斜不被支持的情况下,时钟域可以被偏移以将负歪斜转换成正歪斜。
根据这种方法,“虚拟重新定时”可以通过将歪斜应用于寄存器输入而被计算。向寄存器时钟输入应用负歪斜具有与在重新定时操作期间向前移动寄存器相同的效果,并且向寄存器时钟输入应用正歪斜具有与在重新定时操作期间向后移动寄存器相同的效果。
例如,图3中所示的电路300具有第一寄存器301,之后是第一逻辑区域302,之后是第二寄存器303,之后是第二逻辑区域304,之后是第三寄存器305,之后是第三逻辑区域306,之后是第三寄存器307。逻辑302具有15个单位的延迟,逻辑304具有30个单位的延迟,并且逻辑306具有15个单位的延迟,总共有60个单位的延迟。寄存器通过时钟308进行时钟定时,每个寄存器具有相应的歪斜311,313,315,317,所有这些歪斜都为0。
如图4中所示,可以在313处应用-15的歪斜并且可以在315处应用+15的歪斜,这具有与将寄存器303向前移动15个单位并将寄存器305向后移动15个单位相同的效果,将电路400的关键延迟从60个单位减小至30个单位。在图5中示出了所得到的有效电路500,其中寄存器303和305被显示在它们的有效位置处,并且90个单位(15+60+15)的总延迟已被均等地分布(30+30+30)在经重新定时的逻辑区域502,504,506之间。
通过将重新定时问题视为计算歪斜的集合的问题而避免了大量的计算工作量。实际的重新定时解决方案可能必须重新放置寄存器,这意味着电路拓扑结构被改变,并且很多内部数据结构不得不被破坏和重建。另一方面,最小化时钟周期的歪斜的集合可以通过利用在每个寄存器处调节时钟歪斜的过程迭代进行定时分析而被计算。调节时钟歪斜的例程将观察每个寄存器处的输入时间裕量和输出时间裕量之间的差异并且进行歪斜调节以补偿任何差异。通过在每次歪斜调节之后重复这样的定时分析,调节的效果可以被全局性地传播,迫使在其它寄存器位置处的改变。这样的迭代过程通常在几次迭代以内收敛并且产生最小化时钟周期的歪斜。
调节每个寄存器处的歪斜的一种方式是按以下方式对该歪斜应用更新:
skewi←skewi+γ×(outputslacki-inputslacki)
只有两侧之间的时间裕量差异的一部分被应用于歪斜,因为大的γ可能造成歪斜的大幅摇摆,阻碍该方法的收敛。针对图3-5的电路的这个过程的示例在图6中被示出。该方法开始于在电路中的每个点处建立时间裕量的定时分析。寄存器303处的输入时间裕量601为45而输出时间裕量602为0,并且寄存器305的输入时间裕量603为0而输出时间裕量604为45。歪斜利用被设置为0.33的γ来调节。这在寄存器303处产生-15的歪斜605(0.33×(0-45))并且在寄存器305处产生+15的歪斜606(0.33×(45-0))。利用这些歪斜,时间裕量607被平衡并且该方法已经收敛。
如果定时分析工具未被设计为作为上述虚拟重新定时过程的一部分处理时钟歪斜,则作为替代,可以向寄存器处的所有输入和输出边添加正或负的延迟以模仿重新定时的效果。这具有与对寄存器应用时钟歪斜相同的效果。只要定时分析能够处置寄存器的边处的负延迟,则这种替代方法就是可行的。
将理解刚刚描述的虚拟重新定时并不代替实际的重新定时,而是可以在如下所述的重新定时中被考虑到。
存在若干种方式,运行在诸如个人计算机或工作台之类的合适的处理器上的可编程器件配置软件可以利用所述方式在具有对重新定时可用的感知的情况下根据前述讨论处理用户所输入的电路规格。一个示例在图7和图8中被示出。图7是标准设计流程,该流程开始于设计入口700并且在产生编程位以用于目标器件中的用户逻辑设计的最终实现704之前经过综合701、布局702和布线703的步骤。综合、布局和布线701-703中的每个步骤基于不考虑后续的重新定时的可能性的常规或传统的定时分析705而被执行。根据本发明的实施例,图7的设计流程可以按图8中所示的方式被修改。现在重新定时801在最终实现704之前。综合、布局和布线701-703中的每个步骤利用包括时序定时分析、循环时间裕量和基于歪斜的虚拟重新定时的前述技术中的一个或多个技术的任意组合、基于考虑到后续的重新定时的可能性的定时分析802而被执行。
因而,可以看出已经提供一种可编程器件,在该可编程器件中利用对之后的重新定时可用的感知的实现配置,标识出循环逻辑路径并且尤其是标识出那些关键的循环路径和次关键的循环路径,以使得那些路径可以被优化,而其它路径仍然可通过重新定时来缩短。
用于执行根据本发明的方法的以用于对可编程器件进行编程的指令可以被编码在机器可读介质上,以供由合适的计算机或类似设备执行以实现用于对PLD或者其它可编程器件进行编程或配置的本发明的方法。例如,个人计算机可以配备有PLD可以被连接到的接口,并且个人计算机可以被用户用来利用如上所述的合适的软件工具对PLD进行编程。此外,同一机器可读介质或者单独的机器可读介质可以被编码有虚拟结构库(library of virtual fabrics)。
图9呈现了可以被编码有机器可执行程序或者被编码有虚拟结构库的磁数据存储介质1200的截面图,该机器可执行程序可以又诸如前述的个人计算机、或者其它计算机或类似器件之类的系统执行。介质1200可以是软磁盘或硬盘或者磁带,具有合适的基板1201(可以是普通基板)和在一侧或两侧上的合适的涂层1202(可以是普通涂层),所述涂层包含极性或定向可以磁性地改变的磁域(不可见)。除了介质为磁带的情况,介质1200还可以具有用于接收磁盘驱动或者其它数据存储设备的转轴(pindle)的开口(未被示出)。
介质1200的涂层1202的磁域被极化或者定向以按照可以是普通的方式将机器可执行程序编码在介质中,以供诸如个人计算机或者其它计算机或者类似系统之类的编程系统执行以根据本发明对要被编程的PLD的适当部分(如果有的话包括其专用的处理块)进行配置,所述编程系统具有要被编程的PLD可以被插入其中的插槽或外围附件。
图10示出了光可读数据存储介质1210,该存储介质也可以被编码有这样的机器可执行程序或者被编码有虚拟结构库,所述机器可执行程序可以被诸如前述个人计算机、或者其它计算机或类似设备之类的系统执行。介质1210可以是普通的紧致盘只读存储器(CD-ROM)或者数字视频盘只读存储器(DVD-ROM)或者诸如CD-R、CD-RW、DVD-R、DVD-RW、DVD+R、DVD+RW或者DVD-RAM之类的可重写介质或者光可读和磁光可重写的磁光盘。介质1210优选地具有合适的基板1211(可以是普通基板)和通常在基板1211的一侧或两侧上的合适的涂层1212(可以是普通涂层)。
在基于CD或者基于DVD的介质的情况下,如公知的,涂层1212是反射性的并且被印有布置在一个或多个层上的多个凹洞(pit)1213以对机器可执行程序进行编码。凹洞的布置通过使激光反射离开涂层1212的表面而被读取。优选为基本上透明的保护涂层1214被设置在涂层1212的上面。
在磁光盘的情况下,众所周知,涂层1212没有凹洞1213,但是具有多个磁域,在如被激光(未示出)加热到特定温度以上时,多个磁域的极性或定向可以被磁性地改变。磁域的定向可以通过测量从涂层1212反射的激光的极性而被读取。磁域的布置按如上所述的方式对程序进行编码。
根据本发明编程的PLD1500可以被用在很多种电子设备中。一种可能的使用是在图11中所示的数据处理系统1400中。数据处理系统1400可以包括如下组件中的一个或多个:处理器1401;存储器1402、输入/输出电路装置1403;以及外围设备1404。这些组件通过系统总线1405被耦合在一起并且被组装在电路板1406上,电路板1406被包含在终端用户系统1407中。
系统1400可以被用在广泛的应用中,例如计算机联网、数据联网、仪器、视频处理、数字信号处理、或者其中想要利用可编程或者可重新编程的逻辑的优点的任何其它应用。PLD140可以被用于执行多种不同的逻辑功能。例如,PLD1500可以被配置为与处理器1401协同工作的处理器或控制器。PLD1500也可以被用作用于对系统1400中的共享资源的访问进行仲裁的仲裁器。在另一示例中,PLD1500可以被配置为处理器1401与系统1400中的其它组件中的一个组件之间的接口。应当注意系统1400只是示例性的,并且本发明的真正范围和精神应当由以下的权利要求指定。
各种技术可以被用于实现如上所述和并入本发明的PLD1500。
应当理解之前的描述只是说明了本发明的原理,并且本领域技术人员可以在不脱离本发明的范围和精神的情况下做出各种修改。例如,本发明的各个元件可以按任意所希望的编号和/或布置被设置在PLD上。本领域技术人员将理解本发明可以用不同于所描述的实施例的实施例来实现,所描述的实施例是出于说明而非限值的目的而被呈现的,并且本发明仅由之后的权利要求限制。
Claims (24)
1.一种利用用户逻辑设计配置集成电路器件的方法,所述方法包括:
分析所述用户逻辑设计以标识所述用户逻辑设计内的关键循环逻辑路径和次关键循环逻辑路径;
对所述关键循环逻辑路径和所述次关键循环逻辑路径应用定时优化;以及
对除所述关键循环逻辑路径和所述次关键循环逻辑路径以外的逻辑路径进行重新定时。
2.根据权利要求1所述方法,其中所述集成电路器件是可编程集成电路器件,所述方法还包括:
基于所述分析、所述应用和所述重新定时来生成配置比特流;以及
将所述配置比特流存储在所述可编程集成电路器件的存储器中。
3.根据权利要求1所述的方法,其中所述分析被迭代地执行。
4.根据权利要求3所述的方法,其中:
所述分析包括确定从包括时间裕量、循环时间裕量、时间裕量比和循环时间裕量比的组中选出的电路特征;并且
所述电路特征在迭代的所述分析期间被更新。
5.根据权利要求3所述的方法,其中所述分析包括时序定时分析。
6.根据权利要求5所述的方法,其中所述分析还包括标识用于所述时序定时分析的参考点。
7.根据权利要求6所述的方法,其中所述标识参考点包括:
从所述关键循环逻辑路径和所述次关键循环逻辑路径中的节点中选择参考点;以及
当在迭代期间标识到所述关键循环逻辑路径和所述次关键循环逻辑路径中的新的循环逻辑路径时更新所述参考点。
8.根据权利要求3所述的方法,其中所述分析包括在每次迭代期间基于前一迭代中的所述应用的结果更新所述关键循环和所述次关键循环的长度。
9.根据权利要求1所述的方法,其中所述分析包括将时间裕量信息与循环时间裕量信息混合。
10.根据权利要求9所述的方法,其中所述时间裕量信息和所述循环时间裕量信息包括时间裕量比和循环时间裕量比。
11.根据权利要求1所述的方法,其中所述重新定时通过调节寄存器延迟来执行。
12.根据权利要求1所述的方法,其中所述重新定时通过调节寄存器时钟歪斜来执行。
13.一种非瞬态机器可读存储介质,所述非瞬态机器可读存储介质被编码有用于执行利用用户逻辑设计配置集成电路器件的方法的指令,所述指令包括:
用于分析所述用户逻辑设计以标识所述用户逻辑设计内的关键循环逻辑路径和次关键循环逻辑路径的指令;
用于对所述关键循环逻辑路径和所述次关键循环逻辑路径应用定时优化的指令;以及
用于对除所述关键循环逻辑路径和所述次关键循环逻辑路径以外的逻辑路径进行重新定时的指令。
14.根据权利要求13所述的非瞬态机器可读存储介质,其中所述集成电路器件是可编程集成电路器件,所述指令还包括:
用于基于所述分析、所述应用和所述重新定时来生成配置比特流的指令;以及
用于将所述配置比特流存储在所述可编程集成电路器件的存储器中的指令。
15.根据权利要求13所述的非瞬态机器可读存储介质,其中用于分析的指令包括用于迭代地分析的指令。
16.根据权利要求15所述的非瞬态机器可读存储介质,其中:
所述用于分析的指令包括用于确定从包括时间裕量、循环时间裕量、时间裕量比和循环时间裕量比的组中选出的电路特征的指令;所述指令还包括:
用于在所述迭代分析期间更新所述电路特征的指令。
17.根据权利要求15所述的非瞬态机器可读存储介质,其中所述用于分析的指令包括用于执行时序定时分析的指令。
18.根据权利要求17所述的非瞬态机器可读存储介质,其中所述用于分析的指令还包括用于标识用于所述时序定时分析的参考点的指令。
19.根据权利要求18所述的非瞬态机器可读存储介质,其中用于标识参考点的所述指令包括:
用于从所述关键循环逻辑路径和所述次关键循环逻辑路径中的节点中选择参考点的指令;以及
用于当在迭代期间标识到所述关键循环逻辑路径和所述次关键循环逻辑路径中的新的循环逻辑路径时更新所述参考点的指令。
20.根据权利要求15所述的非瞬态机器可读存储介质,其中用于分析的所述指令包括用于在每次迭代期间基于前一迭代中的所述应用的结果更新所述关键循环和所述次关键循环的长度的指令。
21.根据权利要求13所述的非瞬态机器可读存储介质,其中用于分析的所述指令包括用于将时间裕量信息与循环时间裕量信息混合的指令。
22.根据权利要求21所述的非瞬态机器可读存储介质,其中所述时间裕量信息和所述循环时间裕量信息包括时间裕量比和循环时间裕量比。
23.根据权利要求13所述的非瞬态机器可读存储介质,其中用于重新定时的所述指令包括用于调节寄存器延迟的指令。
24.根据权利要求13所述的非瞬态机器可读存储介质,其中用于重新定时的所述指令包括调节寄存器时钟歪斜的指令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/733,982 US8677298B1 (en) | 2013-01-04 | 2013-01-04 | Programmable device configuration methods adapted to account for retiming |
US13/733,982 | 2013-01-04 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103914297A true CN103914297A (zh) | 2014-07-09 |
CN103914297B CN103914297B (zh) | 2019-01-22 |
Family
ID=50002480
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410003425.8A Active CN103914297B (zh) | 2013-01-04 | 2014-01-03 | 适于考虑重新定时的可编程器件配置方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8677298B1 (zh) |
EP (1) | EP2752781A3 (zh) |
CN (1) | CN103914297B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105553448A (zh) * | 2014-10-27 | 2016-05-04 | 三星电子株式会社 | 调节时钟偏斜的方法、系统和设备 |
CN108446424A (zh) * | 2017-02-02 | 2018-08-24 | 英特尔公司 | 用于为重定时的电路系统自动实现补偿重置的方法和装置 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8896344B1 (en) * | 2013-01-04 | 2014-11-25 | Altera Corporation | Heterogeneous programmable device and configuration software adapted therefor |
US8863059B1 (en) * | 2013-06-28 | 2014-10-14 | Altera Corporation | Integrated circuit device configuration methods adapted to account for retiming |
US8893071B1 (en) * | 2013-07-12 | 2014-11-18 | Xilinx, Inc. | Methods of pipelining a data path in an integrated circuit |
US9384311B1 (en) | 2014-07-25 | 2016-07-05 | Altera Corporation | Programmable device configuration methods incorporating retiming |
US9811621B2 (en) | 2015-05-01 | 2017-11-07 | Altera Corporation | Implementing integrated circuit designs using depopulation and repopulation operations |
CN104866678B (zh) * | 2015-06-01 | 2017-12-29 | 复旦大学 | Fpga时序约束布局方法 |
US10586004B2 (en) | 2015-06-22 | 2020-03-10 | Altera Corporation | Method and apparatus for utilizing estimations for register retiming in a design compilation flow |
US9836566B2 (en) | 2015-11-02 | 2017-12-05 | International Business Machines Corporation | Hybrid out of context hierarchical design flow for hierarchical timing convergence of integrated circuits for out of context signoff analysis |
US9773083B1 (en) * | 2016-03-14 | 2017-09-26 | Xilinx, Inc. | Post-placement and pre-routing processing of critical paths in a circuit design |
US9836568B1 (en) * | 2016-03-14 | 2017-12-05 | Xilinx, Inc. | Programmable integrated circuit design flow using timing-driven pipeline analysis |
CN112906338B (zh) * | 2021-03-30 | 2022-11-29 | 飞腾信息技术有限公司 | 对物理分区结构进行时钟设计的方法、系统和介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080276208A1 (en) * | 2007-05-02 | 2008-11-06 | Christoph Albrecht | Optimizing integrated circuit design through use of sequential timing information |
US20080276209A1 (en) * | 2007-05-02 | 2008-11-06 | Christoph Albrecht | Optimizing integrated circuit design through use of sequential timing information |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2601168B2 (ja) * | 1993-03-30 | 1997-04-16 | 日本電気株式会社 | 順次回路をリタイミングする方法および再設計する方法 |
US6466898B1 (en) | 1999-01-12 | 2002-10-15 | Terence Chan | Multithreaded, mixed hardware description languages logic simulation on engineering workstations |
JP2002123563A (ja) | 2000-10-13 | 2002-04-26 | Nec Corp | コンパイル方法および合成装置ならびに記録媒体 |
US6952816B2 (en) * | 2002-10-07 | 2005-10-04 | Hewlett-Packard Development Company, L.P. | Methods and apparatus for digital circuit design generation |
US7299458B2 (en) | 2002-10-31 | 2007-11-20 | Src Computers, Inc. | System and method for converting control flow graph representations to control-dataflow graph representations |
US7120883B1 (en) * | 2003-05-27 | 2006-10-10 | Altera Corporation | Register retiming technique |
US7594195B2 (en) | 2005-06-07 | 2009-09-22 | Fujitsu Limited | Multithreaded reachability |
US7478356B1 (en) | 2005-09-30 | 2009-01-13 | Xilinx, Inc. | Timing driven logic block configuration |
US8286137B2 (en) | 2007-05-07 | 2012-10-09 | Nec Laboratories America, Inc. | Accelerating model checking via synchrony |
EP2201569A4 (en) * | 2007-09-06 | 2011-07-13 | Tabula Inc | CONFIGURATION CONTEXT SWITCH |
US8296696B1 (en) * | 2008-03-12 | 2012-10-23 | Altera Corporation | Method and apparatus for performing simultaneous register retiming and combinational resynthesis during physical synthesis |
US8141024B2 (en) | 2008-09-04 | 2012-03-20 | Synopsys, Inc. | Temporally-assisted resource sharing in electronic systems |
US8671377B2 (en) | 2011-03-03 | 2014-03-11 | Altera Corporation | Method and apparatus for placement and routing of partial reconfiguration modules |
-
2013
- 2013-01-04 US US13/733,982 patent/US8677298B1/en active Active
-
2014
- 2014-01-03 CN CN201410003425.8A patent/CN103914297B/zh active Active
- 2014-01-03 EP EP14150089.2A patent/EP2752781A3/en not_active Withdrawn
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080276208A1 (en) * | 2007-05-02 | 2008-11-06 | Christoph Albrecht | Optimizing integrated circuit design through use of sequential timing information |
US20080276209A1 (en) * | 2007-05-02 | 2008-11-06 | Christoph Albrecht | Optimizing integrated circuit design through use of sequential timing information |
Non-Patent Citations (3)
Title |
---|
A.P.HURST: "Physical placement driven by sequential timing analysis", 《IEEE/ACM INTERNATIONAL CONFERENCE ON COMPUTER AIDED DESIGN》 * |
CRISTIAN SOVIANI: "Optimizing Sequential Cycles Through Shannon Decompstion and Retiming", 《IEEE TRANSACTIONS ON COMPUTER AIDED DESIGN OF INTEGRATED CIRCUITS AND SYSTEMS》 * |
DESHANAND P.SINGH: "Integrated Retiming and Placement for Field Programmable Gate Arrays", 《ACM/SIGDA INTERNATIONAL SYMPOSIUM ON FIELD PROGRAMMABLE GATE ARRAYS》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105553448A (zh) * | 2014-10-27 | 2016-05-04 | 三星电子株式会社 | 调节时钟偏斜的方法、系统和设备 |
CN105553448B (zh) * | 2014-10-27 | 2020-09-22 | 三星电子株式会社 | 调节时钟偏斜的方法、系统和设备 |
CN108446424A (zh) * | 2017-02-02 | 2018-08-24 | 英特尔公司 | 用于为重定时的电路系统自动实现补偿重置的方法和装置 |
CN108446424B (zh) * | 2017-02-02 | 2024-04-30 | 英特尔公司 | 用于为重定时的电路系统自动实现补偿重置的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
US8677298B1 (en) | 2014-03-18 |
EP2752781A3 (en) | 2016-04-27 |
CN103914297B (zh) | 2019-01-22 |
EP2752781A2 (en) | 2014-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103914297A (zh) | 适于考虑重新定时的可编程器件配置方法 | |
Schafer et al. | High-level synthesis design space exploration: Past, present, and future | |
US5864487A (en) | Method and apparatus for identifying gated clocks within a circuit design using a standard optimization tool | |
EP2819039B1 (en) | Integrated circuit device configuration methods adapted to account for retiming | |
US7926011B1 (en) | System and method of generating hierarchical block-level timing constraints from chip-level timing constraints | |
CN103324512A (zh) | 准备可编程设备的方法、布线开关以及机器可读存储介质 | |
Mehta et al. | Instruction level power profiling | |
CN103324511A (zh) | 配置可编程设备的方法、可编程设备及机器可读存储介质 | |
US11144694B2 (en) | Hybrid out of context hierarchical design flow for hierarchical timing convergence of integrated circuits for out of context signoff analysis | |
Lin et al. | HL-Pow: A learning-based power modeling framework for high-level synthesis | |
CN104603784A (zh) | 相对定时表征 | |
Bañeres et al. | Variable-latency design by function speculation | |
Jafri et al. | Silago-cog: Coarse-grained grid-based design for near tape-out power estimation accuracy at high level | |
Dashkin et al. | General approach to asynchronous circuits simulation using synchronous fpgas | |
US9030231B1 (en) | Heterogeneous programmable device and configuration software adapted therefor | |
US9548740B1 (en) | Multiple alternate configurations for an integrated circuit device | |
Logesh et al. | A survey of high-level synthesis techniques for area, delay and power optimization | |
Nourani et al. | False path exclusion in delay analysis of RTL structures | |
US9547738B1 (en) | Invariant code optimization in high-level FPGA synthesis | |
US7328415B2 (en) | Modeling blocks of an integrated circuit for timing verification | |
Siddique | Advanced Digital System Design with Verilog: From Basics to High-Speed Applications | |
Raja | Minimum dynamic power CMOS design with variable input delay logic | |
Golshan et al. | Design Constraints | |
Assadikhomami | A mix-grained architecture for improving HLS-generated controllers on FPGAs | |
Nourani et al. | False path exclusion in delay analysis of RTL-based datapath-controller designs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |