ごく簡単なテストベンチ / テストベンチのテンプレートを自動生成する
参考: シェフの気まぐれテストベンチ ~時間短縮のマル秘レシピ~ - 半導体事業 - マクニカ
前回は一からテストベンチを記述したが、今度は上のリンクを参考にして自動生成した。入力波形は自分で書く。このとき作った4ビット加算器74283 (のようなもの)をシミュレートしてみる。
[Assignments]メニュー、[Settings]の順に選択して、このへんの設定をする。[Output directory]がテストベンチファイル(.vht)の出力先。
下の順に選択する。これでテストベンチが生成される。
あとは普通にModelSimでシミュレートする。
↓ これが自動生成されたテストベンチ(入力波形を記述したほか体裁も整えた):
LIBRARY ieee; USE ieee.std_logic_1164.all; USE ieee.numeric_std.all; ENTITY generic_74283_vhd_tst IS END generic_74283_vhd_tst; ARCHITECTURE generic_74283_arch OF generic_74283_vhd_tst IS SIGNAL a : STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL b : STD_LOGIC_VECTOR(3 DOWNTO 0); SIGNAL cin : STD_LOGIC; SIGNAL cout: STD_LOGIC; SIGNAL sum : STD_LOGIC_VECTOR(3 DOWNTO 0); COMPONENT generic_74283 PORT ( a : IN STD_LOGIC_VECTOR(3 DOWNTO 0); b : IN STD_LOGIC_VECTOR(3 DOWNTO 0); cin : IN STD_LOGIC; cout: OUT STD_LOGIC; sum : OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ); END COMPONENT; BEGIN i1 : generic_74283 PORT MAP ( a => a, b => b, cin => cin, cout => cout, sum => sum ); cin <= '0'; process begin for i in 0 to 15 loop a <= std_logic_vector(to_unsigned(i, 4)); wait for 10 ns; end loop; end process; process begin for i in 0 to 15 loop b <= std_logic_vector(to_unsigned(i, 4)); wait for 160 ns; end loop; end process; END generic_74283_arch;