0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

浅谈LVDS-V1

XL FPGA技术交流 ? 来源:易灵思FPGA技术交流 ? 作者:易灵思FPGA技术交流 ? 2024-12-10 10:00 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

这里以钛金的LVDS为例。

LVDS RX 时钟选择

LVDS时钟的接收要连接名字为GPIOx_P_y_PLLINz名字的差分对,这样的管脚直接驱动PLL,产生LVDS接收需要的fast_clk和slow_clk,这种主要是用于数据和时钟的速率不是1:1,比如大家常见的1:7,1:8和1:10等,这时就要使用串化/解串器;如果时钟和数据的速率比是1:1并且速率不高,也可以考虑用GCLK走时钟来采集数据。

Ti60F225为例,它共有4个PLL,分别为PLL_BL,PLL_BR,PLL_TR和PLL_TL4个PLL,在要求解串器的情况下,最大只能接收4组LVDS,这是在不考虑PLL作为别的用途的前提下的。

wKgZO2dWsr-AXIWzAASIrbMkdIk639.png

LVDS的PLL的复位信号的处理

有些时候LVDS并不是连续的,这就要对PLL进行复位处理。在处理方式上我们可以检测PLL_LOCKED信号是否锁定,如果隔一段时间没有锁定就对PLL进行一次复位。然后再循环检测锁定信号和复位的过程,直到PLL_LOCKED信号为高。目前遇到一些LVDS接收异常的问题很多是通过这样的方式来解决的。这是为了排除PLL假锁的情况。

wKgZO2dWsr-AIzHLAACVz2ZCDfQ421.png

interface设置

(1)rx clock设置

wKgZO2dWsr-ATyhNAABvaK4cSVI845.png

Enable Common Mode Driver:当使用交流耦合时。要勾选Enable Common Mode Driver。

(2) data 设置

wKgZO2dWsr-ATbSFAACHwqaRdPI479.png

Enable Deserialization使能解串因子,Enable Half Rate Deseralization:是指双沿采样 。在带有解串器的设置中要指定解串时钟和并行的时钟。对于发送设置也是大致相同的,只不过要指定的是串化因子。

(3)发送时钟的设置

wKgZO2dWsr-ADBkWAAB-vZn2tu4096.png

发送时钟不同于接收时钟,发送与数据的设置比较相近。把发送时钟按如下设置。

assign lvds_tx_clk_TX_DATA = 8'hAA;

经过串化之后,时钟波形就变成了如下的样子。如果发送的数据是8'hF0时钟又会是什么样子呢?大家可以自己思考下。

wKgZO2dWsr-APhI4AAAqUuB7TaU485.png 当然LVDS输出时钟选择serial data output 如果设置为clk输出,时钟速率最大为数据速率的1/8.具体使用可以先试试。

信号控制

对于数据一般不会出错,大家可能会忘记的是设置使能和复位。注意使能和复位都是高有效。所以正常运行时要把使能设置为高,复位设置为低。

assign lvds_rx_clk_RX_ENA = 1'b1;assign lvds_rx_d0_RX_ENA = 1'b1;assign lvds_rx_d1_RX_ENA = 1'b1;  assign lvds_rx_d2_RX_ENA = 1'b1;assign lvds_rx_d3_RX_ENA = 1'b1;assign lvds_rx_d0_RX_RST = 1'b0;assign lvds_rx_d1_RX_RST = 1'b0;    assign lvds_rx_d2_RX_RST = 1'b0;assign lvds_rx_d3_RX_RST = 1'b0;

assign lvds_tx_d0_TX_RST = 1'b0;assign lvds_tx_d1_TX_RST = 1'b0;    assign lvds_tx_d2_TX_RST = 1'b0;assign lvds_tx_d3_TX_RST = 1'b0;assign lvds_tx_d0_TX_OE  = 1'b1;assign lvds_tx_d1_TX_OE  = 1'b1;assign lvds_tx_d2_TX_OE  = 1'b1;assign lvds_tx_d3_TX_OE  = 1'b1;

PLL的设置

接收的fast_clk是否要移相,由源端时钟与数据的相位关系来决定,如果源是边沿对应,fast_clk可以移相90或者135;如果是中心对齐,则可以设置相位为0或者为45。

wKgZO2dWsr-AAoIGAAGgmzCPdOs104.png

发送数据如果与时钟有相位差,比如中心,那边需要产生三个时钟,fast_tx_clk_c,fast_tx_clk_d及slow_tx_clk.fast_tx_clk_c用于时钟的fast_clk,为90度,而fast_tx_clk_d为0度,用于数据的fast_clk.

