以下是示例**。
module example;
reg [287:0] msg [99:0];
integer write_fid;
integer read_fid;
integer row_ptr;
integer col_ptr;
integer x;
initial begin
write_fid = $fopen("out_codeword.txt","w");
//read_fid = $fopen("test_message.txt","r");
//x = $fread(msg,read_fid);
$readmemb("test_message.txt",msg);
row_ptr = 0;
col_ptr = 0;
repeat(100) begin
//repeat(288) begin
$fwrite(write_fid,"%b ",msg[row_ptr]);//[col_ptr]);
col_ptr = col_ptr + 1;
//end
row_ptr = row_ptr + 1;
col_ptr = 0;
$fwrite(write_fid,"\n");
end$fclose(write_fid); //這句很重要
endendmodule
其中test_message.txt放外部資料,讀入到暫存器msg,再把msg輸出到out_codeword.txttest_message.txt格式如下
1100000100101001011111010101100111......【共288個0/1】
0010100110100110101000111000011110......
......
【共100行】
模組檔案寫完了,就要去測試它,簡單的小模組(比如什麼加法器分頻器),手寫測試樣例也無所謂,但是一旦邏輯複雜,而且要求測試嚴密,覆蓋所有情況的時候,就需要專門的測試樣例了。這些樣例一般體積大,數量多,而且基本不是你寫的。這就決定了,這些樣例一般是以檔案的形式給到你手上的。所以在testbench裡就需要有介面拿到這些檔案裡的測試資料。
我們可以通過ise的系統函式完成這個功能。
我們要用到的有以下幾個系統函式
乙個完整的資料迴圈應該是這樣的:檔案->暫存器階段,需要用到
$readmemb
用法如下:
reg [data_width-1 : 0] msg [data_count-1 : 0];
$readmemb("testfilepath/testfile.posfix",msg);
上面的兩行**,第一行定義了乙個位寬為data_width,長度為data_count的暫存器組;暫存器->處理->輸出暫存器 階段,不講了,跟一般的測試是一樣的。第二行把testfile.posfix裡的資料讀入了msg裡
資料檔案的格式參見博文一開始的「太長不看版」
注意readmemb是讀入二進位制資料,但不是讀入二進位制檔案。就是說,測試資料只能有『0』和『1』,但是每個0/1需要佔1個byte而不能是乙個bit
如果需要讀入的資料不是二進位制的,可以用$readmemh,這個是讀16進製制的,讀2~15進製的資料也可以用16進製制的函式來讀,不影響結果。
輸出暫存器->輸出檔案階段,需要用到
$fopen
$fclose
$fwrite
用法如下:
integer write_fid;
write_fid = $fopen("out_codeword.txt","w");
$fwrite(write_fid,"%b ",msg[row_ptr]);
不需要過多解釋,對c語言有基礎性的了解就可以看懂上面的**。 利用datafile copy將資料檔案重新命名
思路 o 利用rman對資料檔案做copy o 將資料檔案offline o switch檔名,這一步將更改控制檔案中資料檔案對應的檔名 o recover資料檔案 o 將資料檔案online,恢復生產 注 也可以利用這種思路做database copy,然後做switch database,遷移資...
Python讀取測試資料檔案
在日常測試過程中,經常遇到需要讀取測試資料檔案,這邊就涉及到乙個檔案讀取的方法。這篇文章主要以python讀取檔案的基礎方法為本,包括讀取excel檔案 yaml檔案 csv檔案。下面是具體實現方式 import openpyxl import yaml import csv from conf.c...
mysql 的資料檔案
在mysql 中每乙個 資料庫都會在定義好 或者預設 的資料目錄下存在乙個以資料庫名字命名的資料夾,用來存放該資料庫中各種表資料檔案。1 frm 檔案 與表相關的元資料 meta 資訊都存放在 frm 檔案中,包括表結構的定義資訊等。不論是什麼儲存引擎,每乙個表都會有乙個以表名命名的 frm 檔案。...