忍者ブログ

[PR]

2025年04月26日
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

ファイルへの入出力

2008年11月25日

テストベンチの際に、ファイルへ任意の値を入出力するやり方

1.まず、use ieee.std_logic_textio.all; と、use std.textio.all; を宣言。

2.ファイル型を定義
  file read_file text open read_mode is "input.txt"; --入力ファイル
  file write_file text open write_mode is "output.txt" --出力ファイル

3.入力ファイルから値の読み出し(値は2進数)
  variable read_line : line;   --変数のライン型を定義
  variable read_value : std_logic_vector();

  readline(read_file,read_line); --ファイルの一行を読み出し
  read(read_line,read_value); --行中の値を読み出し(信号ではなく変数)
  hoge <= read_value; --信号に代入して、後は煮るなり焼くなり

4.出力ファイルへの書き出し
  variable write_line : line;
  variable write_value : std_logic_vector(); --signalでもok!

  write(write_line,write_value,right,10); --10の文字幅で値を行に右詰め格納(値は信号可)
  writeline(write_file,write_line); --行をファイルに書き出し

5.バリエーション
  oread(); owrite(); --read,writeの8進数ver. bit数は3の倍数
  hread(); hwrite(); --read,writeの16進数ver. bit数は4の倍数
  条件に満たない場合は適当に&で連結して任意の倍数bit長にしましょう。

--追記
16進数をファイルからreadする場合は
型の大きさより小さい数は、空白を0で埋めなきゃ駄目ですね。
Excelでもそうですしファイル読み取り全般に言えることらしいです。

PR
Comment
  Vodafone絵文字 i-mode絵文字 Ezweb絵文字