XilinxFPGA编程技巧之常用时序约束详解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Xilinx FPGA编程技巧之常用时序约束详解
i.基本的约束方法
为了保证成功的设计,所有路径的时序要求必须能够让执行工具获取。最普遍的三种路径为: .输入路径(In put Path ),使用输入约束
.寄存器到寄存器路径(Register-to-Register Path ),使用周期约束
.输出路径(Output Path ),使用输出约束
.具体的异常路径(Path specific exceptio ns ),使用虚假路径、多周期路径约束
1.1. 输入约束In put Co nstrai nt
OFFSET IN约束限定了输入数据和输入时钟边沿的关系。
1.1.1. 系统同步输入约束System Sy nchron ous In put
在系统同步接口中,同一个系统时钟既传输数据也获取数据。考虑到板子路径延时和时钟抖动,接口的操作频率不能太高。
1-1简化的系统同步输入SDR接口电路图
1-2SDR系统同步输入时序
上述时序的约束可写为:
NET "SysCIk" TNM_NET = "SysCIk";
TIMESPEC "TS_SysClk" = PERIOD "SysClk" 5 ns HIGH 50%;
OFFSET = IN 5 ns VALID 5 ns BEFORE "SysClk";
1.1.
2. 源同步输入约束Source Syn chro nous In put
在源同步接口中,时钟是在源设备中和数据一起产生并传输。
1-3简化的源同步输入DDR接口电路
1-4DDR源同步输入时序
上图的时序约束可写为:
NET "SysCIk" TNM_NET = "SysCIk";
TIMESPEC "TS_SysCIk" = PERIOD "SysCIk" 5 ns HIGH 50%;
OFFSET = IN 1.25 ns VALID 2.5 ns BEFORE "SysClk" RISING;
OFFSET = IN 1.25 ns VALID 2.5 ns BEFORE "SysClk" FALLING;
1.2. 寄存器到寄存器约束Register-to-Register Constraint
寄存器到寄存器约束往往指的是周期约束,周期约束的覆盖范围包括:
.覆盖了时钟域的时序要求
.覆盖了同步数据在内部寄存器之间的传输
.分析一个单独的时钟域内的路径
.分析相关时钟域间的所有路径
.考虑不同时钟域间的所有频率、相位、不确定性差异
1.2.1. 使用DLL, DCM, PLL, and MMCM 等时钟器件自动确定同步关系
使用这一类时钟IP Core,只需指定它们的输入时钟约束,器件将自动的根据用户生成
IP Core时指定的参数约束相关输出,不需用户手动干预。
1-5输入到DCM的时钟约束
上图的时序约束可写为:
NET “ Clkln ” TNM_NET = “Clkln ” ;
TIMESPEC “TS_ClkIn ”= PERIOD “ Clkln ” 5 ns HIGH 50%;
1.2.2. 手动约束相关联的时钟域
在某些情况下,工具并不能自动确定同步的时钟域之间的时钟时序关系,这个时候需要手动约束。例如:有两个有相位关系的时钟从不同的引脚进入FPGA器件,这个时候需要
手动约束这两个时钟。
1-6通过两个不同的外部引脚进入FPGA的相关时钟
上图的时序约束可写为:
NET “Clk1X"TNM_NET= “ Clk1X";
NET “Clk2X180"TNM_NET= “ Clk2X180";
TIMESPEC"TS_Clk1X"=PERIOD"Clk1X 7 5ns;
TIMESPEC"TS_Clk2X180"=PERIOD"Clk2X180 “ TS_Clk1X/2PHAS2 +1.25 ns;
1.2.3. 异步时钟域
异步时钟域的发送和接收时钟不依赖于频率或相位关系。因为时钟是不相关的,所以不可能确定出建立时间、保持时间和时钟的最终关系。因为这个原因,Xilinx推荐使用适当的异步设计技术来保证对数据的成功获取。Xilinx约束系统允许设计者在不需考虑源和目的时
钟频率、相位的情况下约束数据路径的最大延时。
异步时钟域使用的约束方法的流程为:
.为源寄存器定义时序组
.为目的寄存器定义时序组
.使用From-to 和DATAPATHDELAY 关键字定义寄存器组之间的最大延时
1.3. 输出约束Output Constraint
输出时序约束约束的是从内部同步元件或寄存器到器件管脚的数据。
1.3.1. 系统同步输出约束System Synchron ous Output Co nstrai nt
系统同步输出的简化模型如图所示,在系统同步输出接口中,传输和获取数据是基于同一个时钟的。
1-7系统同步输出
其时序约束可写为:
NET "Clkl n" TNM_NET = "Clkl n";
OFFSET = OUT 5 ns AFTER "ClkI n";
1.3.
2. 源同步输出约束Source Syn chro nous Output Con strai nt
在源同步输出接口中,时钟是重新产生的并且在某一FPGA时钟的驱动下和数据一起传输至下游器件。
1-8源同步输出简化电路时序图
1-9源同步小例子时序图
小例子的时序约束可写为:
NET “ ClkIn ” TNM_NET = “ClkIn ” ;