Xilinx FPGA管脚XDC约束之:物理约束

转自:https://blog.csdn.net/gslscyx/article/details/103016237

说明:本文我们简单介绍下Xilinx FPGA管脚物理约束,包括位置(管脚)约束和电气约束

1. 普通I/O约束

管脚位置约束: set_property PAKAGE_PIN “管脚编号” [get_ports “端口名称”]
管脚电平约束: set_property IOSTANDARD “电压” [get_ports “端口名称”]
举例:
set_property IOSTANDARD LVCMOS33 [get_ports sys_clk]
set_property IOSTANDARD LVCMOS33 [get_ports {led[0]}]
set_property IOSTANDARD LVCMOS33 [get_ports {led[1]}]
set_property PACKAGE_PIN U18 [get_ports sys_clk]
set_property PACKAGE_PIN M14 [get_ports {led[0]}]
set_property PACKAGE_PIN M15 [get_ports {led[1]}]
注意:

  • 1)以上语法对大小写敏感;
  • 2)端口名称为数组时,需要用{}括起来,端口名不能为关键字。

2. 差分信号约束

2.1普通差分约束

差分信号约束语法和1节中相同。此处仅举例。
1)HR I/O Bank,VCCO = 3.3V,HDMI接口约束
set_property PACKAGE_PIN N18 [get_ports TMDS_clk_p]
set_property PACKAGE_PIN V20 [get_ports {TMDS_data_p[0]}]
set_property IOSTANDARD TMDS_33 [get_ports TMDS_clk_p]
set_property IOSTANDARD TMDS_33 [get_ports {TMDS_data_p[0]}]
2)HP I/O Bank,VCCO = 1.8V,HDMI接口约束
set_property PACKAGE_PIN N18 [get_ports TMDS_clk_p]
set_property PACKAGE_PIN V20 [get_ports {TMDS_data_p[0]}]
set_property IOSTANDARD LVDS [get_ports TMDS_clk_p]
set_property IOSTANDARD LVDS [get_ports {TMDS_data_p[0]}]
注意:

  • 1)差分信号约束,只约束P管脚即可,系统自动匹配N管脚约束,当然_P和_N管脚都约束也没有问题;
  • 2)差分信号电平要根据VCCO Bank电压进行相应的约束。

2.2收发器差分信号约束

1)收发器MGTREFCLK时钟约束
管脚位置约束: set_property LOC “管脚编号” [get_ports “端口名称”]
举例:
set_property LOC G7 [get_ports Q2_CLK0_GTREFCLK_PAD_N_IN ]
set_property LOC G8 [get_ports Q2_CLK0_GTREFCLK_PAD_P_IN ]
2)收发器MGT通道约束
对于GTXE2_CHANNEL通道约束:一种方法是可以利用7系列FPGAs收发器向导,在配置好收发器配置参数后,自动生成XDC模板,然后将该模板应用到自己的设计中;第二种方法是自己编写XDC约束文件,其位约束位置要参照具体原理图信号管脚来进行编写约束文件。
举例:对于图1中四通道收发器对GTXE2_CHANNEL约束。

图1、四通道GTX收发器框图

收发器通道位置约束: set_property LOC “ GTXE2_CHANNEL_X* Y * ” [get_cells “gtxe_2例化路径”]

##---------- Set placement for gt0_gtx_wrapper_i/GTXE2_CHANNEL ------
set_property LOC GTXE2_CHANNEL_X0Y8 [get_cells gtx_support_i/gtx_init_i/inst/gtx_i/gt0_gtx_i/gtxe2_i]
##---------- Set placement for gt1_gtx_wrapper_i/GTXE2_CHANNEL ------
set_property LOC GTXE2_CHANNEL_X0Y9 [get_cells gtx_support_i/gtx_init_i/inst/gtx_i/gt1_gtx_i/gtxe2_i]
##---------- Set placement for gt2_gtx_wrapper_i/GTXE2_CHANNEL ------
set_property LOC GTXE2_CHANNEL_X0Y10 [get_cells gtx_support_i/gtx_init_i/inst/gtx_i/gt2_gtx_i/gtxe2_i]
##---------- Set placement for gt3_gtx_wrapper_i/GTXE2_CHANNEL ------
set_property LOC GTXE2_CHANNEL_X0Y11 [get_cells gtx_support_i/gtx_init_i/inst/gtx_i/gt3_gtx_i/gtxe2_i]

注意:
gtxe_2例化路径参照图2所示,路径名称依据具体工程实现进行修改。
在这里插入图片描述

图2、收发器通道约束路径分析

如何查看GTHE收发器实际引脚位置

在这里插入图片描述
在ip catalog里面搜索transceivers ip,找到收发器ip,可能不同FPGA系列名称不同。
然后可以在里面查看引脚位置,此外可以打开相关文档查找资料。

xilinx IP核配置,一步一步验证Xilinx Serdes GTX最高8.0Gbps_kuangxin的博客-CSDN博客
https://blog.csdn.net/u010161493/article/details/77658599

猜你喜欢

转载自blog.csdn.net/qq_45467083/article/details/114167591