FPGA时序约束(一)

1. 时序约束理论篇

  • 建立和保持时间
  • 时序路径
  • 时序模型

2.I/O管脚约束

  • 管脚约束
  • 延迟约束

3.时钟周期约束

4.两种时序例外

  • 多周期路径
  • 伪路径

5.xdc约束优先等级

  • 建立和保持时间
    FPGA时序约束(一)_第1张图片
    建立时间:在clk上升沿到来之前,保持稳定(准备好开始)
    保持时间:在clk上升沿到来之后,保持稳定(别动!)

时序路径
典型的额时需路径有4种,如下图所示:其中标记1和3是片间路径,2和4是片内路径。
FPGA时序约束(一)_第2张图片
FPGA时序约束(一)_第3张图片这几类中,我们关注比较多的是2的同步时序逻辑,也就是FPGA内部的时序逻辑。

时序模型
一个完整的时序路径包括:源时钟路径,数据路径,目的时钟路径,也可以表示为触发器+组合逻辑+触发器的模型。
FPGA时序约束(一)_第4张图片
FPGA时序约束(一)_第5张图片
FPGA时序约束(一)_第6张图片
FPGA时序约束(一)_第7张图片
FPGA时序约束(一)_第8张图片面试常考的两条公式(要理解):在这里插入图片描述
在这里插入图片描述
2.I/O管脚约束
管脚约束就是管脚分配,我们要指定管脚两个属性:PACKAGE_PIN和IOSTANDARD(管脚位置和管脚对应的电平标准)。
如:在这里插入图片描述
在这里插入图片描述
延迟约束:
延迟约束用的是set_input_delay和set_output_delay,分别用于input端和ouput端,其时钟源可以是时钟输入管脚,也可以是虚拟时钟。但是需要注意的是,这两个约束并不是起延迟作用。
FPGA时序约束(一)_第9张图片
FPGA时序约束(一)_第10张图片
3.时钟周期约束:顾名思义,是对时钟的周期进行约束。
常用的约束指令有:
1>create_clock。使用方法如下:在这里插入图片描述
FPGA时序约束(一)_第11张图片
这里的时钟必须是主时钟primary clock,主时钟通常有两种情形:一种是时钟由外部时钟源提供,通过时钟引脚进入FPGA,该时钟引脚绑定的时钟为主时钟:另一种是高速收发器(GT)的时钟RXOUTCLK或TXOUTCLK。对于7系列FPGA,需要对GT的这两个时钟手工约束:对于UltraScale FPGA,只需对GT的输入时钟约束即可,Vivado会自动对这两个时钟约束。
2>create_generated_clock,其使用方法为:
FPGA时序约束(一)_第12张图片
FPGA时序约束(一)_第13张图片
3>set_clock_groups使用方法为:
在这里插入图片描述
这个约束常用的方法有三种。

4>创建虚拟时钟

你可能感兴趣的:(FPGA时序约束(一))