| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -23,19 +23,26 @@ entity toplevel is
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        SPI_FLASH_DEF_CKDV : natural := 1;
 | 
					 | 
					 | 
					 | 
					        SPI_FLASH_DEF_CKDV : natural := 1;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        SPI_FLASH_DEF_QUAD : boolean := true;
 | 
					 | 
					 | 
					 | 
					        SPI_FLASH_DEF_QUAD : boolean := true;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        LOG_LENGTH         : natural := 2048;
 | 
					 | 
					 | 
					 | 
					        LOG_LENGTH         : natural := 2048;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        UART_IS_16550      : boolean := true
 | 
					 | 
					 | 
					 | 
					        UART_IS_16550      : boolean := true;
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        USE_LITEETH        : boolean := false
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						);
 | 
					 | 
					 | 
					 | 
						);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    port(
 | 
					 | 
					 | 
					 | 
					    port(
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						ext_clk   : in  std_ulogic;
 | 
					 | 
					 | 
					 | 
						ext_clk   : in  std_ulogic;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						ext_rst   : in  std_ulogic;
 | 
					 | 
					 | 
					 | 
					        ext_rst_n   : in  std_ulogic;
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 
 | 
					 | 
					 | 
					 | 
					
 
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						-- UART0 signals:
 | 
					 | 
					 | 
					 | 
						-- UART0 signals:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						uart_main_tx : out std_ulogic;
 | 
					 | 
					 | 
					 | 
						uart_main_tx : out std_ulogic;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						uart_main_rx : in  std_ulogic;
 | 
					 | 
					 | 
					 | 
						uart_main_rx : in  std_ulogic;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 
 | 
					 | 
					 | 
					 | 
					
 
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						-- LEDs
 | 
					 | 
					 | 
					 | 
					        -- LEDs
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						led0	: out std_logic;
 | 
					 | 
					 | 
					 | 
					        led0 : out std_ulogic;
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						led1	: out std_logic;
 | 
					 | 
					 | 
					 | 
					        led1 : out std_ulogic;
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        led2 : out std_ulogic;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        led3 : out std_ulogic;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        led4 : out std_ulogic;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        led5 : out std_ulogic;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        led6 : out std_ulogic;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        led7 : out std_ulogic;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 
 | 
					 | 
					 | 
					 | 
					
 
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        -- SPI
 | 
					 | 
					 | 
					 | 
					        -- SPI
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        spi_flash_cs_n   : out std_ulogic;
 | 
					 | 
					 | 
					 | 
					        spi_flash_cs_n   : out std_ulogic;
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -44,6 +51,18 @@ entity toplevel is
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        spi_flash_wp_n   : inout std_ulogic;
 | 
					 | 
					 | 
					 | 
					        spi_flash_wp_n   : inout std_ulogic;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        spi_flash_hold_n : inout std_ulogic;
 | 
					 | 
					 | 
					 | 
					        spi_flash_hold_n : inout std_ulogic;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 
 | 
					 | 
					 | 
					 | 
					
 
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        -- Ethernet
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        eth_clocks_tx    : out std_ulogic;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        eth_clocks_rx    : in std_ulogic;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        eth_rst_n        : out std_ulogic;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        eth_int_n        : in std_ulogic;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        eth_mdio         : inout std_ulogic;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        eth_mdc          : out std_ulogic;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        eth_rx_ctl       : in std_ulogic;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        eth_rx_data      : in std_ulogic_vector(3 downto 0);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        eth_tx_ctl       : out std_ulogic;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        eth_tx_data      : out std_ulogic_vector(3 downto 0);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						-- DRAM wires
 | 
					 | 
					 | 
					 | 
						-- DRAM wires
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						ddram_a       : out std_logic_vector(14 downto 0);
 | 
					 | 
					 | 
					 | 
						ddram_a       : out std_logic_vector(14 downto 0);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						ddram_ba      : out std_logic_vector(2 downto 0);
 | 
					 | 
					 | 
					 | 
						ddram_ba      : out std_logic_vector(2 downto 0);
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -69,18 +88,26 @@ architecture behaviour of toplevel is
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    signal pll_rst : std_ulogic;
 | 
					 | 
					 | 
					 | 
					    signal pll_rst : std_ulogic;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 
 | 
					 | 
					 | 
					 | 
					
 
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    -- Internal clock signals:
 | 
					 | 
					 | 
					 | 
					    -- Internal clock signals:
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    signal system_clk : std_ulogic;
 | 
					 | 
					 | 
					 | 
					    signal system_clk        : std_ulogic;
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    signal system_clk_locked : std_ulogic;
 | 
					 | 
					 | 
					 | 
					    signal system_clk_locked : std_ulogic;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 
 | 
					 | 
					 | 
					 | 
					
 
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    -- External IOs from the SoC
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    signal wb_ext_io_in        : wb_io_master_out;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    signal wb_ext_io_out       : wb_io_slave_out;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    signal wb_ext_is_dram_csr  : std_ulogic;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    signal wb_ext_is_dram_init : std_ulogic;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    signal wb_ext_is_eth       : std_ulogic;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    -- DRAM main data wishbone connection
 | 
					 | 
					 | 
					 | 
					    -- DRAM main data wishbone connection
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    signal wb_dram_in       : wishbone_master_out;
 | 
					 | 
					 | 
					 | 
					    signal wb_dram_in       : wishbone_master_out;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    signal wb_dram_out      : wishbone_slave_out;
 | 
					 | 
					 | 
					 | 
					    signal wb_dram_out      : wishbone_slave_out;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 
 | 
					 | 
					 | 
					 | 
					
 
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    -- DRAM control wishbone connection
 | 
					 | 
					 | 
					 | 
					    -- DRAM control wishbone connection
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    signal wb_ext_io_in        : wb_io_master_out;
 | 
					 | 
					 | 
					 | 
					    signal wb_dram_ctrl_out    : wb_io_slave_out := wb_io_slave_out_init;
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    signal wb_ext_io_out       : wb_io_slave_out;
 | 
					 | 
					 | 
					 | 
					
 
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    signal wb_ext_is_dram_csr  : std_ulogic;
 | 
					 | 
					 | 
					 | 
					    -- LiteEth connection
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    signal wb_ext_is_dram_init : std_ulogic;
 | 
					 | 
					 | 
					 | 
					    signal ext_irq_eth         : std_ulogic;
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    signal wb_eth_out          : wb_io_slave_out := wb_io_slave_out_init;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 
 | 
					 | 
					 | 
					 | 
					
 
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    -- Control/status
 | 
					 | 
					 | 
					 | 
					    -- Control/status
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    signal core_alt_reset : std_ulogic;
 | 
					 | 
					 | 
					 | 
					    signal core_alt_reset : std_ulogic;
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -134,7 +161,8 @@ begin
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            SPI_FLASH_DEF_CKDV => SPI_FLASH_DEF_CKDV,
 | 
					 | 
					 | 
					 | 
					            SPI_FLASH_DEF_CKDV => SPI_FLASH_DEF_CKDV,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            SPI_FLASH_DEF_QUAD => SPI_FLASH_DEF_QUAD,
 | 
					 | 
					 | 
					 | 
					            SPI_FLASH_DEF_QUAD => SPI_FLASH_DEF_QUAD,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            LOG_LENGTH         => LOG_LENGTH,
 | 
					 | 
					 | 
					 | 
					            LOG_LENGTH         => LOG_LENGTH,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            UART0_IS_16550     => UART_IS_16550
 | 
					 | 
					 | 
					 | 
					            UART0_IS_16550     => UART_IS_16550,
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            HAS_LITEETH        => USE_LITEETH
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						    )
 | 
					 | 
					 | 
					 | 
						    )
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						port map (
 | 
					 | 
					 | 
					 | 
						port map (
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            -- System signals
 | 
					 | 
					 | 
					 | 
					            -- System signals
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -152,6 +180,9 @@ begin
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            spi_flash_sdat_oe => spi_sdat_oe,
 | 
					 | 
					 | 
					 | 
					            spi_flash_sdat_oe => spi_sdat_oe,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            spi_flash_sdat_i  => spi_sdat_i,
 | 
					 | 
					 | 
					 | 
					            spi_flash_sdat_i  => spi_sdat_i,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 
 | 
					 | 
					 | 
					 | 
					
 
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            -- External interrupts
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            ext_irq_eth       => ext_irq_eth,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					            -- DRAM wishbone
 | 
					 | 
					 | 
					 | 
					            -- DRAM wishbone
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						    wb_dram_in          => wb_dram_in,
 | 
					 | 
					 | 
					 | 
						    wb_dram_in          => wb_dram_in,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						    wb_dram_out         => wb_dram_out,
 | 
					 | 
					 | 
					 | 
						    wb_dram_out         => wb_dram_out,
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -159,6 +190,7 @@ begin
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						    wb_ext_io_out       => wb_ext_io_out,
 | 
					 | 
					 | 
					 | 
						    wb_ext_io_out       => wb_ext_io_out,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						    wb_ext_is_dram_csr  => wb_ext_is_dram_csr,
 | 
					 | 
					 | 
					 | 
						    wb_ext_is_dram_csr  => wb_ext_is_dram_csr,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						    wb_ext_is_dram_init => wb_ext_is_dram_init,
 | 
					 | 
					 | 
					 | 
						    wb_ext_is_dram_init => wb_ext_is_dram_init,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            wb_ext_is_eth       => wb_ext_is_eth,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						    alt_reset           => core_alt_reset
 | 
					 | 
					 | 
					 | 
						    alt_reset           => core_alt_reset
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						    );
 | 
					 | 
					 | 
					 | 
						    );
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 
 | 
					 | 
					 | 
					 | 
					
 
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -198,8 +230,8 @@ begin
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						    port map(
 | 
					 | 
					 | 
					 | 
						    port map(
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							ext_clk => ext_clk,
 | 
					 | 
					 | 
					 | 
							ext_clk => ext_clk,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							pll_clk => system_clk,
 | 
					 | 
					 | 
					 | 
							pll_clk => system_clk,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							pll_locked_in => system_clk_locked,
 | 
					 | 
					 | 
					 | 
					                pll_locked_in => system_clk_locked,
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							ext_rst_in => ext_rst,
 | 
					 | 
					 | 
					 | 
					                ext_rst_in => ext_rst_n,
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							pll_rst_out => pll_rst,
 | 
					 | 
					 | 
					 | 
							pll_rst_out => pll_rst,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							rst_out => soc_rst
 | 
					 | 
					 | 
					 | 
							rst_out => soc_rst
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							);
 | 
					 | 
					 | 
					 | 
							);
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -218,6 +250,7 @@ begin
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 
 | 
					 | 
					 | 
					 | 
					
 
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						led0 <= '1';
 | 
					 | 
					 | 
					 | 
						led0 <= '1';
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						led1 <= not soc_rst;
 | 
					 | 
					 | 
					 | 
						led1 <= not soc_rst;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        led2 <= '0';
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						core_alt_reset <= '0';
 | 
					 | 
					 | 
					 | 
						core_alt_reset <= '0';
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 
 | 
					 | 
					 | 
					 | 
					
 
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        -- Vivado barfs on those differential signals if left
 | 
					 | 
					 | 
					 | 
					        -- Vivado barfs on those differential signals if left
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -252,12 +285,22 @@ begin
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						    port map(
 | 
					 | 
					 | 
					 | 
						    port map(
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							ext_clk => ext_clk,
 | 
					 | 
					 | 
					 | 
							ext_clk => ext_clk,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							pll_clk => system_clk,
 | 
					 | 
					 | 
					 | 
							pll_clk => system_clk,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							pll_locked_in => '1',
 | 
					 | 
					 | 
					 | 
					                pll_locked_in => '1',
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							ext_rst_in => ext_rst,
 | 
					 | 
					 | 
					 | 
					                ext_rst_in => ext_rst_n,
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							pll_rst_out => pll_rst,
 | 
					 | 
					 | 
					 | 
							pll_rst_out => pll_rst,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							rst_out => open
 | 
					 | 
					 | 
					 | 
					                rst_out => open
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							);
 | 
					 | 
					 | 
					 | 
							);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 
 | 
					 | 
					 | 
					 | 
					
 
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        -- Generate SoC reset
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        soc_rst_gen: process(system_clk)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        begin
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            if ext_rst_n = '0' then
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                soc_rst <= '1';
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            elsif rising_edge(system_clk) then
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                soc_rst <= dram_sys_rst or not system_clk_locked;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            end if;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        end process;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						dram: entity work.litedram_wrapper
 | 
					 | 
					 | 
					 | 
						dram: entity work.litedram_wrapper
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						    generic map(
 | 
					 | 
					 | 
					 | 
						    generic map(
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							DRAM_ABITS => 25,
 | 
					 | 
					 | 
					 | 
							DRAM_ABITS => 25,
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -271,14 +314,14 @@ begin
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							clk_in		=> ext_clk,
 | 
					 | 
					 | 
					 | 
							clk_in		=> ext_clk,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							rst             => pll_rst,
 | 
					 | 
					 | 
					 | 
							rst             => pll_rst,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							system_clk	=> system_clk,
 | 
					 | 
					 | 
					 | 
							system_clk	=> system_clk,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							system_reset	=> soc_rst,
 | 
					 | 
					 | 
					 | 
					                system_reset	=> dram_sys_rst,
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					                core_alt_reset  => core_alt_reset,
 | 
					 | 
					 | 
					 | 
					                core_alt_reset  => core_alt_reset,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							pll_locked	=> system_clk_locked,
 | 
					 | 
					 | 
					 | 
							pll_locked	=> system_clk_locked,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 
 | 
					 | 
					 | 
					 | 
					
 
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							wb_in		=> wb_dram_in,
 | 
					 | 
					 | 
					 | 
							wb_in		=> wb_dram_in,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							wb_out		=> wb_dram_out,
 | 
					 | 
					 | 
					 | 
							wb_out		=> wb_dram_out,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							wb_ctrl_in	=> wb_ext_io_in,
 | 
					 | 
					 | 
					 | 
							wb_ctrl_in	=> wb_ext_io_in,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							wb_ctrl_out	=> wb_ext_io_out,
 | 
					 | 
					 | 
					 | 
					                wb_ctrl_out	=> wb_dram_ctrl_out,
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							wb_ctrl_is_csr  => wb_ext_is_dram_csr,
 | 
					 | 
					 | 
					 | 
							wb_ctrl_is_csr  => wb_ext_is_dram_csr,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							wb_ctrl_is_init => wb_ext_is_dram_init,
 | 
					 | 
					 | 
					 | 
							wb_ctrl_is_init => wb_ext_is_dram_init,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 
 | 
					 | 
					 | 
					 | 
					
 
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -302,8 +345,96 @@ begin
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							ddram_reset_n	=> ddram_reset_n
 | 
					 | 
					 | 
					 | 
							ddram_reset_n	=> ddram_reset_n
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
							);
 | 
					 | 
					 | 
					 | 
							);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 
 | 
					 | 
					 | 
					 | 
					
 
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						led0 <= dram_init_done and not dram_init_error;
 | 
					 | 
					 | 
					 | 
					        led0 <= not dram_init_done;
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
						led1 <= dram_init_error; -- Make it blink ?
 | 
					 | 
					 | 
					 | 
						led1 <= dram_init_error; -- Make it blink ?
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        led2 <= dram_init_done and not dram_init_error;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 
 | 
					 | 
					 | 
					 | 
					
 
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    end generate;
 | 
					 | 
					 | 
					 | 
					    end generate;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    has_liteeth : if USE_LITEETH generate
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        component liteeth_core port (
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            sys_clock           : in std_ulogic;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            sys_reset           : in std_ulogic;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            rgmii_eth_clocks_tx : out std_ulogic;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            rgmii_eth_clocks_rx : in std_ulogic;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            rgmii_eth_rst_n     : out std_ulogic;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            rgmii_eth_int_n     : in std_ulogic;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            rgmii_eth_mdio      : inout std_ulogic;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            rgmii_eth_mdc       : out std_ulogic;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            rgmii_eth_rx_ctl    : in std_ulogic;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            rgmii_eth_rx_data   : in std_ulogic_vector(3 downto 0);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            rgmii_eth_tx_ctl    : out std_ulogic;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            rgmii_eth_tx_data   : out std_ulogic_vector(3 downto 0);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            wishbone_adr        : in std_ulogic_vector(29 downto 0);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            wishbone_dat_w      : in std_ulogic_vector(31 downto 0);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            wishbone_dat_r      : out std_ulogic_vector(31 downto 0);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            wishbone_sel        : in std_ulogic_vector(3 downto 0);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            wishbone_cyc        : in std_ulogic;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            wishbone_stb        : in std_ulogic;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            wishbone_ack        : out std_ulogic;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            wishbone_we         : in std_ulogic;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            wishbone_cti        : in std_ulogic_vector(2 downto 0);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            wishbone_bte        : in std_ulogic_vector(1 downto 0);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            wishbone_err        : out std_ulogic;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            interrupt           : out std_ulogic
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            );
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        end component;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        signal wb_eth_cyc     : std_ulogic;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        signal wb_eth_adr     : std_ulogic_vector(29 downto 0);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    begin
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        liteeth :  liteeth_core
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					            port map(
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                sys_clock           => system_clk,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                sys_reset           => soc_rst,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                rgmii_eth_clocks_tx => eth_clocks_tx,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                rgmii_eth_clocks_rx => eth_clocks_rx,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                rgmii_eth_rst_n     => eth_rst_n,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                rgmii_eth_int_n     => eth_int_n,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                rgmii_eth_mdio      => eth_mdio,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                rgmii_eth_mdc       => eth_mdc,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                rgmii_eth_rx_ctl    => eth_rx_ctl,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                rgmii_eth_rx_data   => eth_rx_data,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                rgmii_eth_tx_ctl    => eth_tx_ctl,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                rgmii_eth_tx_data   => eth_tx_data,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                wishbone_adr        => wb_eth_adr,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                wishbone_dat_w      => wb_ext_io_in.dat,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                wishbone_dat_r      => wb_eth_out.dat,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                wishbone_sel        => wb_ext_io_in.sel,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                wishbone_cyc        => wb_eth_cyc,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                wishbone_stb        => wb_ext_io_in.stb,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                wishbone_ack        => wb_eth_out.ack,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                wishbone_we         => wb_ext_io_in.we,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                wishbone_cti        => "000",
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                wishbone_bte        => "00",
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                wishbone_err        => open,
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                interrupt           => ext_irq_eth
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                );
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        -- Gate cyc with "chip select" from soc
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        wb_eth_cyc <= wb_ext_io_in.cyc and wb_ext_is_eth;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        -- Remove top address bits as liteeth decoder doesn't know about them
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        wb_eth_adr <= x"000" & "000" & wb_ext_io_in.adr(16 downto 2);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        -- LiteETH isn't pipelined
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        wb_eth_out.stall <= not wb_eth_out.ack;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    end generate;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    no_liteeth : if not USE_LITEETH generate
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        ext_irq_eth    <= '0';
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    end generate;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    -- Mux WB response on the IO bus
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    wb_ext_io_out <= wb_eth_out when wb_ext_is_eth = '1' else
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					                     wb_dram_ctrl_out;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    led4 <= system_clk_locked;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    led5 <= '1';
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    led6 <= not soc_rst;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					    led7 <= '0';
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					
 
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					end architecture behaviour;
 | 
					 | 
					 | 
					 | 
					end architecture behaviour;
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
					 | 
					 | 
					
 
 |