打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
fpga中lvds信号使用小结

注:由于个人能力有限,文档中可能存在不当之处,望大家注意,并及时指正(只做参考文档)。

Fpga_lvds 小结

一.FPGA中lvds信号使用时需要注意的部分事项

1. CI和CII,没有Altera所谓的“true lvds buffer”。无论TX还是RX方向,都需要接匹配的电阻网络。TX方向,3个电阻;RX方向,一个100欧电阻;

2. CIII,在芯片的right bank,left bank上,也就是1,2,5,6bank,设计了“dedicated output buffer”。这样,输出就不需要做任何电阻网络匹配的工作了。

至于上下两边,3,4,7,8bank上,没有“dedicated output buffer”,如果要做输出使用,仍然需要像CI和CII上面一样,配上3个电阻的网络。Altera将这种方式名为“emulated lvds output...”

对于LVDS输入,无论哪个bank,都需要100欧姆电阻。

以上两点时pcb需要注意的事项;

3.CIII分配管脚时,左右bank的LVDS差分信号在IO分配时选择IO标准为LVDS;上下bank的LVDS差分信号在IO分配时选择IO标准为LVDS_E_3R,LVDS_E_3R是Atlera对于带3个电阻的LVDS输出的一种叫法。对于时序要求不是太高的lvds信号可以直接与fpga中相应的输入输出lvds管脚相连接即可;对于互为差分信号的一对信号来说,使用时,我们只需要处理其中一条信号即可。

不同型号的器件lvds使用也不是完全相同的,fpga中lvds信号使用时需要参考具体的器件手册。

二.FPGA中针对LVDS信号处理的IP核简介

对于高速的lvds信号,若不使用专用的IP核的话,可能无法满足数据,时钟之间的时序要求。对于高速的lvds我们可以直接调用专用的ip完成数据之间的传输。

Manager管理器提供了针对LVDS信号处理的IP核,包括LVDS发送核(altlvds_tx)与LVDS接收核(altlvds_rx)。

LVDS发送核(altlvds_tx):将并行信号串行化为LVDS信号后发送。

LVDS接收核  (altlvds_rx)  :接收LVDS串行信号并将该信号并行化,即解串器。

2.1 Lvds_tx 核参数说明:

在综合设置页面中,没有选中“Implement Serializer/Deserializer Circuitry In Logic Cells”,就表示用到了LVDS Serdes硬核。选中说明用逻辑单元实现lvds serdes的功能;传输开始与时钟锁存后的时钟沿;适应于低速传输;字节对齐与专用Serdes硬核不同。(对应有些器件支持内部LE实现或者采用内部专用电路实现,对应Cyclone系列,只能采用LE实现,内部无专用电路)

通道数为输出通道的数量;对应设置最大值需根据所选的Device支持LVDS个数决定。

反序列因子为输出的单通道对应的并行的比特数(或通道数);假设输出通道为2,反序列因子为4,则并行输入通道数为8;输入与输出数据的关系如下图所示(通道1输出数据的顺序依次为bit3,bit2,bit1,bit0;通道2输出数据的顺序为bit7,bit6,bit5,bit4;):

使用外部时钟;通道数为2时,用ddr的方式实现serdes的功能;通道数不小于4时可以打开,若打开,自己生成pll模块做为serdes的时钟源,设置合适的频率,正确的连接方式;关闭,自动生成一个内部带有pll块的altlvds_tx块;在图中可以看到选项Use External PLL,当选择此项时,表示使用外部时钟,则需要在FPGA中重新做一个PLL,并将输出时钟和LVDS模块进行相应的连接。

Use 'tx_data_reset' input port : 用逻辑单元实现lvds serdes的功能时,此选项可以选择。若选择,ip核增加一输入端口,此端口可以异步复位altlvds_tx ip核的所有逻辑(除pll外);

当使用内部PLL时,如图所示:

What is the output data rate? 输出数据速率(tx_out的速率);

Specify input clock rate by 输入时钟速率,由输出数据速率决定(输出数据速率/反序列因子);

What is the phase alignment of‘tx_in’with respect to the rising edgeof‘tx_inclock’?(in degrees)即可以调节tx_in输入数据和tx_inclock输入时钟的相位偏移;

Use 'tx_pll_enable' input port:打开,控制the fast pll使能端口。特别应用与数个ALTLVDS_TX应用。要求所有的ALTLVDS_TX共用一个tx_pll_enable信号。并且要求对应所有的ALTLVDS_TX均采用这个参数,否则在编译中会产生对应一个警告。

Use 'pll_areset' input port:打开,控制pll异步复位端口。

Align clock to center of data window:设置调整输出时钟相位,增加一个90°的相位偏移。从而达到输出的数据和时钟达到一个Center-aligns的关系。

