2007年08月03日
VHDL TIPS 「ディファード定数の使用法」
ディファード定数という難しそうな名前の余り意味の無い機能がある。
これは、パッケージで定数の宣言だけしておき実際の値はパッケージボディで割り当てるという機能だ。通常はパッケージとパッケージボディは1:1で記述すると思うのでディファード定数にすると余計にややこしくなる。
パッケージボディでは無くアーキテクチャで値を割り当てる事が出来れば、定数宣言を強制できるという意味で、まだ使えたのかもしれないが、これは出来ずあくまでもパッケージボディ内に限られている。
無理に使おうと思えば、パッケージだけライブラリのようにしてパッケージボディはパッケージユーザに作らせ定数宣言を強制させたい場合くらいだろうか。
ただ、この場合もXSTはサポートしていないのでシミュレーションだけにしておいた方が良い。
以下に使用例を紹介する。
package test_pkg is
-- ディファード定数
constant const_int : integer;
end test_pkg;
-- ディファード定数
constant const_int : integer;
end test_pkg;
package body test_pkg is
-- ディファード定数の定数決定
constant const_int : integer := 10;
end test_pkg;