Intel FPGA IP之LVDS SerDes IP学习

2024-03-04 06:12
文章标签 ip 学习 fpga intel lvds serdes

本文主要是介绍Intel FPGA IP之LVDS SerDes IP学习,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

FPGA 视频数据输入输出直通工程:

  • :13.2吋8bit色深,屏幕分辨率为1440*1920@60,具有两个Port,每个Port有4个差分数据对与1个差分时钟对,差分对均支持LVDS协议
  • 芯片:Cyclone V系列FPGA
  • 目的:通过FPGA的LVDS SerDes RX接口输入8bit 色深RGB图像数据,然后再通过LVDS SerDes TX接口输出8bit 色深RGB图像数据,是个直通工程

一、13.2吋屏

 1.1 13.2吋屏参数:

DCLK frequency = horizontal line*vertical field*60=783*1962*60=92_174_760Hz≈ 92.17MHz

DCLK(即,Data Clock)就是Pixel Clock。

1.2 屏的数据传输格式:

该屏有两个Port,是8bit 色深图像,传输的数据格式如下图:

由图可知:

  • 该屏有两个Port,分奇偶Port(即,Odd Port与Even Port)
  • 每个Port有4个差分数据对与1个时钟差分对
  • 每个Port的LVDS数据格式相同
  • 差分时钟的占空比为4/7,且差分时钟频率与数据速率为1:7
  • 差分时钟与差分数据对之间的相位关系,即,差分时钟高电平中间时刻对应一个像素周期的开始时刻

通过VESA的标准协议可知,VESA的10bit屏的接口兼容8bit屏接口。如下图:

VESA:单port 8bit 屏:4个数据差分对+一个像素时钟差分对Pixel Clock
数据差分对T1T2T3T4T5T6T7
0+/-R0R1R2R3R4R5G0
1+/-G1G2G3G4G5B0B1
2+/-B2B3B4B5HSVSDE
3+/-R6R7G6G7B6B7XX
VESA:单port 10bit 屏:4个数据差分对+一个像素时钟差分对Pixel Clock
数据差分对T1T2T3T4T5T6T7
0+/-R0R1R2R3R4R5G0
1+/-G1G2G3G4G5B0B1
2+/-B2B3B4B5HSVSDE
3+/-R6R7G6G7B6B7XX
4+/-R8R9G8G9B8B9XX

 参考:LVDS电平标准与LCD屏的LVDS数据格式-CSDN博客

为了提高FPGA系统兼容性,在编写Verilog程序时,用10bit 色深的VESA标准协议。

二、Cyclone V的LVDS SerDes结构

2.1 LVDS Receiver结构

2.2 LVDS Transmitter结构

三、Intel FPGA的LVDS SerDes IP配置

3.1 添加LVDS SerDes IP

IP添加方式:在IP Catalog中输入LVDS+回车,可选择ALTLVDS_RX与ALTLVDS_TX两个LVDS SerDes IP进行参数设置。

3.2 rx_serdes_ip

3.2.1 rx_serdes_ip参数设置

3.2.2 例化rx_serdes:

//定义接口

reg  [4:0]   rx_datao_p;
reg  [4:0]   rx_datae_p;

reg pixel_clk_in;

wire    [69:0]  rx_out;

wire pixel_clk_out;

//例化

lvds_rx_1 u1_lvds_rx_1(
    .rx_in                    ({rx_datao_p, rx_datae_p}),
    .rx_inclock                (pixel_clk_in),
    .rx_out                    (rx_out),
    .rx_outclock            (pixel_clk_out)
    );    

3.3 tx_serdes

3.3.1 tx_serdes_ip参数设置

3.3.2 例化tx_serdes

reg     [34:0]  tx_datao;
reg     [34:0]  tx_datae;
wire [4:0]   tx_datao_p;

wire [4:0]   tx_datae_p;

lvds_tx  u1_lvds_tx (
    .pll_areset (tx_reset),
    .tx_in      ({7'b1100011, tx_datao, 7'b1100011, tx_datae}),
    .tx_inclock (pixel_clk_out),
    .tx_out     ({tx_cko_p, tx_datao_p, tx_cke_p, tx_datae_p}));

