使用HDL优化CRC库块

这个例子展示了如何使用HDL优化的CRC生成器和CRC检测器库块,然后配置这些块以满足IEEE®802.11标准[1]。

介绍

该模型展示了如何使用HDL优化CRC发生器和检测模块库进行仿真和HDL代码生成。802.11标准被用作该应用程序。要了解更多关于HDL优化CRC块HDL的支持,请万博1manbetx参阅文件。要了解更多有关在块中使用的算法,请参考纸张[2]。

要打开这个示例模型,运行以下命令:

MODELNAME ='commcrchdl';open_system(MODELNAME);

在这个模型中,顶层子系统CRC子系统包含HDL优化的CRC生成器和检测块。这个子系统还有一个AddNoise子系统,您可以选择的噪声加到产生的CRC校验。要打开这个子系统,运行以下命令:

系统名称= [MODELNAME“/ CRC子系统”]。open_system(系统名称);

参数设置

  • 多项式

CRC-CCITT在IEEE®802.11标准用于保护信号,服务和长度字段。行矢量[1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1]表示的多项式:

  • 初始状态

的HDL优化在演示CRC发生器块使用直接法,即,它馈送消息转换校验移位寄存器的最显著位(MSB)和不填充零处理该消息。在CRC实现的细节中可以找到这个模型。在IEEE 802.11 CRC执行的图中的802.11标准的图15-2中示出。初始状态被设置为1。

  • 最终XOR值

最后的XOR值设置为0 xffff实行补充CRC校验的人。

输入信号

此模型中的测试向量使用802.11标准中指定的示例DBPSK信号。使用CRC_length零填充的测试数据在流模式下以16位/样本处理。参数dataIn_width,即CRC发生器输入端口数据的端口宽度,定义了数据处理速度。MLEN定义在控制信号重新开始,endIn和validIn周期。DLEN定义validIn信号的脉冲宽度。输入信号在配置InitFcn中的回调函数。模型属性对话框。

% DBPSK数据[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0crc_len = 16;%垫crc_len零MSG = [零数据(1,crc_len)];dataIn_width = 16;MLEN =长度(MSG)/ dataIn_width;DLEN =长度(数据)/ dataIn_width;

在本例中,您可以将dataIn_width更改为8、4、2、1位,以满足您的设计需求。例如,如果您正在处理长度为56的数据,除了填充8位零和使用dataIn_with你可以选择dataIn_width为8,以确保MLEN和DLEN都是整数。

输出信号

使用以下命令运行模型:

sim (modelname);

几个关键的信号已经登录到工作区。这些信号可以在逻辑分析仪窗口中查看。功能commcrchdl_plot显示了如何设置逻辑分析仪显示器。对于逻辑分析仪系统对象™的更多信息,请参考dsp.LogicAnalyzer

h = commcrchdl_plot (dataIn startIn、endIn validIn,...dataOut_gen、startOut_gen endOut_gen validOut_gen,...dataIn_det、dataOut_det startOut_det、endOut_det validOut_det,犯错);

数据输入startInendIn,validIn被输入的数据和控制信号到HDL CRC发生器。dataOut_gen(CRC发生器的输出)显示与校验消息所附每dataIn_width每样本比特。您可以阅读校验时endOut_gen在输出波形高。价值0x5B57相匹配的CRC-16 FCS在802.11标准第15.2.3.6指定。dataIn_det示出了具有损坏的校验该消息。dataOut_det显示CRC检测器的消息输出。发现错误时的犯错信号为高。犯错时有效endOut_det活跃。

初始延迟在CRC发生器和检测器的输出引入。您可以使用以下命令计算初始延迟:

initial_delay_gen = crc_len / dataIn_width + 2;initial_delay_det = 4 * crc_len / dataIn_width + 4;

检查并生成HDL代码

要检查并生成这个例子中的HDL代码,你必须有一个HDL编码器™许可证。

您可以使用这些命令makehdl(subsystemname)makehdltb (subsystemname)为子系统生成HDL代码和testbenchHDL CRC在变送器HDL CRC在接收器

指定subsystemname为 'commcrchdl / CRC子系统/ HDL CRC在变送器' 或 'commcrchdl / CRC子系统/ HDL CRC在接收器'。

选定参考

  1. IEEE 802.11:无线局域网介质访问控制(MAC)和物理层(PHY)规范。(2007修订)。IEEE-SA。2007年6月12日。

  1. 朱塞佩坎波贝洛,朱塞佩·帕娜,马可·鲁索。“并行CRC的实现,”IEEE交易的计算机上,第52卷,no。2003年10月,第1312-1319页。