太阳城集团

  • / 25
  • 下载费用:30 金币  

用于在设计编译流程中利用针对寄存器重定时的估计的方法和装置.pdf

摘要
申请专利号:

太阳城集团CN201610417530.5

申请日:

2016.06.14

公开号:

CN106257467A

公开日:

2016.12.28

当前法律状态:

实审

有效性:

审中

法律详情: 实质审查的生效IPC(主分类):G06F 17/50申请日:20160614|||公开
IPC分类号: G06F17/50 主分类号: G06F17/50
申请人: 阿尔特拉公司
发明人: N·辛纳杜莱; B·加姆萨
地址: 美国加利福尼亚
优先权: 2015.06.22 US 14/746,237
专利代理机构: 北京市金杜律师事务所 11256 代理人: 王茂华
PDF完整版下载: PDF下载
法律状态
申请(专利)号:

CN201610417530.5

授权太阳城集团号:

|||

法律状态太阳城集团日:

太阳城集团2017.01.25|||2016.12.28

法律状态类型:

实质审查的生效|||公开

摘要

本申请涉及用于在设计编译流程中利用针对寄存器重定时的估计的方法和装置。本申请提供了一种用于设计目标设备上的系统的方法,包括执行系统上的综合、布局和布线中的一个。在综合、布局和布线中的一个之后向设计者呈现对系统的时序分析,其中时序分析反映被预测为要被实现在系统上的寄存器重定时优化。响应于在呈现之后由设计者提供的输入来修改综合、布局和布线中的一个。

权利要求书

1.一种用于设计目标设备上的系统的方法,包括:
执行所述系统上的综合、布局和布线中的一个;
在所述综合、所述布局和所述布线中的一个之后向设计者呈现对所述系统的时序分
析,其中所述时序分析反映被预测为要被实现在所述系统上的寄存器重定时优化;以及
响应于在所述呈现之后由所述设计者提供的输入来修改所述系统上的所述综合、所述
布局和所述布线中的一个。
2.根据权利要求1所述的方法,其中所述系统上的所述综合、所述布局和所述布线中的
所述一个是响应于被预测为要被实现在所述系统上的所述寄存器重定时优化而被执行的。
3.根据权利要求1所述的方法,其中所述寄存器重定时优化包括流水线设计关键路径。
4.根据权利要求1所述的方法,其中所述寄存器重定时优化包括修改寄存器的位置和
到寄存器的输入中的一个或多个以减小所述系统中的路径的关键性。
5.根据权利要求1所述的方法,还包括执行寄存器重定时。
6.根据权利要求1所述的方法,其中修改所述综合、所述布局和所述布线中的一个包括
改变所述系统的方面的功能以缩短所述系统中的回路。
7.根据权利要求1所述的方法,其中修改所述综合、所述布局和所述布线中的一个包括
去除所述系统中的回路。
8.根据权利要求1所述的方法,其中所述寄存器重定时优化基于对所述系统的设计做
出的推测的改变。
9.根据权利要求8所述的方法,其中所述推测的改变基于所述设计者的指定偏好。
10.一种具有指令序列的非瞬态计算机可读介质,所述指令序列包括指令,所述指令当
被运行时使处理器执行根据权利要求1-9中任一项所述的方法。
11.一种用于设计目标设备上的系统的方法,包括:
对所述系统的设计应用推测的改变以改善寄存器重定时;
响应于所应用的推测的改变来预测要被实现在所述系统上的寄存器重定时优化;
在综合、布局和布线中的一个之后向设计者呈现对所述系统的时序分析,其中所述时
序分析反映被预测为要被实现在所述系统上的所述寄存器重定时优化和所应用的推测的
改变;以及
响应于在所述呈现之后由所述设计者提供的输入来修改所述系统上的所述综合、所述
布局和所述布线中的一个。
12.根据权利要求11所述的方法,其中所述修改包括响应于由所述设计者提供的所述
输入来将所述推测的改变实现为实际的改变。
13.根据权利要求11所述的方法,其中响应于预定设置来应用所述推测的改变。
14.根据权利要求11所述的方法,其中响应于由所述设计者提供的偏好来应用所述推
测的改变。
15.根据权利要求11所述的方法,还包括响应于由所述设计者提供的在所述推测的改
变上的偏好来对所述设计应用额外的推测的改变。
16.根据权利要求11所述的方法,还包括在所述修改之后执行寄存器重定时。
17.一种具有指令序列的非瞬态计算机可读介质,所述指令序列包括指令,所述指令当
被运行时使处理器执行根据权利要求11-16中任一项所述的方法。
18.一种用于设计目标设备上的系统的方法,包括:
响应于被预测为要被实现在所述系统上的寄存器重定时优化来执行在所述系统上的
综合;
在所述综合之后向设计者呈现对所述系统的时序分析,其中所述时序分析反映被预测
为要被实现在所述系统上的所述寄存器重定时优化;以及
并入响应于所述呈现而接收的来自所述设计者的输入以修改所述综合。
19.根据权利要求18所述的方法,其中所述方法还包括:
响应于被预测为要被实现在所述系统上的额外的寄存器重定时优化来执行在所述系
统上的布局;
在所述布局之后向所述设计者呈现对所述系统的时序分析,其中所述时序分析反映被
预测为要被实现在所述系统上的所述额外的寄存器重定时优化;并且
并入在所述布局之后接收的来自所述设计者的输入以修改所述布局。
20.根据权利要求19所述的方法,其中所述方法还包括:
响应于被预测为要被实现在所述系统上的进一步的寄存器重定时优化来执行在所述
系统上的布线;
在所述布线之后向所述设计者呈现对所述系统的时序分析,其中所述时序分析反映被
预测为要被实现在所述系统上的所述进一步的寄存器重定时优化;并且
并入在所述布线之后接收的来自所述设计者的输入以修改所述布线。
21.根据权利要求20所述的方法,其中,所述方法还包括在所述布线之后执行在所述系
统上的寄存器重定时。
22.根据权利要求20所述的方法,其中所预测的所述寄存器重定时优化包括对关键路
径添加流水线设计。
23.根据权利要求18所述的非瞬态计算机可读介质,其中所述综合通过减少所述系统
中的逻辑的深度来修改。
24.根据权利要求19所述的方法,其中所述布局通过将寄存器和逻辑放置得更为靠近
在一起来修改以减小回路延迟。
25.根据权利要求20所述的方法,其中所述布线通过缩短回路的路径来修改。
26.一种具有指令序列的非瞬态计算机可读介质,所述指令序列包括指令,所述指令当
被运行时使处理器执行根据权利要求18-25中任一项所述的方法。

