synth/first/or_test.vhdl

55 lines
971 B
VHDL
Raw Normal View History

2021-02-17 21:20:30 +00:00
-- 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;