是否有硬件资源帮助我实现输入保持需求?

是的,在选择晶格器件中有这样的资源。有三种不同的资源可以用来做这件事。他们是:

  • 固定延迟:在ECP/EC、ECP3、MACHXO2和XP2设备中得到支持。
  • DelayC:支持在ECP3设备中。
  • DelayB:在ECP2/M、ECP3和XP2器件中的支持。

所有这些资源通过将数据输入路径中的特定延迟添加到设备中来补偿输入保持需求。通过这样做,有效地减少了保持需求。然而,这样做也会影响您的安装需求(即在保持时间上减少相同的设置时间)。因此,建议在添加这些延迟时考虑设置时间和保持时间效应。这些资源的一个典型用法是,当您在设置时间要求中有大量的时序闭合余量时,但不满足比设置时间小的裕量要求(即设置满足裕度&保持不满足裕度)。

下面的示例描述了每个资源以及它们是如何启用的。下面使用的延迟值是ECP3的值。对于其他设备的延迟值,请在软件工具中运行所需资源的测试用例,并生成测试用例的TRCE报告。TrCE报告包含每个设备的延迟值。

***
固定延迟
***

固定延迟将1300秒的延迟插入到数据路径中,这减少了保持时间并增加了设置时间。顾名思义,这种延迟是固定的。

下面的Verilog代码将固定延迟插入到数据输入寄存器之前的输入路径:

//开始代码
输入CLK,RST;
输入B0/*合成SythuEIOFF=1固定延迟=真*//;
输入B1、B2;
线[2:0] B= {B2,B1,B0};
Reg [2:0] BX;
总是@(PaseLK CLK或PASEDEST RST)
γIF(RST)
βx=3'H0;
另一个
β-lx;
/ /结束码

注意,插入固定延迟是使用HDL属性执行的。还要注意,不能将其插入到选择性I/O总线索引中。解决这一问题的方法是声明单个输入并附加HDL属性,然后将输入连接到总线中。

下面的TrCE报告说明了一个没有FIXEDDELAY的保持分析:

事业单位
偏好:输入设置端口“B0”1 ns保持-50万NS CLKPOUNT“CLK”;
1个项目得分,1个定时误差检测。
----------------------------------------------------------------------------------------------------------------------------------------------------------

错误:下面的路径超过1.889NS的要求

逻辑细节:信元型PIN型信元/ASIC名称(时钟网+/-)

来源:端口垫B0
目标:FX00IOY0中的FF数据(到CKKYLC+)

最小数据路径延迟:0.200纳秒(100%逻辑,0%路由),1逻辑电平。

最大时钟路径延迟:0.909NS(27.5%逻辑,72.5%路),1逻辑电平。

IOLYR9B属性:精细= fDEL0

约束细节:

0.2 nS延时B0到B0MGGIOL PLUS
γ-0.5纳秒,保持偏移B0到CLK(合计-0.300纳秒)违反。
0.909Ns延迟CLK到B0MyGIOL PLUS
1.889NS的0.680NS DIH-HLD要求(共计1.89NS)

下面的TrCE报告说明了固定延迟对保持路径的影响:

事业单位
偏好:输入设置端口“B0”1 ns保持-50万NS CLKPOUNT“CLK”;
对1个项目进行评分,发现1个定时误差。
----------------------------------------------------------------------------------------------------------------------------------------------------------

错误:以下路径超过要求0.89NS

逻辑细节:信元型PIN型信元/ASIC名称(时钟网+/-)

来源:端口垫B0
目标:FX00IOY0中的FF数据(到CKKYLC+)

最小数据路径延迟:0.200纳秒(100%逻辑,0%路由),1逻辑电平。

最大时钟路径延迟:0.909NS(27.5%逻辑,72.5%路),1逻辑电平。

IOLYR9B属性:精细= fDEL0

约束细节:

0.2 nS延时B0到B0MGGIOL PLUS
γ-0.5纳秒,保持偏移B0到CLK(合计-0.300纳秒)违反。
0.909Ns延迟CLK到B0MyGIOL PLUS
-0.620nS diH-HLD要求(共计0.28 9Ns)0.89NS

注意到1300 PS在DIH-HLD要求上的差异。

***
德莱克
***

DelayC类似于FixDead延迟,因为它将1300延迟的延迟插入到数据路径中,这减少了保持时间并增加了设置时间。像FIXEDDELAY一样,Delayc是固定的。

