FPGA I/O口时序约束讲解

可编程逻辑

1366人已加入

描述

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获取到的输入信号和输入时钟之间的延迟关系,并不是延迟输入信号,是固有属性。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
评论(0)
发评论
jf_34552825 2023-08-17
0 回复 举报
针不错 收起回复

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分