wKgZO2dWssCADM9FAAGpW7AhUQQ853.png

当然大家也可以根据产生的波形或者数据的延时进行适当的调整。

串化/解串数据的排列

如下图所示,发送时LSB先发送,当然接收也是LVDS先接收。

wKgZO2dWssCAEFA6AAHR0H5QOko483.pngwKgZO2dWssCAREwWAAGnAxUNOAI488.png

所以要注意发送端与接收端的大小端问题。以下图为例,如果发送端是高位先发送,那接收端的数据刚好是反的。处理上应该是先把数据位对调,比如

A_RX_ALIGN = {A_RX[0],A_RX[1],A_RX[2],A_RX[3],A_RX[4],A_RX[5],A_RX[6],A_RX[7]}

wKgZO2dWssCAPl3iAABqraaaJJ4339.png

在帮助客户调试HDMI的时候发现,LVDS不能够进行动态调节相位。解决方案是:

(1)在工程目录下建议pt_rule.ini文件;

(2)在文件中输入想要开放权限的rule,以下图为例,报错的Rule是lvds_rule_rx_clock。效果如下。

wKgZO2dWssCAUTl-AAAfh9Ac4jw186.pngwKgZO2dWssGAC8YGAAD-2tDmQlQ598.png

约束添加

需要再次强调的是,Result --> interface --> xx.pt.sdc文件中会有相关的约束模板;我们可以复制该文件到工程目录下,根据实际需要进行调整

wKgZO2dWssGAb6HpAABVUM3KI1s470.png

里面关于LVDS的约束部分如下,大家可以自己打开仔细查看

wKgZO2dWssGANb0QAAUqcyxaVgk756.png

并添加到Project -->Constraint下。

wKgZO2dWssGAPD9YAABi1PmWGU8698.png

Trion的LVDS也有相似的操作,这里先只给出一些注意事项,如果需要补充会再次更新。

1. 如果需要在LVDS IO里差分信号同单端信号混用,须最少隔开2对差分IO;例如:使用RXP09/RXN09就不能使用RX07/08/10/11作为差分信号

2. 关于LVDS设备间的互连,要求LVDS RX端的 Vid,Vicm 与LVDS TX端的Vod,Vocm电平标准匹配即可互连

3、LVDS RX源同步时钟管脚只能通过GPIOx_RXP/Ny_CLKP/Nz经对应PLL输入。

4、每一个LVDS Bank中的IO用作单端输出,不能超过14个,引起同步开关噪声(SSN)风险,输入没有限制

T20的GPIOB_CLKN0/GPIOB_CLKP0,用做LVDS时只能作为LVDS RX时钟直接进入锁相环,不能进入内部逻辑

Trion LVDS常用经验

(1)post-divider要修改成2,反馈时钟用slow_clock.

(2)客户测试LVDS发送时钟lvds输出改3pf,数据改10pf,暂时没问题。后续生产小批量看下一致性

(3)添加LVDS约束

现象:(1)pll锁不定,时钟路径由FPGA给出到sensor,再由sensor的LVDS给到FPGA进入pll;

(2)把VCC电压从1.2V抬到1.25V可以解决一部分问题;

(3)常温下FPGA PLL不能锁定,但是如果用风枪加热一下到40度左右PLL就能锁定;

(4)客户第一次做了10多块板不存在该问题,第二次做了100块,有10块左右出现了上面的PLL锁不定问题。

(5)该现象会跟随芯片走。

解决思路:

