热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

寒假之视频压缩笔记——FPGA视频拼接器的输入卡

原博客:https:blog.csdn.netangelbosjarticledetails50170101本篇文章主要讲一下,输入卡的架构与作用。

原博客:https://blog.csdn.net/angelbosj/article/details/50170101

本篇文章主要讲一下, 输入卡的架构与作用。

输入卡就是为了 对接多种视频接口信号, 比如 HDMI, VGA, DVI, SDI等等。这样任意类型的视频信号就可以 接入到 视频拼接器。整个视频拼接器 采用插卡的方式,这样就可以第一张输入卡是 HDMI,第二张卡是VGI等等,适应多种类型的需求。

        下面以一张HDMI输入卡为例:


当然 VGA 、 DVI 、SDI进来,也是类似的采取这样的方法。让TTL电平 进入 FPGA,FPGA把 四路TTL(Ycbcr 4:2:2)信号 转为 serdes.然后传到 底板切换矩阵芯片。然后传到 输出卡进行处理。

文章写到这里要介绍一下:serdes

原博客:www.blog.sina.com.cn/fpgatalk

FPGA发展到今天,SerDes(Serializer-Deserializer)基本上是标配了。从PCI到PCI Express, 从ATA到SATA,从并行ADC接口到JESD204, 从RIO到Serial RIO,…等等,都是在借助SerDes来提高性能。SerDes是非常复杂的数模混合设计,用户手册的内容只是描述了森林里面的一棵小树,并不能够解释SerDes是怎么工作的。SerDes怎么可以没有传输时钟信号?什么是加重和均衡?抖动和误码是什么关系?各种抖动之间有什么关系?本篇小文试着从一个SerDes用户的角度来理解SerDes是怎么设计的, 由于水平有限,一定有不够准确的地方,希望对刚开始接触SerDes的工程师有所帮助。

Contents

 

1. SerDes的价值

1.1并行总线接口

 在SerDes流行之前,芯片之间的互联通过系统同步或者源同步的并行接口传输数据,图1.1演示了系统和源同步并行接口。

随着接口频率的提高,在系统同步接口方式中,有几个因素限制了 有效数据窗口宽度 的继续增加。

l  时钟到达两个芯片的传播延时不相等(clock skew)

l  并行数据各个bit的传播延时不相等(data skew)

l  时钟的传播延时和数据的传播延时不一致(skew between data and clock)
虽然可以通过在目的芯片(chip #2)内用PLL补偿时钟延时差(clock skew),但是PVT变化时,时钟延时的变化量和数据延时的变化量是不一样的。这又进一步恶化了数据窗口。

源同步接口方式中,发送侧Tx把时钟伴随数据一起发送出去, 限制了clock skew对有效数据窗口的危害。通常在发送侧芯片内部,源同步接口把时钟信号和数据信号作一样的处理,也就是让它和数据信号经过相同的路径,保持相同的延时。这样PVT变化时,时钟和数据会朝着同一个方向增大或者减小相同的量,对skew最有利。

我们来做一些合理的典型假设,假设一个32bit数据的并行总线,  

a)发送端的数据skew = 50 ps                        ---很高的要求
b)pcb走线引入的skew = 50ps                      ---很高的要求
c)时钟的周期抖动jitter = +/-50 ps               ---很高的要求
d)接收端触发器采样窗口 = 250 ps             ---Xilinx V7高端器件的IO触发器

可以大致估计出并行接口的最高时钟 = 1/(50+50+100+250) = 2.2GHz (DDR)或者1.1GHz (SDR)。

利用源同步接口,数据的有效窗口可以提高很多。通常频率都在1GHz以下。在实际应用中可以见到如SPI4.2接口的时钟可以高达DDR 700MHz x 16bits位宽。DDR Memory接口也算一种源同步接口,如DDR3在FPGA中可以做到大约800MHz的时钟。

要提高接口的传输带宽有两种方式,一种是提高时钟频率,一种是加大数据位宽。那么是不是可以无限制的增加数据的位宽呢?这就要牵涉到另外一个非常重要的问题-----同步切换噪声(SSN)

这里不讨论SSN的原理,直接给出SSN的公式 SSN = L *N* di/dt。L是芯片封装电感,N是数据宽度,di/dt是电流变化的斜率。随着频率的提高,数据位款的增加,SSN成为提高传输带宽的主要瓶颈。图1.2是一个DDR3串扰的例子。图中低电平的理论值在0V,由于SSN的影响,低电平表现为震荡,震荡噪声的最大值达610mV,因此噪声余量只有1.5V/2-610mV=140mV。

ç解SerDes <wbr>ä¹ä¸