说明书

用于在设计编译流程中利用针对寄存器重定时的估计的方法和装置

技术领域

本发明的各实施例涉及用于设计目标设备上的系统的工具。更具体地,本发明的
各实施例涉及一种用于在设计编译流程中利用针对寄存器重定时的估计的方法和装置。

背景技术

诸如现场可编程门阵列(FPGA)、专用集成电路(ASIC)和结构化ASIC的目标设备用
于实现可以包括数百个门和兆比特的嵌入式内存的大型系统。大型系统的复杂度常常需要
使用电子设计自动化(EDA)工具来创建并优化针对到物理目标设备上的系统的设计。在由
计算机辅助设计(CAD)中的EDA工具执行的流程之中编译流程是目标设备上的系统的设计
生成和集成、综合、布局(placement)和布线。

当解决传统时序收敛时,设计者关注于设计中的关键路径。关键路径是通过组合
元件或布线元件从一个寄存器到另一寄存器的路径,其未能或接近于未能满足时序要求。
在使时序收敛的努力中,设计者可以检查关键路径并尝试通过减少沿路径的组合延迟或布
线延迟的量来对其进行改善。

EDA工具可以利用寄存器重定时算法以便使时序收敛。寄存器重定时是用于改善
同步电路的速度性能的同步电路变换。寄存器重定时涉及跨各组合元件或布线电路元件来
移动寄存器以便减小时序上关键的路径的长度。组合结构保持不变,并且电路的可观察行
为与原始电路相同。

发明内容

根据本发明的实施例,在针对系统的设计编译流程中的每个综合、布局和布线流
程之后执行时序分析。该时序分析被提供给设计者,并且允许该设计者修改针对系统的设
计而无需等待完成设计的整个编译。根据本发明的实施例,时序分析和编译中的其他流程
由处理器执行,并且时序分析被输出给设计者。根据本发明的方面,被提供给设计者的时序
分析是重定时感知时序分析,其反映被预测为要被实现的布局后和布线后寄存器重定时优
化。为了反映被预测为要被实现的布局后和布线后寄存器重定时优化,可以对寄存器应用
歪斜和/或可以将正/负延迟元件添加到数据路径上以对实际的离散的寄存器重定时的效
果进行建模。根据本发明的另一方面,通过对系统的设计做出的推测的改变来使得能够进
行被预测为要被实现的布局后和布线后寄存器重定时优化。推测的改变可以与时序分析结
果一起被呈现给设计者,并且可以响应于由设计者提供的反馈来做出对设计的实际的改
变。通过执行反映布局后和布线后寄存器重定时优化的时序分析,将时序分析呈现给设计
者并且允许在整个系统的编译之前进行修改,本发明的各实施例允许在比先前已知的途径
更短的太阳城集团段内设计目标设备上的系统并且是本技术领域中的改进。

根据本发明的实施例,一种用于设计目标设备上的系统的方法包括执行系统上的
综合、布局和布线中的一个。在综合、布局和布线中的一个之后向设计者呈现对系统的时序
分析,其中时序分析反映被预测为要被实现在系统上的寄存器重定时优化。响应于在呈现
之后由设计者提供的输入来重新运行综合、布局和布线中的一个,并修改来自综合、布局和
布线中的一个的先前结果。

根据本发明的实施例,一种用于设计目标设备上的系统的方法包括对系统的设计
应用推测的改变以改善寄存器重定时。响应于所应用的推测的改变来预测要被实现在系统
上的寄存器重定时优化。在综合、布局和布线中的一个之后向设计者呈现对系统的时序分
析,其中时序分析反映被预测为要被实现在系统上的寄存器重定时优化和所应用的推测的
改变。响应于在呈现之后由设计者提供的输入来重新运行综合、布局和布线中的一个,并修
改来自综合、布局和布线中的一个的先前结果。

附图说明

本发明的各实施例的特征和优点是通过举例的方式来说明的并且不旨在将本发
明的各实施例的范围限于所示出的特定实施例。

图1是根据本发明的示例性实施例的用于设计目标设备上的系统的方法的流程
图。

图2A和图2B图示了根据本发明的示例性实施例的重定时感知时序分析如何呈现
关键路径。

图3是图示了根据本发明的示例性实施例的用于执行重定时感知时序分析的方法
的流程图。

图4A-C图示了根据本发明的示例性实施例的可以如何修改网表以反映寄存器重
定时预测的结果。

图5图示了根据本发明的另一示例性实施例的可以如何修改网表以反映寄存器重
定时预测的结果。

图6图示了根据本发明的示例性实施例的用于考虑到推测的改变执行重定时感知
时序分析的方法。

图7图示了根据本发明的示例性实施例的用于执行寄存器重定时的方法。

图8图示了根据本发明的实施例的实现系统设计器的计算机系统的框图。

图9图示了根据本发明的实施例的系统设计器的框图。

图10图示了根据本发明的实施例的示例性目标设备。

具体实施方式

在下面的描述中,为了解释的目的,阐述了特定命名法以提供对本发明的各实施
例的透彻理解。对于本领域技术人员将显而易见的是,可以不需要说明书中的特定细节来
实践本发明的各实施例。在其他实例中,众所周知的电路、设备、流程和程序以框图形式被
示出以避免不必要地使本发明的各实施例模糊不清。

图1是根据本发明的示例性实施例的用于设计目标设备上的系统的方法的流程
图。目标设备可以是现场可编程门阵列(FPGA)、专用集成电路(ASIC)、结构化ASIC或其他可
编程设备。根据一个实施例,图1中图示的流程可以被称为编译流程并且可以由实现在计算
机系统上的计算机辅助设计(CAD)/电子设计自动化(EDA)工具来执行。

