4.1i定时-由周期约束(交叉问题)拾取多周期(从:to)路径约束-Xilinx-AMD社区-FPGA CPLD-ChipDebug

4.1i定时-由周期约束(交叉问题)拾取多周期(从:to)路径约束

描述

紧迫:热

一般描述:

下面的时间规格被定义为创建多循环路径。这些约束应该包括对特定定时组(GROPA和GROPB)的所有触发器;然而,一些寄存器被放置到周期时间规范中,导致长时间运行和无效路径。

下面是时间段和从:到约束的例子

网络时钟TNMYNET=时钟GRP;

TimExcel TSK CLK=周期时钟20 GRP;

TimExcel“TSY-GRPA”=从“FFS”到“GyPa”TSY-CLK“* 2;

TimExcel“TSY-GRPB”=从“FFS”到“GyPB”“TSY-CLK”* 2;

欲了解更多信息,请参见(赛灵思解答5939)(赛灵思解答5965).

解决方案

当特定的从(to)循环(多周期)约束不是整个(周期)约束的子集(或更小的部分)时,会发生此问题。由于多周期约束不是周期约束的子集,所以工具不能去除多周期约束所覆盖的路径。该周期的正确子集如图1所示。

Figure 1 - Correct Subset of FFs with respect to PERIOD
图1 – FFS关于周期的正确子集

该图表明,周期规范定义了许多路径,并且TWY-FLASH定义了周期规范中的路径子集。结果是TWY慢路径被从周期覆盖中移除。

在图2中,G是超集时间规范(例如,周期规范),H是子集时间规范(例如,Max Delphi或TIG规范),G′是当从G中移除H时的结果;这意味着H必须是G的子集。

Figure 2 - Correct Subset/Super-set Relationship
图2 -正确的子集/超级集合关系

另一个问题涉及这些时间组与其他时间组的交集。如果一个以上的多周期约束覆盖相同的路径或时间组,覆盖相同的源或目的地,则称为“交叉”。工具不知道在哪个时间组或多周期约束下保持路径,以及从哪个组移除该路径。交集的一个例子如图3所示。图4和图5中的例子也说明了两个时间组和周期之间的相互作用。

Figure 3 - Intersection between TS_SLOW and the PERIOD
图3:TSH慢与周期的交集

Figure 4 - Interaction between TS_SLOW1, TS_SLOW2, and the PERIOD
图4:TSH慢1、TSH慢2与周期的相互作用

Figure 5 - Interaction between TS_SLOW, TS_SLOWER, and the PERIOD
图5 TS-慢,TS-较慢,和周期的相互作用

在大多数情况下,简单地修改时间组以消除不必要的重叠将解决这个问题。请参阅其他解决方案,以解决可能的工作。

交互问题在最新的3.1i服务包中固定,可在:

HTTP://Spop.xILIX.COM/Sputp/TekSuff/SWI更新。

包含修复的第一服务包是3.1i服务包3。

(交叉点和子集问题仍在调查中。)

由时间-时间规范定义的主要时间组包括在“GROPA”和“GUPB”时间组中定义的寄存器。“群”和“群”的约束是FFS的最大延迟。您可以简单地使用一个“除”从“时段”时间组中删除“GROPA”和“GURBB”寄存器;如果您将该周期应用于结果,则分析应该正常工作。

例如

网络时钟TNMYNET=时钟锁存器GRP;

除了GroupA GroupB之外,TimeGRP慢结束=CcLogyGRP;

TimeStStIsL慢结尾=周期慢结束30;

TimExcel“TSY-GRPA”=从“FFS”到“GyPa”TSH慢结束“* 2;

TimExcel“TSY-GRPB”=从“FFS”到“GyPB”“TSH慢结尾”* 2;

可以在约束编辑器中创建原始时间组,如决议3中所描述的。必须在用户约束文件(UCF)中手动执行来自现有时间组的新时间组的创建。关键字“除了”还必须手动放置到UCF中。

如果时钟信号正在驱动DLL,则必须将TNMYNET约束放置在DLL的输出信号上。这也应该手动放置到UCF中。

您还可以通过合并慢异常规范来解决这个问题。

首先,将触发器和其他慢速源时间组分组成较大的源时间组。

然后,将两个较小的目的时间组分组成较大的目标时间组。

最后,用一个新的时间规范(从大数据源到LARGEY目标)替换慢速异常(从:TOS)的时间约束。这解决了问题并从周期时间序列中提取路径。

例如(如果您手动执行此过程):

TimeGrp LaGeLySoals= SimulySrCGLPG1 SimulySrCyGROP2;

TimeGrp LaGeGyTalk Talk=SimulyDestHyGLP1;

TimeSP.TS01=从大源到大目标30;

您可以在约束编辑器中创建大量的源和大目标时间组。启动约束编辑器,打开或创建用户约束文件(UCF)。

选择“高级”选项卡,按“创建”按钮,选择“由网络关联的群组元件(TNMYNET)”。

-在“时间名称”文本框中输入时间组名称,并选择所需的“设计元件类型”(例如“启用网络”)。

-为多周期组选择特定的启用网络,并按“添加”按钮将它们包含在组中。

-按“应用”或“OK”写出时间组。

或者,您可以选择“创建”并从“高级”选项卡中选择“按实例分组”(TNM)。

-在“时间名称”文本框中输入时间组名称,并选择所需的“设计元件类型”(如FFS或RAM)。

-选择组的特定元件或项目,然后按“添加”按钮将它们包含在组中。

选择下一个“设计元件类型”,选择元件,并添加它们。重复,直到添加了所有元件以创建更大的时间组。

-按“应用”或“OK”按钮写出时间组。

以下约束编辑器示例说明创建时间组

国际贸易总署11;

国际贸易总署22;

RAMIOB BOB & LT;12 & gt;TNM=LARGEY源;

RAMIOB BOB & LT;53 & gt;TNM=LARGEY源;

NSXTrangSeRg & lt;52 & gt;TNM=LARGEAR目标;

NSXTrangSeRg & lt;24 & gt;TNM=LARGEAR目标;

NTILILAM & LT;13和gt;TNM=LARGEAR目标;

NTILILAM & LT;26和gt;TNM=LARGEAR目标;

TimeSP.TS01=从大源到大目标30;

剩余的交叉点问题在5.1i软件版本中被固定。

请登录后发表评论

    没有回复内容