|
最近在做FPGA影像處理。發現測試影像載入沒有好方法,自己寫了一個。發表在自己的部落格上
; B$ N! q" K3 mverilog中讀取BMP檔) Y; b& }4 o5 l9 O0 T
程式碼如下:- module test;
5 M. ?3 a0 q8 }0 X" X U2 C - integer fileId, i, cc;" }% x5 l9 w, H8 g |+ L" M
- reg [7:0] bmp_data [0:2000000];% _) u! ^( S& g+ I ?; l2 l: _* k7 P2 ?
- integer bmp_width, bmp_hight, data_start_index, bmp_size;" s, o; A9 K0 ` X2 q
+ [" x. ^( a& d n- initial begin! d- @3 I/ M& \3 f# s) y: T4 j4 m
- fileId = $fopen("gray.bmp","rb");) p0 F) S' j0 g
- cc = $fread(bmp_data, fileId);
- e" x' p/ q& o0 ]( D6 w - bmp_width = {bmp_data[21],bmp_data[20],bmp_data[19],bmp_data[18]};8 [- l. l5 j! j2 s# _( U, u
- bmp_hight = {bmp_data[25],bmp_data[24],bmp_data[23],bmp_data[22]};, @4 h( I$ I2 n6 y9 p: n
- data_start_index = {bmp_data[13],bmp_data[12],bmp_data[11],bmp_data[10]};
# x1 c/ G" V& _7 K - bmp_size = {bmp_data[5],bmp_data[4],bmp_data[3],bmp_data[2]};
* [$ i6 ]8 A4 ?# F3 F/ {3 r8 T2 F - for(i = data_start_index; i < bmp_size; i = i + 1) begin
/ r; Z, ]6 \( G8 g; w" g - $display("%h",bmp_data[i]);& W) E: D0 s+ {1 a7 B$ A
- end3 V8 a9 Y: ]6 C& q ^$ x, \9 q# D5 Q
- $fclose(fileId);
+ ~3 W [- v. ]: w! i, i# x; j+ y - end" A- P* z9 y" }; E/ T! y4 o
- endmodule
複製代碼 資料格式沒有解開,要用自己排。 |
|