做数字电路设计的朋友对差分信号的定义应该都不会太陌生,在当前比较流行的高速串行总线上,基本都是使用的差分信号。比如USB,PCIE,SATA等等。大多数的FPGA也都支持差分信号,甚至某些新型号的CPLD也开始支持差分信号了。
那么在FPGA中如何正确定义和使用差分信号呢?在这篇文章里,我们基于ALTERA公司的CYCLONE III系列的FPGA芯片,做一些讨论。
一,差分信号输出
我们先在设计中定义一个名字为DIF_OUT的输出信号。并将UART_CLK时钟赋给它(UART_CLK为串口时钟,大概为115.2kHz)。(该实验是在一个FPGA的项目上添加部分差分信号的设计来做的,会引用到原设计里的一些信号,但在介绍中,只会给出与差分信号实验相关的部分)如下面所示:
module FPGA_TOP(
……
DIF_OUT,
……
);
……
output DIF_OUT;
……
assign DIF_OUT = UART_CLK;