在101处,对针对系统的设计进行综合。可以通过设计入口工具来提供针对系统的
规格。规格可以描述系统的部件和相互连接。根据本发明的实施例,被输入的设计可以以硬
件描述语言(HDL)处于寄存器传输级(RTL)中。综合包括生成要由目标设备实现的系统的逻
辑设计。根据本发明的实施例,综合根据HDL设计定义来生成系统的优化逻辑表示。系统的
优化逻辑表示可以包括具有系统所需要的最小化的数量的功能块(例如逻辑门、逻辑元件)
和寄存器的表示。综合还包括对优化逻辑表示进行映射。映射包括确定如何利用目标设备
上可用的资源的类型或种类来实现优化逻辑表示中的逻辑门和逻辑元件。目标设备上可用
的资源可以被称为“单元”或“部件”,并且可以包括逻辑阵列块、寄存器、存储器、数字信号
处理块、输入输出元件以及其他部件。根据本发明的实施例,根据映射来生成网表。该网表
可以是根据HDL生成的经优化的经技术映射的网表。在综合101期间,可以执行如在102处所
描述的时序分析以提供使得能够进行综合流程的时序数据。

在102处,执行重定时感知时序分析。可以响应于来自综合101、布局106或布线110
的请求来执行重定时感知时序分析。根据本发明的实施例,重定时感知时序分析是反映被
预测为要被实现在系统的设计上的布局后和布线后寄存器重定时优化的时序分析。实现分
析和布局后和布线后寄存器重定时优化可以被反映在时序分析网表中。来自重定时感知时
序分析的结果被提供回到综合101、布局106或布线110流程。

在103处,确定是否要执行时序分析。根据本发明的实施例,可以根据来自设计者
的请求来确定太阳城集团是否要执行时序分析的确定。如果确定要执行时序分析,则控制继续进
行到104。如果确定不要执行时序分析,则控制继续进行到106。

在104处,执行重定时感知时序分析。重定时感知时序分析104被执行以访问针对
系统的经综合的设计。根据本发明的实施例,重定时感知时序分析104可以与在102处执行
的重定时感知时序分析相似并且包括反映被预测为要被实现在系统的设计上的布局后和
布线后寄存器重定时优化的时序分析。实现分析和布局后和布线后寄存器重定时优化可以
被反映在时序分析网表中或输出给设计者的其他报告中。

在105处,将综合优化并入到系统的设计中。综合优化可以是对由设计者接收到的
系统的设计的修改。对系统的设计的修改可以由设计者响应于在104处输出的时序分析和
重定时优化报告来提供。控制返回到101。

在106处,对系统进行布局。根据本发明的实施例,布局涉及将经技术映射的逻辑
系统布局在目标设备上。布局包括通过确定目标设备上的哪些特定资源要被分配给在综合
期间确定的经技术映射的网表和由在综合期间确定的经技术映射的网表实现来将系统适
配在目标设备上。布局可以包括聚簇,其涉及将各逻辑元件分组到一起以形成呈现在目标
设备上的逻辑簇。在布局106期间,可以执行如在102处所描述的时序分析以提供使得能够
进行布局流程的时序数据。

在107处,确定是否要执行时序分析。根据本发明的实施例,可以根据来自设计者
的请求来确定太阳城集团是否要执行时序分析的确定。如果确定要执行时序分析,则控制继续进
行到108。如果确定不要执行时序分析,则控制继续进行到110。

在108处,执行重定时感知时序分析。重定时感知时序分析108被执行以访问针对
系统的经布局的设计。根据本发明的实施例,重定时感知时序分析108可以与在102处执行
的重定时感知时序分析相似并且包括反映被预测为要被实现在系统的设计上的布局后和
布线后寄存器重定时优化的时序分析。实现分析和布局后和布线后寄存器重定时优化可以
被反映在时序分析网表中或输出给设计者的其他报告中。

在109处,将布局优化并入到系统的设计中。布局优化可以是对由设计者接收到的
系统的设计的修改。对系统的设计的修改可以由设计者响应于在108处输出的时序分析和
重定时优化报告来提供。控制返回到101。

在110处,对经布局的设计进行布线。在布线期间,目标设备上的布线资源被分派
以提供在目标设备上的各逻辑门、各逻辑元件以及其他部件之间的相互连接。可布线性优
化还可以在经布局的逻辑设计上被执行。根据本发明的实施例,可布线性优化的目标在于
减小用于将经布局的逻辑设计中的各部件连接的接线量。可布线性优化可以包括执行扇出
分裂(fanout splitting)、逻辑重复、逻辑重接线或其他流程。应当认识到,可以在经布局
的逻辑设计上执行各流程中的一个或多个流程。在布线110期间,可以执行如在102处所描
述的时序分析以提供使得能够进行布线流程的时序数据。

在111处,确定是否要执行时序分析。根据本发明的实施例,可以根据来自设计者
的请求来确定太阳城集团是否要执行时序分析的确定。如果确定要执行时序分析,则控制继续进
行到112。如果确定不要执行时序分析,则控制继续进行到114。

在112处,执行重定时感知时序分析。重定时感知时序分析112被执行以访问针对
系统的经布线的设计。根据本发明的实施例,重定时感知时序分析112可以与在102处执行
的重定时感知时序分析相似并且包括反映被预测为要被实现在系统的设计上的布局后和
布线后寄存器重定时优化的时序分析。实现分析和布局后和布线后寄存器重定时优化可以
被反映在时序分析网表中或输出给设计者的其他报告中。

在113处,将布线优化并入到系统的设计中。布线优化可以是对由设计者接收到的
系统的设计的修改。对系统的设计的修改可以由设计者响应于在112处输出的时序分析和
重定时优化报告来提供。控制返回到101。

在114处,在系统上执行寄存器重定时。根据本发明的实施例,寄存器重定时涉及
将识别出的寄存器跨各组合电路元件或布线电路元件移动以减小时序上关键或接近关键
的路径的长度。

