【ug903】时序约束向导(3)

Output Delays

Output Delay的设置相对比较繁琐,本文会结合文档和实例详细讲解。

前言

关于Output Delay的设置几点说明如下:

1. OutputDelay设置的延迟值是数据离开FPGA的时间相对于发送时钟边沿的延迟量;
2. OutputDelay设置的延迟值可正可负,无论正负,min一定要比max小;
3. OutputDelay设置的延迟值为正值表示数据离开时间提前于时钟沿;
4. Output Delay设置的延迟值为负值表示数据离开时间滞后于时钟沿;
5. OutputDelay设置的延迟值要结合上游器件的时序图和时序参数;

参数说明

如下图所示,Output Delay主要有4个参数:Clock、Synchronous、Alignment和Data Rate and Edge。
在这里插入图片描述

Clock

时钟:Vivado通过分析输出端口的路径来确定发送时钟,该时钟在Wizard中不可更改。

1. Similar to the Input delays step, the Timing Constraints wizard analyzes the paths to all output ports to identify their source clocks inside the design and their active edges.
Synchronous

同步:详见Input Delays。

Alignment

对齐:和Input Delays不同。

1. Setup/Hold: use this setting when the template delay parameters are specified based on the data valid window timing characteristics outside the FPGA.
2. Skew (Source Synchronous only): use this setting when the template delay parameters are specified based on the skew requirements on the output pin of the FPGA.	

对于System > Setup/Hold:指定tsetup和thold,如下图所示。
在这里插入图片描述
对于Source > Setup/Hold:指定tsetup和thold,如下图所示。
在这里插入图片描述
对于Source > Skew:需要指定skew,但是skew是什么意思不理解,如下图所示。
在这里插入图片描述

Data Rate and Edge

数据速率和时钟沿:和Input Delays略有不同,这里的时钟沿应该指的是下游芯片采样时钟沿;如上节所示时序图,对于System Synchronous,采样时钟是destination clock,对于Source Synchronous,采样时钟是forwarded clock。

时序分析

对于Vivado来说,Output Delay路径的时序分析模型依然是两级触发器模型,FPGA内部是第一级触发器(起点),下游芯片相当于第二级触发器(终点)。

无论是哪种参数(Synchronous、Alignment和Data Rate and Edge)配置组合,Wizard最后都会将其转换为set_output_delay的min和max值,即在FPGA的端口处数据相对于时钟沿的延迟量。

但是,当设置下游芯片用下降沿采集数据时,情况和Input Delay有所不同,Vivado不会将下游芯片的采集沿往后推至上升沿,而是使用上升沿发送下降沿采集的时序分析模型。

Output Delay时序分析原理图如下图所示,分两种情况。

情况1:无ODDR输出伴随时钟,适用于System Synchronous。
在这里插入图片描述
情况2:有ODDR输出伴随时钟,适用于Source Synchronous。
在这里插入图片描述

System > Setup/Hold > Single Rise

在这里插入图片描述
建立时间分析:在目的时钟路径上减了max output delay值。
在这里插入图片描述
保持时间分析:在目的时钟路径上加了min output delay值。
在这里插入图片描述

System > Setup/Hold > Single Fall

在这里插入图片描述
建立时间分析:在目的时钟路径减了max output delay值;有时序违例,因为上升沿发送数据下降沿采集数据,而源时钟路径在FPGA内部延迟较大,导致数据达到时间超过半个时钟周期长度,建立时间无法满足。
在这里插入图片描述

保持时间分析:在源时钟路径上加了一个时钟周期;在目的时钟路径上加了半个时钟周期+min output delay值。
在这里插入图片描述
如下图所示(ug903第109页图5-1),如果建立时间和保持时间分析的起点相同,那么保持时间分析的终点就要比建立时间分析的终点提前一个时钟周期;如果建立时间和保持时间分析的终点相同,那么保持时间分析的起点就要比建立时间分析的起点推后一个时钟周期。两种分析方法Vivado都有使用,相见ug903第5章Multicycle Paths小节。
在这里插入图片描述
本例中,FPGA在时钟上升沿发送数据,设置下游芯片在时钟下降沿采集数据,Vivado将时序分析模型设定为建立时间和保持时间的分析终点都在下游芯片的下降沿,所有保持时间的分析起点需要往后推迟一个时钟周期,如下图所示。
在这里插入图片描述

Source > Setup/Hold > Single Rise

在这里插入图片描述

因为ODDR的存在,时序分析从Intra-Clock Path变为Inter-Clock Path,即i_clk to o_clk。

建立时间分析:在目的时钟路径上减了max output delay值;和System > Setup/Hold > Single Rise相比,增加了ODDR生成的伴随时钟在FPGA内部的延迟。
在这里插入图片描述
在这里插入图片描述
保持时间分析:在目的时钟路径上加了min ouput delay值。
在这里插入图片描述
在这里插入图片描述

Source > Setup/Hold > Single Fall

在这里插入图片描述
建立时间分析:在目的时钟路径上减了max output delay值。
在这里插入图片描述
在这里插入图片描述

保持时间分析:在源时钟路径上加了一个时钟周期;在目的时钟路径上加了半个时钟周期+min output delay值;参见System > Setup/Hold > Single Fall的保持时间分析部分。
在这里插入图片描述
在这里插入图片描述

时钟经过CMT

当使用输入时钟经过CMT后生成的时钟来发送数据时,会出现以下几种情况:

1. The board clock and the input path internal clock have same clock periods. 				- 频率相同无相移,无virtual clock,无set multicyle path
2. The board clock and the input path internal clock have different clock periods.		 	- 频率不同无相移,有virtual clock,无set multicyle path
3. The input path internal clock has a negetive phase-shift compared to the board clock. 	- 频率相同正相移,有virtual clock,有set multicyle path
4. The input path internal clock has a positive phase-shift compared to the board clock.	- 频率相同负相移,无virtual clock,无set multicyle path

芯片时序图

DAC 16678F

这是一款12/14/16位、50M采样点的数模转换芯片。

时序图如下图所示
在这里插入图片描述
时序参数如下图所示
在这里插入图片描述
Output Delay设置:这是个源同步系统,时序图给出了Setup/Hold参数,其中Setup=tDS=8ns,Hold=tDH=4ns,Wizard设置如下图所示:
在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值