0

VHDLコードの画像操作部分を書きました。テストのために、Matlab と比較的単純なテストベンチ (ファイルから入力に値を入力するだけ) を使用して、ピクセル値のファイルを作成しました。結果を新しいファイルに書き込んで、結果を処理して結果の画像を確認したかったのです。

コードがコンパイルされ、テストベンチが実行されます。どこかで停止するかどうかを確認するために入力したすべてのレポートが表示されますが、結果を含むファイルは空のままです。print も writeline も何もしていないようです。ファイルが存在し、Vivado のプロジェクトに追加されるため、パス全体を記述する必要はありません。シミュレータ出力に警告やエラーはありません。

hereおよびhereからファイルへの書き込みコードを取得し、それを少し拡張して、クロックごとにファイルへの書き込みを行い、上部にキャプションを追加しました。

color_out(0) は出力の一部です。color_out_v は出力有効です。

何か案は?私は何が欠けていますか?

Verify_data_process : process
variable my_line : line; 
file l_file      : TEXT;        -- open write_mode is "color_out.txt";   
begin -- process
file_open(l_file, "C:\Users\vevo\branches\Vivado_IP\repo\testing_data\color_out.txt", write_mode);
  wait until clk128_tb = '1';
    print(l_file, "R G B" );

    if(color_out_v = '1') then
    report "Color_out";
        write(my_line, integer'(to_integer(color_out(0).R)));
        write(my_line, integer'(to_integer(color_out(0).G)));
        write(my_line, integer'(to_integer(color_out(0).B)));
        writeline(l_file, my_line);
    report "write line";
    end if;
    file_close(l_file);
end process;
4

2 に答える 2

0

コメントできないので、回答として投稿します。Matthew のように、「コーディングの問題」は見当たりません。あなたはあなたの行に整数を書いていますが。それらを文字列に変換してみてください。問題がある可能性があります。

たとえば、この関数を使用できます。

FUNCTION to_string (value : integer) RETURN string IS

BEGIN

RETURN integer'image(value);

END FUNCTION to_string;
于 2016-05-13T08:46:44.447 に答える