Line 51... |
Line 51... |
|
|
-- Maximum line size of for console output log. Lines longer than this will be
|
-- Maximum line size of for console output log. Lines longer than this will be
|
-- truncated.
|
-- truncated.
|
constant CONSOLE_LOG_LINE_SIZE : integer := 1024*4;
|
constant CONSOLE_LOG_LINE_SIZE : integer := 1024*4;
|
|
|
|
|
type t_pc_queue is array(0 to 3) of t_word;
|
type t_pc_queue is array(0 to 3) of t_word;
|
|
|
|
|
type t_log_info is record
|
type t_log_info is record
|
rbank : t_rbank;
|
rbank : t_rbank;
|
prev_rbank : t_rbank;
|
prev_rbank : t_rbank;
|
|
|
cp0_epc : t_pc;
|
cp0_epc : t_pc;
|
Line 412... |
Line 412... |
init_signal_spy("/"&mcu_entity&"/"&cpu_name&"/data_wr", signal_name&".present_data_wr", 0);
|
init_signal_spy("/"&mcu_entity&"/"&cpu_name&"/data_wr", signal_name&".present_data_wr", 0);
|
init_signal_spy("/"&mcu_entity&"/"&cpu_name&"/byte_we", signal_name&".data_byte_we", 0);
|
init_signal_spy("/"&mcu_entity&"/"&cpu_name&"/byte_we", signal_name&".data_byte_we", 0);
|
init_signal_spy("/"&mcu_entity&"/"&cpu_name&"/p2_data_word_rd", signal_name&".word_loaded", 0);
|
init_signal_spy("/"&mcu_entity&"/"&cpu_name&"/p2_data_word_rd", signal_name&".word_loaded", 0);
|
init_signal_spy("/"&mcu_entity&"/"&cpu_name&"/data_addr", signal_name&".present_data_rd_addr", 0);
|
init_signal_spy("/"&mcu_entity&"/"&cpu_name&"/data_addr", signal_name&".present_data_rd_addr", 0);
|
init_signal_spy("/"&mcu_entity&"/"&cpu_name&"/p1_exception", signal_name&".exception", 0);
|
init_signal_spy("/"&mcu_entity&"/"&cpu_name&"/p1_exception", signal_name&".exception", 0);
|
init_signal_spy("/"&mcu_entity&"/uart_write", signal_name&".uart_tx", 0);
|
init_signal_spy("/"&mcu_entity&"/uart/load_tx_reg", signal_name&".uart_tx", 0);
|
init_signal_spy("/"&mcu_entity&"/mpu_io_wr_data", signal_name&".io_wr_data", 0);
|
init_signal_spy("/"&mcu_entity&"/mpu_io_wr_data", signal_name&".io_wr_data", 0);
|
|
|
-- We force both 'rdy' uart outputs to speed up the simulation (since the
|
-- We force both 'rdy' uart outputs to speed up the simulation (since the
|
-- UART operation is not simulated, just logged).
|
-- UART operation is not simulated, just logged).
|
signal_force("/"&mcu_entity&"/uart_tx_rdy", "1", 0 ms, freeze, -1 ms, 0);
|
signal_force("/"&mcu_entity&"/uart/rx_rdy_flag", "1", 0 ms, freeze, -1 ms, 0);
|
signal_force("/"&mcu_entity&"/uart_rx_rdy", "1", 0 ms, freeze, -1 ms, 0);
|
signal_force("/"&mcu_entity&"/uart/tx_busy", "0", 0 ms, freeze, -1 ms, 0);
|
-- And we force the UART RX data to a predictable value until we implement
|
-- And we force the UART RX data to a predictable value until we implement
|
-- UART RX simulation, eventually.
|
-- UART RX simulation, eventually.
|
signal_force("/"&mcu_entity&"/uart_data_rx", "00000000", 0 ms, freeze, -1 ms, 0);
|
signal_force("/"&mcu_entity&"/uart/rx_buffer", "00000000", 0 ms, freeze, -1 ms, 0);
|
|
|
while done='0' loop
|
while done='0' loop
|
wait until clk'event and clk='1';
|
wait until clk'event and clk='1';
|
if reset='1' then
|
if reset='1' then
|
-- FIXME should use real reset vector here
|
-- FIXME should use real reset vector here
|