[VHDL-2008] Unary Reduction Logic Operators

VHDL-2008, The End of Verbosity!

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


リダクション演算は確かにめんどくさかった。(しみじみ)


  • サンプルコード

  • 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(7 downto 0);
    signal s_xor : std_logic;
    
    begin
    
      process
        variable L : line;
      begin
        s_a <= (others=>'0');
        wait for 100 ns;
        write(L, string'("s_a = 0 -> s_xor = "));
        write(L, s_xor);
        writeline(output, L);
    
        s_a <= "01001000";
        wait for 100 ns;
        write(L, string'("s_a = b01001000 -> s_xor = "));
        write(L, s_xor);
        writeline(output, L);
    
        s_a <= "11110111";
        wait for 100 ns;
        write(L, string'("s_a = b11110111 -> s_xor = "));
        write(L, s_xor);
        writeline(output, L);
    
        wait;
        -- assert (false) report "Simulation End!" severity failure;
      end process;
    
      process(s_a) begin
        s_xor <= xor s_a; -- s_xor(7) or s_xor(6) or ...
      end process;
    
    end SIM;
  • 実行結果

  • # s_a = 0 -> s_xor = 0
    # s_a = b01001000 -> s_xor = 0
    # s_a = b11110111 -> s_xor = 1
    

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

** Error: test.vhd(44): No feasible entries for prefix operator "xor".
** Error: test.vhd(44): 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
イベントカレンダー

カレンダー
05 | 2017/06 | 07
- - - - 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 -
カテゴリ
OVP (4)
最新記事
最新コメント
アーカイブ
リンク
Twitter
アクセス人数