スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[VHDL-2008] to_string

VHDL-2008, The End of Verbosity!

を見ていて自分でも試してみました。(p14)


先ずはサンプルコードを見てもらったほうが早いと思います。


  • サンプルコード

  •  1|library IEEE;
     2|use IEEE.std_logic_1164.all;
     3|use IEEE.std_logic_unsigned.all;
     4|use IEEE.numeric_std.all;
     5|use IEEE.std_logic_textio.all;
     6|use std.textio.all;
     7|
     8|entity testbench is
     9|end testbench;
    10|
    11|architecture SIM of testbench is
    12|
    13|signal s_a   : std_logic_vector(7 downto 0);
    14|signal s_xor : std_logic;
    15|
    16|begin
    17|
    18|  process
    19|    variable L : line;
    20|  begin
    21|    s_a <= (others=>'0');
    22|    wait for 100 ns;
    23|    -- write(L, string'("s_a = 0 -> s_xor = "));
    24|    -- write(L, s_xor);
    25|    write(L, "s_a = " & to_string(s_a) & " -> s_xor = " & to_string(s_xor));
    26|    writeline(output, L);
    27|
    28|    s_a <= "01001000";
    29|    wait for 100 ns;
    30|    -- write(L, string'("s_a = b01001000 -> s_xor = "));
    31|    -- write(L, s_xor);
    32|    write(L, "s_a = " & to_string(s_a) & " -> s_xor = " & to_string(s_xor));
    33|    writeline(output, L);
    34|
    35|    s_a <= "11110111";
    36|    wait for 100 ns;
    37|    -- write(L, string'("s_a = b11110111 -> s_xor = "));
    38|    -- write(L, s_xor);
    39|    write(L, "s_a = " & to_string(s_a) & " -> s_xor = " & to_string(s_xor));
    40|    writeline(output, L);
    41|
    42|    wait;
    43|  end process;
    44|
    45|  s_xor <= xor s_a; -- s_xor(7) or s_xor(6) or ...
    46|
    47|end SIM;
  • 実行結果

# s_a = 00000000 -> s_xor = 0
# s_a = 01001000 -> s_xor = 0
# s_a = 11110111 -> s_xor = 1


コードでコメントアウトしている部分が今まで書いていた記述になります。
しかし、to_string を使えることでよりシンプルに記述することが出来ます。
更に to_hsringto_ostring もあります。


ちなみに -2008を付けないと以下のようなエラーが出ました。

** Error: test.vhd|25| (vcom-1136) Unknown identifier "to_string".
** Error: test.vhd|25| Bad expression in left operand of infix expression "&".
** Error: test.vhd|25| Bad expression in left operand of infix expression "&".
** Error: test.vhd|25| (vcom-1136) Unknown identifier "to_string".
** Error: test.vhd|25| No feasible entries for subprogram "write".
** Error: test.vhd|32| (vcom-1136) Unknown identifier "to_string".
** Error: test.vhd|32| Bad expression in left operand of infix expression "&".
** Error: test.vhd|32| Bad expression in left operand of infix expression "&".
** Error: test.vhd|32| (vcom-1136) Unknown identifier "to_string".
** Error: test.vhd|32| No feasible entries for subprogram "write".
** Error: test.vhd|39| (vcom-1136) Unknown identifier "to_string".
** Error: test.vhd|39| Bad expression in left operand of infix expression "&".
** Error: test.vhd|39| Bad expression in left operand of infix expression "&".
** Error: test.vhd|39| (vcom-1136) Unknown identifier "to_string".
** Error: test.vhd|39| No feasible entries for subprogram "write".
** Error: test.vhd|45| No feasible entries for prefix operator "xor".
** Error: test.vhd|45| Type error resolving prefix expression "xor" as type ieee.std_logic_1164.STD_LOGIC.
** Error: test.vhd|47| VHDL Compiler exiting
関連記事

コメントの投稿

非公開コメント

プロフィール

Kocha

Author:Kocha
なんでもチャレンジ!(^o^)/
E-mail
github:Kocha
イベントカレンダー

カレンダー
09 | 2017/10 | 11
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 - - - -
カテゴリ
OVP (4)
最新記事
最新コメント
アーカイブ
リンク
Twitter
アクセス人数
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。