Chip123 科技應用創新平台

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

作者: walltsou    時間: 2011-1-21 10:24 AM
標題: Verilog testbench直接載入BMP檔
最近在做FPGA影像處理。發現測試影像載入沒有好方法,自己寫了一個。發表在自己的部落格上
) j: \) V% @  i" zverilog中讀取BMP檔% ~8 U; l, z7 Q1 ^
程式碼如下:
  1. module test;
    - m1 K$ S6 d5 r9 {5 E$ H5 K6 w
  2.   integer fileId, i, cc;
    $ }" i3 d  p' H$ a7 l
  3.   reg [7:0]  bmp_data [0:2000000];. Q8 x+ O% {7 x, H+ h1 T$ O
  4.   integer bmp_width, bmp_hight, data_start_index, bmp_size;1 R8 @* S0 Z: ^5 I# t- M

  5. $ g' z( \5 V5 u+ s( Q( V* y; `
  6.   initial begin
    5 n7 e! l3 d2 I. N0 v; A. m
  7.     fileId = $fopen("gray.bmp","rb");
    2 |- F- Z- e, M4 ~9 |
  8.     cc = $fread(bmp_data, fileId);* v0 \& L" X6 s  y
  9.     bmp_width = {bmp_data[21],bmp_data[20],bmp_data[19],bmp_data[18]};( C$ n+ Q# ?/ h. z* x7 P. w
  10.     bmp_hight = {bmp_data[25],bmp_data[24],bmp_data[23],bmp_data[22]};6 S/ C/ L0 l" W; _. U
  11.     data_start_index = {bmp_data[13],bmp_data[12],bmp_data[11],bmp_data[10]};
    9 u7 t& f3 ]8 e3 a
  12.     bmp_size  = {bmp_data[5],bmp_data[4],bmp_data[3],bmp_data[2]};
    8 f$ e% S/ r: ~+ }8 I
  13.     for(i = data_start_index; i < bmp_size; i = i + 1) begin
    9 L5 s" C. T5 L/ \% }! n5 q: p1 J# f
  14.       $display("%h",bmp_data[i]);
    6 r" ~% a; Z: G5 m2 }, [
  15.     end  t) Q2 i* D3 y  o# }# O) A
  16.     $fclose(fileId);
    ; M! G  X2 T1 E
  17.   end9 p, k) e$ B( Z! ?4 ?8 r
  18. endmodule
複製代碼
資料格式沒有解開,要用自己排。
作者: fufu1119    時間: 2011-4-20 01:35 PM
感謝分享, 有機會也來試試看, 我之前是將圖檔轉成文字檔, 然後在讀進系統做模擬使用.
作者: alfred99    時間: 2011-9-14 10:10 AM
Thanks a lot!!
/ Z  S- X  r% d, u3 i學到東西了!!
作者: KaiChuinLim@FB    時間: 2015-8-29 11:58 AM
注意讀到的影像是反的(下至上, 右到左)




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