Enable self-reset on lost lock in PLL:打开此选项,无论何时pll失锁时,自动复位pll。

Use shared PLL(s) for receivers and Transmitters:打开,lvds发送,接收共享相同的pll;

Register‘tx_in’input port using选项表示输入数据是用输入时钟tx_inclock控制还是用核时钟tx_coreclock进行register,默认的是核时钟,而当使用tx_inclock时钟缓存输入数据时,可能会提示建立时间的问题,而对高速时钟来说,使用核时钟缓存时,会用最优的相位位置来缓存数据。 

如图所示,发送器设置界面中

Use 'tx_outclock' output port:使用一个tx_outclock输出端口输出TX时钟(tx_outclock=输出数据速率/the outclock divide factor);与串行输出数据相关联(个人理解为触发关系,即tx_outclock上升沿时,tx_out输出新的一组数据);

What is the outclock divide factor (B)?:主要通过设置了这个参数设置了tx_outclock频率,通过output data rate /outclock divide factor(B)(也就是这个参数)得到tx_outclock的频率

Specify phase alignment of 'tx_outclock' with respect to 'tx_out':这个参数只有在用户设置使用tx_outclock这个信号后才有效,这个参数设置了tx_outclock于输出的tx_out之间的相位关系。

What is the phase alignment of‘tx_outclock’with respect to‘tx_out’?选项可以设置输出数据和输出时钟的相位关系。

What is the outclock duty cycle?这个参数主要设置了tx_outclock的占空比,对应当

1,deserialization_factor为5,7,9

2,outclock_divide_by信号等于deserialization_factor

3,outclock_multiply_by为2

上面这些条件成立,对应占空比不能设置为50;

Use 'tx_locked' output port:这个参数主要是输出一个tx_locked信号,用于监控PLL的状态,为1,表示PLL LOCKED,否则失锁。

Use 'tx_coreclock' output port:这个参数设置tx_coreclock时钟内部走线网络,默认值为Auto selection,可选Global clock(全局时钟网络),Regional Clock(区域时钟网络)。

当使用外部时钟时,即在图1中选择Use ExternalPLL,此时新建一个PLL来提供时钟源,这时LVDS模块只能设置输出数据与时钟的相位关系,其余选项不可设置。

EX1:使用内部时钟

Lvds_tx IP核的设置为,器件类型Altera cycloneIII(其他的型号不一定适用),不使用外部pll,输出为2通道,反序列因子为4,故输入数据为并行的8bit;tx_inclock为50MHz,输出数据速率为200Mbps,tx_outclock为50Mhz(这里the outclock divide factor设置为4,故tx_outclock=data rate /the outclock divide factor = 200/4=50M),选中pll_areset输入端口;其他选项默认;

Lovd_tx发送IP核仿真图如下:

在lvds_tx时钟信号稳定之后输出数据与输入数据对应(对应关系前面已经讲过),如上图所示;

EX2:使用外部时钟

注意:info

Info1: Using the external PLL mode requires that

Info2: - The fast clock (running at data rate / 2) from the PLL feeds tx_inclock;可以理解为tx_inclock = data rate / 2;其中data rate 为输出数据速率;(快时钟tx_inclock等于使用内部时钟时的tx_outclock)

Info3:-The slow clock (data rate / DESERIALIZATION_FACTOR) from the PLL feeds tx_syncclock;可以理解为tx_syncclock = data rate / DESERIALIZATION_FACTOR;tx_syncclock可以理解为输出数据速率;(慢时钟tx_syncclock等于使用内部时钟时的tx_inclock)

Info4: - The inputs be pre-registered in the logic feeding the transmitter by the slow clock;可以理解为通过慢时钟进行数据输入;

参数设置:

输出通道为2;反序列因子为4;故串行输入通道为8bit; 

串行数据输出速率data_rate = 200 M;故并行数据输入速率为data_rate / 4 =50M,即慢时钟tx_syncclock = 50M;快时钟tx_inclock = data_rate / 2 = 100 M; 

pll输入时钟为50M;需要产生两个时钟,即tx_syncclock =50M,tx_inclock = 100M;

在lvds_tx时钟信号稳定之后输出数据与输入数据对应(对应关系前面已经讲过),如上图所示;

2.2 ALTLVDS_RX:

ALTLVDS_RX宏功能支持以下接收模式: 

(1)DPA模式 

在DPA模式下,DPA电路自动选择最佳的相位去补偿源同步时钟和接收到的串行数据之间的相位偏差。

(2)非DPA模式 

非DPA模式可以让您以静态方式选择最佳的相位去补偿源同步时钟和串行数据之间的相位偏移。

(3)软CDR模式 

暂时不太明白;

