掌桥专利:专业的专利平台
掌桥专利
首页

一种基于JESD204B协议的弹性缓冲器

文献发布时间:2024-04-18 19:58:53


一种基于JESD204B协议的弹性缓冲器

技术领域

本发明属于高速串行接口技术领域,具体涉及一种基于JESD204B协议的弹性缓冲器。

背景技术

随着对数据吞吐量要求越来越高,并行接口已经逐步被高速串行接口所取代。JESD204B协议具有的支持高达12.5Gbyte/s的数据传输速率、引脚数目少、扩展性高等特点,使其迅速成为数模/模数转换器接口的主流标准。JESD204B协议子类1规定,收发两端传输的数据包括3种类型:连续的/K/字节、初始通道同步序列(ILAS)和用户数据。初始通道同步序列(ILAS)由四个多帧组成,帧首为/R/字节,帧尾为/A/字节。通过检测数据流中/K/字节可以从正确的字节位置输出,并且通过设置一个多帧中的字节数(K*F)为4的倍数,检测/R/字节就可以从正确的四字节位置输出。

数据在不同通道传输时会有固定延迟和可变延迟。固定延迟指设备本身数据处理所产生的所有通道共有的延迟。可变延迟指通道之间处理数据的不同、通道走线不同等原因产生的通道之间各种独立的延迟。可变延迟会导致通道之间产生不对齐的情况。在高速转换器应用系统中,往往要求电路两次上电或是链路重新建立时,从发送端基于帧的数据开始到接收端接收并输出帧数据之间的延迟一致,即确定性延迟。因此一种适用于四字节处理方案的弹性缓冲器设计显得尤为重要。

发明内容

为了解决现有技术中存在的上述问题,本发明提供了一种基于JESD204B协议的弹性缓冲器。本发明要解决的技术问题通过以下技术方案实现:

本发明提供了一种基于JESD204B协议的弹性缓冲器,所述弹性缓冲器用于:

检测多个通道的同步序列ILAS中的R字,以确定固定时延;

存储所有多个通道的同步序列ILAS,在同一时间释放以使所有通道同步;

将固定时延赋值给计数器,以使四字计数器达到固定时延后归零,并对读地址和写地址同步计数;所述ILAS包括四个多帧;

根据读地址和写地址的计数值计算每个通道的ILAS的可变时延。

有益效果:

本发明提供了一种基于JESD204B协议的弹性缓冲器,检测多个通道的同步序列ILAS中的R字,以确定固定时延;存储所有多个通道的同步序列ILAS,在同一时间释放以使所有通道同步;将固定时延赋值给计数器,以使四字计数器达到固定时延后归零,并对读地址和写地址同步计数;所述ILAS包括四个多帧;根据读地址和写地址的计数值计算每个通道的ILAS的可变时延。本发明通过读取同步FIFO的读写地址,可以准确确定可变延迟取值,对于JESD204B子类1的四字节处理适应性较高。

以下将结合附图及实施例对本发明做进一步详细说明。

附图说明

图1是本发明提供的一种基于JESD204B协议的弹性缓冲器的工作流程示意图;

图2是本发明提供的计算固定时延和可变时延的过程示意图。

具体实施方式

下面结合具体实施例对本发明做进一步详细的描述,但本发明的实施方式不限于此。

JESD204B协议子类1通过SYSREF来实现确定性延迟。通过与器件时钟同源的SYSREF信号对齐所有本地多帧时钟(LMFC),在初始通道同步阶段,发送端在LMFC上升沿同时发送ILAS序列,接收端通过确定各个通道ILAS序列到达的时间,就可以确定固定延迟和最小可变延迟,从而实现多通道数据的同步。通过四字节处理方案可以对数据流中的控制信息和数据信息并行处理,简化了接收端各种同步的处理过程,并且使工作时钟频率从1.25GHz降到312.5MHz,简化了CMOS实现工艺要求。一种适用于四字节处理方案的弹性缓冲器设计显得尤为重要。

下面详细介绍本发明的方案细节。

结合1至图2,本发明提供了一种基于JESD204B协议的弹性缓冲器,所述弹性缓冲器用于:

S100,检测多个通道的同步序列ILAS中的R字,以确定固定时延;

S200,存储所有多个通道的同步序列ILAS,在同一时间释放以使所有通道同步;

本发明将所有通道的四字节数据缓冲,并在所有通道都检测到R字节时释放所有缓存,以实现所述接收端各通道之间数据的同步。

S300,将固定时延赋值给计数器,以使四字计数器达到固定时延后归零,并对读地址和写地址同步计数;所述ILAS包括四个多帧;

S400,根据读地址和写地址的计数值计算每个通道的ILAS的可变时延。

具体的,参考图2,本发明的弹性缓冲器设置在所述接收端中;

所述接收端通过置低SYNC信号对发送端发出多通道同步请求;

所述发送端检测到SYNC信号置低后进入码组同步状态CGS,并在CGS下发送连续的K字节;

所述接收端检测到4个连续有效的K字节后取消多通道同步请求;

所述发送端在多通道同步请求取消之后,在下一个本地多帧时钟LMFC上升沿向所述接收端发送各个通道的同步序列ILAS;

所述接收端将ILAS的多帧转换成四字节数据。

其中,LMFC通过与器件时钟同源的SYSREF信号进行对齐。

具体的,所述检测多个通道的同步序列ILAS中的R字以确定固定时延包括:

所述弹性缓冲器将各个通道的四字节数据读入;

检测各个通道的四字节数据中K字和R字位置;

确定最先检测到R字的ILAS的达到时间与发送时间,并求取到达时间与发送时间之间的时延作为固定时延。

