|
最近在做FPGA影像處理。發現測試影像載入沒有好方法,自己寫了一個。發表在自己的部落格上3 P- v1 M+ Q2 W8 E
verilog中讀取BMP檔* V/ r/ R) r5 G8 T1 ]
程式碼如下:- module test;' V9 l' T# Y4 e# Q6 i
- integer fileId, i, cc;
' p* x% ~- e1 E2 u - reg [7:0] bmp_data [0:2000000];
, W1 p3 J* G% v/ v/ w2 y - integer bmp_width, bmp_hight, data_start_index, bmp_size;
+ O8 n; r; L ^9 @4 ^/ B0 M - ( \3 ~2 i0 y" _. Z1 u* `( m9 }* S
- initial begin, U' b. H) {8 U4 m ?4 t
- fileId = $fopen("gray.bmp","rb");8 Q# g& M: S) }+ W# Y
- cc = $fread(bmp_data, fileId);
2 n% T5 E" ]# C5 }! H) k - bmp_width = {bmp_data[21],bmp_data[20],bmp_data[19],bmp_data[18]};% L& ]7 ^( p$ A* e! V- ]# K
- bmp_hight = {bmp_data[25],bmp_data[24],bmp_data[23],bmp_data[22]};
# R* c7 V7 _" H - data_start_index = {bmp_data[13],bmp_data[12],bmp_data[11],bmp_data[10]};- O3 o& o% F, Z8 S1 [* L1 {
- bmp_size = {bmp_data[5],bmp_data[4],bmp_data[3],bmp_data[2]};" [ a2 L3 L! @3 A6 t. @7 `
- for(i = data_start_index; i < bmp_size; i = i + 1) begin3 \; M m/ v: `' a( x
- $display("%h",bmp_data[i]);1 I& m& q4 m, P$ ^ q8 w* ~
- end* T4 ]1 k+ L2 ^
- $fclose(fileId);
* a/ \2 \5 z, E - end" \, a7 Z( {3 t f
- endmodule
複製代碼 資料格式沒有解開,要用自己排。 |
|