55 lines
971 B
VHDL
55 lines
971 B
VHDL
|
-- Simple OR gate design
|
||
|
library IEEE;
|
||
|
use IEEE.std_logic_1164.all;
|
||
|
use std.textio.all;
|
||
|
|
||
|
entity or_test is
|
||
|
end or_test;
|
||
|
|
||
|
architecture rtl of or_test is
|
||
|
|
||
|
component or_gate is
|
||
|
port(
|
||
|
a: in std_logic;
|
||
|
b: in std_logic;
|
||
|
q: out std_logic
|
||
|
);
|
||
|
end component;
|
||
|
|
||
|
signal a_in, b_in, q_out: std_logic;
|
||
|
|
||
|
begin
|
||
|
dut: or_gate port map(a_in, b_in, q_out);
|
||
|
|
||
|
process
|
||
|
begin
|
||
|
|
||
|
a_in <= '0';
|
||
|
b_in <= '0';
|
||
|
wait for 1 ns;
|
||
|
assert(q_out='0') report "Fail 0/0" severity error;
|
||
|
|
||
|
a_in <= '0';
|
||
|
b_in <= '1';
|
||
|
wait for 1 ns;
|
||
|
assert(q_out='1') report "Fail 0/1" severity error;
|
||
|
|
||
|
a_in <= '1';
|
||
|
b_in <= 'X';
|
||
|
wait for 1 ns;
|
||
|
assert(q_out='1') report "Fail 1/X" severity error;
|
||
|
|
||
|
a_in <= '1';
|
||
|
b_in <= '1';
|
||
|
wait for 1 ns;
|
||
|
assert(q_out='1') report "Fail 1/1" severity error;
|
||
|
|
||
|
-- Clear inputs
|
||
|
a_in <= '0';
|
||
|
b_in <= '0';
|
||
|
|
||
|
assert false report "Test done." severity note;
|
||
|
wait;
|
||
|
end process;
|
||
|
end rtl;
|