在115处,对系统的设计执行时序分析。根据本发明的实施例,时序分析确定是否
满足系统的时序约束。时序分析可以取决于其何时被执行来利用近似。根据本发明的实施
例,时序分析建立针对系统中的每条路径的长度以及针对系统中的每条路径的时序裕量
(slack)。时序裕量可以被定义为在路径变得关键之前能够被添加到路径的延迟量或者信
号到达的所要求的太阳城集团减去信号到达的实际太阳城集团。

在116处,执行组装。组装流程涉及创建包括由在101-115处描述的流程确定的信
息的数据文件。数据文件可以为用于对目标设备进行编程的比特流。通过利用数据文件来
对目标进行编程,目标设备上的各部件被物理变换以实现该系统。

根据本发明的实施例,可以在时序分析115之后在设计上执行进一步的分析。例
如,如果设计不满足时序要求,则设计者可以识别什么可能在限制性能并且将控制返回到
流中的任何部分以进行进一步的处理。

当重定时感知时序分析被执行时,提供考虑到要被实现的布局后和布线后寄存器
重定时优化的设计的视图。通过考虑用于后续寄存器重定时流程的能力来通过在设计、综
合、布局和布线过程内移动寄存器来对设计进行重定时,并且设计者提供的修改可以关注
于寄存器重定时不能够解决的其他设计问题和要求。例如,服从于流水线设计的单向或“前
向反馈”逻辑路径可以通过寄存器重定时来解决。然而,诸如回路的循环逻辑路径较不服从
于流水线设计。如果针对系统的设计包括前向反馈和循环逻辑路径两者,则关注于优化具
有最长延迟的路径的技术可以关注于能够通过寄存器重定时缩短的路径,同时忽略将在执
行寄存器重定时之后保持为较长路径的明显较短的路径。本发明的各实施例提供从寄存器
重定时可获得的改善并且将这些改善的结果输出给设计者。关键的且不能够通过寄存器重
定时缩短的并且应当为优化的焦点的逻辑路径被识别给设计者/用户。

图2A和图2B图示了根据本发明的示例性实施例的时序分析和重定时感知时序分
析如何呈现路径的示例。图2A图示了时序分析将如何呈现路径210、220和230。如所示出的,
时序分析将路径210和路径220识别为最关键的,并且将路径230识别为最不关键的。图2B图
示了重定时感知时序分析将如何呈现路径210、220和230。重定时感知时序分析意识到沿路
径210和220的寄存器将在寄存器重定时之后被移动并且因此路径将不是关键的。如所示出
的,在三个路径210、220和230之中,不被重定时的路径230是最关键的。

利用哪些路径在布局后和布线后寄存器重定时之后最关键的知识,设计者可以集
中资源来解决其关键性。参考回到图1,在104处向设计者提供了重定时感知时序分析之后,
设计者可以修改经综合的设计来减小关键路径上的逻辑的深度。在108处向设计者提供重
定时感知分析结果之后,设计者可以通过将回路移动得更为靠近在一起来修改经布局的设
计。在112处向设计者提供重定时感知分析结果之后,设计者可以通过缩短关键路径上的布
线来修改经布线的设计。应当认识到,可以由设计者做出其他修改和优化,例如去除逻辑的
级,对设计进行重组以去除回路,添加寄存器以及改变设计的功能。

图3是图示了根据本发明的示例性实施例的用于执行重定时感知时序分析的方法
的流程图。图3中图示的方法可以用于实现如图1所示的流程102、104、108和112。在301处,
执行时序分析。根据本发明的实施例,时序分析可以包括在115处执行的流程,其中做出系
统的设计是否满足太阳城集团系统的时序约束的确定。应当认识到,时序分析可以取决于其何时
被执行来利用估计和近似。当在编译流程中时序分析被调用的太阳城集团越早,可以利用的估计
和近似越多。根据本发明的实施例,时序分析建立针对系统中的每条路径的长度以及针对
系统中的每条路径的时序裕量。时序裕量可以被定义为在路径变得关键之前能够被添加到
路径的延迟量或者信号到达的所要求的太阳城集团减去信号到达的实际太阳城集团。

在302处,执行重定时预测。基于在301处执行的时序分析和已经完成的设计的阶
段,预测要被实现在系统的设计上的布局后和布线后寄存器重定时优化。根据本发明的实
施例,可以执行简略寄存器重定时来生成预测。例如,可以使用归因于编译的阶段而仅仅部
分完整的设计来执行寄存器重定时,在该编译的阶段中重定时感知时序分析被执行并且不
是太阳城集团完全寄存器重定时分析所需要的设计的所有太阳城集团都可以是可获得的。在其他实施例
中,可以忽略在寄存器重定时上的一个或多个限制以便更快速地生成预测。备选地,可以使
用对完成详细分析可获得的所有太阳城集团来执行完整的寄存器重定时分析。

在303处,更新时序分析。根据本发明的实施例,更新在301处执行的时序分析以包
括被预测为要被实现在系统上的寄存器重定时优化。

在304处,更新时序分析网表以反映要被实现在系统上的寄存器重定时优化。根据
本发明的实施例,寄存器重定时优化可以被反映为时钟歪斜或者数据路径上的正或负延迟
元件。备选地,寄存器重定时优化可以被反映为离散寄存器重定时,其中寄存器实际上在系
统的设计中被移动。

在305处,输出重定时感知时序分析的结果。当重定时感知时序分析被编译流程中
的诸如综合、布局或布线的过程调用时,重定时感知时序分析可以被发送到该过程。当重定
时感知时序分析被设计者启动时,重定时感知时序分析可以被发送到设计者。重定时感知
时序分析结果向设计者提供在布局后和布线后寄存器重定时之后的系统的设计的准确全
貌。

图4A-C图示了根据本发明的示例性实施例的可以如何修改网表以反映寄存器重
定时预测的结果。图4A图示了如下数据路径,其中寄存器A由信号clkA时钟控制,寄存器B由
信号clkB时钟控制,并且寄存器C由信号clkC时钟控制。要将数据从寄存器A发送到寄存器B
所需要的太阳城集团是dataA->B。要将数据从寄存器B发送到寄存器C所需要的太阳城集团是dataB->C。用于
在寄存器A与寄存器B之间发送数据的时序裕量和用于在寄存器B与寄存器C之间发送数据
的时序裕量可以由下式表示,其中,T是时钟周期。

