| 
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -13,6 +13,7 @@ architecture sim of tb_blink is | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																  signal s_clk   : std_logic := '1'; | 
																 | 
																 | 
																  signal s_clk   : std_logic := '1'; | 
															
														
														
													
														
															
																 | 
																 | 
																  signal s_rst_n : std_logic := '0'; | 
																 | 
																 | 
																  signal s_rst_n : std_logic := '0'; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																  signal s_led_n : std_logic_vector(7 downto 0); | 
																 | 
																 | 
																  signal s_led_n : std_logic_vector(7 downto 0); | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																begin | 
																 | 
																 | 
																begin | 
															
														
														
													
												
													
														
															
																| 
																	
																	
																	
																		
																			
																		
																	
																 | 
																@ -24,21 +25,24 @@ begin | 
															
														
														
													
														
															
																 | 
																 | 
																    led_n_o => s_led_n | 
																 | 
																 | 
																    led_n_o => s_led_n | 
															
														
														
													
														
															
																 | 
																 | 
																  ); | 
																 | 
																 | 
																  ); | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																  s_rst_n <= '1' after 1.2 us; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																  s_clk   <= not s_clk after 500 ns; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																  s_rst_n <= '1' after 120 ns; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																  s_clk   <= not s_clk after 50 ns; | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																  -- Let's test the first 8 values of LED output | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																  process is | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																  -- Let's test one complete rotate of LED output | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																  TestP : process is | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    variable v_led_n : std_logic_vector(s_led_n'range) := x"FE"; | 
															
														
														
													
														
															
																 | 
																 | 
																  begin | 
																 | 
																 | 
																  begin | 
															
														
														
													
														
															
																 | 
																 | 
																    wait until s_rst_n; | 
																 | 
																 | 
																    wait until s_rst_n; | 
															
														
														
													
														
															
																 | 
																 | 
																    wait until rising_edge(s_clk); | 
																 | 
																 | 
																    wait until rising_edge(s_clk); | 
															
														
														
													
														
															
																 | 
																 | 
																    for i in 0 to 7 loop | 
																 | 
																 | 
																    for i in 0 to 7 loop | 
															
														
														
													
														
															
																 | 
																 | 
																      report "LED: " & to_hstring(not s_led_n); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																      assert to_integer(unsigned(not s_led_n)) = i | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        report "LED error, got 0x" & to_hstring(s_led_n) & ", expected 0x" & to_hstring(to_unsigned(255-i, 8)) | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																      report "LED: " & to_hstring(s_led_n); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																      assert s_led_n = v_led_n | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        report "LED error, got 0x" & to_hstring(s_led_n) & ", expected 0x" & to_hstring(v_led_n) | 
															
														
														
													
														
															
																 | 
																 | 
																        severity failure; | 
																 | 
																 | 
																        severity failure; | 
															
														
														
													
														
															
																 | 
																 | 
																      wait until s_led_n'event; | 
																 | 
																 | 
																      wait until s_led_n'event; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																      v_led_n := v_led_n(6 downto 0) & v_led_n(7); | 
															
														
														
													
														
															
																 | 
																 | 
																    end loop; | 
																 | 
																 | 
																    end loop; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    report "Simulation finished :-)"; | 
															
														
														
													
														
															
																 | 
																 | 
																    stop(0); | 
																 | 
																 | 
																    stop(0); | 
															
														
														
													
														
															
																 | 
																 | 
																  end process; | 
																 | 
																 | 
																  end process; | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
												
													
														
															
																| 
																	
																	
																	
																 | 
																
  |