半加算器(リスト4.1)用のテストベンチ
掲載ページ:84、リスト番号:4.12
【VHDL記述】
library IEEE;
use IEEE.std_logic_1164.all;
-- テストベンチのエンティティは空
entity TESTBENCH_HA is
end TESTBENCH_HA;
architecture SIM_DATA of TESTBENCH_HA is
-- 検証対象回路(コンポーネント)の宣言
component HALF_ADDER
port ( A, B : in std_logic;
S, C : out std_logic );
end component;
signal SA, SB, SS, SC : std_logic;
begin
-- 検証対象回路のインスタンス化
M1 : HALF_ADDER port map (SA, SB, SS, SC);
-- テストベクトル
P1 : process
begin
SA <= '0'; wait for 50 ns;
SA <= '1'; wait for 50 ns;
end process;
P2 : process
begin
SB <= '0'; wait for 100 ns;
SB <= '1'; wait for 100 ns;
end process;
end SIM_DATA;
-- configuration宣言(最上位階層では必須)
configuration CFG_HA of TESTBENCH_HA is
for SIM_DATA
end for;
end CFG_HA;
【Verilog-HDL記述】
// シミュレーション時刻の設定(コンパイラ指示子)
`timescale 1 ns / 10 ps
// テストベンチのポート・リストは空
module TESTBENCH_HA;
reg SA, SB;
wire SS, SC;
// 検証対象回路の呼び出し
HALF_ADDER M1 ( SA, SB, SS, SC );
// テストベクトル
always begin
SA = 1'b0;
#50 SA = 1'b1;
#50 ;
end
always begin
SB = 1'b0;
#100 SB = 1'b1;
#100 ;
end
// シミュレーション結果の表示(システム・タスク)
initial $monitor( $stime, " A=%b B=%b S=%b C=%b", SA, SB, SS, SC);
endmodule
【シミュレーション結果】