49 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			VHDL
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			VHDL
		
	
	
	
	
	
ARCHITECTURE test OF parallelAdder_tester IS
 | 
						|
 | 
						|
  constant clockPeriod: time := (1.0/clockFrequency) * 1 sec;
 | 
						|
  signal sClock: std_uLogic := '1';
 | 
						|
  signal sReset: std_uLogic := '1';
 | 
						|
 | 
						|
  constant aMax: signed(a'range) := (a'high => '0', others => '1');
 | 
						|
  constant aIncr: signed(a'range) := shift_right(aMax, 4)+1;
 | 
						|
  constant bIncr: signed(b'range) := shift_right(aMax, 4)+1;
 | 
						|
  signal a_int, b_int, sum_int: signed(a'range);
 | 
						|
 | 
						|
BEGIN
 | 
						|
  ------------------------------------------------------------------------------
 | 
						|
                                                              -- clock and reset
 | 
						|
  sClock <= not sClock after clockPeriod/2;
 | 
						|
  sReset <= '1', '0' after 2*clockPeriod;
 | 
						|
 | 
						|
  ------------------------------------------------------------------------------
 | 
						|
                                                                -- test sequence
 | 
						|
  process
 | 
						|
  begin
 | 
						|
    a_int <= (a_int'high => '1', others => '0');
 | 
						|
    b_int <= (b_int'high => '1', others => '0');
 | 
						|
    wait until sReset = '0';
 | 
						|
                                                                  -- data values
 | 
						|
    while a_int < aMax-aIncr loop
 | 
						|
      a_int <= a_int + aIncr;
 | 
						|
      b_int <= b_int + bIncr;
 | 
						|
      wait until rising_edge(sClock);
 | 
						|
      assert sum = a_int + b_int
 | 
						|
        report "sum is wrong !"
 | 
						|
        severity error;
 | 
						|
    end loop;
 | 
						|
                                                              -- stop simulation
 | 
						|
    assert false
 | 
						|
      report cr & cr &
 | 
						|
        "End of Simulation" &
 | 
						|
        cr
 | 
						|
      severity failure;
 | 
						|
    wait;
 | 
						|
  end process;
 | 
						|
 | 
						|
  cIn <= '0';
 | 
						|
  a <= a_int;
 | 
						|
  b <= b_int;
 | 
						|
  sum_int <= a_int + b_int;
 | 
						|
 | 
						|
END ARCHITECTURE test;
 |