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;
 |