SlackA->B=T+clkB–clkA–dataA->B

SlackB->C=T+clkC–clkB–dataB->C

图4B图示了通过将寄存器B朝向寄存器C前向移动以实现延迟Δ而重定时的图4A
中的数据路径。如所示出的,所执行的寄存器重定时可以通过增加在寄存器A与寄存器B之
间的正延迟元件并且增加在寄存器B与寄存器C之间的负延迟元件来表示。图4B和图4C中的
用于在寄存器A与寄存器B之间发送数据的时序裕量和用于在寄存器B与寄存器C之间发送
数据的时序裕量可以由下式表示。

SlackA->Bnew=T+clkB–clkA–(dataA->B+Δ)

SlackB->Cnew=T+clkC–clkB–(dataB->C–Δ)

图4C图示了通过将寄存器B朝向寄存器C前向移动以实现延迟Δ而重定时的图4A
中的数据路径。如所示出的,所执行的寄存器重定时可以通过将时钟歪斜添加到寄存器B来
表示。图4B和图4C中的用于在寄存器A与寄存器B之间发送数据的时序裕量和用于在寄存器
B与寄存器C之间发送数据的时序裕量可以由下式表示。

SlackA->Bnew=T+(clkB–Δ)–clkA–dataA->B

SlackB->Cnew=T+clkC–(clkB–Δ)–dataB->C

图5图示了根据本发明的另一示例性实施例的可以如何修改网表以反映寄存器重
定时预测的结果。被标记为“基准”的路径包括三个寄存器并且图示了在实现任何寄存器重
定时优化之前的时序裕量。在第一寄存器与第二寄存器之间的时序裕量为-50ps,并且在第
二寄存器与第三寄存器之间的时序裕量为-150ps。

被标记为“在重定时之后”的路径图示了在执行了寄存器重定时优化之后的路径。
如所示出的,将第二寄存器沿该路径朝向第三寄存器移动。移动将在第一寄存器与第二寄
存器之间的时序裕量从-50ps改变为-100ps。移动还将在第二寄存器与第三寄存器之间的
时序裕量从-150ps改变为-100ps。

被标记为“重定时预测”的路径图示了如在重定时感知时序分析之后表示在时序
分析中的路径。代替表示利用第二寄存器的移动的寄存器重定时优化,寄存器重定时优化
通过将时钟延迟改变为第二寄存器来表示。如所示出的,到第二寄存器的时钟输入被延迟-
50ps。到第二寄存器的时钟输入的这种调节将在第一寄存器与第二寄存器之间的时序裕量
从-50ps改变为-100ps。移动还将在第二寄存器与第三寄存器之间的时序裕量从-150ps改
变为-100ps。这允许使用纯延迟调节来对寄存器重定时优化进行建模,而无需对系统的设
计的结构性改变。

图6图示了根据本发明的示例性实施例的用于考虑到推测的改变执行重定时感知
时序分析的方法。图6中图示的方法可以用于实现如图1所示的过程104、108或112。推测的
寄存器重定时修改设计中的限制或阻碍寄存器重定时的结构以改善针对系统的经重定时
的结果。根据本发明的实施例,推测的改变允许系统向设计工具的设计者或用户提供推荐
以指示能够做出哪些改变以改善将利用这些改变实现的性能和所估计的性能增益。可以响
应于由设计者提供的在重定时感知时序分析的先前迭代期间做出的推测的改变上的反馈
来做出针对对设计的修改实现的推测的改变。在其中设计者/用户反馈不可获得的重定时
感知时序分析的初始迭代期间,可以使用根据预设优先次序的预定义集合的推测的动作来
选择推测的改变。

在601处,执行时序分析。根据本发明的实施例,时序分析可以包括在来自图1的
115处执行的过程,其中做出系统的设计是否满足太阳城集团系统的时序约束的确定。应当认识
到,时序分析可以取决于其何时被执行来利用估计和近似。当在编译流程中时序分析被调
用的太阳城集团越早,可以利用的估计和近似越多。根据本发明的实施例,时序分析建立针对系统
中的每条路径的长度以及针对系统中的每条路径的时序裕量。时序裕量可以被定义为在路
径变得关键之前能够被添加到路径的延迟量或者信号到达的所要求的太阳城集团减去信号到达
的实际太阳城集团。

在602处,识别对设计中的寄存器重定时的限制。对寄存器重定时的限制可以包括
在设计中限制重定时的能力的任何结构。对寄存器重定时的限制的示例可以是特定寄存器
的无法支持一定类型的功能,其中特定寄存器要被用于对利用该功能的另一寄存器进行重
定时。根据本发明的方面,功能可以为支持异步清除的能力。对寄存器重定时的限制的另一
示例是抑制或限制应当被移动以进行重定时的寄存器的移动的设计者/用户指引。应当认
识到,也可以识别到其他限制。

根据本发明的实施例,还可以识别在设计上的将改善限制重定时性能的推测的改
变。例如,可以提供在异步时钟交叉处的额外的流水线设计。可以调节在双端口RAM上的读/
写时序关系。额外的流水线设计可以被提供在被标记为错误路径的边缘上,从而指示设计
者/用户不关心沿边缘的定时。可以提高RAM和DSP上的内部流水线设计。可以允许为交叉时
钟传输的目标的寄存器移动。

在603处,对设计应用推测的改变。根据本发明的实施例,推测的改变被应用以去
除对寄存器重定时的限制和/或改善寄存器重定时性能,其中需要寄存器重定时来减小路
径的关键性。根据在重定时感知时序分析的先前迭代中进行的推测的改变上的设计者指定
的偏好来将推测的改变应用到设计。设计者指定的偏好包括太阳城集团哪些推测的改变是可接受
的并且哪些推测的改变不是可接受的设计者/用户反馈。根据本发明的实施例,在首次执行
重定时感知时序分析并且没有设计者指定的偏好可获得的情况下,可以根据预设优先次序
来执行预定义集合的推测的改变。根据本发明的实施例,可以根据下面的顺序来执行预定
义集合的推测的动作。首先,异步清除被去除和/或被转换为同步清除。第二,去除设计者/
用户指引。第三,通过将寄存器添加到异步时钟传输的任意端来添加流水线设计。