下面的Verilog代码将DelayC插入到数据输入寄存器之前的输入路径中:

//开始代码
输入B0、B1、B2;
线[2:0] BX;
线BY温度;
DelayCyMyDelay1(z(BY-TEMP),A(B1));
/IO寄存器
IFS1P3IX B0YRG(Q(BX〔0〕),SP(1’B1),Cd(RST),SCLK(CLK),D(BY-TEMP);
IFS1P3IX B1YRG(Q(BX〔1〕),SP(1’B1),Cd(RST),SCLK(CLK),D(B1));
IFS1P3IX B2YRG(Q(BX〔2〕),SP(1′B1),Cd(RST),SCLK(CLK),D(B2));
/ /结束码

注意,要使用DelayC,您需要使用DelayC原语。

DelayC在TrCE报告中的作用与固定延迟完全相同(见上文)。

***
德莱布
***

与前两个资源不同,Delayb允许您在45 ps增量(即16个不同的值)之间插入0ps到675 ps的延迟量。此特性允许您找到满足设置和保持要求的最佳值。与所有其他以前的资源一样,所选择的延迟量将减少,并增加相同的延迟量,从而增加您的保持时间和设置时间。

下面的Verilog代码将Delayb插入到数据输入寄存器之前的输入路径中:

//开始代码输入B0、B1、B2;
线[2:0] BX;
线[3:0] BY-TEMP;
DelaybMyel-Delay0(z(BY-TEMP(0)),Del3(1’B0),Del2(1’B0),Del1(1’B0),Del0(1’B1),A(B0));
Delayb Myel-Delay1(z(ByTeMp〔1〕),Del3(1’B0),Del2(1’B0),Del1(1’B0),Del0(1’B0),A(B1));
DelaybMyel-Delay2(.Z(BY-TEMP(2)),Del3(1′B1),Del2(1′B1),Del1(1′B1),Del0(1′B1),A(B2));
/IO寄存器
IFS1P3IX B0YRG(Q(BX〔0〕),SP(1’B1),Cd(RST),SCLK(CLK),D(BY-TEMP(0));
IFS1P3IX B1YRG(Q(BX〔1〕),SP(1’B1),Cd(RST),SCLK(CLK),D(BY-TEMP(1));
IFS1P3IX B2YRG(.Q(BX〔2〕),SP(1’B1),Cd(RST),SCLK(CLK),D(BY-TEMP(2));
/ /结束码

注意,在上述示例中,每个输入具有唯一的延迟值。延迟值由Del[3:0]的值决定。还要注意,使用原始实例化来插入Delayb。

下面的TrCE报告说明了DelayC的TAP值为1(即Del[3:0]=4'B001)在保持路径上的效果:

事业单位
偏好:输入设置端口“B0”1 ns保持-50万NS CLKPOUNT“CLK”;
对1个项目进行评分,发现1个定时误差。
----------------------------------------------------------------------------------------------------------------------------------------------------------

错误:下面的路径超过1.844纳秒的要求

逻辑细节:信元型PIN型信元/ASIC名称(时钟网+/-)

来源:端口垫B0
目的地:B0YRG(到CKKYLC+)中的FF数据

最小数据路径延迟:0.200纳秒(100%逻辑,0%路由),1逻辑电平。

最大时钟路径延迟:0.909NS(27.5%逻辑,72.5%路),1逻辑电平。

IOLYR26EC属性:精细= FDEL1

约束细节:

γ-0.200纳秒延迟B1到B0MyGIOL PLUS
γ-0.50NS保持偏移B1到CLK(合计-0.300纳秒)违反
0.909Ns延迟CLK到B0MyGIOL PLUS
1.64nS的0.635nS diH-HLD要求(共计1544纳秒)

注意上面的diyHLD和没有延迟的45 ps差。

***

简而言之,根据您的需求和情况,您可以使用固定延迟、DelayC或Delayb。

有关这些资源的更多信息,请单击“帮助”-gt;“格子菱形帮助”,并使用关键字“固定延迟”、“Delayc”或“Delayb”。

编辑 重设标签(回车键确认) 标为违禁 关闭 合并 删除

提问于 2018-07-27 11:15:16 +0800

这个帖子被标记为一个社区wiki

这个帖子是一个wiki(维基). 任何一个积分 >500的人都可以完善它