本发明的所述接收端需要转化物理层输出数据为四字节数据,弹性缓冲器检测四字节数据中K字节和R字节位置,找到正确的字节及四字节位置;所述弹性缓冲器检测四字节中第一个字节的位置是否为/R/字节对各通道数据进行缓存,在所有通道都检测到/R/字节时释放所有缓存,以实现所述接收端各通道之间数据的同步。

具体的,所述接收端还包括一个四字节计数器,所述弹性缓冲器将所述固定时延赋值给所述四字节计数器;所述四字节计数器将固定时延确定为计数周期,所述接收端按照计数周期配置计数参数,计数参数表示为:

T=K*F/4(1);

其中,T为四字节计数器计数周期,K为一个多帧中包含的帧数,F为一帧中包含的字节数。

当所有通道第一个检测到R字节时,锁存所述四字节计数器输出,并配置给fixed_qb_latency;所述fixed_qb_latency视为固定延迟的参考量,LMFC到第一个R节的四字节计数器计数周期,通过把四字节计数器输出pclk_count对齐到pclk_delay,以抵消固定延迟对接收端的影响;即可抵消固定延迟对接收端的影响,因此只需确定最大可变延迟,即可确定RBD(Pclk),从而在pclk_count=RBD时发出释放信号。

其中,pclk_delay=T-fixed_qb_latency,固定时延fixed_latency=((fixed_qb_latency*4/F)%K)*T

具体的,所述弹性缓冲器包括一个用于进行数据缓存和读取的同步FIFO,当检测到R字节指示信号为高时打开写使能,所述弹性缓冲器写入多帧,其中写地址随着四字节时钟的上升沿依次加1;所述弹性缓冲器接收到的多帧以40bit形式依次写入所述写地址指向的FIFO中;当四字节计数器计数到RBD时,打开读使能,所述弹性缓冲器开始读出数据,其中,读地址开始随着四字节时钟的上升沿依次加1;所述弹性缓冲器根据所述读地址依次从FIFO中读出40bit数据;

本发明的所述接收端通过配置检测脉冲信号对弹性缓冲器所有通道的写地址wr_addr、读地址rd_addr和四字节计数器输出进行读取。

具体的,本发明根据读地址和写地址的计数值计算每个通道的ILAS的可变时延包括:

计算从检测到所有通道第一个R字节到所有弹性缓冲器释放缓存的四字节时钟周期数;计算公式表示为:

(wr_addr-rd_addr+K*F/4)mod(K*F/4);

取最大值和最小值之差配置给variable_qb_latency得到最小可变延迟,表示为:

variable_latency=((variable_qb_latency*4/F)%K)*T

本发明的所述弹性缓冲器配置RBD=min(variable_qb_latency,K*F/4-1),当四字节计数器计数到RBD时,开始依次释放缓存数据,从而实现多通道数据同步。

下面通过实例说明本发明的同步机制。

接收端通过置低SYNC信号对发送端发出同步请求,所述发送端检测到SYNC置低后进入码组同步状态CGS;发送端在CGS阶段发送连续的/K/字节,所述接收端检测到4个连续有效的/K/字节后取消同步请求,发送端进入初始通道同步状态ILA,并且在下一个LMFC上升沿同时发送ILAS序列;所述LMFC通过与器件时钟同源的SYSREF信号进行对齐。所述接收端需要转化物理层输出数据为四字节数据,并检测四字节数据中/K/字节和/R/字节位置,找到正确的字节及四字节位置输出qb_align[39:0]。所述弹性缓冲器检测四字节中第一个字节的位置是否为/R/字节对各通道数据进行缓存,在所有通道都检测到/R/字节时释放所有缓存,以实现所述接收端各通道之间数据的同步。

所述弹性缓冲器计算固定时延和可变时延实现步骤如图2所示。

具体地,在本实施方式中K=32,F最大设为4(通道数不为1),采用一个宽度为40,深度为32的同步FIFO对四字节数据进行存取,当写使能信号wr_en为高时,对数据进行缓存,写地址wr_addr开始随着四字节时钟(Pclk)上升沿依次加一,qb_align[39:0]依次写入wr_addr[4:0]对应的地址中。当读使能信号rd_en为高时,释放缓存的数据,读地址rd_addr[4:0]开始随着四字节时钟(Pclk)上升沿依次加一,弹性缓冲器根据rd_addr依次从FIFO中读出数据。

首先配置fixed_qb_latency=0x00,variable_qb_latency=0x00。

当检测到SYSREF信号上升沿时四字节计数器开始计数,当所有通道中检测到第一个/R/字节时打开写使能并对pclk_count[5:0]进行锁存,配置给fixed_qb_latency,从而改变pclk_delay的值,使得pclk_count在当所有通道中检测到第一个/R/字节时开始计数。

配置variable_qb_latency为0x1F,各通道数据对齐到下个多帧。

RBD=min(variable_qb_latency,T-1),T=K*F/4,当pclk_count[5:0]=RBD时打开读使能,释放缓存的数据。

读取各通道FIFO读写地址,在本实施方式中,设有两条通道,先后计算:

variable_qb_latency0=(wr_addr0-rd_addr0+K*F/4)mod(K*F/4);

variable_qb_latency1=(wr_addr1-rd_addr1+K*F/4)mod(K*F/4);

将两个里面的最大值减最小值的结果配置给variable_qb_latency。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。

尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。

以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

相关技术
  • 一种基于JESD204B的弹性缓冲器
  • 一种基于JESD204B协议的多板卡同步采样装置
技术分类

06120116512222