最近在把Quartus Prime 15.1的工程移植到Vivado 2019.1,需要改变的地方还是很多的,先记一下差分信号在FPGA中的收发管脚定义和配置。以LVDS信号为例吧。
在7 Series FPGA & ZYNQ-7000 All Programmable SoC Library Guide for HDL Design(UG768)和7 Series FPGA SelectIO Resource(UG471)文档里面给出了HDL文件进行管脚分配的办法:
用OBUFDS原语(Primitive)可以进行单端转差分输出,其实使用该原语就是在FPGA IO Bank使用了一个LVDS发送器。
对应的,用IBUFDS原语可以进行差分信号的接收,该原语在IO Bank使用了一个LVDS接收器。
在Vivado环境中Flow Navigator --- PROJECT MANAGER --- Language Templates可以找到,上述原语分别如下:
OBUFDS
OBUFDS #(
.IOSTANDARD("DEFAULT"), // Specify the output I/O standard
.SLEW("SLOW") // Specify the output slew rate
) OBUFDS_inst(
.O(O), // Diff_p output (connect directly to top-level port)
.OB(OB), // Diff_n output (connect directly to top-level port)
.I(I) // Buffer input
);
IBUFDS
IBUFDS #(
.DIFF