• FPGA中应用LVDS信号


    FPGA开发中经常会用到LVDS信号,本文分别介绍intel fpga和xilinx fpga的LVDS信号处理方法。

    intel fpga

    LVDS输入

    LVDS信号输入到intel FPGA,在Pin Planner中将信号设置成LVDS。例如输入信号为data_p和data_n,只需要分配data_p引脚,data_n引脚软件自动分配。写代码时直接操作data_p就可以。

    FPGA开发中经常会用到LVDS信号,本文分别介绍intel fpga和xilinx fpga的LVDS信号处理方法。

    intel fpga

    LVDS输入

    ​ LVDS信号输入到intel FPGA,在Pin Planner中将信号设置成LVDS。例如输入信号为data_p和data_n,只需要分配data_p引脚,data_n引脚软件自动分配。写代码时直接操作data_p就可以。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Eb42J9e9-1662029035874)(./pic/3.png)]

    ​ 在进行硬件设计时需要注意,LVDS输入信号要选择DIFFIO_RX引脚,如果选择成DIFFIO_TX,编译会出错。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZGG7R7od-1662029035879)(./pic/2.png)]

    LVDS输出

    ​ intel FPGA输出LVDS信号。只需要将要输出的信号在Pin Planner中设置成LVDS电平,将原理图中差分信号P端引脚配置到输出信号,N端软件自动配置。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bEEOOJhf-1662029035882)(./pic/1.png)]

    ​ 在进行硬件设计时要LVDS输出信号要选择DIFFIO_TX引脚,如果选择成DIFFIO_RX,编译会出错。

    xilnx fpga

    ​ xilinx fpga对lvds信号处理与intel不同,通常使用原语处理差分信号。

    LVDS输入

    ​ LVDS信号输入使用IBUFDS。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-P1wHXv3B-1662029035883)(./pic/4.png)]

    ​ 原语如下:

    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)
    )
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    LVDS输出

    ​ LVDS信号输入使用OBUFDS。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VDHXrLRS-1662029035883)(./pic/5.png)]

    原语如下:

    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
    );
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    ​ 在进行硬件设计时需要注意,LVDS输入信号要选择DIFFIO_RX引脚,如果选择成DIFFIO_TX,编译会出错。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CvNTaPxl-1662029001987)(./pic/2.png)]

    LVDS输出

    ​ intel FPGA输出LVDS信号。只需要将要输出的信号在Pin Planner中设置成LVDS电平,将原理图中差分信号P端引脚配置到输出信号,N端软件自动配置。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wewS9ACA-1662029001989)(./pic/1.png)]

    ​ 在进行硬件设计时要LVDS输出信号要选择DIFFIO_TX引脚,如果选择成DIFFIO_RX,编译会出错。

    xilnx fpga

    ​ xilinx fpga对lvds信号处理与intel不同,通常使用原语处理差分信号。

    LVDS输入

    ​ LVDS信号输入使用IBUFDS。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OKWqQNnl-1662029001991)(./pic/4.png)]

    ​ 原语如下:

    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)
    )
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    LVDS输出

    ​ LVDS信号输入使用OBUFDS。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O7A8pNm6-1662029001992)(./pic/5.png)]

    原语如下:

    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
    );
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
  • 相关阅读:
    位图和布隆过滤器
    Reggie外卖项目 —— 小程序开发之短信发送
    【OpenCV实现图像:OpenCV利用Python创作热力图】
    SPRINGBOOT03_自动配置原理入门、Lombok、dev-tools、快速初始化boot项目
    docker自启与容器自启
    buuctf-web-p6 [NPUCTF2020]web 狗
    Kotlin初级【基本语法、数据类型、循环】
    echarts地图各种点位实现
    实力认证!Coremail连续9次入围安全牛《中国网络安全行业全景图》
    ASEMI整流桥KBPC3510W参数特性,KBPC3510W封装尺寸
  • 原文地址:https://blog.csdn.net/clj609/article/details/126649228