在604处,执行重定时预测。基于在601处执行的时序分析、在603处应用的推测的
改变和已经完成的设计的阶段,预测要被实现在系统的设计上的布局后和布线后寄存器重
定时优化。根据本发明的实施例,可以执行简略寄存器重定时来生成预测。例如,可以使用
归因于其中执行重定时感知时序分析并且不是太阳城集团完全寄存器重定时分析所需要的设计
的所有太阳城集团都可以是可获得的编译的阶段而仅仅部分完整的设计来执行寄存器重定时。在
其他实施例中,可以忽略在寄存器重定时上的一个或多个限制以便更快速地生成预测。备
选地,可以使用对完成详细分析可获得的所有太阳城集团来执行完整的寄存器重定时分析。

在605处,更新时序分析。根据本发明的实施例,更新在601处执行的时序分析以包
括被预测为要被实现在系统上的寄存器重定时优化。

在606处,更新时序分析网表以反映要被实现在系统上的寄存器重定时优化。根据
本发明的实施例,寄存器重定时优化可以被反映为时钟歪斜或者数据路径上的正或负延迟
元件。备选地,寄存器重定时优化可以被反映为离散寄存器重定时,其中寄存器实际上在系
统的设计中被移动。

在607处,将重定时感知时序分析的结果输出给设计者。重定时感知时序分析结果
向设计者提供在布局后和布线后寄存器重定时之后的系统的设计的准确全貌。

根据本发明的实施例,在104、108和112处执行说明推测的改变的重定时感知时序
分析之后,设计者可以在105、109和113处提供太阳城集团与其他优化一起实现的推测的改变的反
馈。在105、109和113处提供的设计者反馈可以在做出推测的改变时在重定时感知时序分析
的后续迭代期间被利用。基于设计者反馈,还可以对设计做出修改以实现期望的并且改善
寄存器重定时的推测的改变。

本发明的各实施例允许利用设计者反馈的引导来执行用于寄存器重定时的推测
的改变。当面对不能被重定时的路径时,推测的寄存器重定时可以具有能够被做出以允许
重定时继续进行的多个推测的改变的选项。代替允许推测的寄存器重定时以选择可以破坏
在先前编译期间实现的优化的选项,设计者/用户反馈可以用于选择理想的选项。本发明的
各实施例允许设计者/用户通过指示将实现哪些推测的动作并且在设计的进一步修改中将
不实现哪些推测的动作来引导编译和推测的寄存器重定时。在寄存器重定时分析期间的编
译的未来迭代可以基于将做出的改变来执行优化,并且推测的寄存器重定时的未来迭代可
以避免将不做出的推测的改变。根据本发明的实施例,可以以除了源RTL的格式并且独立于
源RTL来提供设计者/用户反馈。这允许设计者/用户更好地利用推测的改变的益处,而无需
修改代码。应当认识到,尽管针对改善寄存器重定时的推测的改变提供了特定示例,但是还
可以实现其他改变来改善寄存器重定时。

图7图示了根据本发明的示例性实施例的用于执行寄存器重定时的方法。图7是图
示了根据本发明的示例性实施例的用于执行寄存器重定时的方法的流程图。图7中图示的
方法可以用于实现图1中示出的114。应当认识到,也可以使用其他方法来实现109。在701
处,识别具有连接到接近关键的路径的输入的寄存器并识别具有耦合到接近关键的路径的
输出的寄存器。根据本发明的实施例,接近关键的路径是系统中的具有低于阈值的时序裕
量值的路径。

在702处,将在701处识别的寄存器移动到新的位置。根据本发明的实施例,可以通
过将寄存器在接近关键的路径上后向移动到部件的输入来识别针对每个所识别的寄存器
的新的位置。针对要发生的后向推动,寄存器需要被呈现在部件的每个扇出上。根据本发明
的实施例,可以通过将寄存器在接近关键的路径上前向移动到部件的输出来识别新的位
置。针对要发生的前向推动,寄存器需要被呈现在部件的每个输入上。根据本发明的备选实
施例,可以通过利用减小关键性的约束来对多个等式进行求解来识别针对寄存器的新的位
置。

在703处,针对每个移动的寄存器,确定是否在702处将寄存器移动到其新的位置
将引发对约束的违反。根据本发明的实施例,约束可以包括设计者/用户定义的时序约束。
约束可以包括针对系统的面积约束,例如太阳城集团允许的最大面积增加的全局约束和确保均匀
地跨系统创建寄存器的约束。约束可以包括体系结构约束,其定义用于处理进位链的规则
和太阳城集团诸如控制信号的次级信号的各种限制。约束可以包括设计者/用户定义的约束,例如
抑制目标设备的指派部分上的部件的布局的约束。应当认识到,其他类型的约束还可以出
于在703处对违反的确定的目的而被定义并被包含。如果确定将寄存器移动到其新的位置
引发约束的违反,则控制继续进行到704。如果确定将寄存器移动到其新的位置不会引发约
束的违反,则控制继续进行到705。

在704处,撤销导致违反的移动。控制继续进行到705。

在705处,执行时序分析。时序分析建立针对系统中的每条路径的长度以及针对系
统中的每条路径的时序裕量。

在706处,确定系统的时序是否已经被改善。确定系统的时序是否已经被改善可以
通过将最近经重定时的系统设计中的接近关键的路径的时序裕量值与先前系统设计中的
接近关键的路径的时序裕量值进行比较来实现。如果系统的时序已经改善,则控制继续进
行到707。如果系统的时序尚未改善,则控制继续进行到708。

在707处,保存对系统的当前改变。对系统的当前改变包括在702处做出的改变。

在708处,确定是否已经了执行阈值数量的迭代701-707。如果尚未执行阈值数量
的迭代701-707,则控制返回到701。如果已经执行了阈值数量的迭代701-707,则控制继续
进行到709。

在709处,在707处保存的当前改变被指派为针对系统的当前设计。在图7中描述的
过程可以被称为离散寄存器重定时。

