Engee 校验和计算¶
让我们为第 21.3.10.3 节中的 802.11-2016 示例生成 CRC-8 校验和,并将其与预期校验和进行比较。
模型描述¶
为了实现 802.11-2016 标准中规定的校验和算法变体,让我们配置General CRC Generator
块,使其与多项式$z^8 + z^2 + z + 1$ 配合使用,将初始位状态设为 1,将 XOR 位设为 1,并选择直接方法。
模拟长度为 0,即处理一个来自Input
的输入报文。该数据块在 802.11-2016 第 21.3.10.3 节中作为示例给出。报文包括位 {m0,....m22} 的值为 [1 0 0 0 1 1 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 0 0 1 1 1 1],它们 {c7, ..., c0} 的预期校验和为 [0 0 0 1 1 1 0 0 0]。该模型有用于比特比较计算校验和与预期校验和的模块。每次比较器输入与存储在比较器中的校验和相匹配时,相应的输出位就会取值1
。
In [ ]:
model_name = "generate_crc_8_checksum";
model_name in [m.name for m in engee.get_all_models()] ? engee.open(model_name) : engee.load( "$(@__DIR__)/$(model_name).engee");
res = engee.run( model_name );
collect(res["comparedOut"]).value[end]
Out[0]:
结论¶
我们已经验证了General CRC Generator
块的运行,并根据 802.11-2016 实现了校验和计算。