适用于64位总线位宽的CRC校验电路及校验方法技术

技术编号:13010620 阅读:79 留言:0更新日期:2016-03-10 23:55
一种适用于64位总线位宽的CRC校验电路及校验方法,可以针对16位、32位、48位和64位几种对齐格式的事务包数据,仅通过16位和64位两种并行CRC校验器,加延迟判断和按位取反等效逻辑的结构,来实现消减CRC-16校验器个数的目的。本发明专利技术的CRC-16校验电路能够在满足不同包尺寸和不同包格式的事务包校验的同时,在面积、功耗和速度上都有明显的改善。

【技术实现步骤摘要】

本专利技术涉及高速串行接口领域,更具体地涉及一种适用于64位总线位宽的CRC校验电路及校验方法
技术介绍
高速串行接口物理层的协议规定,逻辑层传输给物理层的事务包,在发送出去之前,需要经过物理层的循环冗余校验(Cyclic Redundancy Check,CRC)码产生电路产生16位的CRC校验码。在接收端,物理层的接收电路需要对接收的事务包的CRC码进行校验,通过判断CRC码的正确性,来确认接收的事务包是否在传输链路上出错,从而达到保护数据的目的。一般的高速接口,如Rapid102.1、PCIE2.0和USB3.0,采用的都是CRC-16校验类型,生成多项式为G(x) = x16+x12+x5+l,根据输入数据位数的不同,可以推导出16位、32位、48位和64位的并行CRC-16,其推导原理是根据串行CRC校验进行迭代产生,此处对并行CRC-16的实现不作介绍。协议只规定逻辑层的数据是16位为一个有效单位,在许多高速串行接口的物理层IP核的应用场合下,为了提高逻辑层的时钟速度,需要将数据总线的宽度拓展到64位。由于可能会存在16位、32位、48位和64位四种有效的情况,使得校验电路实现起来要比32位的更复杂一些。为了能够处理四种有效的情况,目前已经提出了级联结构和并行结构的CRC-16校验电路。级联结构是将4个16位并行CRC-16串联成一个链,64位的数据分成四个16位,分别输入到四个CRC-16中,计算所得的结果依次传递,最后通过判断每一个CRC-16输出是否等于W hlDOF和次高16位是否为W hOOOO,可以确定数据的有效对齐格式和校验结果Ο由于是串行级联,该结构组合逻辑链较长,使得速度受到限制,不能运行在很高的频率下。并行结构采用的并行的16位、32位、48位、64位四个CRC-16来选择对输入的数据进行CRC-16计算。如果校验输入的数据是32位对齐的,即最后一拍数据包含16位的有效数据、16位CRC码和32位的无效0。此时,选择32位的并行CRC-16来计算,判断输出是否等于W hlDOF和次高16位是否等于W h0000,就可以确定输入的数据是否是32位对齐的和校验的结果,从而可以确定最后一拍数据中有效的数据位。以此类推,输入的数据会同时给到四个CRC-16中,通过同时判断输出,就可以确定数据的对齐格式和校验结果。该结构通过四种并行CRC-16来涵盖四种数据对齐的情况,解决了对齐的问题。虽然速度能够获得提升,但面积较大,占用资源较多,功耗较大。由于CRC-16校验电路在高速串行接口设计中,占据重要的地位,如何设计一种高性能的CRC-16 fe验电路,在完成事务包fe验的同时,获得最优的速度、功耗和面积,对于尚速串行接口的设计具有十分重要的意义。
技术实现思路
有鉴于此,本专利技术的主要目的是在于提供一种适用于64位总线位宽的CRC校验电路,以便通过采用16位、64位并行CRC校验器及等效判断逻辑,来达到减少并行CRC-16校验器个数,减小组合逻辑的目的,使速度、面积和功耗得到最大的改善。为达到上述目的,作为本专利技术的一个方面,本专利技术提供了一种适用于64位总线位宽的CRC校验电路,所述CRC-16校验电路中仅包含16位和64位两种并行CRC校验器。其中,所述16位CRC校验器完成16位有效数据输入的校验操作,通过按位取反逻辑辅助完成32位对齐的数据校验操作;所述64位CRC校验器完成64位数据校验操作,通过延迟判断逻辑辅助完成48位对齐的数据校验操作。作为本专利技术的另一个方面,本专利技术还提供了一种适用于64位总线位宽的CRC校验方法,包括以下步骤:仅通过16位CRC校验器和64位CRC校验器分别对输入的事务包数据进行计算;如果16位CRC校验器对所述事务包数据计算所得的(;utl6等于16' hlDOF,且次高16位Ds2等于W hOOOO,则输入事务包是16位对齐的,且事务包校验正确;如果16位CRC校验器对所述事务包数据计算所得的(:_16等于次高16位D s2的按位取反,则输入的事务包是32位对齐的,且事务包校验正确;如果64位CRC校验器对所述事务包数据计算所得的(;ut64等于16' h84C0,且高16位Ds4等于W h0000,则事务包是48位对齐的,且事务包校验正确;如果64位CRC校验器对所述事务包数据计算所得的(;ut64等于16' hlDOF,则事务包是64位对齐的,且事务包校验正确。从上述方案可以看出,本专利技术公开的适用于总线为64位位宽的高速接口物理层事务包的CRC校验电路及校验方法,通过采用等效控制逻辑来替代并行32位、48位CRC校验器,对并行结构进行优化,在最大限度的减小电路面积和动态功耗的同时,提升了电路工作的速度。本专利技术的校验电路只需要16位并行CRC校验器和64位并行CRC校验器就可以实现对四种不同对齐格式的事务包进行校验操作。【附图说明】图1是64位总线的数据对齐格式的结构图;图2是4个16位CRC-16级联结构实现64位总线CRC校验电路的结构图;图3是4个CRC-16并行结构实现64位总线CRC校验电路的结构图;图4是本专利技术的64位总线CRC校验电路的结构图;图5是本专利技术的64位总线CRC校验电路的逻辑资源对比图;图6是本专利技术的64位总线CRC校验电路的功耗对比图。【具体实施方式】为使本专利技术的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本专利技术作进一步的详细说明。本专利技术的基本思想是:①减少并行CRC-16产生器的个数,达到减少组合逻辑,节省资源的目的;②通过64位并行CRC-16来提高电路的工作速度,提高性能的目的。由于64位总线位宽的事务包对齐格式有16位、32位、48位和64位四种,需要用四种判断逻辑来满足这四种情况。在并行结构的基础上,通过16位并行CRC-16和按位取反等效判断逻辑来替代掉32位并行CRC-16,以此来实现事务包是32位对齐格式的校验;通过64位并行CRC-16及延迟判断逻辑来替代掉48位并行CRC-16,以此来实现事务包是48位对齐格式的校验;16位和64位对其格式的校验与并行结构的相同,以下是本专利技术的技术原理。假设数据是16位对齐且校验正确的,则16位并行CRC-16的计算结果应该为16r hlDOF,如果此时次高16位是无效的W hOOOO。则可以确定该数据是16位对齐的,即事务包最后一个数据是16位的CRC码和48位无效的0。假设数据是64位对齐且校验正确的,则64位并行CRC-16的计算结果应该为16’ hlDOF ο由此可以确定该数据是64位对齐的,即事务包最后一个数据是48位有效的数据和16位的CRC码。假设数据是32位对齐且校验正确的,即该数据包含低16位有效数据、次低16位CRC码以及高位无效0。此时低16位经过16位并行CRC-16计算结果应该就是原始的CRC码,但实际发送的数据中,次低16位是CRC码的按位取反。如果低16位等于次低16位的按位取反,就可以确定该数据是32位对齐的,即事务包最后一个数据是16位有效的数据、16位的CRC码和32位无效的0。假设数据是48位对齐且校验正确的,则该部分输入数据DRX1 (x)的CRC-16计算结果为16' hlDOF,本文档来自技高网
...

【技术保护点】
一种适用于64位总线位宽的CRC校验电路,其特征在于,所述CRC‑16校验电路中仅包含16位和64位两种并行CRC校验器。

【技术特征摘要】

【专利技术属性】
技术研发人员:赵建中汪波任雪倩周玉梅
申请(专利权)人:中国科学院微电子研究所
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1