因此也不可能靠无限的提高数据位宽来继续增加带宽。一种解决SSN的办法是使用差分信号替代单端信号&#xff0c;使用差分信号可以很好的解决SSN问题&#xff0c;代价是使用更多的芯片引脚。使用差分信号仍然解决不了数据skew的问题&#xff0c;很大位宽的差分信号再加上严格的时序限制&#xff0c;给并行接口带来了很大的挑战。

1.2 SerDes接口

源同步接口的时钟频率已经遇到瓶颈&#xff0c;由于信道的非理想(channel)特性&#xff0c;再继续提高频率&#xff0c;信号会被严重损伤&#xff0c;就需要采用均衡和数据时钟相位检测等技术。这也就是SerDes所采用的技术。SerDes(Serializer-Deserializer)是串行器和解串器的简称。串行器(Serializer)也称为SerDes发送端(Tx)&#xff0c;(Deserializer)也称为接收端Rx。Figure1.3是一个N对SerDes收发通道的互连演示,一般N小于4。

ç解SerDes <wbr>ä¹ä¸

可以看到&#xff0c;SerDes不传送时钟信号&#xff0c;这也是SerDes最特别的地方&#xff0c;SerDes在接收端集成了CDR(Clock Data Recovery)电路&#xff0c;利用CDR从数据的边沿信息中抽取时钟&#xff0c;并找到最优的采样位置。

SerDes采用差分方式传送数据。一般会有多个通道的数据放在一个group中以共享PLL资源&#xff0c;每个通道仍然是相互独立工作的。

SerDes需要参考时钟(Reference Clock)&#xff0c;一般也是差分的形式以降低噪声。接收端Rx和发送端Tx的参考时钟可以允许几百个ppm的频差(plesio-synchronous system)&#xff0c;也可以是同频的时钟&#xff0c;但是对相位差没有要求。

作个简单的比较&#xff0c;一个SerDes通道(channel)使用4个引脚(Tx&#43;/-,Rx&#43;/-), 目前的FPGA可以做到高达28Gbps。而一个16bits的DDR3-1600的线速率为1.6Gbps*16 &#61; 25Gbps,却需要50个引脚。此对比可以看出SerDes在传输带宽上的优势。

相比源同步接口&#xff0c;SerDes的主要特点包括:

l  SerDes在数据线中时钟内嵌,不需要传送时钟信号。

l  SerDes通过加重/均衡技术可以实现高速长距离传输&#xff0c;如背板。

l  SerDes 使用了较少的芯片引脚

1.3 中间类型

也存在一些介于SerDes和并行接口之间的接口类型&#xff0c;相对源同步接口而言&#xff0c;这些中间类型的接口也使用串行器(Serializer)解串器(Deserializer)&#xff0c;同时也传送用于同步的时钟信号。这类接口如视频显示接口7:1 LVDS等。

2. SerDes结构(architecture)

SerDes的主要构成可以分为三部分&#xff0c;PLL模块&#xff0c;发送模块Tx&#xff0c;接收模块Rx。为了方便维护和测试&#xff0c;还会包括控制和状态寄存器&#xff0c;环回测试&#xff0c;PRBS测试等功能。见图2.1。

ç解SerDes <wbr>ä¹ä¸

图中蓝色背景子模块为PCS层&#xff0c;是标准的可综合CMOS数字逻辑&#xff0c;可以硬逻辑实现&#xff0c;也可以使用FPGA软逻辑实现&#xff0c;相对比较容易被理解。褐色背景的子模块是PMA层&#xff0c;是数模混合CML/CMOS电路&#xff0c;是理解SerDes去别于并行接口的关键&#xff0c;也是本文要讨论的内容。

发送方向(Tx)信号的流向: FPGA软逻辑(fabric)送过来的并行信号&#xff0c;通过接口FIFO(Interface FIFO), 送给8B/10B编码器(8B/10B encoder)或扰码器(scambler)&#xff0c;以避免数据含有过长连零或者连1。之后送给串行器(Serializer)进行 并->串 转换。串行数据经过均衡器(equalizer)调理&#xff0c;有驱动器(driver)发送出去。

接收方向(Rx)信号的流向, 外部串行信号由线性均衡器(Linear Equalizer)或DFE (Decision Feedback Equalizer)结构均衡器调理&#xff0c;去除一部分确定性抖动(Deterministic jitter)。CDR从数据中恢复出采样时钟&#xff0c;经解串器变为对齐的并行信号。8B/10B解码器(8B/10B decoder)或解扰器(de-scambler)完成解码或者解扰。如果是异步时钟系统(plesio-synchronous system)&#xff0c;在用户FIFO之前还应该有弹性FIFO来补偿频差。

PLL负责产生SerDes各个模块所需要的时钟信号,并管理这些时钟之间的相位关系。以图中线速率10Gbps为例,参考时钟频率250MHz。Serializer/Deserializer至少需要5GHz 0相位时钟和5GHz 90度相位时钟&#xff0c;1GHz(10bit并行)/1.25GHz(8bit并行)时钟等。

一个SerDes通常还要具调试能力。例如伪随机码流产生和比对&#xff0c;各种环回测试&#xff0c;控制状态寄存器以及访问接口&#xff0c;LOS检测, 眼图测试等。

2.1串行器解串器(Serializer/Deserializer)

串行器Serializer把并行信号转化为串行信号。Deserializer把串行信号转化为并行信号。一般地&#xff0c;并行信号为8 /10bit或者16/20bit宽度&#xff0c;串行信号为1bit宽度(也可以分阶段串行化&#xff0c;如8bit->4bit->2bit->equalizerà1bit以降低equalizer的工作频率)。采用扰码(scrambled)的协议如SDH/SONET, SMPTE SDI使用8/16bit的并行宽度&#xff0c;采用8B/10B编码的协议如PCIExpress,GbE使用10bits/20bits宽度。

一个4:1的串行器如图xxx所示。8:1或16:1的串行器采用类似的实现。实现时&#xff0c;为了降低均衡器的工作频率&#xff0c;串行器会先把并行数据变为2bits&#xff0c;送给均衡器equalizer滤波&#xff0c;最后一步再作2:1串行化&#xff0c;本文后面部分都按1bit串行信号解释。

ç解SerDes <wbr>ä¹ä¸

一个1:4的解串器如图2.3所示&#xff0c;8:116:1的解串器采用类似的实现。实现时&#xff0c;为了降低均衡器(DFE based Equalizer)的工作频率&#xff0c;DFE工作在DDR模式下&#xff0c;解串器的输入是2bit或者更宽&#xff0c;本文后面部分都按1bit串行信号解释。

ç解SerDes <wbr>ä¹ä¸

Serializer/Deserializer的实现采用双沿(DDR)的工作方式&#xff0c;利用面积换速度的策略&#xff0c;降低了电路中高频率电路的比例&#xff0c;从而降低了电路的噪声。

接收方向除了Deserializer之外&#xff0c;一般带有还有对齐功能逻辑(Aligner)。相对SerDes发送端&#xff0c;SerDes接收端起始工作的时刻是任意的&#xff0c;接收器正确接收的第一个 bit可能是发送并行数据的任意bit位置。因此需要对齐逻辑来判断从什么bit位置开始&#xff0c;以组成正确的并行数据。对齐逻辑通过在串行数据流中搜索特征码字(Alignment Code)来决定串并转换的起始位置。比如8B/10B编码的协议通常用K28.5(正码10’b1110000011&#xff0c;负码10’b0001111100)来作为对齐字。图2.4为一个对齐逻辑的演示。通过滑窗&#xff0c;逐bit比对&#xff0c;以找到对齐码(Align-Code)的位置&#xff0c;经过多次在相同的位置找到对齐码之后&#xff0c;状态机锁定位置并选择相应的位置输出对齐数据。

ç解SerDes <wbr>ä¹ä¸

2.2发送端均衡器( Tx Equalizer) 

SerDes信号从发送芯片到达接收芯片所经过的路径称为信道(channel)&#xff0c;包括芯片封装&#xff0c;pcb走线&#xff0c;过孔&#xff0c;电缆&#xff0c;连接器等元件。从频域看&#xff0c;信道可以简化为一个低通滤波器(LPF)模型&#xff0c;如果SerDes的速率大于信道(channel)的截止频率&#xff0c;就会一定程度上损伤(distort)信号。均衡器的作用就是补偿信道对信号的损伤。

发送端的均衡器采用FFE(Feed forward equalizers)结构&#xff0c;发送端的equalizer也称作加重器(emphasis)。加重(Emphasis)分为去加重(de-emphasis)和预加重(pre-emphasis)。De-emphasis降低差分信号的摆幅(swing)。Pre-emphasis增加差分信号的摆幅。FPGA大部分使用de-emphasis的方式&#xff0c;加重越强&#xff0c;信号的平均幅度会越小。

发送侧均衡器设计为一个高通滤波器(HPF),大致为信道频响H(f)的反函数H-1(f)&#xff0c;FFE的目标是让到达接收端的信号为一个干净的信号。FFE的实现方式有很多&#xff0c;一个典型的例子如图2.5所示。

