在verilog中要使用影像處理,模擬時需要一張圖檔做為驗證用。
大部分verilog都是讀取文字檔,所以圖檔要轉成文字檔。
但圖檔會修改,用以測試運行狀況。直接修改圖檔是最直接,一但轉成文字又失去感覺。
所以利用verilog 2001的檔案功能,就可以做到直接讀取BMP檔。
這樣修改圖檔進行測試會方便許多。
程式如下:
module test;
integer fileId, i, cc;
reg [7:0] bmp_data [0:2000000];
integer bmp_width, bmp_hight, data_start_index, bmp_size;
initial begin
fileId = $fopen("gray.bmp","rb");
cc = $fread(bmp_data, fileId);
bmp_width = {bmp_data[21],bmp_data[20],bmp_data[19],bmp_data[18]};
bmp_hight = {bmp_data[25],bmp_data[24],bmp_data[23],bmp_data[22]};
data_start_index = {bmp_data[13],bmp_data[12],bmp_data[11],bmp_data[10]};
bmp_size = {bmp_data[5],bmp_data[4],bmp_data[3],bmp_data[2]};
for(i = data_start_index; i < bmp_size; i = i + 1) begin
$display("%h",bmp_data[i]);
end
$fclose(fileId);
end
endmodule
這個程式並沒有將整個BMP檔解開,只是取得資料。
至於資料格式就看個人應用。
因為應用上一般只會針對一種資料格式。
所以就要自己想辦法去排了。
沒有留言:
張貼留言