|
最近在做FPGA影像處理。發現測試影像載入沒有好方法,自己寫了一個。發表在自己的部落格上* M5 J2 x0 `* r1 ?, Y, n9 }1 _
verilog中讀取BMP檔8 W- s! b1 M) b- a$ A5 j
程式碼如下:- module test;
/ G' ?- b+ j* `; K. S+ H! |3 H3 ^ - integer fileId, i, cc;
8 }1 _/ X {/ J - reg [7:0] bmp_data [0:2000000];
# h, x& X% I) ]' x - integer bmp_width, bmp_hight, data_start_index, bmp_size;5 p9 k9 p: ]7 a' _: f+ y. x
( i4 b2 m2 W% \2 \3 h a- initial begin* A3 j" H8 A1 `4 O8 s& F
- fileId = $fopen("gray.bmp","rb");3 c0 m+ O% ^: h% j- ` S
- cc = $fread(bmp_data, fileId);4 ~* s$ I0 o. G& Y. M$ g3 z
- bmp_width = {bmp_data[21],bmp_data[20],bmp_data[19],bmp_data[18]};" } z% O3 _+ u$ c5 }7 ]/ s3 o
- bmp_hight = {bmp_data[25],bmp_data[24],bmp_data[23],bmp_data[22]};1 @, K2 f5 `* f
- data_start_index = {bmp_data[13],bmp_data[12],bmp_data[11],bmp_data[10]};& ^9 d5 p! w1 e1 b9 b e6 R5 \
- bmp_size = {bmp_data[5],bmp_data[4],bmp_data[3],bmp_data[2]};1 E" \5 v9 a( Z7 W. U3 q2 R9 j
- for(i = data_start_index; i < bmp_size; i = i + 1) begin" T2 p) g0 O. q' C; G0 B; Q
- $display("%h",bmp_data[i]);9 }0 A; C" x! {
- end9 X/ k" c; k. F& Z
- $fclose(fileId);
* o/ d! Q# d8 v0 n4 N - end
/ [7 |' Z3 r, i; m9 N `+ x - endmodule
複製代碼 資料格式沒有解開,要用自己排。 |
|