[发明专利]一种实现可变长CRC运算的电路无效
申请号: | 201010573154.1 | 申请日: | 2010-12-03 |
公开(公告)号: | CN102487282A | 公开(公告)日: | 2012-06-06 |
发明(设计)人: | 左耀华 | 申请(专利权)人: | 上海华虹集成电路有限责任公司 |
主分类号: | H03M13/09 | 分类号: | H03M13/09 |
代理公司: | 上海东创专利代理事务所(普通合伙) 31245 | 代理人: | 曹立维 |
地址: | 201203 上海*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 实现 变长 crc 运算 电路 | ||
技术领域
本发明涉及USB及SATA等高速通信接口中CRC应用领域,尤其涉及一种实现可变长CRC运算的电路。
背景技术
随着微电子技术的发展,大容量、高速的数据传输应用需求越来越多,对带宽的要求也越来越高,作为重要的高速通信接口,USB和SATA已经大量应用于日常生活的电子产品。
CRC(Cyclic Redundancy Check,循环冗余校验)的技术特点是检错能力极强,开销小,易于用编码器及检测电路实现。从其检错能力来看,它所不能发现的错误的几率为0.0047%以下。从性能上和开销上考虑,均远优于奇偶校验及算术和校验等方式,因而在数据存储和数据通讯领域,CRC技术得到了广泛的应用。如何将可变长CRC运算应用于USB,SATA等高速通信接口技术领域中是本发明要解决的技术问题。
发明内容
本发明目的提供一种实现可变长CRC运算的电路,通过把传输数据包截为不大于32比特长度的子数据包,并根据子数据包的有效数据长度采取不同的CRC运算方法来计算对应的CRC值。
一种实现可变长CRC运算的电路,由二选一选择器、CRC运算模块和输出选择模块构成。
二选一选择器,用于根据各自的选择条件对输入数据进行选择输出;
CRC运算模块,根据不同的初始值,对输入数据进行CRC运算;
输出选择模块,根据电路输入数据,选择输出CRC运算结果;
本发明中二选一选择器为两个,分别为选择器MUX1和选择器MUX2。选择器MUX1的输入端有两个:一个是常数,设为32’hff_ff,另外一个输入端连接到输出选择模块的输出端crc_value;其控制端为电路的输入信号first_byte,输出端分别连接到四个CRC运算模块的输入端crc_initial_value;控制端输入信号first_byte位宽为1比特,表示当前输入的四字节数据是否包含传输数据包数据的第一字节。当first_byte为1’b1时,表示当前输入的四字节数据包含传输数据包数据的第一字节,将常数32’hff_ff输出到crc_initial_value数据线上;否则将crc_value输出到crc_initial_value数据线上。选择器MUX2有四个输入端,分别连接于四个CRC运算模块的输出端,其控制端为电路的输入信号data_length。
CRC运算模块为四个,分别为:电路输入数据din有效位宽为32位的CRC_32、电路输入数据din有效位宽为24位的CRC_24、电路输入数据din有效位宽为16位的CRC_16和电路输入数据din有效位宽为8位的CRC_8。四个CRC运算模块的输入端都为电路输入数据din和MUX1的输出crc_initial_value。电路输入信号data_length位宽为2比特,当data_length为2’b11时,当前进行CRC运算的输入数据din的有效位宽为32比特,则选择器MUX2选择输出CRC_32b模块的运算结果crc32_dout到crc_dout上。当data_length为2’b10时,当前进行CRC运算的输入数据din的有效位宽为24比特,则选择器MUX2选择输出CRC_24b模块的运算结果crc24_dout到crc_dout上。当data_length为2’b01时,当前进行CRC运算的输入数据din的有效位宽为16比特,则选择器MUX2选择输出CRC_16b模块的运算结果crc16_dout到crc_dout上。当data_length为2’b00时,当前进行CRC运算的输入数据din的有效位宽为8比特,则选择器MUX2选择输出CRC_8b模块的运算结果crc8_dout到crc_dout上。
输出选择模块的输入端为连接电路输入信号last_byte和二选一选择器MUX2的输出crc_dout。last_byte位宽为1比特,表示当前输入的四字节数据是否包含传输数据包数据的最后一字节。当last_byte为1’b1时,表示当前输入的四字节数据包含传输数据包数据的最后一字节,把crc_dout的值输出到dout数据线上;否则把crc_dout的值输出到crc_value数据线上。
本发明根据子数据包的有效数据长度采取不同的CRC运算方法来计算对应的CRC值,从而解决了传统实现方式中因数据包长度不定长所带来的数据CRC运算问题。
附图说明
附图1本发明提供的实现可变长CRC运算的电路结构图
具体实施方案
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海华虹集成电路有限责任公司,未经上海华虹集成电路有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010573154.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种恒压变量柱塞泵在线测量装置
- 下一篇:小型垂直轴风力发电机的辅助控制装置
- 同类专利
- 专利分类