上堂课讲到了测试函数的内容,如何测试呢?要通过写测试文件来检验函数的正确与否。这样的方法不仅在MATLAB中有效,对于c、verilog等语言都有效。
一起来学习测试程序吧。真正的干货!本程序还附带了字节转换的内容。
为什么有这段?当年在研发卫星地球站的时候,需要和ARM中的结果进行比对。于是留下了这段代码!
%*********** 函数测试程序 ************%
%%%% File: test_function_crc_itu.m %%%%
%% date: 2010-04-07 author: 算法工匠 %%
%%% 程序说明
% 测试函数function_crc_itu结果和存储表法是否一致。
% 函数按照ITU定义的生成多项式 G(x) = x^16 + x^12 + x^5 + 1
%%********** 程序主体 **********%%
data_binary = randint(1,100);
% 矩阵运算函数
crc_result = function_crc_itu(data_binary);
% 比特运算函数
crc_result1 = function_crc_itu_v1(data_binary);
% 用于查表法计算的等效检验。
% 在计算机中使用字节的概念。
%%%%% 字节转换
for i = 1:length(data_binary)/4
% 高位进寄存器
data_16(i) = 2^3*data_binary((i-1)*4+1) + 2^2*data_binary((i-1)*4+2) + 2*data_binary((i-1)*4+3) + data_binary((i-1)*4+4) ;
end
for i = 1:4
% 寄存器0是高位
result_16(i) = 2^3*crc_result((i-1)*4+1) + 2^2*crc_result((i-1)*4+2) + 2*crc_result((i-1)*4+3) + crc_result((i-1)*4+4) ;
end
%%%% 文本存储
data_hex = dec2hex(data_16);
fid = fopen('data_hex.txt', 'wt');
fprintf(fid, '%s ', data_hex);
fclose(fid);
result_hex = dec2hex(result_16);
fid = fopen('result_hex.txt', 'wt');
fprintf(fid, '%s ', result_hex);
fclose(fid);
%%% 结论
% 测试结果表明函数正确。
% function_crc_itu_v1适合在FPGA中使用。
% 2016-11-17
本程序中测试的函数不是上堂课给出的CRC生成函数,需要同学们自己改动相关语句来完成上堂课所写的函数的测试。自己动手,丰衣足食。不能老是靠老师扶着走。调完程序后还要干什么呢?写报告。软件测试报告或者仿真报告是必须要写的。
审核编辑:刘清
-
寄存器
+关注
关注
31文章
5308浏览量
119979 -
ITU
+关注
关注
1文章
25浏览量
14839 -
Verilog语言
+关注
关注
0文章
113浏览量
8211
原文标题:计算机通信与网络v2 实验课程(6)
文章出处:【微信号:gh_30373fc74387,微信公众号:通信工程师专辑】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论