根据本发明的实施例,图1、3、6和7中图示的流程可以通过运行在第一计算机系统
上的EDA工具来执行。数据文件可以被生成并被发送到第二计算机系统以允许系统的设计
被进一步处理。备选地,数据文件可以被发送到第二计算机系统,其可以用于根据系统设计
来对目标设备进行编程。应当认识到,系统的设计还可以以其他形式被输出在例如显示器
设备或其他介质上。通过利用数据文件来对目标进行编程,目标设备上的各部件被物理变
换以实现系统。

图1、3、6和7是图示了本发明的各实施例的流程图。在这些附图中描述的流程可以
通过由计算机系统实现的EDA工具来执行。图示的技术中的一些可以顺序地、并行地或以除
了描述的并且所描述的流程可以被重复的顺序之外的顺序来执行。应当认识到,不是所描
述的技术中的全部都需要被执行,可以添加额外的技术,并且可以利用其他技术来替代所
图示的技术中的一些。

图8图示了根据本发明的实施例的实现系统设计器的计算机系统800的框图。计算
机系统800包括处理数据信号的处理器810。处理器810耦合到总线801或其他交换结构,其
在处理器810与计算机系统800中的其他部件之间发送数据信号。计算机系统800包括存储
器820。存储器820可以存储由数据信号表示的可以由处理器810运行的指令和代码。数据存
储设备830也耦合到总线801。

网络控制器840耦合到总线801。网络控制器840可以将计算机系统800链接到计算
机的网络(未示出)并且支持在各机器之间的通信。显示设备控制器850耦合到总线801。显
示设备控制器850允许将显示设备(未示出)耦合到计算机系统800并且用作在显示设备与
计算机系统800之间的接口。输入接口860耦合到总线801。输入接口860允许将输入设备(未
示出)耦合到计算机系统800并且将数据信号从输入设备发送到计算机系统800。

系统设计器821可以驻存在存储器820中并且由处理器810运行。根据本发明的实
施例,系统设计器821包括重定时感知时序分析单元。重定时感知时序分析单元可以在编译
流程中的每个综合、布局和布线流程之后执行重定时感知时序分析。重定时感知时序分析
被提供给设计者,并且允许该设计者修改针对系统的设计而无需等待完成设计的整个编
译。重定时感知时序分析反映被预测为要被实现的布局后和布线后寄存器重定时优化。根
据本发明的方面,通过对系统的设计做出的推测的改变来使得能够进行被预测为要被实现
的布局后和布线后寄存器重定时优化。推测的改变可以与时序分析结果一起被呈现给设计
者,并且可以响应于由设计者提供的反馈来做出对设计的实际的改变。

图9图示了根据本发明的实施例的系统设计器900。系统设计器900可以用于实现
图8中图示的系统设计器821。系统设计器900可以是用于设计目标设备上的系统的EDA工
具,目标设备例如FPGA、ASIC、结构化ASIC或其他电路。图9图示了实现系统设计器900的实
施例的模块。根据一个实施例,模块表示软件模块,并且系统设计可以由计算机系统来执
行,计算机系统例如图8中图示的运行由图9中示出的模块表示的指令序列的计算机系统。
如下文将描述的,对指令序列的运行使计算机系统支持系统设计。在备选实施例中,硬接线
电路可以代替各软件指令或与各软件指令组合使用以实现本发明的各实施例。因此,本发
明的各实施例不限于硬件电路和软件的任何具体组合。

系统设计器900包括设计者管理器910。系统设计器管理器910连接到系统设计器
900的其他部件并且在系统设计器900的其他部件之间发送数据。系统设计器管理器910提
供接口,其允许设计者/用户(例如设计者)将数据输入到系统设计器900中并且允许系统设
计器900将数据输出给设计者/用户。根据本发明的实施例,针对系统的设计、对设计的修改
和太阳城集团对设计的推测的改变的反馈可以为使用系统设计器管理器910的输入。重定时感知
时序分析的报告、对设计做出的推测的改变以及由推测的改变获得的性能可以由系统设计
管理器910输出。

系统设计器900包括综合单元920。综合单元920生成要由目标设备实现的系统的
逻辑设计。根据本发明的实施例,综合单元920根据HDL设计定义来生成系统的经优化的逻
辑表示并对优化逻辑设计进行映射。根据本发明的实施例,根据映射来生成网表。该网表可
以是根据HDL生成的经优化的经技术映射的网表。

系统设计器900包括布局单元930。根据本发明的实施例,布局单元930将经映射的
逻辑系统布局在目标设备上。布局作用在经技术映射的网表上以产生针对每个功能块的布
局。根据本发明的实施例,布局单元930通过确定逻辑设计上的哪些资源要被用于特定逻辑
元件和被确定为实现如在综合期间所确定的系统的其他功能块来将系统适配在目标设备
上。布局可以包括聚簇,其涉及将各逻辑元件分组到一起以形成呈现在目标设备上的逻辑
簇。

系统设计器900包括布线单元940,其对目标设备上的经布局的设计进行布线。布
线单元940分派目标设备上的布线资源以提供在目标设备上的各逻辑门、各逻辑元件以及
其他部件之间的相互连接。布线单元940还可以执行在经布局的逻辑设计上的可布线性优
化。

系统设计器900包括重定时感知时序分析单元950。重定时感知时序分析单元950
响应于来自综合单元920、布局单元930、布线单元940或来自设计者的请求来执行重定时感
知时序分析。重定时感知时序分析反映被预测为要被实现在系统的设计上的布局后和布线
后寄存器重定时优化。实现分析和布局后和布线后寄存器重定时优化可以被反映在由重定
时感知时序分析单元950生成的时序分析网表中。来自重定时感知时序分析的结果被提供
回到请求发起者。

根据本发明的实施例,重定时感知时序分析单元950可以响应于对设计做出的改
善寄存器重定时的推测的改变来执行重定时感知时序分析。推测的寄存器重定时单元(未
示出)可以识别对寄存器重定时的限制并且响应于由设计者提供的预定集合的优先次序
和/或偏好来应用推测的改变。

