【Time3】input delay(1)

4 约束的详情

 4.1 Input Delay

4.1.1 Input Delay是指什么?

不是设置pin脚到内部寄存器D口的延时,而是告诉编译器vivado外部数据相对于时钟管脚的max/min延时。 Input Delay用来告诉FPGA外部进来的数据信号和时钟的相位关系,FPGA根据相位关系,能够数据进入FPGA后第一级寄存器的位置,使得满足FPGA的setup time和hold time要求。

以fpga时钟输入引脚为参考点,时钟采样沿到数据有效的max和min延时。

输入port的时钟与数据的关系。

set_input_delay [-h | -help] [-long_help] [-add_delay] -clock  [-clock_fall] [-fall] [-max] [-min] [-reference_pin ] [-rise] [-source_latency_included]  

4.1.2 Input Delay分几种?

分两种

1. System Synchronous Input 外部芯片和FPGA使用同一个晶振的时钟。

2. Source Synchronous Input 包含随路时钟。

4.1.3 System Synchronous的Input Delay

Tclkd_ext表示外部时钟源到外部芯片的延时;

Tclkd_int表示外部时钟源到FPGA输入端口的延时;

Tco表示外部芯片tCO时间;

Tbd表示外部芯片输出端口到FPGA芯片的板上延时。

约束的格式

相较于时钟的路径延时Tclkd_int,数据的路径延时为Tclkd_ext+Tco+Tbd

input delay =  数据的路径延时 - 时钟的路径延时 =(Tclkd_ext+Tco+Tbd) - (Tclkd_int)

set_input_delay -clock CLKB -max [Tclkd_ext_max + Tco_max + Tbd_max – Tclkd_int_min]  [get_portsDIN]

set_input_delay -clockCLKB-min [Tclkd_ext_min + Tco_min + Tbd_min – Tclkd_int_max]   [get_portsDIN]

4.1.4 Source Synchronous的Input Delay

Tcd表示外部芯片时钟输出到FPGA输入端口的延时;

Tco表示外部芯片tCO时间;

Tbd表示外部芯片输出端口到FPGA芯片的板上延时。

max_input_delay = Tbd_max + Tco_max - Tcd_min

min_input_delay = Tbd_min + Tco_min - Tcd_max

源同步输入的约束相比于系统同步输入的复杂些,其根据时钟与数据的关系,可分为:

1. 边缘对齐(Edge Aligned Clock&Data)

2. 中心对齐(Center Aligned Clock&Data) 

4.1.4.1 中心对齐

create_clock -name CLKB -period clk_period [get_ports {CLKB}]

set_input_delay -clock[get_clocks CLKB] -max max_input_delay [get_ports indata]

set_input_delay -clock[get_clocks CLKB] -min min_input_delay [get_ports indata] -add_delay

-add_delay 是什么含义?

4.1.4.2 边缘对齐 

边缘对齐是指时钟和数据到达后级时序单元时,时钟沿与数据变化沿重合。因为数据延后与时钟,不满足FPGA的输入setup时序。需要时钟需要经过一定的移相才能去采集数据。

create_clock -name CLKB -period clk_period [get_ports {CLKB}]

create_generated_clock -name CLKB_90 -source [get_clocks CLKB] –phase 90 [get_pins{MMCM|co[0]}]

set_input_delay -clock[get_clocks CLKB_90] -max max_input_delay [get_ports indata]

set_input_delay -clock[get_clocks CLKB_90] -min min_input_delay [get_ports indata] -add_delay

5. 输入端口到FPGA内部时序单元的路径slack的计算方法

1. Setup check:

setup slack = data required time data arrival time

其中:

data required time destination clock edge time + destination clock path delay- clock uncertainty- setup time

data arrival time  = source clock edge time + source clock path delay + max input delay

2. Hold check:

hold slack data arrival time data required time

其中

data required time = destination clock edge time + destination clock  path delay+ clock uncertainty+ hold time

data arrival time    = source edge time + source clock path delay + pin to register delay + min input delay

 2.3.5.1. 输入约束(set_input_delay)

6. 参考

Vivado时序约束(转载)_wangyanchao151的博客-CSDN博客_vivado时序约束

下一篇

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值