VHDLの変数の使いどころ

出典: Wikimura

変数はプロセス文内でロジックを記述するのに役立つ。 例えば以下のように... A and B and Cがセットなら、これらを何度も書くのは面倒。

process( A, B, C)
begin
    X <= A and B and C;
    
    if( (A and B and C) = '1') then
        Y <= '0';
    else
        Y <= Z;
    end if;
end process;


信号を使う手はある。ただ、変数がグローバルに存在することになる。 プロセス文内だけで使う場合、わざわざグローバルなものを作るのは好ましくない。

ABC <= A and B and C;
process( ABC)
begin
    X <= ABC;
    
    if( ABC = '1') then
        Y <= '0';
    else
        Y <= Z;
    end if;
end process;


こんなときに変数を使う。 信号を束ねるのに使うことができる。

process( A, B, C)
    variable ABC : std_logic;
begin
    ABC := A and B and C;

    X <= ABC;    
    if( ABC = '1') then
        Y <= '0';
    else
        Y <= Z;
    end if;
end process;

他にも変数は配列の並べ替えなんかにも使える。