FPGA中应用LVDS信号

本文详细比较了Intel FPGA和Xilinx FPGA在LVDS信号输入与输出方面的处理方法,包括PinPlanner配置、原语使用及硬件设计注意事项。

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)
)

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
);

​ 在进行硬件设计时需要注意,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)
)

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
);
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

硬码农二毛哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值