ç解SerDes <wbr>ä¹ä¸

调节滤波器的系数可以改变滤波器的频响&#xff0c;以补偿不同的信道特性&#xff0c;一般可以动态配置。以10Gbps线速率为例&#xff0c;图2.5为DFE频率响应演示。可以看到&#xff0c;对于C0&#61;0,C1&#61;1.0,C2&#61;-0.25的配置&#xff0c;5GHz处高频增益比低频区域高出4dB&#xff0c;从而补偿信道对高频频谱的衰减。

ç解SerDes <wbr>ä¹ä¸

采样时钟的频率限制了这种FFE最高只能补偿到Fs/2(例子中Fs/2&#61;5GHz)。根据采样定理&#xff0c;串行数据里的信息都包含在5GHz以内&#xff0c;从这个角度看也就足够了。如果要补偿Fs/2以上的频率&#xff0c;就要求FFE高于Fs的工作时钟,或者连续时间域滤波器(Continuous Time FFE)。

图2.7为DFE时域滤波效果的演示&#xff0c;以10Gbps线速率为例&#xff0c;一个UI&#61;0.1 nS&#61;100ps。演示的串行数据码流为二进制[00000000100001111011110000]。

ç解SerDes <wbr>ä¹ä¸

 

 

 


推荐阅读
  • 本文介绍了P1651题目的描述和要求,以及计算能搭建的塔的最大高度的方法。通过动态规划和状压技术,将问题转化为求解差值的问题,并定义了相应的状态。最终得出了计算最大高度的解法。 ... [详细]
  • EPICS Archiver Appliance存储waveform记录的尝试及资源需求分析
    本文介绍了EPICS Archiver Appliance存储waveform记录的尝试过程,并分析了其所需的资源容量。通过解决错误提示和调整内存大小,成功存储了波形数据。然后,讨论了储存环逐束团信号的意义,以及通过记录多圈的束团信号进行参数分析的可能性。波形数据的存储需求巨大,每天需要近250G,一年需要90T。然而,储存环逐束团信号具有重要意义,可以揭示出每个束团的纵向振荡频率和模式。 ... [详细]
  • 推荐系统遇上深度学习(十七)详解推荐系统中的常用评测指标
    原创:石晓文小小挖掘机2018-06-18笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值, ... [详细]
  • 深度学习中的Vision Transformer (ViT)详解
    本文详细介绍了深度学习中的Vision Transformer (ViT)方法。首先介绍了相关工作和ViT的基本原理,包括图像块嵌入、可学习的嵌入、位置嵌入和Transformer编码器等。接着讨论了ViT的张量维度变化、归纳偏置与混合架构、微调及更高分辨率等方面。最后给出了实验结果和相关代码的链接。本文的研究表明,对于CV任务,直接应用纯Transformer架构于图像块序列是可行的,无需依赖于卷积网络。 ... [详细]
  • 本文介绍了OpenStack的逻辑概念以及其构成简介,包括了软件开源项目、基础设施资源管理平台、三大核心组件等内容。同时还介绍了Horizon(UI模块)等相关信息。 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 关于我们EMQ是一家全球领先的开源物联网基础设施软件供应商,服务新产业周期的IoT&5G、边缘计算与云计算市场,交付全球领先的开源物联网消息服务器和流处理数据 ... [详细]
  • 加密世界下一个主流叙事领域:L2、跨链桥、GameFi等
    本文介绍了加密世界下一个主流叙事的七个潜力领域,包括L2、跨链桥、GameFi等。L2作为以太坊的二层解决方案,在过去一年取得了巨大成功,跨链桥和互操作性是多链Web3中最重要的因素。去中心化的数据存储领域也具有巨大潜力,未来云存储市场有望达到1500亿美元。DAO和社交代币将成为购买和控制现实世界资产的重要方式,而GameFi作为数字资产在高收入游戏中的应用有望推动数字资产走向主流。衍生品市场也在不断发展壮大。 ... [详细]
  • 本文介绍了解决java开源项目apache commons email简单使用报错的方法,包括使用正确的JAR包和正确的代码配置,以及相关参数的设置。详细介绍了如何使用apache commons email发送邮件。 ... [详细]
  • Question该提问来源于开源项目:react-native-device-info/react-native-device-info ... [详细]
  • Jmeter对RabbitMQ压力测试
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Jmeter对RabbitMQ压力测试相关的知识,希望对你有一定的参考价值。Jm ... [详细]
  • struts2重点——ValueStack和OGNL
    一、值栈(ValueStack)1.实现类:OGNLValueStack2.对象栈:CompoundRoot( ... [详细]
author-avatar
yuanguo374
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有