介绍了根据FPGA的LVDS模块的运用,完成了将数据经过FPGA(Ahera StratixII EP2S90)的LVDS发送模块的传输,以640 Mbit·s-1数据率送至DAC电路。
1 LVDS技能简介
LVDS,即Low-Voltage Differential Signaling低压差分信号,是由美国国家半导体公司于1994年提出的一种信号传输形式,在满意高数据传输率的一起降低了功耗,运用LVDS技能可使数据速率从几百Mbit·s-1到2 Gbit·s-1。
LVDS传输办法的原理是用一对线传输一个信号,一条传输正信号,另一条传输相反电平而且在接纳端相减,能够将走线上的共模噪声消除。由于两根信号的极性相反,所以对外辐射的电磁场能够彼此抵消,耦合越严密,相互抵消的磁力线越多,走漏到外界的电磁能量就越少。
LVDS接口也称RS-644总线接口,运用LVDS传输技能,选用极低的电压摆幅高速差动传输数据,具有低功耗、低误码率、低串扰和低辐射等特色,可运用铜质PCB连线传输或平衡电缆。LVDS在对信号完整性、低颤动及共模特性要求较高的体系中的运用越来越广泛。现在LVDS技能规范有两个规范:一个是TIA/EIA的ANSI/TIA/EIA-644规范;另一个是IEEE1596.3规范。
2 根据FPGA的LVDS接口发送模块
选用Stratix II系列的EP2S90F1020C3FPGA,其支撑高速LVDS接口,在Quartus II软件中能够调用其宏功能模块Altlvds_tx,即LVDS接口发送模块。此模块将以并行办法输入的TTL电平数据信号转化成串行的LVDS信号输出。
2.1 Altlvds_tx发送形式
将LVDS模块设置为发送形式,行将左端输入的并行tx_in信号转化为串行的tx_out信号输出,而且设置通道数和串行化因子,在这儿,通道数即为输出数据的位数,而串行化因子表明将输入数据分几回输出。例如输入为96位的并行数据,设置为24 channels×4,表明输出串行的24位数据,分4次输出,若输入数据时钟为160 MHz,则输出的数据率为4倍,即640 Mbit·s-1,而且能够输出640 MHz的数据时钟。在归纳设置页面中,没有选中“Implement Serializer/Deserializer Circuitry In Logic Cells”,就表明用到了LVDS Serdes硬核。图2所示数据率为640Mbit·s-1,输出时钟为640MHz。
需求留意的是,Altlvds发送模块在对数据进行并转串输出时,会对输入数据的次序进行从头摆放,例如:输入8位并行数据,设置2 channels×4,则输入数据分为2组即2个通道,每组4 bit,如图3所示。
从图3能够看出,8位输人数据分为2个通道,每个通道4 bit,输出数据时,第一个输出的2 bit数为第一个通道的最高位和第二个通道的最高位别离作输出的高位和低位,第二个输出的数为第一个通道的次高位和第二个通道的次高位组合,以此类推。
当设置的串行化因子为2时,Altivds_tx模块会主动变成DDR作业形式。
2.2 AltlvdS_tx时钟形式
Altlvds模块内部有一个PLL,能够得到所需求的输出数据时钟,在图1中能够看到选项Use External PLL,当挑选此项时,表明运用外部时钟,则需求在FPGA中从头做一个PLL,并将输出时钟和LVDS模块进行相应的衔接。
当运用内部PLL时,如图2所示,What is the phase alignment of‘tx_in’with respect to the rising edgeof‘tx_inclock’?(in degrees)即能够调理tx_in输入数据和tx_inclock输入时钟的相位偏移,而Register‘tx_in’input port using选项表明输入数据是用输入时钟tx_inclock操控仍是用核时钟tx_coreclock操控,默许的是核时钟,而当运用tx_inclock时钟缓存输入数据时,可能会提示树立时间的问题,而对高速时钟来说,运用核时钟缓存时,会用最优的相位方位来缓存数据。
如图4所示,发送器设置界面中What is the phasealignment of‘tx_outclock’with respect to‘tx_out’?选项能够设置输出数据和输出时钟的相位联系。当挑选‘tx_coreclock’输出时可挑选核时钟的时钟源What isthe clock resource used for‘tx_coreclock’?可挑选Global Clock大局时钟或Regional Clock区域时钟,默许的是Auto Selection.,由编译时主动挑选。
当运用外部时钟时,即在图1中挑选Use ExternalPLL,此刻新建一个PLL来供给时钟源,这时LVDS模块只能设置输出数据与时钟的相位联系,其他选项不行设置。
3 Altlvds_tx模块在DAC体系中的运用试验
3.1 体系硬件规划
DAC体系原理框图如图5所示。
体系中DSP运用TigerSHARC处理器TS101,FPGA选用Aitera公司的StratixII系列EP2S90F1020C3,DAC芯片选用ADI公司的AD9735。
AD9735为12 bit数模转化器,能够供给高达1 200 MS·s-1的采样速率,且设有一个SPI端口,能够对D/A内部参数进行设置,并回读状况寄存器。
体系中由DSP将处理好的数据发送至FPGA,在FPGA内部先由双口RAM进行缓存,然后将读出的数据送至LVDS_TX模块,输出LVDS数据和数据时钟到AD9735。试验中数据率为640 Mbit·s-1,而且供给640 MHz的体系时钟给AD9735。由于接口时钟速率进步,传统体系同步办法的数据接口电路难以完成,则选用源同步的办法愈加可行,要求时钟随同数据输出,AD9735的数据输入接口便是依照源同步的形式规划,它要求确保时钟与数据的边缘对齐,即需求输入数据随路时钟与数据选用相同的机理发生。所以经过LVDS_TX模块发生所需的数据和640 MHz时钟送至AD9735。
3.2 体系软件规划
在FPGA中运用大局时钟100 MHz经过PLL发生160 MHz时钟来操控双口RAM的写地址计数器时钟,并作为LVDS_TX模块外部时钟PLL的输入时钟。如图6所示,DSP送来的24位波形数据,低12位为I路数据,高12位为Q路数据送至双口RAM,由DSP的60 MHz时钟写入,用LVDS模块的外部PLL发生的核时钟做读数时钟,一次读出96位,即4个点的数据。其间Rearrange模块功能为完成数据位从头摆放,为后边的LVDS_TX模块数据做准备(如图3所示),使终究输出数据能够确保正确的数据次序。
LVDS_TX模块的设置如图7所示,这儿运用外部时钟操控,即在LVDS模块外从头定制一个PLL,此PLL要设置在LVDS形式下,PLL类型会主动挑选为Fast PLL。这时PLL会有3个输出c0,sclkout0,enable0。输入时钟inclk0设为160 MHz,LVDS数据率置为640 Mbit·s-1,则输出c0为核时钟,频率为160 MHz,输出sclkout0为串行化输出时钟640 MHz,输出enable0为LVDS输入使能信号。
在外部PLL设置中能够对输出的核时钟和高速串行化输出时钟的相位进行调理,由于FPGA的高速时钟由于内部布线等原因可能会发生一些相位偏斜,导致数据和时钟不能精确对齐,这时就需求对时钟的相位进行调理来对齐数据和时钟。本试验中设置c0的相偏为-45°,则sclkout0会默许发生-180°相偏,由于LVDS设置的是4倍抽取联系,即45×4=180,运用外部时钟时还能够根据需求别离调理两个时钟的相位。时钟相位联系如图8所示。
用PLL输出的核时钟即c0将rearrange模块输出的数据进行同步后送至LVDS_TX模块,时钟的衔接办法如图7所示。在enable0信号有用时将数据输入至LVDS模块,LVDS_TX模块输出的24位数据输入给2个DA(I、Q),低12位为I路,高12位为Q路,并将输出640 MHz同步时钟送至DA。此刻LVDS模块内仍能够调理输出数据和输出时钟的相位,但只剩下2个相位值能够调理,即0°和180°。
4 试验成果及剖析
试验中由DSP别离发送100 MHz和225 MHz的正余弦波形数据至FPGA,经过双口RAM和LVDS_TX模块发送至AD9735,并从示波器上调查DA的输出波形。
试验中c0相偏为-45°,sclkout0为-180°相偏。由DSP首要发送的是100 MHz的I、Q波形数据,AD9735的输出波形在示波器上显现如图9所示,其频谱如图10所示。
在100 MHz时,其杂散按捺可达-41.6 dB。
再发送225 MHz的I、Q波形数据,输出波形及频谱如图11和图12所示。
在225 MHz时,其杂散按捺可达-36.8 dB。
以下时钟相位的偏移对数据的影响,将c0和sclkout0相偏设置为0°。
仍由DSP发送100 MHz的I、Q波形数据,输出如图13所示,能够看出数据质量变差。
如图14所示,DSP发送225 MHz的I、Q波形数据的状况。
从图中看出,在225 MHz时时域波形质量较差,DSP发送的数据已是不能正确读出。能够看出在高速数据传输时,数据和时钟的同步很重要,正确调整时钟数据的相偏才干确保数据的正确传输。
由试验成果能够看出,在正确的时钟相位下,波形数据以640 Mbit·s-1的数据率正确的送至DAC,波形和频谱质量杰出,经过LVDS_TX接口模块的运用,简略方便地完成了高速数据接口电路并输出高速LVDS信号,处理了高速时钟与数据的同步问题。
5 结束语
LVDS接口技能的优胜功能使其在大型高速数据处理传输体系中的运用越来越广泛。介绍了根据FPGA的LVDS_TX模块在DAC体系中的运用,完成了高速LVDS数据的传输,运用时应要留意:LVDS并串转化时,数据bit位的次序问题,正确相应的输入数据摆放才干得到正确的输出数据,一起,无论是运用LVDS模块内部时钟仍是外部时钟,都要留意时钟数据相位的正确调整,以便使数据与时钟精确对齐同步,然后得到正确杰出的输出数据波形。