主要内容

使用HDL优化的CRC库块

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

介绍

该模型展示了如何使用HDL优化CRC生成器和检测器库块进行仿真和HDL代码生成。采用802.11标准作为应用程序。要了解更多关于HDL对HDL优化CRC块的支持,金宝app请参阅文档.要了解更多块中使用的算法,请参阅[2]中的文章。

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

modelname =“commcrchdl”;open_system (modelname);

在这个模型中,顶层子系统CRC子系统包含HDL优化的CRC生成器和检测器模块。这个子系统也有AddNoise子系统,您可以选择将噪声添加到生成的CRC校验和。使用实例打开该子系统:

systemname = [modelname“/ CRC子系统”];open_system (systemname);

参数设置

  • 多项式

CRC-CCITT在IEEE®802.11标准中用于保护SIGNAL、SERVICE和LENGTH字段。行向量[1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1]表示多项式:

  • 初始状态

演示中的HDL优化CRC Generator块使用了Direct方法,即它将消息输入校验和移位寄存器的最有效位(MSB),并处理消息而不填充零。CRC实现的细节可以在这个模型.IEEE 802.11 CRC实现的框图如图15-2中的802.11标准所示。初始状态设为1。

  • 最终XOR值

最终的XOR值设置为0 xffff实现CRC校验和的个位补码。

输入信号

这个模型中的测试向量使用802.11标准中指定的示例DBPSK信号。用CRC_length零填充的测试数据在流模式下以16位/样本处理。参数dataIn_width,是CRC Generator输入端口dataIn的端口宽度,定义了数据处理速度。mlen定义控制信号startIn, endIn和validIn中的周期。dlen定义validIn信号的脉冲宽度。输入信号配置在InitFcn的回调函数模型属性对话框。

% DBPSK数据数据= [0 1 0 1 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 1 1 0 0 0 0 0 0 0 0 0 0 0 0crc_len = 16;% pad crc_len 0MSG = [data zeros(1,crc_len)];dataIn_width = 16;mlen =(味精)/ dataIn_width长度;dlen =(数据)/ dataIn_width长度;

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

输出信号

使用以下命令运行模型:

sim (modelname);

工作空间中已经记录了几个关键信号。这些信号可以在逻辑分析仪窗口中查看。函数commcrchdl_plot显示了如何设置逻辑分析仪显示。有关Logic Analyzer System对象™的更多信息,请参阅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,犯错);

dataInstartInendIn,validIn为HDL CRC发生器的输入数据和控制信号。dataOut_gen(CRC生成器的输出)显示带有附加校验和的消息dataIn_width位/样品。您可以读取校验和endOut_gen是高输出波形。的值0 x5b57符合802.11标准第15.2.3.6节规定的CRC-16 FCS。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 Coder™许可证。

您可以使用这些命令makehdl (subsystemname)makehdltb (subsystemname)为子系统生成HDL代码和测试台HDL CRC在发射机中的应用接收器内的HDL CRC

将子系统名指定为“commcrchdl/CRC子系统/HDL CRC in Transmitter”或“commcrchdl/CRC子系统/HDL CRC in Receiver”。

选择引用

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

  1. Giuseppe Campobello, Giuseppe Patane, Marco Russo。“并行CRC实现”,IEEE计算机汇刊号,第52卷。10,第1312-1319页,2003年10月。