(1)目前已经确认客户都没有控制LVDS接收PLL的复位,目前要求客户在PLL参考时钟稳定之后再重新复位一下再重新锁定。

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 时钟
    +关注

    关注

    11

    文章

    1903

    浏览量

    133380
  • lvds
    +关注

    关注

    2

    文章

    1129

    浏览量

    67671
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    LVDS介绍#硬声创作季

    lvds
    电子学习
    发布于 :2022年12月09日 16:07:29

    怎么使用LVDS IO引脚作为1位ADC?

    我有ML505评估板,我想尝试将LVDS IO模块中的比较器用作1位ADC。例如,我将一个0 V-1.5 V的模拟输入连接到SMA J10(SMA_DIFF_CLK_IN_P)和一个参
    发表于 02-26 09:04

    FPGA跟一个ADC通过LVDS进行通信,LVDS信号的共模电压在1.2V左右

    我用FPGA跟一个ADC通过LVDS进行通信,FPGA规定用LVDS时,相应BANK的电压为2.5V,这样出来的LVDS信号的共模电压在1.2V
    发表于 03-01 15:43

    SN65LVDS179-Q1,SN65LVDS180-Q1,

    The SN65LVDS179, SN65LVDS180, SN65LVDS050, and SN65LVDS051 are differential line drivers
    发表于 08-26 17:02 ?18次下载

    65LVDS95-Q1,pdf(LVDS SERDES Tr

    The SN65LVDS95 LVDS serdes (serializer/deserializer) transmitter contains three 7-bit parallel-load
    发表于 09-09 21:44 ?38次下载

    ADN4667 3 V LVDS Quad CMOS Dif

    ADI ADN4667 3 V LVDS Quad CMOS Differential Line Driver The ADN4667 is a quad, CMOS, Low Voltage
    发表于 04-09 16:37 ?1537次阅读

    LVDS信号电平特性

    LVDS信号电平特性 LVDS物理接口使用1.2V偏置电压作为基准,提供大约400mV摆幅。LVDS驱动器由一个驱动差分线对的电流源组成(通常电
    发表于 10-16 13:50 ?1.7w次阅读

    SN65LVDS93A-Q1 SN65LVDS93A-Q1 Flatlink 发送器

    电子发烧友网为你提供TI(ti)SN65LVDS93A-Q1相关产品参数、数据手册,更有SN65LVDS93A-Q1的引脚图、接线图、封装手册、中文资料、英文资料,SN65LVDS93A-Q1真值表,SN65
    发表于 10-16 11:10
    SN65<b class='flag-5'>LVDS93A-Q1</b> SN65<b class='flag-5'>LVDS93A-Q1</b> Flatlink 发送器

    SN65LVDS95-Q1 汽车类 LVDS SERDES 收发器

    电子发烧友网为你提供TI(ti)SN65LVDS95-Q1相关产品参数、数据手册,更有SN65LVDS95-Q1的引脚图、接线图、封装手册、中文资料、英文资料,SN65LVDS95-Q1真值表,SN65
    发表于 10-16 11:10
    SN65<b class='flag-5'>LVDS95-Q1</b> 汽车类 <b class='flag-5'>LVDS</b> SERDES 收发器

    SN65LVDS84AQ-Q1 SN75LVDS84A-Q1, SN65LVDS84AQ-Q1

    电子发烧友网为你提供TI(ti)SN65LVDS84AQ-Q1相关产品参数、数据手册,更有SN65LVDS84AQ-Q1的引脚图、接线图、封装手册、中文资料、英文资料,SN65LVDS84AQ-Q1真值表,SN65
    发表于 10-16 11:10
    SN65<b class='flag-5'>LVDS84AQ-Q1</b> SN75<b class='flag-5'>LVDS84A-Q1</b>, SN65<b class='flag-5'>LVDS84AQ-Q1</b>

    SN65LVDS1 单路 LVDS 发送器

    电子发烧友网为你提供TI(ti)SN65LVDS1相关产品参数、数据手册,更有SN65LVDS1的引脚图、接线图、封装手册、中文资料、英文资料,SN65LVDS1真值表,SN65LVDS1
    发表于 10-16 11:10
    SN65<b class='flag-5'>LVDS1</b> 单路 <b class='flag-5'>LVDS</b> 发送器

    如何解决FPGA引脚与LVDS信号相连时兼容性的问题

    很多工程师在使用Xilinx开发板时都注意到了一个问题,就是开发板中将LVDS的时钟输入(1.8V电平)连接到了VCCO=2.5V或者3.3V的Bank上,于是产生了关于FPGA引脚与
    的头像 发表于 10-10 09:25 ?1.3w次阅读
    如何解决FPGA引脚与<b class='flag-5'>LVDS</b>信号相连时兼容性的问题

    TTL转LVDS芯片1.8V低功耗LVDS概述

    输出1LVDS差分时钟信号。 I/O电压支持1.8V/3.3V,core电压为1.8V/3.3V
    的头像 发表于 06-02 17:01 ?6123次阅读

    FPGA与LVDS信号兼容性分析方法

    很多工程师在使用Xilinx开发板时都注意到了一个问题,就是开发板中将LVDS的时钟输入(1.8V电平)连接到了VCCO=2.5V或者3.3V的Bank上,于是产生了关于FPGA引脚与
    的头像 发表于 02-09 09:48 ?4798次阅读

    电蜂浅谈LVDS插头安装规定

    LVDS插头的工作温度和湿度范围为-25℃~70℃和5%~95%。在安装LVDS插头时,需要确保使用环境在这个范围内,以保证LVDS插头的正常工作。
    的头像 发表于 06-15 09:39 ?1289次阅读
    电蜂<b class='flag-5'>浅谈</b><b class='flag-5'>LVDS</b>插头安装规定