CN114003543B - 一种高速串行总线时钟补偿方法及*** - Google Patents
一种高速串行总线时钟补偿方法及*** Download PDFInfo
- Publication number
- CN114003543B CN114003543B CN202111277454.XA CN202111277454A CN114003543B CN 114003543 B CN114003543 B CN 114003543B CN 202111277454 A CN202111277454 A CN 202111277454A CN 114003543 B CN114003543 B CN 114003543B
- Authority
- CN
- China
- Prior art keywords
- compensation
- channel
- data
- current
- read
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4291—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
Abstract
本发明属于通信领域,公开了一种高速串行总线时钟补偿方法及***,包括包括以下步骤:获取高速串行总线各通道的写入数据数量和读出数据数量,并根据写入数据数量和读出数据数量生成各通道的补偿申请;获取高速串行总线各通道的当前写入数据和当前读出数据,并根据当前写入数据和当前读出数据生成各通道的状态信号;根据各通道的状态信号以及补偿申请,生成各通道的补偿使能信号,并根据各通道的补偿使能信号对各通道进行预设的补偿操作。对多通道的各个输入时钟无相位要求,具有灵活的使用性,可应用于多种高速总线协议之中,解决多种高速总线物理层的多通道互联问题,并通过状态信号控制各通道的补偿操作,有效的提高电路传输的可靠性与正确性。
Description
技术领域
本发明属于通信领域,涉及一种高速串行总线时钟补偿方法及***。
背景技术
在高带宽需求下的板间高速通信时,一般采用多通道高速串行总线进行数据传送。这种情况下,为了避免由异步时钟通讯造成的数据错误,就需要考虑通各个高速串行总线的时钟关系。
目前,针对上述情况,一般具有以下两种手段。一种是,数据链路的多通道均使用相同的参考时钟,但是这样一来就损失了多通道使用的灵活性。另一种是,对数据链路的单通道进行时钟补偿,但是,目前在进行单通道的时钟补偿时,通常需要删添SKIP(跳跃)字符,但是删添SKIP字符后又经常会导致数据链路的多通道绑定失配,进而频繁进入多通道绑定失配状态,影响多通道通信效率。
发明内容
本发明的目的在于克服上述现有技术的缺点,提供一种高速串行总线时钟补偿方法及***。
为达到上述目的,本发明采用以下技术方案予以实现:
本发明第一方面,一种高速串行总线时钟补偿方法,包括以下步骤:
获取高速串行总线各通道的写入数据数量和读出数据数量,并根据写入数据数量和读出数据数量生成各通道的补偿申请;
获取高速串行总线各通道的当前写入数据和当前读出数据,并根据当前写入数据和当前读出数据生成各通道的状态信号;
根据各通道的状态信号以及补偿申请,生成各通道的补偿使能信号,并根据各通道的补偿使能信号对各通道进行预设的补偿操作。
本发明高速串行总线时钟补偿方法进一步的改进在于:
所述根据写入数据数量和读出数据数量生成各通道的补偿申请的具体方法为:当当前通道的写入数据数量比读出数据数量多至少第一预设数量时,当前通道的补偿申请为写补偿申请;当当前通道的读出数据数量比写入数据数量多至少第二预设数量时,当前通道的补偿申请为读补偿申请。
所述根据当前写入数据和当前读出数据生成各通道的状态信号的具体方法为:当当前通道的当前写入数据为补偿码时,当前通道的状态信号为写补偿能够进行,当当前通道的当前写入数据不为补偿码时,当前通道的状态信号为写补偿不能进行;当当前通道的当前读出数据为补偿码时,当前通道的状态信号为读补偿能够进行,当当前通道的当前读出数据不为补偿码时,当前通道的状态信号为读补偿不能进行。
所述根据各通道的状态信号,生成各通道的补偿使能信号的具体方法为:当所有通道的状态信号均为写补偿不能进行时,且补偿申请为写补偿申请时,各通道的补偿使能信号为写补偿使能信号;当所有通道的状态信号均为读补偿不能进行时,且补偿申请为读补偿申请时,各通道的补偿使能信号为读补偿使能信号。
所述预设的补偿操作包括写补偿操作和读补偿操作;所述根据各通道的补偿使能信号对各通道进行预设的补偿操作的具体方法为:当当前通道的补偿使能信号为写补偿使能信号时,在下一次检测到写入数据为补偿码时,进行写补偿操作;当当前通道的补偿使能信号为读补偿使能信号时,在下一次检测到读出数据为补偿码时,进行读补偿操作。
所述写补偿操作具体为:在写入补偿码时少写入一拍补偿码;所述读补偿操作具体为:在读出补偿码时多读出一拍补偿码。
还包括:获取各通道预设位的写入数据,并当各通道预设位的写入数据中均有对齐码时,获取各通道最近一次写入的对齐码的位置编号,各通道根据各通道最近一次写入的对齐码的位置编号,进行写入数据的输出。
当各通道最近一次写入的对齐码的位置编号均不为0时,将各通道最近一次写入的对齐码的位置编号均同步减少至至少一通道最近一次写入的对齐码的位置编号为0。
本发明第二方面,一种高速串行总线时钟补偿***,包括若干单通道补偿模块以及补偿调度模块,若干单通道补偿模块一端用于连接高速串行总线的若干通道,另一端均与补偿调度模块连接;
若干单通道补偿模分别用于获取各通道的写入数据数量和读出数据数量,并根据写入数据数量和读出数据数量生成各通道的补偿申请;还用于分别获取各通道的当前写入数据和当前读出数据,并根据当前写入数据和当前读出数据生成各通道的状态信号;还用于分别接收补偿调度模块发送的各通道的补偿使能信号,根据各通道的补偿使能信号对各通道进行预设的补偿操作;
补偿调度模块用于接收并根据各通道的状态信号以及补偿申请,生成各通道的补偿使能信号并分别发送至各单通道补偿模块。
优选的,还包括多通道对齐模块,多通道对齐模块一端连接若干单通道补偿模块;多通道对齐模块用于获取各通道预设位的写入数据,并当各通道预设位的写入数据中均有对齐码时,获取各通道最近一次写入的对齐码的位置编号,各通道根据各通道最近一次写入的对齐码的位置编号,进行写入数据的输出。
与现有技术相比,本发明具有以下有益效果:
本发明高速串行总线时钟补偿方法,通过获取高速串行总线各通道的写入数据数量和读出数据数量,根据写入数据数量和读出数据数量生成各通道的补偿申请,然后基于各通道的当前写入数据和当前读出数据,并根据当前写入数据和当前读出数据生成各通道的状态信号,并通过根据各通道的状态信号,生成各通道的补偿使能信号,最后依据补偿使能信号以及写入或读出数据对各通道进行预设的补偿操作。对多通道的各个输入时钟无相位要求,具有非常灵活的使用性,可应用于多种高速总线协议之中,能够解决多种高速总线物理层的多通道互联问题。同时,通过状态信号控制各通道的补偿操作,有效的提高电路传输的可靠性与正确性。
进一步的,通过获取各通道预设位的写入数据,并当各通道预设位的写入数据中均有对齐码时,获取各通道最近一次写入的对齐码的位置编号,然后各通道根据各通道最近一次写入的对齐码的位置编号,进行写入数据的输出,对齐过程基于缓存阵列实现,有效的减小了数据传递的时间延迟。
附图说明
图1为本发明的高速串行总线时钟补偿方法流程图;
图2为本发明的高速串行总线时钟补偿***结构图;
图3为本发明的高速串行总线时钟补偿方法的时钟补偿原理示意图;
图4为本发明的高速串行总线时钟补偿方法的时序示意图;
图5为本发明的多通道对齐模块数据输出示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块。
下面结合附图对本发明做进一步详细描述:
参见图1,本发明一实施例中,提供一种高速串行总线时钟补偿方法,包括以下步骤:获取高速串行总线各通道的写入数据数量和读出数据数量,并根据写入数据数量和读出数据数量生成各通道的补偿申请;获取高速串行总线各通道的当前写入数据和当前读出数据,并根据当前写入数据和当前读出数据生成各通道的状态信号;根据各通道的状态信号以及补偿申请,生成各通道的补偿使能信号,并根据各通道的补偿使能信号对各通道进行预设的补偿操作。
其中,所述根据写入数据数量和读出数据数量生成各通道的补偿申请的具体方法为:当当前通道的写入数据数量比读出数据数量多至少第一预设数量时,当前通道的补偿申请为写补偿申请;当当前通道的读出数据数量比写入数据数量多至少第二预设数量时,当前通道的补偿申请为读补偿申请。
其中,所述根据当前写入数据和当前读出数据生成各通道的状态信号的具体方法为:当当前通道的当前写入数据为补偿码时,当前通道的状态信号为写补偿能够进行,当当前通道的当前写入数据不为补偿码时,当前通道的状态信号为写补偿不能进行;当当前通道的当前读出数据为补偿码时,当前通道的状态信号为读补偿能够进行,当当前通道的当前读出数据不为补偿码时,当前通道的状态信号为读补偿不能进行。
其中,所述根据各通道的状态信号,生成各通道的补偿使能信号的具体方法为:当所有通道的状态信号均为写补偿不能进行,且补偿申请为写补偿申请时,各通道的补偿使能信号为写补偿使能信号;当所有通道的状态信号均为读补偿不能进行,且补偿申请为读补偿申请时,各通道的补偿使能信号为读补偿使能信号。
其中,所述预设的补偿操作包括写补偿操作和读补偿操作;所述根据各通道的补偿使能信号对各通道进行预设的补偿操作的具体方法为:当当前通道的补偿使能信号为写补偿使能信号时,在下一次检测到写入数据为补偿码时,进行写补偿操作;当当前通道的补偿使能信号为读补偿使能信号时,在下一次检测到读出数据为补偿码时,进行读补偿操作。
其中,所述写补偿操作具体为:在写入补偿码时少写入一拍补偿码;所述读补偿操作具体为:在读出补偿码时多读出一拍补偿码。
在一种可能的实施方式中,该高速串行总线时钟补偿方法还包括:获取各通道预设位的写入数据,并当各通道预设位的写入数据中均有对齐码时,获取各通道最近一次写入的对齐码的位置编号,各通道根据各通道最近一次写入的对齐码的位置编号,进行写入数据的输出。
其中,为了减少传输的传递延迟,当各通道最近一次写入的对齐码的位置编号均不为0时,将各通道最近一次写入的对齐码的位置编号均同步减少至至少一通道最近一次写入的对齐码的位置编号为0。
综上所述,本发明高速串行总线时钟补偿方法,通过获取高速串行总线各通道的写入数据数量和读出数据数量,并根据写入数据数量和读出数据数量生成各通道的补偿申请,然后基于各通道的当前写入数据和当前读出数据,并根据当前写入数据和当前读出数据生成各通道的状态信号,并通过根据各通道的状态信号,生成各通道的补偿使能信号,最后依据补偿使能信号以及补偿申请对各通道进行预设的补偿操作,对多通道的各个输入时钟无相位要求,具有非常灵活的使用性,可应用于多种高速总线协议之中,能够解决多种高速总线物理层的多通道互联问题。同时,通过状态信号控制各通道的补偿操作,有效的提高电路传输的可靠性与正确性。
进一步的,通过获取各通道预设位的写入数据,并当各通道预设位的写入数据中均有对齐码时,获取各通道最近一次写入的对齐码的位置编号,然后各通道根据各通道最近一次写入的对齐码的位置编号,进行写入数据的输出,对齐过程基于缓存阵列实现,有效的减小了数据传递的时间延迟。
下述为本发明的装置实施例,可以用于执行本发明方法实施例。对于装置实施例中未纰漏的细节,请参照本发明方法实施例。
参见图2,本发明再一实施例中,提供一种高速串行总线时钟补偿***,包括若干单通道补偿模块以及补偿调度模块,若干单通道补偿模块一端用于连接高速串行总线的若干通道,另一端均与补偿调度模块连接;若干单通道补偿模分别用于获取各通道的写入数据数量和读出数据数量,并根据写入数据数量和读出数据数量生成各通道的补偿申请;还用于分别获取各通道的当前写入数据和当前读出数据,并根据当前写入数据和当前读出数据生成各通道的状态信号;还用于分别接收补偿调度模块发送的各通道的补偿使能信号,根据各通道的补偿使能信号对各通道进行预设的补偿操作;补偿调度模块用于接收并根据各通道的状态信号以及补偿申请,生成各通道的补偿使能信号并分别发送至各单通道补偿模块。
在一种可能的实施方式中,该高速串行总线时钟补偿***还包括多通道对齐模块,多通道对齐模块一端连接若干单通道补偿模块;多通道对齐模块用于获取各通道预设位的写入数据,并当各通道预设位的写入数据中均有对齐码时,获取各通道最近一次写入的对齐码的位置编号,各通道根据各通道最近一次写入的对齐码的位置编号,进行写入数据的输出。
前述的高速串行总线时钟补偿方法的实施例涉及的各步骤的所有相关内容均可以援引到本发明施例中的高速串行总线时钟补偿***所对应的功能模块的功能描述,在此不再赘述。
本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本发明各个实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
下面以具体的实现方式说明本发明高速串行总线时钟补偿方法及***。
本发明高速串行总线时钟补偿方法及***,能够作为IP提供给基于Serdes的各种高速总线协议电路,如RapidIO、SpaceFirbe以及PCIe等,能够有效的解决RapidIO、SpaceFirbe、PCIe等高速总线phy层(物理层)多通道互联问题。
其中,IP(intellectualproperty)内核模块是一种预先设计好的甚至已经过验证的具有某种确定功能的集成电路、器件或部件,供芯片设计人员装配或集成选用。Serdes是英文Serializer(串行器)/Deserializer(解串器)的简称。它是一种主流的时分多路复用(TDM)、点对点(P2P)的串行通信技术。即在发送端多路低速并行信号被转换成高速串行信号,经过传输媒体(光缆或铜线),最后在接收端高速串行信号重新转换成低速并行信号。这种点对点的串行通信技术充分利用传输媒体的信道容量,减少所需的传输信道和器件引脚数目,从而大大降低通信成本。RapidIO是由Motorola和Mercury等公司率先倡导的一种高性能、低引脚数、基于数据包交换的互连体系结构,是为满足和未来高性能嵌入式***需求而设计的一种开放式互连技术标准。RapidIO主要应用于嵌入式***内部互连,支持芯片到芯片、板到板间的通讯,可作为嵌入式设备的背板(Backp通道)连接。SpaceFibre是一种可在铜缆线和光纤缆线两者上运行的航天器机载数据链路和网络技术。最初针对像合成孔径雷达(SAR)和多谱成像仪器等非常高数据速率仪器,SpaceFibre能够实现更广泛的航天器机载通信应用,这是因为其内置的QoS(服务质量)和FDIR(故障检测、隔离和恢复)能力以及其与SpaceWire技术的后向兼容性。SpaceFibre以2.5Gbits/s或更高的速度运行,从而提供了12倍于利用当前的满足飞行要求技术的SpaceWire链路的吞吐量,并允许将来自多个SpaceWire设备的数据集中在单个SpaceFibre链路上。这显著地减少了缆线束质量并简化了冗余策略。PCI-Express(peripheral component interconnect express)是一种高速串行计算机扩展总线标准,它原来的名称为“3GIO”,是由英特尔在2001年提出的,旨在替代旧的PCI,PCI-X和AGP总线标准。PCIe属于高速串行点对点双通道高带宽传输,所连接的设备分配独享通道带宽,不共享总线带宽,主要支持主动电源管理,错误报告,端对端的可靠性传输,热插拔以及服务质量(QOS)等功能。PCIe交由PCI-SIG(PCI特殊兴趣组织)认证发布后才改名为“PCI-Express”,简称“PCI-e”。
本实施例中,高速串行总线时钟补偿***包括2个模块,分别是时钟补偿模块与多通道多通道对齐模块,其中,时钟补偿模块由多个单通道补偿模块与一个补偿调度模块组成。整个***结构中,由多个单通道补偿模块、一个补偿调度模块,以及一个多通道对齐模块组成。时钟补偿模块完成各个通道的时钟补偿功能,由单通道补偿模块与补偿调度模块组成。
单通道补偿模块基于异步fifo(First Input First Output,先入先出队列)实现,fifo这是一种传统的按序执行方法,先进入的指令先完成并引退,跟着才执行第二条指令。对于异步fifo而言,数据是由某一个时钟域的控制信号写入fifo,而由另一个时钟域的控制信号将数据读出fifo,也就是说,读写指针的变化动作是由不同的时钟产生的,因此对各个输入时钟无相位要求。
单通道补偿模块内部具有用于存贮的内存或者寄存器,可根据具体使用情况进行配置,默认为16,即可存贮16个数据,一个写指针,一个读指针,一组(2个,分别用于写、读指针)用于指针异步转化格雷码/二进制转化逻辑模块,以及一组(2个,分别用于写、读时钟域指针)比较控制逻辑模块。其中,写指针用于记录在写时钟域写了多少个数据,读指针用于记录在读时钟域读出了多少个数据。由于读写时钟域不同,就需要将读指针通过格雷码/二进制转化逻辑模块同步到写时钟域,用来与写指针比较判断数据是否写满;同理,写指针也需要同步到读时钟域,用来与读指针比较判断数据是否读空。
比较控制逻辑模块有3个功能:1.监测读写指针判定当前状态是否需要进行时钟补偿。在写时钟域,当写入的数据比读出的数据数值大于等于n时,则输出写补偿申请;同理,在读时钟域,当写入的数据比读出的数据多的数值小于等于m时,则输出读补偿申请。其中n、m的具体数值参数可配,用户可根据自己的实际需求进行设定。2、检测写入数据和读出数据的状态以判定当前时刻是否可以进行时钟补偿,并输出状态信号。通过该模块的数据由一般数据和补偿码序列组成,补偿码序列是根据具体高速总线协议规定的固定字符。比较控制逻辑模块会实时监测即将写入和读出的数据,若为补偿码时,则表示可以立刻进行补偿操作,状态信号为写补偿能够进行或读补偿能够进行。3、接收补偿使能信号,执行补偿操作。当接收到补偿使能信号时,会在下一次检测到补偿码时进行补偿操作。进行写补偿操作,即在写入补偿码序列时少写入一拍补偿码,而读出数据的操作正常,这样即可缩小写、读指针的数量差;同理,进行读补偿时,会在读出补偿码序列时多输出一拍该补偿码,这样即可扩大写、读指针之间的数量差。
单通道补偿模块所需使用的个数与通道的个数相同,存贮缓存的深度、补偿码序列判定以及读写指针差值比较的n、m值均参数可配,这样可以扩展其通用性,使其可用于多种高速总线协议之中。
补偿调度模块主要负责协调各个单通道补偿模块的补偿执行时间,增加电路可靠性,确保不因补偿行为导致多通道传输错误。
参见图3,各个单通道补偿模块实时监测内部状态,主要检测当前是否需要补偿操作,以及当前输出的数据为一般数据还是补偿序列。在需要补偿操作时向补偿调度模块发起补偿请求。补偿调度模块在接收到补偿请求的同时,实时监测各个单通道补偿模块是否处于可立即被补偿的状态,即写补偿能够进行、写补偿不能进行、读补偿不能进行或读补偿能够进行。具体的,补偿调度模块接收接收各个单通道补偿模块输出的状态信号,这些状态信号便表示当前该单通道补偿模块是否正处于接收到补偿码,即可是否可立即执行补偿操作的状态。在它们都不处于可立即被补偿的状态时,即均为写补偿不能进行或均为读补偿不能进行时,可向它们发出补偿使能信号进行时序补偿。具体的,由于各个通道的输入时钟可能不同,因此会有部分单通道补偿模块可执行补偿操作,而其它单通道补偿模块不能执行的时刻存在。此时若进行补偿操作肯定会产生数据对齐的错误。为避免此情况发生,通过补偿调度模块统一在各个单通道补偿模块均不能执行补偿的时刻发起时钟补偿命令,各个单通道补偿模块会在下一次补偿时机到来时进行时钟补偿操作,如图4所示,补偿时机即指各个单通道补偿模块均不处于可立即执行补偿操作的状态。
同时,由于各个通道的输入时钟之间,以及它们与接收时钟均为异步关系,因此各个通道之间会产生不可避免的数据偏移。多通道对齐模块主要由Ram或寄存器阵列组成,根据输入的对齐码(A码)将数据进行对齐输出。其中,对齐码类似于补偿序列,也是高速总线协议规定的固定的字符,专门用于当通道同步使用。Ram或寄存器阵列会将每个通道的数据进行缓存,每个通道的输出数据就从这些缓存中选定位置输出。每个通道会有一个计数器,用于计算最新一次到来的A码的位置。当所有通道的缓存中都有A码存在时,各个通道的计数器数值将被保存,各个通道根据该数值选择对应的缓存位置进行数据输出。参见图5,通道0的A码位置为4,通道1的A码位置为5,若要通道0与通道1对齐,则这两个通道的计数器分别存贮为4和5,输出的位置即4和5,即它们这一拍同时输出A码,下一拍同时输出D5。
同时,为了减少传输的传递延迟,当各个通道的计数器值均不为0时,所有计数器数值会减小至其中一个为0为止。例如图5中,通道0与通道1需要对齐时,计数器分别为4和5,它们均不为0,这时计数器均会减小1。这时通道0与通道1的计数器分别为3和4,它们仍不为0,继续减1,如此循环。直至通道0和通道1的计数器分别为0和1。这样做的目的是减小链路延迟,由于计数器是选择数据输出在寄存器阵列中的第几拍寄存器,计数器数值越小,输出的数据在寄存器阵列中寄存的拍数越小,链路延迟就越短。
其中,缓存队列的长度可配,可根据具体使用的协议及实际使用的***情况而定,对齐码根据具体使用协议可配,兼容多种总线协议如RapidIO及PCIe等。
本发明再一实施例中,将该高速串行总线时钟补偿***应用于一款16端口的RapidIO交换电路中,接口可配置为X1或X4两种工作状态,目前已通过前端验证、FPGA原型验证、后端版图网表仿真,进入流片阶段。该电路能够正确、稳定地与外部其它RapidIO接口进行数据通信。根据实际情况的参数配置为:补偿序列为KRRR,对齐码为A,补偿fifo深度为12,非补偿范围为5-7,寄存器阵列为8级,采用了四个单通道补偿模块、一个补偿调度模块,以及一个多通道对齐模块。在对齐部分,由于使用的Serdes基于8b/10b,输出为16bit数据,因此在各个单通道补偿模块的模块中,鉴别是否处于可立即被补偿的状态时,需要检测的字符分为KR、RR的两拍字符检测,与xK、RR、Rx的三拍数据检测(x表示任意字符)这两种。它们必须同时满足在以上两种字符鉴别中,均不处于可立即被补偿的状态时,补偿调度模块才会发出补偿操作使能进行补偿。工作在X1模式下,连接稳定,无数据丢失。工作在X4模式下,实现了4个通道的时钟补偿与数据对齐功能。其中对齐处理采用缓存阵列,与采用fifo完成对齐功能相比,减少了数据传输的时间延迟。基于本发明的IP模块接口简单,方便集成,降低了设计的复杂度。
以上内容仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明权利要求书的保护范围之内。
Claims (5)
1.一种高速串行总线时钟补偿方法,其特征在于,包括以下步骤:
获取高速串行总线各通道的写入数据数量和读出数据数量,并根据写入数据数量和读出数据数量生成各通道的补偿申请;
获取高速串行总线各通道的当前写入数据和当前读出数据,并根据当前写入数据和当前读出数据生成各通道的状态信号;
根据各通道的状态信号以及补偿申请,生成各通道的补偿使能信号,并根据各通道的补偿使能信号对各通道进行预设的补偿操作;
所述根据写入数据数量和读出数据数量生成各通道的补偿申请的具体方法为:
当当前通道的写入数据数量比读出数据数量多至少第一预设数量时,当前通道的补偿申请为写补偿申请;当当前通道的读出数据数量比写入数据数量多至少第二预设数量时,当前通道的补偿申请为读补偿申请;
所述根据当前写入数据和当前读出数据生成各通道的状态信号的具体方法为:
当当前通道的当前写入数据为补偿码时,当前通道的状态信号为写补偿能够进行,当当前通道的当前写入数据不为补偿码时,当前通道的状态信号为写补偿不能进行;当当前通道的当前读出数据为补偿码时,当前通道的状态信号为读补偿能够进行,当当前通道的当前读出数据不为补偿码时,当前通道的状态信号为读补偿不能进行;
所述根据各通道的状态信号,生成各通道的补偿使能信号的具体方法为:
当所有通道的状态信号均为写补偿不能进行时,且补偿申请为写补偿申请时,各通道的补偿使能信号为写补偿使能信号;当所有通道的状态信号均为读补偿不能进行时,且补偿申请为读补偿申请时,各通道的补偿使能信号为读补偿使能信号;
所述预设的补偿操作包括写补偿操作和读补偿操作;
所述根据各通道的补偿使能信号对各通道进行预设的补偿操作的具体方法为:当当前通道的补偿使能信号为写补偿使能信号时,在下一次检测到写入数据为补偿码时,进行写补偿操作;当当前通道的补偿使能信号为读补偿使能信号时,在下一次检测到读出数据为补偿码时,进行读补偿操作;
所述写补偿操作具体为:在写入补偿码时少写入一拍补偿码;所述读补偿操作具体为:在读出补偿码时多读出一拍补偿码。
2.根据权利要求1所述的高速串行总线时钟补偿方法,其特征在于,还包括:获取各通道预设位的写入数据,并当各通道预设位的写入数据中均有对齐码时,获取各通道最近一次写入的对齐码的位置编号,各通道根据各通道最近一次写入的对齐码的位置编号,进行写入数据的输出。
3.根据权利要求2所述的高速串行总线时钟补偿方法,其特征在于,当各通道最近一次写入的对齐码的位置编号均不为0时,将各通道最近一次写入的对齐码的位置编号均同步减少至至少一通道最近一次写入的对齐码的位置编号为0。
4.一种高速串行总线时钟补偿***,其特征在于,包括若干单通道补偿模块以及补偿调度模块,若干单通道补偿模块一端用于连接高速串行总线的若干通道,另一端均与补偿调度模块连接;
若干单通道补偿模分别用于获取各通道的写入数据数量和读出数据数量,并根据写入数据数量和读出数据数量生成各通道的补偿申请;还用于分别获取各通道的当前写入数据和当前读出数据,并根据当前写入数据和当前读出数据生成各通道的状态信号;还用于分别接收补偿调度模块发送的各通道的补偿使能信号,根据各通道的补偿使能信号对各通道进行预设的补偿操作;
补偿调度模块用于接收并根据各通道的状态信号以及补偿申请,生成各通道的补偿使能信号并分别发送至各单通道补偿模块;
所述根据写入数据数量和读出数据数量生成各通道的补偿申请的具体方法为:
当当前通道的写入数据数量比读出数据数量多至少第一预设数量时,当前通道的补偿申请为写补偿申请;当当前通道的读出数据数量比写入数据数量多至少第二预设数量时,当前通道的补偿申请为读补偿申请;
所述根据当前写入数据和当前读出数据生成各通道的状态信号的具体方法为:
当当前通道的当前写入数据为补偿码时,当前通道的状态信号为写补偿能够进行,当当前通道的当前写入数据不为补偿码时,当前通道的状态信号为写补偿不能进行;当当前通道的当前读出数据为补偿码时,当前通道的状态信号为读补偿能够进行,当当前通道的当前读出数据不为补偿码时,当前通道的状态信号为读补偿不能进行;
所述根据各通道的状态信号,生成各通道的补偿使能信号的具体方法为:
当所有通道的状态信号均为写补偿不能进行时,且补偿申请为写补偿申请时,各通道的补偿使能信号为写补偿使能信号;当所有通道的状态信号均为读补偿不能进行时,且补偿申请为读补偿申请时,各通道的补偿使能信号为读补偿使能信号;
所述预设的补偿操作包括写补偿操作和读补偿操作;
所述根据各通道的补偿使能信号对各通道进行预设的补偿操作的具体方法为:当当前通道的补偿使能信号为写补偿使能信号时,在下一次检测到写入数据为补偿码时,进行写补偿操作;当当前通道的补偿使能信号为读补偿使能信号时,在下一次检测到读出数据为补偿码时,进行读补偿操作;
所述写补偿操作具体为:在写入补偿码时少写入一拍补偿码;所述读补偿操作具体为:在读出补偿码时多读出一拍补偿码。
5.根据权利要求4所述的高速串行总线时钟补偿***,其特征在于,还包括多通道对齐模块,多通道对齐模块一端连接若干单通道补偿模块;
多通道对齐模块用于获取各通道预设位的写入数据,并当各通道预设位的写入数据中均有对齐码时,获取各通道最近一次写入的对齐码的位置编号,各通道根据各通道最近一次写入的对齐码的位置编号,进行写入数据的输出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111277454.XA CN114003543B (zh) | 2021-10-29 | 2021-10-29 | 一种高速串行总线时钟补偿方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111277454.XA CN114003543B (zh) | 2021-10-29 | 2021-10-29 | 一种高速串行总线时钟补偿方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114003543A CN114003543A (zh) | 2022-02-01 |
CN114003543B true CN114003543B (zh) | 2023-07-07 |
Family
ID=79925727
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111277454.XA Active CN114003543B (zh) | 2021-10-29 | 2021-10-29 | 一种高速串行总线时钟补偿方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114003543B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20000073612A (ko) * | 1999-05-12 | 2000-12-05 | 윤종용 | 클럭지연 보상장치 |
CN106484631A (zh) * | 2015-08-25 | 2017-03-08 | 安徽大学 | 一种新弹性缓冲器结构及skp添加方法 |
CN107860973A (zh) * | 2017-11-10 | 2018-03-30 | 中国电子科技集团公司第四十研究所 | 一种应用于频谱分析仪的频响补偿方法及*** |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7898956B2 (en) * | 2006-09-12 | 2011-03-01 | Alcatel Lucent | Credit-based rate control for high-speed interfaces |
WO2017010286A1 (ja) * | 2015-07-10 | 2017-01-19 | シャープ株式会社 | 画素回路ならびに表示装置およびその駆動方法 |
-
2021
- 2021-10-29 CN CN202111277454.XA patent/CN114003543B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20000073612A (ko) * | 1999-05-12 | 2000-12-05 | 윤종용 | 클럭지연 보상장치 |
CN106484631A (zh) * | 2015-08-25 | 2017-03-08 | 安徽大学 | 一种新弹性缓冲器结构及skp添加方法 |
CN107860973A (zh) * | 2017-11-10 | 2018-03-30 | 中国电子科技集团公司第四十研究所 | 一种应用于频谱分析仪的频响补偿方法及*** |
Non-Patent Citations (2)
Title |
---|
RapidIO技术在星载电子***中应用研究;杜晔;《中国优秀硕士学位论文全文数据库工程科技Ⅱ辑》;C031-466 * |
一种GPS校准的数字式高精度守时钟;魏丰;朱广伟;王瑞清;王群;;仪器仪表学报(04);202-208 * |
Also Published As
Publication number | Publication date |
---|---|
CN114003543A (zh) | 2022-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1825382B1 (en) | Low protocol, high speed serial transfer for intra-board or inter-board data communication | |
EP2061191A1 (en) | Buffering architecture for packet injection and extraction in on-chip networks. | |
JP3992100B2 (ja) | 伝送リンク層コア速度を高くするためのネットワーク | |
US4048673A (en) | Cpu - i/o bus interface for a data processing system | |
WO2002084428A2 (en) | High speed interface with looped bus | |
US8135872B2 (en) | USB controller and a testing method of the USB controller | |
CN108462620B (zh) | 一种吉比特级SpaceWire总线*** | |
CN110515879B (zh) | 一种异步传输装置及其传输方法 | |
US9594715B2 (en) | Integrated circuit devices, systems and methods having automatic configurable mapping of input and/or output data connections | |
CN107066419B (zh) | 可扩展的自适应n×n通道数据通信*** | |
CN114003543B (zh) | 一种高速串行总线时钟补偿方法及*** | |
US8510485B2 (en) | Low power digital interface | |
GB1581838A (en) | I/o bus transceiver for a data processing system | |
CN115328845B (zh) | 一种四线串行外设接口通信协议设计的方法 | |
CN114050838B (zh) | 100Gbps带宽RapidIO信号源 | |
US11169947B2 (en) | Data transmission system capable of transmitting a great amount of data | |
CN108199784A (zh) | 多功能综合航电测试*** | |
RU2700560C1 (ru) | Устройство коммуникационного интерфейса gigaspacewire | |
JP3206567B2 (ja) | マイクロコンピュータ | |
KR20010020189A (ko) | 슬레이브 그룹 인터페이스 장치를 경유하여 버스와 주변 장치를 인터페이스하는 방법 및 시스템 | |
CN117009276B (zh) | 一种基于axi总线的信号压缩传输的方法、装置及*** | |
US20080201499A1 (en) | Asynchronous Data Buffer | |
US7269681B1 (en) | Arrangement for receiving and transmitting PCI-X data according to selected data modes | |
CN111104353B (zh) | 基于fpga的多功能航空总线接口卡 | |
WO1982001607A1 (en) | Data communication bus structure |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |