基于FPGA的 SelectIO IP核 的仿真验证-----( LVDS差分高速传输)

这篇具有很好参考价值的文章主要介绍了基于FPGA的 SelectIO IP核 的仿真验证-----( LVDS差分高速传输)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一.LVDS的简介

由于系统功能实现日益增多,主控芯片的外围芯片也越来越多,因此主控芯片的引脚
资源相对变得紧俏,在数字系统互联的设计中,并行传输的方式将会被高速串行传输逐步
替代。而在串行传输标准中,低电压差分信号传输( LVDS)接口具有高速率、低功耗、低
噪声和低电磁干扰等优点,广泛应用于高速数字系统设计中。

低压差分信号相对于单端的传送具有较高的噪声抑制功能,其较低的电压摆幅允许差
分对线具有较高的数据传输速率,消耗较小的功率以及产生更低的电磁辐射。
LVDS: Low Voltage Differential Signaling,低电压差分信号。
LVDS 传输支持速率一般在 155Mbps(大约为 77MHZ)以上。
LVDS 是一种低摆幅的差分信号技术,它使得信号能在差分 PCB 线对或平衡电缆上以几
百 Mbps 的速率传输,其低压幅和低电流驱动输出实现了低噪声和低功耗。
xilinx lvds ip核,lvds,fpga开发,网络协议,百度,微信,其他

二.差分信号抗噪特性

从差分信号传输线路上可以看出,若是理想状况,线路没有干扰时,
在发送侧,可以形象理解为:
IN= IN+ — IN-
在接收侧,可以理解为:
IN+ — IN- =OUT
所以:
OUT = IN
在实际线路传输中,线路存在干扰,并且同时出现在差分线对上,
在发送侧,仍然是:
IN = IN+ — IN-
线路传输干扰同时存在于差分对上,假设干扰为 q,则接收则:
(IN+ + q) — (IN- + q) = IN+ — IN- = OUT
所以:
OUT = IN
噪声被抑止掉。 上述可以形象理解差分方式抑止噪声的能力。

三. SelectIO 资源的介绍

不管是Spartan6还是xilinx 7系列FPGA,他们都已集成了 SelectIO 资源,我们可以通过配置 IP 核,可以生成支持LVDS 电平标准的接口程序,实现高速 LVDS 接口通信。 SelectIO 资源包含了 ISERDESE2、OSERDESE2、 IDELAYE2、ODELAYE2、 IDELAYCTRL 等, 本设计中仅用到 ISERDESE2 和OSERDESE2。 ISERDESE 为 Xilinx FPGA 中专用的解串器,主要用于数字传输中的串行转并行, 先到的比特为为高位。 OSERDESE2 为并行转串器,主要用于数字传输中的并行转串行,先到的比特为为高位。
FPGA 中 ISERDESE2 和 OSERDESE2 支持非常高的 I/O 数据速率,对于 ISERDESE2 存在 bitslip 信号来重新对齐串行数据以获得正确的字节数据。
xilinx lvds ip核,lvds,fpga开发,网络协议,百度,微信,其他
使用 bitslip 信号可以修改串转并的起始位置,如下图所示,为 DDR 模式下使用 bitslip的时序图,开始时最先采集到的串行数据转换出来的并行数据为 0xCDAB,插入一个 bitslip信号后采集数据变为 0xBCDA,你可以通过多次插入 bitslip 的方法来获取正确的并行数据序。
xilinx lvds ip核,lvds,fpga开发,网络协议,百度,微信,其他
在应用SelectIO IP核的时候还是相对来说简单一点,因为ISERDESE2 和OSERDESE2 已经在IP核里面例化好了,核心要点就是通过发送bitslip脉冲信号重新排序直到接收到正确数据, 其它没什么。想要深入研究ISERDESE2 和OSERDESE2 ,直接查看IP核的VHDL,你会发现bitslip的信号是在ISERDESE2上的,这里再说下原因,因为ISERDESE2在接收串行差分数据的时候并不知道起始位置,所以要bitslip来调整正确的数据序;关于bitslip的原理和获取正确的并行数据的过程更详细的讲解可以参考这里:FPGA之SelectIO_高级IO逻辑资源简介。

四. SelectIO IP核的仿真验证

关于SelectIO IP核 的创建这里提供了ISE和VIVADO两个平台的创建步骤:
1. ISE平台的创建详情可以点击这里 :SelectIO IP 核的创建(spatan6)。
2. VIVADO平台的创建详情点击这里:SelectIO IP 核的创建(Xilinx7)。

