目录
目录
一、背景介绍
FPGA内部所有信号都是单端的,差分只出现在引脚上。
在FPGA的开发过程中经常遇到,差分信号转单端信号或者单端信号转差分的问题。本文内容在于结合vivado使用Verilog和VHDL两种语言,分别实现二者的相互转换。
二、差分信号转单端信号
FPGA内部所有信号都是单端的,差分只出现在引脚上。输入差分信号转换为单端信号,使用IBUFDS。
(1)使用Verilog
- 首先在工程代码中定义差分信号。例如:
- 进入vivado,左击language templates,搜索 ”ibufds” ;
- 点开ibufds,把其中的代码复制到定义差分信号的代码里;
- 按下面的操作,修改复制过来的代码。
(2)使用VHDL
其实使用Verilog和VHDL没什么太大的区别,区别在于表达方式不同而已:
IBUFDS_inst : IBUFDS
generic map (
DIFF_TERM => FALSE,
IBUF_LOW_PWR => TRUE, -
IOSTANDARD => "DEFAULT")
port map (
O => PrSl_ApsClk_s ,
I => ST_APS_OUTCTK_P,
IB => ST_APS_OUTCTK_N
);
三、单端转差分信号
FPGA内部所有信号都是单端的,差分只出现在引脚上。把内部信号转为差分信号输出,用OBUFDS。
(1)使用Verilog
把第四个框里的复制到需要用到的模块,替换O、OB、I中的信号即可。
(2)使用VHDL