|
最近在做FPGA影像處理。發現測試影像載入沒有好方法,自己寫了一個。發表在自己的部落格上
* j+ y( m+ `6 Gverilog中讀取BMP檔# d2 u- h9 Y' t( @( y0 E
程式碼如下:- module test;% n7 x( F9 e1 }, u; n3 X! h5 ]' T
- integer fileId, i, cc;, V8 Y' h/ n1 A! U
- reg [7:0] bmp_data [0:2000000];
$ e# ~* A5 a. S8 [ f7 `4 B" X - integer bmp_width, bmp_hight, data_start_index, bmp_size;
6 o7 o* V" |1 i) F* S' `: y - $ k+ u% O: \# \# r) K2 j
- initial begin* ~8 V3 R' |* S8 D( j
- fileId = $fopen("gray.bmp","rb");: x; k y: N0 m) |+ j
- cc = $fread(bmp_data, fileId);
9 `9 o' y, k$ v7 `- N, x - bmp_width = {bmp_data[21],bmp_data[20],bmp_data[19],bmp_data[18]};9 v* F! O1 j0 v% r/ t
- bmp_hight = {bmp_data[25],bmp_data[24],bmp_data[23],bmp_data[22]};$ Q" R3 k/ H: O2 b- X0 D" U
- data_start_index = {bmp_data[13],bmp_data[12],bmp_data[11],bmp_data[10]};/ M1 f. e: d+ Q ~% o+ U) M
- bmp_size = {bmp_data[5],bmp_data[4],bmp_data[3],bmp_data[2]};% R# `: E' E" B* N7 z' F! ?! m
- for(i = data_start_index; i < bmp_size; i = i + 1) begin# ]' R- t2 _. P7 q, b f1 a
- $display("%h",bmp_data[i]);% i* B, T/ S! {: f" a# P
- end' [) W5 u: a+ K. Q" n$ m: J4 S
- $fclose(fileId);5 x; J) [0 n. N1 Q m/ E6 I6 ^5 y
- end
) k( ~: a7 N2 R' u; G* W; m - endmodule
複製代碼 資料格式沒有解開,要用自己排。 |
|