|
最近在做FPGA影像處理。發現測試影像載入沒有好方法,自己寫了一個。發表在自己的部落格上. M+ W9 R& {4 I! R
verilog中讀取BMP檔
" K. d0 b' q+ P; e程式碼如下:- module test;" H, k+ L+ d# l6 T% F. y5 D$ K
- integer fileId, i, cc;2 r5 R8 J) ]- y9 V$ q- ~- M5 R; \
- reg [7:0] bmp_data [0:2000000];
! m# e; n# I+ f5 f% B' [ - integer bmp_width, bmp_hight, data_start_index, bmp_size;) U4 L$ K5 y: P' `6 L6 M
- 5 |( t$ \* v/ r |, K
- initial begin8 ]' X+ h8 G" c5 s! u& D. `4 \
- fileId = $fopen("gray.bmp","rb");, t g0 O& b% h/ A8 i
- cc = $fread(bmp_data, fileId);* _# K/ t. H( y0 {! R4 q ]& T7 c: R
- bmp_width = {bmp_data[21],bmp_data[20],bmp_data[19],bmp_data[18]};
8 I5 H/ O7 s* H8 K# p - bmp_hight = {bmp_data[25],bmp_data[24],bmp_data[23],bmp_data[22]};* C4 H! H# r' b) y6 L- L
- data_start_index = {bmp_data[13],bmp_data[12],bmp_data[11],bmp_data[10]};
9 Z: u6 i b7 y4 @ - bmp_size = {bmp_data[5],bmp_data[4],bmp_data[3],bmp_data[2]};* h }0 t/ M* ~$ X3 g. M/ r
- for(i = data_start_index; i < bmp_size; i = i + 1) begin- ]: |( Q; P6 Z' R, u
- $display("%h",bmp_data[i]);/ V" k- L8 E8 R: u3 ]# U
- end+ j& H3 K |9 ]; a' O
- $fclose(fileId);
; _" V1 R. {! G% K, P$ { - end( I0 M0 G+ T8 b7 |8 J/ t
- endmodule
複製代碼 資料格式沒有解開,要用自己排。 |
|