根据本发明的实施例,设计者可以请求在综合、布局或布线之后执行重定时感知
时序分析,而无需等待设计的整个编译。这允许设计者查看在早期阶段处的设计并允许设
计者做出修改以改善在早期阶段处的设计。当重定时感知时序分析被执行时,将考虑到要
被实现的布局后和布线后寄存器重定时优化的设计的视图提供回到设计者。

系统设计器900包括寄存器重定时单元960。根据本发明的实施例,寄存器重定时
单元960将识别出的寄存器跨组合电路元件移动以减小如所确定的时序上关键或接近关键
的路径的长度。寄存器重定时单元960可以执行图7中图示的流程。

系统设计器900包括时序分析单元980,其执行在所生成的系统的设计上的时序分
析。根据本发明的实施例,时序分析确定是否满足系统的时序约束。时序分析单元980可以
建立针对系统中的每条路径的长度以及针对系统中的每条路径的时序裕量。时序裕量可以
被定义为在路径变得关键之前能够被添加到路径的延迟量或者信号到达的所要求的太阳城集团
减去信号到达的实际太阳城集团。

系统设计器900包括组装单元980。根据本发明的实施例,组装单元980创建描述系
统的设计的数据文件。数据文件可以为用于对目标设备进行编程的比特流。通过利用数据
文件来对目标设备进行编程,目标设备被物理地变换以实现系统。应当认识到,系统设计器
900中的模块可以实现参考图1、3、6和7描述的过程。

根据本发明的实施例,当执行所描述的编译流程时,来自综合、布局和布线的数据
被存储在计算机系统的存储器中的寄存器中。在综合、布局和/或布线之后完成了重定时感
知时序分析之后,得到的经修改的数据可以被存储在存储器中的第二组寄存器中。来自重
定时感知时序分析的经修改的数据可以经由显示设备控制器或其他输出设备被输出给设
计者。由设计者提供的输入可以经由输入接口来接收。从由设计者提供的输入得到的对综
合、布局和/或布线的修改可以被存储在存储器中的第三组寄存器中。描述系统的数据文件
可以被存储在数据存储设备中和/或从计算机系统被输出。

应当认识到,本发明的各实施例可以被提供为计算机程序产品或软件,其可以包
括具有指令的计算机可读或机器可读介质。计算机可读或机器可读介质上的指令可以用于
对计算机系统或其他电子设备进行编程。机器可读介质可以包括但不限于软盘、光盘、CD-
ROM以及磁光盘或适合于存储电子指令的其他类型的介质/机器可读介质。本文描述的技术
不限于任何特定软件配置。它们可以适用于在任何计算或处理环境中。本文使用的术语“计
算机可读介质”或“机器可读介质”应包括能够存储或编码指令序列的任何介质,所述指令
序列用于由计算机运行并且使计算机执行本文描述的方法中的任何方法。另外,本领域中
常见的是提到以一种形式或另一形式的软件(例如,程序、流程、过程、应用、模块、单元、逻
辑、等等)作为采取动作或引发结果。这种表达仅仅是陈述对由处理系统的软件的运行使处
理器执行产生结果的动作的速记方式。

图10图示了根据本发明的实施例的可以用于实现目标设备的设备1000。设备1000
是包括多个逻辑阵列块(LAB)的现场可编程门阵列(FPGA)。每个LAB可以由多个逻辑块、进
位链、LAB控制信号、查找表(LUT)链以及寄存器链连接线路形成。逻辑块是提供用户逻辑功
能的有效实现的小逻辑单元。逻辑块包括一个或多个组合单元,其中每个组合单元具有单
个输出以及寄存器。根据本发明的实施例,逻辑块可以与逻辑元件(LE)类似地操作,例如在
由公司制造的Stratix或Cyclone设备中发现的那些,或者组合逻辑块(CLB),例
如在由Xilinx公司制造的Virtex设备中发现的那些。在该实施例中,逻辑块可以包括具有
可配置寄存器的第四输入LUT。根据本发明的备选实施例,逻辑块可以与自适应逻辑模块
(ALM)类似地操作,例如在由Altera公司制造的Stratix设备中发现的那些。LAB被归类成跨
设备1000的行和列。LAB的列被示出为1011-1016。应当认识到,逻辑块可以包括额外的或备
选的部件。

设备1000包括存储器块。存储器块可以例如为双端口随机存取存储器(RAM)块,其
以高达的各种频率提供高达各种位宽的专用真实双端口、简单双端口或简单端口存储器。
存储器块可以被归类成跨在各选择的LAB之间的设备的列或被单独地或成对地被定位在设
备1000内。存储器块的列被示出为1021-1024。

设备1000包括数字信号处理(DSP)块。DSP块可以用于实现具有相加或相减特征的
各种配置的乘法器。DSP块包括移位寄存器、乘法器、加法器和累加器。DSP块可以被归类成
跨设备1000的各列并且被示出为1031。

设备1000包括多个输入/输出元件(IOE)1040。每个IOE馈送设备1000上的IO引脚
(未示出)。IOE 1040被定位在设备1000的外围周围的LAB行和列的端部。每个IOE可以包括
双向IO缓冲器和用于登记输入、输出和输出使能信号的多个寄存器。

设备1000可以包括路由资源,例如lAB本地相互连接线路、行相互连接线路(“H型
接线”)、列相互连接线路(“V型接线”)(未示出)以在目标设备的各部件之间路由信号。

在前面的说明书中,已经参考本发明的具体示例性实施例描述了本发明的各实施
例。然而,将显而易见的是,可以在不脱离本发明的各实施例的较广泛的精神和范围的情况
下对其进行各种修改和改变。因此,说明书和附图应被认为是在说明性而非限制性的意义
上。

关 键 词:
用于 设计 编译 流程 利用 针对 寄存 器重 定时 估计 方法 装置
  专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
太阳城集团本文
本文标题:用于在设计编译流程中利用针对寄存器重定时的估计的方法和装置.pdf
链接地址:http://zh228.com/p-6100787.html
太阳城集团我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服客服 - 联系我们

copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备17046363号-1 
 


收起
展开
葡京赌场|welcome document.write ('');