スポンサーサイト

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

[VHDL-2008] bit_vectorと1bitの bit演算

VHDL-2008, The End of Verbosity!

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


VHDL-2008以前だと、4bit変数 and 1bit変数だと
1bitを4bitに拡張して、演算しないとダメでしたが、
VHDL-2008だと、その部分のオペレーションが追加されています。


  • サンプルコード

  • library IEEE;
    use IEEE.std_logic_1164.all;
    use IEEE.std_logic_unsigned.all;
    use IEEE.numeric_std.all;
    use IEEE.std_logic_textio.all;
    use std.textio.all;
    
    entity testbench is
    end testbench;
    
    architecture SIM of testbench is
    
    signal s_a   : std_logic_vector(3 downto 0);
    signal s_b   : std_logic;
    signal s_val : std_logic_vector(3 downto 0);
    
    begin
    
      process
        variable L : line;
      begin
        s_a <= (others=>'0');
        s_b <= '0';
        wait for 100 ns;
        write(L, string'("s_a(=0) and s_b(=0) -> s_val = "));
        write(L, s_val);
        writeline(output, L);
    
        s_a <= "0100"; s_b <= '1';
        wait for 100 ns;
        write(L, string'("s_a(=b0100) and s_b(=1) -> s_val = "));
        write(L, s_val);
        writeline(output, L);
    
        s_a <= "1110";
        wait for 100 ns;
        write(L, string'("s_a(=b1110) and s_b(=1) -> s_val = "));
        write(L, s_val);
        writeline(output, L);
    
        wait;
        -- assert (false) report "Simulation End!" severity failure;
      end process;
    
      process(s_a, s_b) begin
        s_val <= s_a and s_b;
      end process;
    
    end SIM;
  • 実行結果

  • # s_a(=0) and s_b(=0) -> s_val = 0000
    # s_a(=b0100) and s_b(=1) -> s_val = 0100
    # s_a(=b1110) and s_b(=1) -> s_val = 1110
    

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

** Error: test.vhd(46): No feasible entries for infix operator "and".
** Error: test.vhd(46): Type error resolving infix expression "and" as type
ieee.std_logic_1164.STD_LOGIC_VECTOR.
** Error: test.vhd(49): 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ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。