2007年09月21日

VHDL TIPS 「属性"DRIVING_VALUE"の使用法」

VHDLでは出力ポートに割り当てた値を内部で参照する事は出来ない。
所が、VHDL93でコレを可能にするアトリビュート「DRIVING_VALUE」が追加された。

以下に使用例を紹介する。


library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_signed.all;

entity COUNT is
    port
    (
        CLK     : in    std_logic;
        COUNT   : out   std_logic_vector(7 downto 0) := (others => '0')
    );
end COUNT;

architecture rtl of COUNT is

begin

    process ( CLK ) begin
        if ( CLK'event and CLK = '1' ) then
            COUNT <= COUNT'DRIVING_VALUE + '1';        -- 内部参照
        end if;
    end process;

end rtl;


これは単純な8ビットのカウンタで、クロックを入力するとカウントアップするだけの回路だ。通常は内部にカウント信号を定義してその信号をカウントアップし、出力ポートに割り当てるような記述になると思うが「DRIVING_VALUE」を使用すると出力ポートの値を直接参照してカウントアップし、そのまま出力ポートに代入する事が出来る。

便利と言えば便利だが、自分は出力ポートに出ている信号は内部参照されていないことを前提にソースコードを追いかけるので、出来るだけ使用しないようにしている。
また、使用しない決定的な理由として、XSTではサポートしていないと言う事がある。

それでも、シミュレーションモデル等で出力ポートを直接チェックしたい時には便利に使えるかもしれない。



投稿時刻(21:34)│コメント(0)VHDL 

この記事にコメントする

名前:
URL:
  情報を記憶: 評価: 顔   
 
 
 
最新コメント
ブログ内検索
カテゴリ別表示
月別表示
問い合わせ・連絡先
ta_bo__@livedoor.com

本サイトは以下のアクセス解析を使用しております。
基礎化粧品