连接的lvds发送器和lvds接收器物理通道(信号传输媒介)可引起串行数据和源同步时钟之间的偏移。由于接收器检测到的数据和时钟信号的抖动,每个LVDS信道和时钟之间的瞬时偏移是多样的。 上面三种接收模式,其中(非DPA,DPA)克服了源同步时钟与串行数据之间的偏移 ;(软CDR)克服了参考时钟和串行数据之间的偏移。

Lvds_rx 核参数说明:

Implement Deserializer circuitry in logic cells:对应这个参数设置对应将Deserializer电路采用内部LE单元实现。(对应有些器件支持内部LE实现或者采用内部专用电路实现,对应Cyclone系列,只能采用LE实现,内部无专用电路)。

Enable Dynamic Phase Alignment mode:对应这个参数使能DPA(动态相位调整)功能,对应这个电路功能只有部分器件支持。在使能了这个功能后,对应要在DPA模式下设置

DPA Settings 1

DPA Settings 2

DPA Settings 3

What is the number of channels?:对应这个参数设置主要设置LVDS_RX通道数。对应设置最大值需根据所选的Device支持LVDS个数决定。

What is the deserialization factor?:对应这个参数主要设置对应每个通道RX的数据宽度

Use External PLL:对应这个参数主要设置其是采用内部PLL还是外部PLL,如果采用外部PLL为这个IP提供时钟,你对应需要在额外提供一个PLL产生时钟提供给这个IP。对应你必须提供一个准确的时钟输入。当你Deserialization Factor为2(对应发送数据宽度为2),对应其实现发送直接采用DDR Registers实现,而旁路掉SERDES这个专用电路或者SERDES实现单元。因此,这个时候不需采用外部PLL,如果要采用外部PLL,Deserialization Factor至少为4.当你采用Stratix或者Stratix GX系列时,对应实现LVDS采用内部专用SERDES Block,无需采用外部PLL。

Use 'rx_data_reset' input port:对应这个参数设置一个复位信号输入,对应只有在实现LVDS采用内部LE实现情况下,才可选此参数配置。对应这个信号可异步复位ALTLVDS_RX中除了PLL的其他所有逻辑。

Is this interface constrained to the left or right banks?:假如在器件中lvds接口被限制在the left or right banks时打开此选项。此选项决定了cyclone V 的 pll时钟补偿模式。

此页面相关参数设置只当使用内部PLL时有效

对应上面三个设置的作用分别是,一个输入data rate,一个设置输入时钟频率或者周期,一个设置是否与ALTLVDS_TX共用PLL。

Use 'pll_areset' input port:对应这个参数,设置一个pll_areset信号给ALTLVDS_RX这个IP。即提供一个复位信号给PLL;共享pll时,当使用数个ALTLVDS_RX,对应需ALTLVDS_RX都开启这个信号,并全部使用同一个pll_areset信号.

Use 'rx_pll_enable' input port:设置对PLL的使能。特别应用与数个ALTLVDS_RX应用。要求所有的ALTLVDS_RX共用一个rx_pll_enable信号。并且要求对应所有的ALTLVDS_RX均采用这个参数,否则在编译中会产生对应一个警告。

Use 'rx_locked' output port:监视pll锁存状态,为1,表示内部PLL锁定,否则失锁。

What is the clock resource used for 'rx_ outclock'?:用于选择rx_outclock布线选择。三个选项,一个是Auto selection(自动选择),一个是Global clock(全局时钟),一个是Regional clock(区域时钟)。默认选择为Auto Selection.

What is the phase alignment of 'rx_in' with respect to 'rx_inclock'?:这个参数设置了rx_in和rx_inclock之间相位关系。对应这个设置在关闭DPA模式下有效。

Use source-synchronous mode of the PLL:开启源同步模式,在开启这项设置时候,必须使rx_in和rx_inclock通过一个相位调整,使得数据和时钟具有一个相位关系

Align clock to center of data window at capture point:设置调整输出时钟相位,增加一个90°的相位偏移。从而达到输出的数据和时钟达到一个Center-aligns的关系。

Enable self-reset on lost lock in the PLL:当PLL失锁后产生一个自复位信号。

Enable FIFO for DPA channels:使并行数据和全局时钟同步的相位补偿fifo缓冲器(The phase-compensation FIFO buffer synchronizes parallel data to the global clock domain of the core.)。 此选项仅适用于Stratix GX器件的DPA模式。

下面为dpa设置界面,支持部分器件,可以根据实际情况选择使用;

DPA设置1参数设置界面:

Use 'rx_divfwdclk' output port and bypass the DPA FIFO?:使用反序列因子分频 “the DPA clock”,并将分频后的“DPA clock”转发给核。“the DPA clock”驱动 bit-slip 和校准电路,并绕过fifo.此选项支持软件CDR模式。在部分器件中有效。

