Chip123 科技應用創新平台

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

作者: walltsou    時間: 2011-1-21 10:24 AM
標題: Verilog testbench直接載入BMP檔
最近在做FPGA影像處理。發現測試影像載入沒有好方法,自己寫了一個。發表在自己的部落格上
- P* x/ f5 r/ v% y2 D& ]$ C* Tverilog中讀取BMP檔
2 n; T& \+ \8 d* ^1 t8 j程式碼如下:
  1. module test;
      e/ Z9 |1 w7 H. x9 l
  2.   integer fileId, i, cc;' E- A) g. ~! p- G% A+ J
  3.   reg [7:0]  bmp_data [0:2000000];
    5 \0 i& m) Q' U8 y6 Y7 L) A
  4.   integer bmp_width, bmp_hight, data_start_index, bmp_size;
    * d! |5 R( s% q1 P# g6 g
  5. 8 W5 I  Z8 O9 l) p
  6.   initial begin
    2 G$ Y$ V$ ?& @/ P; s! t4 Q7 o
  7.     fileId = $fopen("gray.bmp","rb");. G: T: w! v- z3 j( z) w
  8.     cc = $fread(bmp_data, fileId);5 v. o# Y' @5 R
  9.     bmp_width = {bmp_data[21],bmp_data[20],bmp_data[19],bmp_data[18]};
    $ H% L9 b' l/ a4 g1 v# q% J$ K
  10.     bmp_hight = {bmp_data[25],bmp_data[24],bmp_data[23],bmp_data[22]};
    7 z* H/ G# q% s* h
  11.     data_start_index = {bmp_data[13],bmp_data[12],bmp_data[11],bmp_data[10]};4 V6 |" P  i5 `3 O0 I' t' S
  12.     bmp_size  = {bmp_data[5],bmp_data[4],bmp_data[3],bmp_data[2]};
    " f, g! [1 x9 S
  13.     for(i = data_start_index; i < bmp_size; i = i + 1) begin# T3 v' ~0 G' K) e( w0 F" [2 T
  14.       $display("%h",bmp_data[i]);$ a; I/ S' \6 w% }% k3 x  S
  15.     end
    ( r% j2 Q6 p( m& X
  16.     $fclose(fileId);
    $ m, w$ ]4 y% \" K5 F
  17.   end* q2 o% @: [7 e, l8 R
  18. endmodule
複製代碼
資料格式沒有解開,要用自己排。
作者: fufu1119    時間: 2011-4-20 01:35 PM
感謝分享, 有機會也來試試看, 我之前是將圖檔轉成文字檔, 然後在讀進系統做模擬使用.
作者: alfred99    時間: 2011-9-14 10:10 AM
Thanks a lot!!
- b8 s# @& J# J( T學到東西了!!
作者: KaiChuinLim@FB    時間: 2015-8-29 11:58 AM
注意讀到的影像是反的(下至上, 右到左)




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