Chip123 科技應用創新平台

標題: Verilog testbench直接載入BMP檔 [打印本頁]

作者: walltsou    時間: 2011-1-21 10:24 AM
標題: Verilog testbench直接載入BMP檔
最近在做FPGA影像處理。發現測試影像載入沒有好方法,自己寫了一個。發表在自己的部落格上
$ z. \) R2 G& L/ v4 Vverilog中讀取BMP檔
8 b" |1 @' {. i; y5 n) M4 b% N. V程式碼如下:
  1. module test;
    / o! B3 v6 w. X( c4 n: P
  2.   integer fileId, i, cc;
    4 e. S! R' _* l, Q0 v
  3.   reg [7:0]  bmp_data [0:2000000];$ J: ^8 n( t" [: k
  4.   integer bmp_width, bmp_hight, data_start_index, bmp_size;. p8 u. |6 }; n* A

  5. ( h4 ]$ M6 z# o9 y8 [4 i8 m" R( X" K
  6.   initial begin
    2 p! e& r  }0 Y% j5 J8 [  J" Q) Y
  7.     fileId = $fopen("gray.bmp","rb");- R+ O+ ^1 L" G/ f+ H/ K8 d
  8.     cc = $fread(bmp_data, fileId);) o6 y  I! E2 B
  9.     bmp_width = {bmp_data[21],bmp_data[20],bmp_data[19],bmp_data[18]};
    0 I# s) ~+ e! Q
  10.     bmp_hight = {bmp_data[25],bmp_data[24],bmp_data[23],bmp_data[22]};
    % ~+ d+ u; y6 g5 e' n
  11.     data_start_index = {bmp_data[13],bmp_data[12],bmp_data[11],bmp_data[10]};
    , c- W. \3 Z+ R2 O4 Y
  12.     bmp_size  = {bmp_data[5],bmp_data[4],bmp_data[3],bmp_data[2]};
    7 x: X) h6 _& o6 p8 @
  13.     for(i = data_start_index; i < bmp_size; i = i + 1) begin
    $ v& O# U4 I% G9 X( ~! O
  14.       $display("%h",bmp_data[i]);
    / e7 E5 C6 }6 a3 `/ |7 P8 j( I* A
  15.     end
    ' G; d! k7 t' K5 @) I1 n
  16.     $fclose(fileId);
    : {: X5 I# F3 W0 h  R7 p
  17.   end
    : b* |8 X5 P) f
  18. endmodule
複製代碼
資料格式沒有解開,要用自己排。
作者: fufu1119    時間: 2011-4-20 01:35 PM
感謝分享, 有機會也來試試看, 我之前是將圖檔轉成文字檔, 然後在讀進系統做模擬使用.
作者: alfred99    時間: 2011-9-14 10:10 AM
Thanks a lot!!
0 S8 U; E) k8 g/ W4 O8 P1 ?學到東西了!!
作者: KaiChuinLim@FB    時間: 2015-8-29 11:58 AM
注意讀到的影像是反的(下至上, 右到左)




歡迎光臨 Chip123 科技應用創新平台 (http://www.chip123.com/) Powered by Discuz! X3.2