Line 46... |
Line 46... |
constant T : time := 20 ns;
|
constant T : time := 20 ns;
|
-- Time the UART is unavailable after writing to the TX register
|
-- Time the UART is unavailable after writing to the TX register
|
-- WARNING: slite does not simulate this. The logs may be different when > 0.0!
|
-- WARNING: slite does not simulate this. The logs may be different when > 0.0!
|
constant SIMULATED_UART_TX_TIME : time := 0.0 us;
|
constant SIMULATED_UART_TX_TIME : time := 0.0 us;
|
|
|
-- Simulation length in clock cycles
|
-- Simulation length in clock cycles, should be long enough (you have to try...)
|
-- 2000 is enough for 'hello' sample, 22000 enough for 10 digits of pi
|
|
constant SIMULATION_LENGTH : integer := @sim_len@;
|
constant SIMULATION_LENGTH : integer := @sim_len@;
|
|
|
-- Simulated external SRAM size in 32-bit words
|
-- Simulated external SRAM size in 32-bit words
|
constant SRAM_SIZE : integer := @xram_size@;
|
constant SRAM_SIZE : integer := @xram_size@;
|
-- Ext. SRAM address length (memory is 16 bits wide so it needs an extra address bit)
|
-- Ext. SRAM address length (memory is 16 bits wide so it needs an extra address bit)
|
Line 136... |
Line 135... |
signal cpu_code_rd : t_word;
|
signal cpu_code_rd : t_word;
|
signal cpu_code_rd_vma : std_logic;
|
signal cpu_code_rd_vma : std_logic;
|
signal cpu_data_wr : t_word;
|
signal cpu_data_wr : t_word;
|
signal cpu_byte_we : std_logic_vector(3 downto 0);
|
signal cpu_byte_we : std_logic_vector(3 downto 0);
|
signal cpu_mem_wait : std_logic;
|
signal cpu_mem_wait : std_logic;
|
|
signal cpu_ic_invalidate : std_logic;
|
|
signal cpu_cache_enable : std_logic;
|
|
|
-- interface to i/o
|
-- interface to i/o
|
signal io_rd_data : std_logic_vector(31 downto 0);
|
signal io_rd_data : std_logic_vector(31 downto 0);
|
signal io_wr_data : std_logic_vector(31 downto 0);
|
signal io_wr_data : std_logic_vector(31 downto 0);
|
signal io_rd_addr : std_logic_vector(31 downto 2);
|
signal io_rd_addr : std_logic_vector(31 downto 2);
|
Line 192... |
Line 193... |
|
|
data_wr => cpu_data_wr,
|
data_wr => cpu_data_wr,
|
byte_we => cpu_byte_we,
|
byte_we => cpu_byte_we,
|
|
|
mem_wait => cpu_mem_wait,
|
mem_wait => cpu_mem_wait,
|
|
cache_enable=> cpu_cache_enable,
|
|
ic_invalidate=>cpu_ic_invalidate,
|
|
|
clk => clk,
|
clk => clk,
|
reset => reset
|
reset => reset
|
);
|
);
|
|
|
|
|
cache: entity work.mips_cache_stub
|
cache: entity work.mips_cache
|
generic map (
|
generic map (
|
BRAM_ADDR_SIZE => BRAM_ADDR_SIZE,
|
BRAM_ADDR_SIZE => BRAM_ADDR_SIZE,
|
SRAM_ADDR_SIZE => 32,-- we need the full address to decode sram vs flash
|
SRAM_ADDR_SIZE => 32,-- we need the full address to decode sram vs flash
|
LINE_SIZE => 4,
|
LINE_SIZE => 4,
|
CACHE_SIZE => 256
|
CACHE_SIZE => 256
|
Line 222... |
Line 225... |
|
|
byte_we => cpu_byte_we,
|
byte_we => cpu_byte_we,
|
data_wr => cpu_data_wr,
|
data_wr => cpu_data_wr,
|
|
|
mem_wait => cpu_mem_wait,
|
mem_wait => cpu_mem_wait,
|
cache_enable => '1',
|
cache_enable => cpu_cache_enable,
|
|
ic_invalidate => cpu_ic_invalidate,
|
|
|
-- interface to FPGA i/o devices
|
-- interface to FPGA i/o devices
|
io_rd_data => io_rd_data,
|
io_rd_data => io_rd_data,
|
io_wr_data => io_wr_data,
|
io_wr_data => io_wr_data,
|
io_rd_addr => io_rd_addr,
|
io_rd_addr => io_rd_addr,
|