What is the simulated recovered clock phase drift?:

Use 'rx_dpll_enable' input port:使能DPA电路的某一个通道。如果不使用这个端口,Quartus II软件使能所有的通道。

Use 'rx_dpll_hold' input port:防止DPA电路切换一个新的时钟相位到目标通道上。每个DPA块监视连续输入的数据流的相位并在需要时选择一个新的时钟相位。 当这个端口为高时,所选择的通道保持当前的相位设置。

Use 'rx_fifo_reset' input port:复位DPA电路和数据对齐电路之间的FIFO缓冲器。FIFO缓冲区保持DPA和LVDS时钟域之间的数据传递。 当这个端口为高,选定通道的FIFO被复位。 只有关闭Use 'rx_divfwdclk' output port and bypass the DPA FIFO?选项时,此选项可用。

DPA设置2参数设置界面:

Use 'rx_reset' input port:复位DPA电路的所有元器件;当复位DPA 电路之后,必须重新设置DPA 电路。

Automatically reset the bit serial FIFO when 'rx_dpa_locked' rises for the first time:自动复位bit-serial fifo,部分器件此选项有效。

User explicitly resets the bit serial FIFO through 'rx_reset:当您打开rx_reset端口,ALTLVDS_RX上参数编辑器允许您选择是否要 “Automatically reset the bit serial FIFO when 'rx_dpa_locked' rises for the first time”。这是一个非常有用的功能,它可以直到DPA锁存之前保持同步FIFO处于复位状态,部分器件此选项有效。。

Use 'rx_dpa_locked' output port:监视DPA电路的状态,锁定的相位最接近输入数据的相位。

When phase alignment circuitry switches to a new phase:当相位对齐电路跳转到一个新的相位时DPA拉高。此项,部分器件有效。

When there are two phase changes in the same direction:在同一方向DPA切换两个相位之后,“rx_dpa_locked”信号拉高。

Use 'rx_dpa_lock_reset' input port:复位DPA锁存电路。

Use a DPA initial phase selection of:打开此选项,可以选择初始相位设置的值。

Align DPA to rising edge of data only:打开此选项,用于DPA 对齐数据的上升沿或下降沿。

Enable PLL Calibration:pll校准使能;

Use 'dpa_pll_recal' input port:不需要重新设置DPA的情况下,重新校准pll。

What is the input data rate?:指定输入通道的数据速率,速率范围参考器件说明。

Use 'rx_cda_reset' input port:此选项可以重置数据对齐电路, 恢复延迟位计数器为零。 只有当你使用“rx_channel_data_align'输入端口选项,此选项可用。此选项只有当您使用专用的SERDES块是可用的。

Use 'rx_cda_max' output port:在数据对齐电路中指示“the rollover point”的到达。 只有当你使用“rx_channel_data_align'输入端口选项,此选项可用。此选项只有当您使用专用的SERDES块是可用的。

After how many pulses does the data alignment circuitry restore the serial latency back to 0?: 数据对齐电路需要多少个脉冲才能恢复串行延迟为0。

Align data to the rising edge of clock:打开此选项,lvds输入数据是在时钟的上升沿进行寄存的。关闭,则是在下降沿寄存。

Use 'rx_coreclk' input port:当lvds用逻辑实现时,此选项可选用。选择此选项时,ip核增加一个输入端口,它可以对所有逻辑(除pll外)实施异步复位。

Use 'rx_channel_data_align' input port:此信号的一个脉冲,可以导致数据校准电路增加一位的延迟在串行数据流中;此信号控制所有通道的bit-slip功能。

Enable independent bitslip controls for each channel:此选项可以使每个通道独立的控制bitslip。

Add extra register for 'rx_data_align' input port: 添加额外寄存器为“rx_data_align”输入端口;

Use 'rx_data_align_reset' input port:此选项可以为bit-slip电路创建一个复位端口。

Which output synchronization buffer implementation should be used?:指定同步缓冲器的实现方法。

(1)Use Ram buffer;(2)use a multiplexer and synchronization register (3) use logic element based ram buffer

ALTLVDS_RX核仿真:

EX1: 非DPA模式

参数设置:输入通道为2,反序列因子为4;输入数据速率为200M;rx_inclock = 100;

其他选项默认。

ALTLVDS_RX时钟稳定后输出入局与输入数据对应关系如图中所示。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
主流软件无线电芯片AD9361学习笔记
5nm 112Gbps 最新一代 SerDes IP 时钟设计详解
stm32串口程序(全)
高级篇:第2章 altera器件高级特性与应用
[笔记]Spartan6和Spartan3A
imx6q lvds 无法输出小于38M时钟的解决办法
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服