我们仿真只在ISE平台上创建的模式做了一个发送接收的环回仿真,主要是看bitlsip调整正确的接收数据序的过程,你们也可以自己直接做一个ISERDESE2+OSERDESE2 的环回测试,关于bitslip的信号控制是需要自己去搭建的。
在我们项目应用中,bitslip信号是很关键的,它直接关乎到2个设备之间LVDS正确通信。举个例子:A设备和B设备是LVDS接口连接,那他们之间就得协商好一致的前导码(和以太网帧原理差不多),我们这里是8'h9b,说白了,A和B的LVDS接收发送的FPGA程序是一样的;在设备上电后,A和B之间就一直互相发送8'h9b,A和B一直靠bitslip调整接收的8bit数据序,如果判断到接收的8bit数据等于8'h9b,那A设备和B设备的LVDS就成功建立好了连接---link_up,只有当link_up成功后,设备之间才可以发送或接收有效的数据帧。
此处是仿真激励代码:

// An highlighted block
module vtf_lvds;

	// Inputs
	reg sys_rst;
	reg clk_div_in;
	reg clk_in_pll;
	wire [0:0] DATA_IN_FROM_PINS_P;
	wire [0:0] DATA_IN_FROM_PINS_N;
	reg locked;
	reg [7:0] data_in;
	reg data_in_vld;

	// Outputs
	wire [0:0] DATA_OUT_TO_PINS_P;
	wire [0:0] DATA_OUT_TO_PINS_N;
	wire [2:0] bit_count;
	wire bitslip_int;
	wire [30:0] debug_out;
	wire [8:0] debug_in;
	wire link_up;
	wire [7:0] data_out;
	wire data_out_vld;
   wire bitslip;
	// Instantiate the Unit Under Test (UUT)
	lvds uut (
		.sys_rst(sys_rst), 
		.clk_div_in(clk_div_in), 
		.clk_in_pll(clk_in_pll), 
		.DATA_IN_FROM_PINS_P(DATA_IN_FROM_PINS_P), 
		.DATA_IN_FROM_PINS_N(DATA_IN_FROM_PINS_N), 
		.DATA_OUT_TO_PINS_P(DATA_OUT_TO_PINS_P), 
		.DATA_OUT_TO_PINS_N(DATA_OUT_TO_PINS_N), 
		.bit_count(bit_count), 
		.bitslip_int(bitslip_int), 
		.bitslip(bitslip),
		.debug_out(debug_out), 
		.debug_in(debug_in), 
		.link_up(link_up), 
		.data_out(data_out), 
		.data_out_vld(data_out_vld), 
		.locked(locked), 
		.data_in(data_in), 
		.data_in_vld(data_in_vld)
	);

	initial begin
		// Initialize Inputs
		sys_rst = 1;
		clk_div_in = 0;
		clk_in_pll = 0;
//		DATA_IN_FROM_PINS_P = 0;
//		DATA_IN_FROM_PINS_N = 0;
		locked = 0;
		data_in = 0;
		data_in_vld = 0;

		// Wait 100 ns for global reset to finish
		#100;
       sys_rst =0;
       locked = 1; 
	
  		 
		// Add stimulus here

	end
         always # 32  clk_div_in = ~clk_div_in;   
			always # 4  clk_in_pll = ~clk_in_pll;   
			
   assign  	DATA_IN_FROM_PINS_P = DATA_OUT_TO_PINS_P;
	assign	DATA_IN_FROM_PINS_N =DATA_OUT_TO_PINS_N;     
endmodule

仿真图中,我们的前导码是8’h9b,它的值和位宽是可以自己定义的,理论上位宽越多越好,能够提高准确性,降低偶然事件的发生,但是两连接的设备得用相同的前导码。看bitslip信号,每隔一段时间调整我们IP核中 ISERDESE2 接收的数据序,直到接收的数据值一直是8’h9b时,bitslip信号就一直保持低电平,此时link_up为高点平,说明LVDS接收连接成功。(bitslip信号的脉宽为一个clk_div_in时钟周期)

因为本文相当于自己做的笔记,如果大家有什么问题,可以交流~
xilinx lvds ip核,lvds,fpga开发,网络协议,百度,微信,其他文章来源地址https://www.toymoban.com/news/detail-786933.html

