|
最近在做FPGA影像處理。發現測試影像載入沒有好方法,自己寫了一個。發表在自己的部落格上: c1 l0 v1 r2 y. {2 Y( Y9 M
verilog中讀取BMP檔
4 I" p! C8 w1 Q. z, r3 N2 r( \程式碼如下:- module test;- q% s7 }5 z) G; g" E4 ^5 ~1 g% I3 Y, V
- integer fileId, i, cc;
" F5 U3 O4 _" e: y3 k - reg [7:0] bmp_data [0:2000000];
9 K) _. W: p: o k9 M/ _ - integer bmp_width, bmp_hight, data_start_index, bmp_size;+ {8 x" c/ X/ d! h8 S
- 8 }$ L9 T. N3 g. L6 Y7 ?' a
- initial begin
# _, K# U1 k1 i4 g- F" z" n h* [ - fileId = $fopen("gray.bmp","rb");; y' F* f" e# t b- \+ m; }
- cc = $fread(bmp_data, fileId);2 ~( y6 p: i. w4 U$ \
- bmp_width = {bmp_data[21],bmp_data[20],bmp_data[19],bmp_data[18]};5 }3 I+ h8 z6 z+ I8 P$ r: M' c: k/ j
- bmp_hight = {bmp_data[25],bmp_data[24],bmp_data[23],bmp_data[22]};, u- T- [9 l3 {. L2 B
- data_start_index = {bmp_data[13],bmp_data[12],bmp_data[11],bmp_data[10]};
/ O3 ]# Z! T5 F/ Z* z) F5 S& ~ - bmp_size = {bmp_data[5],bmp_data[4],bmp_data[3],bmp_data[2]};- I$ Z6 ]- Q& Y2 k
- for(i = data_start_index; i < bmp_size; i = i + 1) begin( n+ J/ F* a2 l3 O5 x% W3 y/ _: ^
- $display("%h",bmp_data[i]);
9 w- S7 k. o* d" W% y: P/ p4 h - end
6 f1 G$ F7 C2 T" v2 J$ X - $fclose(fileId);3 P% n6 l. @) {/ ?
- end% P7 D5 ?8 \; H" ^
- endmodule
複製代碼 資料格式沒有解開,要用自己排。 |
|