|
最近在做FPGA影像處理。發現測試影像載入沒有好方法,自己寫了一個。發表在自己的部落格上 y$ Y G H. l# u' {8 l
verilog中讀取BMP檔
2 [& z' d( X4 L程式碼如下:- module test;. N: n% L( j& L' b
- integer fileId, i, cc;
5 ?2 \! R5 a: m- ] - reg [7:0] bmp_data [0:2000000];
7 _4 \& z; \/ z* \" l - integer bmp_width, bmp_hight, data_start_index, bmp_size;
/ ?. O# F; v5 n$ w' \
9 X8 E" v( P" W) [- initial begin
, A. E3 |+ z0 t - fileId = $fopen("gray.bmp","rb");
' t6 `, e( S, l0 Q0 C - cc = $fread(bmp_data, fileId);
6 p4 P% ^/ L0 w/ h( i9 M# E - bmp_width = {bmp_data[21],bmp_data[20],bmp_data[19],bmp_data[18]};
$ r6 B+ V8 n! {$ Q# V - bmp_hight = {bmp_data[25],bmp_data[24],bmp_data[23],bmp_data[22]};
' U7 f8 d5 W7 r - data_start_index = {bmp_data[13],bmp_data[12],bmp_data[11],bmp_data[10]}; [. n8 B; b+ Z- E! \
- bmp_size = {bmp_data[5],bmp_data[4],bmp_data[3],bmp_data[2]};6 H s8 Q3 F) k, K
- for(i = data_start_index; i < bmp_size; i = i + 1) begin. ^& A& H' a$ R$ }$ U9 X! X2 m9 t
- $display("%h",bmp_data[i]);
- a$ v; E. z1 D! Z! T* T - end
3 O' \( p( z& q% K0 _ A - $fclose(fileId);
: d" D3 \3 X1 X% J% H - end5 e8 } E+ d! x* y% R4 ]; o3 `
- endmodule
複製代碼 資料格式沒有解開,要用自己排。 |
|