到了这里,关于基于FPGA的 SelectIO IP核 的仿真验证-----( LVDS差分高速传输)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • RapidIO、SelectIO、Serdes、GT、Aurora、GTX、LVDS介绍

          一些高速总线接口(RapidIO、Serdes、GTX、GTH、Aurora、PCIE、LVDS、SRIO、SelectIO)概念及功能不清晰,现在就其功能与联系分别总结如下:        串行RapidIO,高速串行通信协议,旨在链接DSP、FPGA、网络处理器等芯片,具有低延迟、高带宽(支持25Gbps、2.5Gbps、3.125Gbps的数据

    2024年02月05日
    浏览(46)
  • 基于fpga的图像处理之图像灰度化处理(Vivado+Modelsim+Matlab联合仿真验证)

    微信公众号上线,搜索公众号 小灰灰的FPGA ,关注可获取相关源码,定期更新有关FPGA的项目以及开源项目源码,包括但不限于各类检测芯片驱动、低速接口驱动、高速接口驱动、数据信号处理、图像处理以及AXI总线等 源码工程链接 https://download.csdn.net/download/m0_50111463/88529260

    2024年02月10日
    浏览(61)
  • FPGA 高速数据采集传输毕业论文【附仿真】

    以 FIFO IP 核以及 Verilog 编程设计的数字逻辑模块对JESD204B IP 核输出数据完成接收,处理成驱动设备可读取的数据格式后,送入设计的数字逻辑缓存部分中,通过AXI 总线送入DDR3 SDRAM 中缓存,并由传输部分数字逻辑模块完成缓存深度配置。  介绍设计的具体实现。在数字采集功

    2024年04月25日
    浏览(47)
  • 基于FPGA的LVDS过采样数据恢复设计

    一言蔽之,就是利用PLL产生多个不同相位的同频时钟,对数据进行多倍采样后判决最佳采样位,将接收数据恢复输出。 如图所示,过采样恢复数据基本流程如下: 8倍过采样:生成相位分别为0,45°,90°,135°的四个时钟通过双边沿对数据进行采样,以获得8倍过采样的效果。

    2024年02月15日
    浏览(47)
  • ADC采集方法 - 基于LVDS接口的FPGA实现

    ADC采集方法 - 基于LVDS接口的FPGA实现 在数字信号处理和通信系统中,模数转换器(ADC)是最基本、最重要的电子器件之一。一种广泛应用的ADC采集方案是使用低电压差分信号(LVDS)接口。这种接口可以提供较高的信噪比和抗干扰性能,在数据传输距离远的情况下也表现出色。

    2024年02月03日
    浏览(39)
  • 差分逻辑电平——LVDS、CML、LVPECL、HCSL互连

    首先了解差分逻辑电平、单端逻辑电平的基础知识 地址: 常见的逻辑电平_常用的逻辑电平-CSDN博客 注: QDR(Quad Data Rate):四倍数据倍率 ECL PECL LVPECL演变;     ECL速度快,驱动能力强,噪声小,但是功耗大,使用中需要负电源。为了简化电源,出现了PECL和LVPECL的输出模式。

    2024年04月17日
    浏览(36)
  • 四通道 LVDS差分线缆驱动器MS21147T

    MS21147T 是一款 4 通道 LVDS 差分线缆驱动器,满足多点低 压差分信号 (MLVDS) 的幅度特性。每一个电流模式驱动器为外部 100Ω 的差分负载提供最小 590mV 差分输出电压。 MS21147T 的应用是通过约 100Ω 的受控阻抗介质进行点对点 和多点基带数据传输。传输介质可以是印刷电路板走线

    2024年02月02日
    浏览(37)
  • 关于差分晶振的LVDS、LVPECL、HCSL、CML模式介绍及其相互转换

    差分晶振一般用在高速数据传输场合,常见的有LVDS、LVPECL、HCSL、CML等多种模式。这些差分技术都有差分信号抗干扰性及抑制EMI的优点,但在性能、功耗和应用场景上有很大的区别。下图列举了最常用的几种差分信号技术和它们的主要参数。 LVDS信号的摆幅低,为±350mv, 对应功

    2023年04月09日
    浏览(40)
  • FIR滤波器简述及FPGA仿真验证

    数字滤波器的设计,本项目做的数字滤波器准确来说是FIR滤波器。 FIR滤波器(有限冲激响应滤波器),与另一种基本类型的数字滤波器——IIR滤波器(无限冲击响应滤波器)相对应,其实就是将所输入的信号都看成是离散的,用离散的冲击信号代替实际的信号。对于FIR滤波器

    2024年02月09日
    浏览(50)
  • 基于FPGA的视频接口之高速IO(光纤)

            对于高速IO口配置光纤,现在目前大部分开发板都有配置,且也有说明,在此根据自己的工作经验以及对于各开发板的说明归纳         通过高速IO接口,以及硬件配置,可以实现对于光纤的收发功能,由于GTX的速率在500Mbs到10Gbps之间,但通道高速io可配置光纤10G硬件

    2024年02月21日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包