上堂課講到了測試函數的內容,如何測試呢?要通過寫測試文件來檢驗函數的正確與否。這樣的方法不僅在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文章
5343瀏覽量
120379 -
ITU
+關注
關注
1文章
25瀏覽量
14862 -
Verilog語言
+關注
關注
0文章
113瀏覽量
8237
原文標題:計算機通信與網絡v2 實驗課程(6)
文章出處:【微信號:gh_30373fc74387,微信公眾號:通信工程師專輯】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論