在我的设计中,如何将延迟添加到网络中?

在某些情况下,手动增加或控制网络延迟是有用的,以提高保持时间或调整两个网之间的偏差。为了向网络添加延迟,需要向网络添加一个或多个缓冲器。还需要添加属性和偏好,以确保在合成和映射过程中缓冲区不会被移除。

下面是示例代码:

在Verilog中:

模块ADDIDEL(DIN,DOUT);
输入DIN;
输出输出;

线BUF1/*合成SythCube=1 NoMeGe= =“*//;
线Buf2/*合成SythRead=1 NoMeGe= =“*//;

Buffa DEL1(.Z(BUF1),A(DIN))/*合成LOC=“R3C3d”*/;
BuffaDel2(.Z(BuF2),A(BuF1))/*合成LOC=“R3C4D”*/;

指定DOU= BUF2;

终端模块

模块BUFBA(Z,A);

输出Z;
α输入A;

终端模块/缓冲器

在VHDL:

图书馆IEEE;
使用IEEE.STDYLogiC1164。
使用IEEE.STDLogLogic UNSIGNED;

实体AdjdIDEL是
端口(DIN):在STDYLogic中;
第二类:
结束实体AdjdEL;

AdjdEL的体系结构RTL
组件BUFBA
端口(
第二类:STD逻辑;
αz z:Out-StdLogic

端部元件;

信号BUF1:STDYLogic;
信号BUF2:STDYLogic;

属性同步保持:布尔;
BUF1、BUF2:信号的属性同步保持正确;
属性名称:字符串;
BUF1、BUF2信号的属性名为“”;

属性LOC:字符串;
DEL1的属性LOC:标签为“R3C3D”;
DEL2的属性LOC:标签是“R3C4D”;

开始

Del1:BUFBA端口映射(A= & Gt;DIN,Z=& Gt;BUF1);
Del2:BUFBA港口地图(A=& Gt;BUF1,Z= & GT;BUF2);

DUF&L.BUF2;

终端体系结构RTL;

在代码中,模块“BUFBA”是缓冲区的格子基元。

“同步保持”属性是在优化和合成过程中保持指定净完好的综合属性。

“NoMeGe”偏好是防止网络在MAP中被吸收为逻辑块的格偏好。

LOC首选项用于锁定缓冲器的位置。

在上面的示例中,添加了两个缓冲区。所使用的缓冲器的数量取决于需要添加多少延迟。锁定缓冲器的位置允许路由延迟控制的一些措施。两个缓冲器的位置越接近,路由延迟越小。真正的延迟可以在位置和路径跟踪报告中找到,参见下面的示例:

数据路径din到dUT
名字扇出Delay(NS)现场资源
帕迪亚德尔---零点五零八C4.PADC4.PADI DIN
路线零点九一一C4.PADDIR3C3D.C0
科托菲德尔---零点一七九R3C3D.C0到R3C3D.F0 SLICE1
路线零点四零九R3C3D.F0到R3C4D.D0BUF1
科托菲德尔---零点一七九R3C4D.C0到R3C4D.F0 SLICE0 0
路线零点七五三R3C3D.F0到C3.PADDO BUF2
多巴德德尔---二点三五九C3.PADDOC3 Pad Dout

上述资源信息中的SLICEH1和SLICEY0包含两个缓冲器(即,BUF1和BUF2)。并且在上述延迟信息中添加相应的LUT和路由延迟。

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

提问于 2018-07-27 11:34:36 +0800

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

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