write_cr_data : std_ulogic_vector(31 downto 0);
end record;
constant WritebackToCrFileInit : WritebackToCrFileType := (write_cr_enable => '0', others => (others => '0'));
-
- -- Would prefer not to expose this outside the register file, but ghdl
- -- doesn't support external names
- type regfile is array(0 to 32) of std_ulogic_vector(63 downto 0);
end common;
package body common is
-- Debug status
signal dbg_core_is_stopped: std_ulogic;
- -- For sim
- signal registers: regfile;
-
begin
core_rst <= dbg_core_rst or rst;
);
register_file_0: entity work.register_file
+ generic map (
+ SIM => SIM
+ )
port map (
clk => clk,
d_in => decode2_to_register_file,
d_out => register_file_to_decode2,
w_in => writeback_to_register_file,
- registers_out => registers);
+ sim_dump => terminate
+ );
cr_file_0: entity work.cr_file
port map (
terminated_out => terminated_out
);
- -- Dump registers if core terminates
- sim_terminate_test: if SIM generate
- dump_registers: process(all)
- begin
- if terminate = '1' then
- loop_0: for i in 0 to 31 loop
- report "REG " & to_hstring(registers(i));
- end loop loop_0;
- assert false report "end of test" severity failure;
- end if;
- end process;
- end generate;
-
end behave;
use work.common.all;
entity register_file is
+ generic (
+ SIM : boolean := false
+ );
port(
clk : in std_logic;
w_in : in WritebackToRegisterFileType;
-- debug
- registers_out : out regfile
+ sim_dump : in std_ulogic
);
end entity register_file;
architecture behaviour of register_file is
+ type regfile is array(0 to 32) of std_ulogic_vector(63 downto 0);
signal registers : regfile := (others => (others => '0'));
begin
-- synchronous writes
end if;
end process register_read_0;
- -- debug
- registers_out <= registers;
+ -- Dump registers if core terminates
+ sim_dump_test: if SIM generate
+ dump_registers: process(all)
+ begin
+ if sim_dump = '1' then
+ loop_0: for i in 0 to 31 loop
+ report "REG " & to_hstring(registers(i));
+ end loop loop_0;
+ assert false report "end of test" severity failure;
+ end if;
+ end process;
+ end generate;
+
end architecture behaviour;