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

文档序号:9631459阅读:1740来源:国知局
适用于64位总线位宽的crc校验电路及校验方法
【技术领域】
[0001]本发明涉及高速串行接口领域,更具体地涉及一种适用于64位总线位宽的CRC校验电路及校验方法。
【背景技术】
[0002]高速串行接口物理层的协议规定,逻辑层传输给物理层的事务包,在发送出去之前,需要经过物理层的循环冗余校验(Cyclic Redundancy Check,CRC)码产生电路产生16位的CRC校验码。在接收端,物理层的接收电路需要对接收的事务包的CRC码进行校验,通过判断CRC码的正确性,来确认接收的事务包是否在传输链路上出错,从而达到保护数据的目的。
[0003]一般的高速接口,如Rapid102.1、PCIE2.0和USB3.0,采用的都是CRC-16校验类型,生成多项式为G(x) = x16+x12+x5+l,根据输入数据位数的不同,可以推导出16位、32位、48位和64位的并行CRC-16,其推导原理是根据串行CRC校验进行迭代产生,此处对并行CRC-16的实现不作介绍。
[0004]协议只规定逻辑层的数据是16位为一个有效单位,在许多高速串行接口的物理层IP核的应用场合下,为了提高逻辑层的时钟速度,需要将数据总线的宽度拓展到64位。由于可能会存在16位、32位、48位和64位四种有效的情况,使得校验电路实现起来要比32位的更复杂一些。为了能够处理四种有效的情况,目前已经提出了级联结构和并行结构的CRC-16校验电路。
[0005]级联结构是将4个16位并行CRC-16串联成一个链,64位的数据分成四个16位,分别输入到四个CRC-16中,计算所得的结果依次传递,最后通过判断每一个CRC-16输出是否等于W hlDOF和次高16位是否为W hOOOO,可以确定数据的有效对齐格式和校验结果Ο
[0006]由于是串行级联,该结构组合逻辑链较长,使得速度受到限制,不能运行在很高的频率下。
[0007]并行结构采用的并行的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来涵盖四种数据对齐的情况,解决了对齐的问题。虽然速度能够获得提升,但面积较大,占用资源较多,功耗较大。
[0008]由于CRC-16校验电路在高速串行接口设计中,占据重要的地位,如何设计一种高性能的CRC-16 fe验电路,在完成事务包fe验的同时,获得最优的速度、功耗和面积,对于尚速串行接口的设计具有十分重要的意义。

【发明内容】

[0009]有鉴于此,本发明的主要目的是在于提供一种适用于64位总线位宽的CRC校验电路,以便通过采用16位、64位并行CRC校验器及等效判断逻辑,来达到减少并行CRC-16校验器个数,减小组合逻辑的目的,使速度、面积和功耗得到最大的改善。
[0010]为达到上述目的,作为本发明的一个方面,本发明提供了一种适用于64位总线位宽的CRC校验电路,所述CRC-16校验电路中仅包含16位和64位两种并行CRC校验器。
[0011]其中,所述16位CRC校验器完成16位有效数据输入的校验操作,通过按位取反逻辑辅助完成32位对齐的数据校验操作;所述64位CRC校验器完成64位数据校验操作,通过延迟判断逻辑辅助完成48位对齐的数据校验操作。
[0012]作为本发明的另一个方面,本发明还提供了一种适用于64位总线位宽的CRC校验方法,包括以下步骤:
[0013]仅通过16位CRC校验器和64位CRC校验器分别对输入的事务包数据进行计算;
[0014]如果16位CRC校验器对所述事务包数据计算所得的(;utl6等于16' hlDOF,且次高16位Ds2等于W hOOOO,则输入事务包是16位对齐的,且事务包校验正确;
[0015]如果16位CRC校验器对所述事务包数据计算所得的(:_16等于次高16位D s2的按位取反,则输入的事务包是32位对齐的,且事务包校验正确;
[0016]如果64位CRC校验器对所述事务包数据计算所得的(;ut64等于16' h84C0,且高16位Ds4等于W h0000,则事务包是48位对齐的,且事务包校验正确;
[0017]如果64位CRC校验器对所述事务包数据计算所得的(;ut64等于16' hlDOF,则事务包是64位对齐的,且事务包校验正确。
[0018]从上述方案可以看出,本发明公开的适用于总线为64位位宽的高速接口物理层事务包的CRC校验电路及校验方法,通过采用等效控制逻辑来替代并行32位、48位CRC校验器,对并行结构进行优化,在最大限度的减小电路面积和动态功耗的同时,提升了电路工作的速度。本发明的校验电路只需要16位并行CRC校验器和64位并行CRC校验器就可以实现对四种不同对齐格式的事务包进行校验操作。
【附图说明】
[0019]图1是64位总线的数据对齐格式的结构图;
[0020]图2是4个16位CRC-16级联结构实现64位总线CRC校验电路的结构图;
[0021 ]图3是4个CRC-16并行结构实现64位总线CRC校验电路的结构图;
[0022]图4是本发明的64位总线CRC校验电路的结构图;
[0023]图5是本发明的64位总线CRC校验电路的逻辑资源对比图;
[0024]图6是本发明的64位总线CRC校验电路的功耗对比图。
【具体实施方式】
[0025]为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明作进一步的详细说明。
[0026]本发明的基本思想是:①减少并行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位对其格式的校验与并行结构的相同,以下是本发明的技术原理。
[0027]假设数据是16位对齐且校验正确的,则16位并行CRC-16的计算结果应该为16r hlDOF,如果此时次高16位是无效的W hOOOO。则可以确定该数据是16位对齐的,即事务包最后一个数据是16位的CRC码和48位无效的0。
[0028]假设数据是64位对齐且校验正确的,则64位并行CRC-16的计算结果应该为16’ hlDOF ο由此可以确定该数据是64位对齐的,即事务包最后一个数据是48位有效的数据和16位的CRC码。
[0029]假设数据是32位对齐且校验正确的,即该数据包含低16位有效数据、次低16位CRC码以及高位无效0。此时低16位经过16位并行CRC-16计算结果应该就是原始的CRC码,但实际发送的数据中,次低16位是CRC码的按位取反。如果低16位等于次低16位的按位取反,就可以确定该数据是32位对齐的,即事务包最后一个数据是16位有效的数据、16位的CRC码和32位无效的0。
[0030]假设数据是48位对齐且校验正确的,则该部分输入数据DRX1 (x)的CRC-16计算结果为16' hlDOF,只要通过判断最后一拍64位数据64位并行CRC-16计算的输出是否等于16r h84C0,以及高16位是否等于16' h0000,就可以确定数据包是否是48位对齐,即事务包最后一个数据是32位有效的数据、16位的CRC码和16位无效的0。
[0031]由上可以看出,本发明的校验电路只需要16位并行CRC-16和64位并行CRC-16校验器就可以实现对四种不同对齐格式的事务包进行校验操作。
[
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1