LIBRARY ieee;
USE ieee.std_logic_1164.ALL;
USE ieee.std_logic_unsigned.all;
USE ieee.numeric_std.ALL;
ENTITY dice_top_tb IS
END dice_top_tb;
ARCHITECTURE behavior OF dice_top_tb IS
-- Component Declaration for the Unit Under Test (UUT)
COMPONENT dice_top
PORT(
reset_sw : IN std_logic;
clk : IN std_logic;
roll : IN std_logic;
an_n : OUT std_logic_vector(3 downto 0);
a_n : OUT std_logic;
b_n : OUT std_logic;
c_n : OUT std_logic;
d_n : OUT std_logic;
e_n : OUT std_logic;
f_n : OUT std_logic;
g_n : OUT std_logic;
dp_n : OUT std_logic
);
END COMPONENT;
--Inputs
signal reset_sw : std_logic := '0';
signal clk : std_logic := '0';
signal roll : std_logic := '0';
--Outputs
signal an_n : std_logic_vector(3 downto 0);
signal a_n : std_logic;
signal b_n : std_logic;
signal c_n : std_logic;
signal d_n : std_logic;
signal e_n : std_logic;
signal f_n : std_logic;
signal g_n : std_logic;
signal dp_n : std_logic;
-- Clock period definitions
constant clk_period : time := 1us;
BEGIN
-- Instantiate the Unit Under Test (UUT)
uut: dice_top PORT MAP (
reset_sw => reset_sw,
clk => clk,
roll => roll,
an_n => an_n,
a_n => a_n,
b_n => b_n,
c_n => c_n,
d_n => d_n,
e_n => e_n,
f_n => f_n,
g_n => g_n,
dp_n => dp_n
);
-- Clock process definitions
clk_process :process
begin
clk <= '0';
wait for clk_period/2;
clk <= '1';
wait for clk_period/2;
end process;
-- Stimulus process
stim_proc: process
begin
-- hold reset state for 100ms.
wait for 100ms;
wait for clk_period*10;
-- insert stimulus here
wait;
end process;
END;
-- Stimulus process
stim_proc: process
begin
-- クロックは0から始まっているので、1クロック期間waitしても0から0までのwaitなので、レースが起こる心配はない。
reset_sw <= '1'; roll <= '0';
-- hold reset state for clk_period.
wait for clk_period;
reset_sw <= '0';
wait for clk_period; -- 1クロック期間空けてからrollを1にする
roll <= '1';
wait for clk_period*42; -- 42クロック期間空けてrollを0に戻す
roll <= '0';
wait;
end process;
-- Clock period definitions
constant clk_period : time := 20ns;
日 | 月 | 火 | 水 | 木 | 金 | 土 |
---|---|---|---|---|---|---|
- | - | - | - | - | 1 | 2 |
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 | - | - | - | - | - | - |