注意: {7'b1100011, tx_datao, 7'b1100011, tx_datae}中的两个7'b1100011是两个TX Port的Pixel Clock,结合LVDS Transmitter中的Serializer工作机制即可理解。

四、附件参考

Cyclone® V Device Handbook Volume 1: Device Interfaces and Integration


 

这篇关于Intel FPGA IP之LVDS SerDes IP学习的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/772235

相关文章

Linux系统中配置静态IP地址的详细步骤

《Linux系统中配置静态IP地址的详细步骤》本文详细介绍了在Linux系统中配置静态IP地址的五个步骤,包括打开终端、编辑网络配置文件、配置IP地址、保存并重启网络服务,这对于系统管理员和新手都极具... 目录步骤一:打开终端步骤二:编辑网络配置文件步骤三:配置静态IP地址步骤四:保存并关闭文件步骤五:重

Linux配置IP地址的三种实现方式

《Linux配置IP地址的三种实现方式》:本文主要介绍Linux配置IP地址的三种实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录环境RedHat9第一种安装 直接配置网卡文件第二种方式 nmcli(Networkmanager command-line

Java进阶学习之如何开启远程调式

《Java进阶学习之如何开启远程调式》Java开发中的远程调试是一项至关重要的技能,特别是在处理生产环境的问题或者协作开发时,:本文主要介绍Java进阶学习之如何开启远程调式的相关资料,需要的朋友... 目录概述Java远程调试的开启与底层原理开启Java远程调试底层原理JVM参数总结&nbsMbKKXJx

Linux虚拟机不显示IP地址的解决方法(亲测有效)

《Linux虚拟机不显示IP地址的解决方法(亲测有效)》本文主要介绍了通过VMware新装的Linux系统没有IP地址的解决方法,主要步骤包括:关闭虚拟机、打开VM虚拟网络编辑器、还原VMnet8或修... 目录前言步骤0.问题情况1.关闭虚拟机2.China编程打开VM虚拟网络编辑器3.1 方法一:点击还原VM

Nginx实现动态封禁IP的步骤指南

《Nginx实现动态封禁IP的步骤指南》在日常的生产环境中,网站可能会遭遇恶意请求、DDoS攻击或其他有害的访问行为,为了应对这些情况,动态封禁IP是一项十分重要的安全策略,本篇博客将介绍如何通过NG... 目录1、简述2、实现方式3、使用 fail2ban 动态封禁3.1 安装 fail2ban3.2 配

Ubuntu固定虚拟机ip地址的方法教程

《Ubuntu固定虚拟机ip地址的方法教程》本文详细介绍了如何在Ubuntu虚拟机中固定IP地址,包括检查和编辑`/etc/apt/sources.list`文件、更新网络配置文件以及使用Networ... 1、由于虚拟机网络是桥接,所以ip地址会不停地变化,接下来我们就讲述ip如何固定 2、如果apt安

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

查询SQL Server数据库服务器IP地址的多种有效方法

《查询SQLServer数据库服务器IP地址的多种有效方法》作为数据库管理员或开发人员,了解如何查询SQLServer数据库服务器的IP地址是一项重要技能,本文将介绍几种简单而有效的方法,帮助你轻松... 目录使用T-SQL查询方法1:使用系统函数方法2:使用系统视图使用SQL Server Configu

使用Java实现获取客户端IP地址

《使用Java实现获取客户端IP地址》这篇文章主要为大家详细介绍了如何使用Java实现获取客户端IP地址,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 首先是获取 IP,直接上代码import org.springframework.web.context.request.Requ

C++实现获取本机MAC地址与IP地址

《C++实现获取本机MAC地址与IP地址》这篇文章主要为大家详细介绍了C++实现获取本机MAC地址与IP地址的两种方式,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 实际工作中,项目上常常需要获取本机的IP地址和MAC地址,在此使用两种方案获取1.MFC中获取IP和MAC地址获取