资讯 热点 聚焦 探测 工具 行业 公司 行情 市场 招标
您的位置: 首页>资讯 > >正文
2023-08-14 18:42:44 来源:文礼轩

1 I/O口时序约束

前面讲解了时序约束的理论知识FPGA时序约束理论篇,本章讲解时序约束实际使用。


(资料图)

I/O口时序约束是FPGA中最基本的约束,也是不可缺少的约束,I/O约束包括管脚约束、电平约束和延迟约束。

管脚约束和电平约束

管脚约束即是指管脚分配,将硬件PCB板的引脚与FPGA设计的功能引脚匹配。对于使用XILINX芯片的用户来说,使用5系列的用户所使用开发环境为ISE,使用7系列的用户所使用开发环境为Vivado。

ISE中,使用如下方式在UCF文件中对管脚进行约束:

NET "clk" LOC = AK18;

NET "clk" IOSTANDARD = LVTTL;

Vivado中,使用如下方式在xdc文件中对管脚进行约束:

set_property-dict{PACKAGE_PIN AK9 IOSTANDARD LVTTL}

[get_ports "SWITCH[0]"]

在Vivado里面,规定必须指定管脚电平,而ISE中可以不进行管脚电平定义。

延迟约束

延迟约束分为两种,一是输入延迟set_input_delay,一是输出延迟set_output_delay,分别用于input端和output端。

该约束所用的时钟源可以是时钟输入管脚,也可以是虚拟时钟(后续会讲到)。输入延迟set_input_delay

ISE中延迟约束设置为OFFSET=IN,Vivado中延迟约束设置为set_input_delay和set_output_delay。可以参考下图(注:该图引用于网络)。

从上图中可以得到:Tinputdelay = Tco + TD。

要满足图中的时序,则最大延迟为2ns,最小延迟为1ns。因此,时序约束为:

create_clock -name sysclk -period 10 [get_ports clk]set_input_delay 2 -max -clock sysclk [get_ports Data]set_input_delay 1 -min -clock sysclk [get_ports Data]

注:get_ports为IO口引脚;

set_output_delay

set_output_delay的用法跟set_input_delay相似,可以参照set_input_delay的描述。

NOTE:延迟约束是让Vivado获取到的输入信号和输入时钟之间的延迟关系,并不是延迟输入信号,是固有属性。

标签: