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

本文详细介绍了InputDelay的设置,包括其延迟值的意义、参数如Clock、Synchronous、Alignment和DataRateandEdge的解释,以及在系统同步和源同步模式下的应用。同时,文章通过时序图和实例分析了Vivado中InputDelay的时序分析模型,强调了建立时间和保持时间的重要性,并提供了DS90CR288A和ADCLTC2022两个芯片的时序配置示例。
摘要由CSDN通过智能技术生成

Input Delay

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

前言

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

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

参数说明

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

Clock

时钟:Vivado通过分析输入端口的路径来确定采样时钟,该时钟在Wizard里不可更改。

1. The Timing Constraints wizard analyzes all paths from input ports to identify their destination clock inside the design and their active edges.
2. The wizard does not allow you to change the reference clock selected for the constraint. 
3. To do so, you must manually edit the XDC files or use the Timing Constraints window after exiting the wizard.
Synchronous

同步:描述时钟和数据之间的同步类型,分为系统同步和源同步:

1. System (for System Synchronous interface): use this setting when the data is launched and captured by different clock edges that are 1 period or ½ period apart.
2. Source (for Source Synchronous interface): use this setting when the data is launched and captured by the same clock edge.	

以上总结如下:

1. 对于系统同步:数据的时钟发起沿和时钟捕获沿不是同一个沿,两者相差1个或1/2个时钟周期,即上升沿发送上升沿采集,或上升沿发送下降沿采集、或下降沿发送上升沿采集;
2. 对于源同步:数据的时钟发起沿和时钟捕获沿是同一个沿时钟,时钟是数据的伴随时钟。

系统同步结构图:两个IC之间进行通信时,使用一个共用时钟,用于数据的发送和接收。
在这里插入图片描述
源同步结构图:两个IC进行通信时,发送IC产生一个伴随发送数据的时钟信号,接收IC使用该伴随时钟进行数据接收。
在这里插入图片描述

Alignment

对齐:描述数据和时钟之间的对齐关系。

1. For System Synchronous interfaces only:
	Edge: use this setting when the clock and data transition at the same time.	
2. For Source Synchronous interfaces only:
	Center: use this setting when the clock transitions in the middle of the data valid window.
	Edge Direct: use this setting when the clock transitions at the beginning of the data valid window.
	Edge MMCM: use this setting when the clock transitions at the end of the data valid window.	

对于Edge:指定tco,如下图所示。
在这里插入图片描述

对于Center:指定tsetup和thold,如下图所示。
在这里插入图片描述

对于Edge MMCM和Edge Direct:需要指定skew,但是skew是什么意思不理解,时序图分别如下所示。
在这里插入图片描述
在这里插入图片描述

Date Rate and Edge

数据速率和时钟沿,描述数据是单沿发送还是双沿发送,单沿发送时是上升沿发送还是下降沿发送。

1. Single Rise: use this setting for cases where only the rising clock edges launch the data outside the FPGA.	
2. Single Fall: use this setting for cases where only the falling clock edges launch the data outside the FPGA.
3. Dual: use this setting for cases where both rising and falling clock edges launch the data outside the FPGA	

时序分析

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

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

无论是上升沿发送还是下降沿发送,Vivado最后都会将其转换为上升沿发送的两级触发器时序分析模型。

Input Delay时序分析原理图如下图所示:
在这里插入图片描述

System > Edge > Single Rise

在这里插入图片描述
建立时间分析:在数据路径上加了max input delay值;FPGA假定上级触发器(上游芯片)在0ns(发送时钟沿)发出数据,经过1.8ns的延迟后到达FPGA,因数据路径延迟,在4.704ns到达FPGA内部寄存器的D端;FPGA在10ns(采集时钟沿)采集数据,因时钟网络延迟,在11.709ns到达FPGA内部寄存器的C端。
在这里插入图片描述
保持时间分析:在数据路径上加了min input delay值。
在这里插入图片描述

System > Edge > Single Fall

在这里插入图片描述
建立时间分析:在数据路径上加了半个时钟周期和max input delay值;虽然设定数据是下降沿发送,但是FPGA在做建立时间分析时,依然按照两级触发器的时序分析模型,上升沿发送上升沿采集,在数据路径上加了5ns(半个时钟周期)的延迟,将数据发送时刻沿前推至上升沿,5ns成为数据延迟的一部分。
在这里插入图片描述
保持时间分析:在数据路径上加了半个时钟周期和min input delay值;同上,5ns依然被认为是数据延迟的一部分。
在这里插入图片描述

Source > Center > Single Rise

在这里插入图片描述
如上图所示,指定建立时间=2.8ns,保持时间=2.2ns,Wizard会自动将建立时间和保持时间转换为max和min值,其中:max=T-setup,min=hold。

前面讲过,Input Delay设置的延迟值是数据相到达时间对于时钟沿的延迟量,它最小不能小于数据的保持时间,最大不能大于时钟周期 - 建立时间。

建立时间分析:在数据路径上加了max input delay值,参考System > Edge > Single Rise。
在这里插入图片描述
保持时间分析:在数据路径上加了min input delay值,参考System > Edge > Single Rise。
在这里插入图片描述

Source > Center > Single Fall

在这里插入图片描述
建立时间分析:在数据路径上加了半个时钟周期+max input delay值,参考System > Edge > Single Fall;5ns+max数据路径延迟过大,导致时序违例。
在这里插入图片描述
保持时间分析:在数据路径上加了半个时钟周期+min input delay值,参考System > Edge > 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 positive phase-shift compared to the board clock. 	- 频率相同正相移,有virtual clock,有set multicyle path
4. The input path internal clock has a negative phase-shift compared to the board clock.	- 频率相同负相移,无virtual clock,无set multicyle path

芯片时序图

下边根据具体芯片来讨论如何设置Input Delay。

DS90CR288A

这是一款LVDS接口的串并转换芯片,串行端4路串行数据+一路时钟,并行端28位数据+1路时钟,串并比例7比1。

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

ADC LTC2022

这是一款16位、10M采样点的模数转换芯片。

时序图如下图所示
在这里插入图片描述
时序参数如下图所示
在这里插入图片描述
Input Delay设置:这是个源同步系统,数据是在下降沿给出的,FPGA内部用上升沿采样,符合"Source > Center > Single Fall"描述的情况,会出现时序违例。

这种情况我们可以把它当成是系统同步的系统,ADC芯片在下降沿发出数据,FPGA在上升沿采集数据,Wizard设置如下图所示:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值