Xilinx Vivado器件分配管脚:LVDS差分电平信号如何分配管脚?

Posted yangguangpu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Xilinx Vivado器件分配管脚:LVDS差分电平信号如何分配管脚?相关的知识,希望对你有一定的参考价值。

最近在把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_TERM("FALSE"),       // Differential Termination
    .IBUF_LOW_PWR("TRUE"),     // Low power="TRUE", Highest performance="FALSE" 
    .IOSTANDARD("DEFAULT")     // Specify the input I/O standard
    ) IBUFDS_inst(
    .O(O),  // Buffer output
    .I(I),  // Diff_p buffer input (connect directly to top-level port)
    .IB(IB) // Diff_n buffer input (connect directly to top-level port)
    );

上面只贴出了Verilog版本,VHDL版本请自行实验吧。

从语法上看,上面的原语例化了LVDS发送器和接收器,其中I端口是输入,IB端口是I的互补差分信号输入,O端口是输出,OB端口是O端口的互补差分输出。

在模块名和例化名之间,还有警号井号#带领的一些参数,这些都是和差分收发器具体实现相关的参数,比如具体的IO电平规格(LVDS,DIFF_HSTL等等),输出差分信号的压摆率(高/低),接收器端内部负载电阻使能,降低接收器的能耗等参数。

***************************************************************************************************************************************************************************************

和Quartus环境中的差分IO配置相比,Xilinx中的设计过程中需要在HDL文件里面多加东西,增加了严谨性但是失去了一定的方便性:)

 

以上是关于Xilinx Vivado器件分配管脚:LVDS差分电平信号如何分配管脚?的主要内容,如果未能解决你的问题,请参考以下文章

vivado中的PACKAGE_PIN与BOARD_PIN

vivado中的PACKAGE_PIN与BOARD_PIN

vivado中的PACKAGE_PIN与BOARD_PIN

使用tcl文件分配管脚

quartusii 怎么给信号分配管脚

Xilinx FPGA LVDS应用