2007年06月23日

ModelSim TIPS 「ModelSimでビットマップ操作」

シミュレーションを行う時、バイナリファイルを操作したいと思うことが多々ある。VHDLで出来なくは無いのだが結構面倒くさい(そのうちこれのやり方もBlogに書こうと思う)ので、Windows+ModelSimSEの環境限定でバイナリファイルを読み書き出来るDLLを作成してみた。ついでに私は仕事で画像ファイルを扱う事が多いのでビットマップを操作出来るDLLも作成した。
このDLLはModelSimSEのFLI機能を使ってModelSimからDLLを呼び出すような形で使用する(FLIで呼び出されるDLLの作り方もそのうちBlogに書こうと思う)。

使用方法:
各DLLはそれぞれサンプルを添付しています。
ここでは代表でビットマップリードの使い方を説明します。

まず、シミュレータからDLLを呼び出してもらうためのアーキテクチャ「bmpread.vhd」を編集する必要があります。編集箇所は「attribute foreign」の「bmpread_init」以降で

./bmpread/Release/bmpread.dll;
使用するDLLのファイルを指定します。ただし後述の「MGC_WD」がある場合やModelSimの作業フォルダに存在する場合はパス部分は不要です。

dlg;
ファイル選択ダイアログを開く指定です。代わりに「fix;」と書きそれに続けてファイル名を書けばダイアログを開かず固定ファイルを使用します。この場合以降のオプションは記述出来ません。

Bitmap File Select;
ダイアログのタイトルです。

Bitmap (*.bmp)\*.bmp\All Files (*.*)\*.*\
ファイルの種類を限定する為の指定です。
フィルタコメント¥フィルタ指定¥...を複数指定出来ます。

例:
"bmpread_init ./binaryread.dll;dlg;Read File Select1;Bitmap (*.bmp)\*.bmp\All Files (*.*)\*.*\";
"bmpread_init ./binaryread.dll;fix;./test.bmp";

あとは、これを呼び出すだけです。
サンプルの「bmpread_call.vhd」を見ればだいたいわかると思います。
一切コメントがありませんが...


環境設定:
FLI機能を使用するにはWindowsの環境変数に「MGC_WD」を設定してDLLのフォルダを指定するかModelSimの作業フォルダにDLLを直接コピーしておく必要があります。(DLLの場所をVHDLで直接指定する場合は不要)
例:
MGC_WD=c:/modelsim/fli

注意:
このファイルの使用は自由ですが無保証です。

ダウンロード:
バイナリリード(バイト操作)
バイナリリード(4バイト操作)
バイナリライト(バイト操作)
バイナリライト(4バイト操作)
ビットマップリード
ビットマップライト



投稿時刻(22:44)│コメント(0)ModelSim 

この記事にコメントする

名前:
URL:
  情報を記憶: 評価: 顔   
 
 
 
最新コメント
ブログ内検索
カテゴリ別表示
月別表示
問い合わせ・連絡先
ta_bo__@livedoor.com

本サイトは以下のアクセス解析を使用しております。
基礎化粧品