signal r_int, rin_int : reg_internal_type := reg_internal_init;
- signal gpr_write_valid : std_ulogic := '0';
- signal cr_write_valid : std_ulogic := '0';
+ signal gpr_write_valid : std_ulogic;
+ signal cr_write_valid : std_ulogic;
type tag_register is record
wr_gpr : std_ulogic;
end if;
if rst = '1' then
+ gpr_write_valid <= '0';
+ cr_write_valid <= '0';
v_int := reg_internal_init;
valid_tmp := '0';
end if;
signal do_interrupt: std_ulogic;
-- Delayed/Latched resets and alt_reset
- signal rst_fetch1 : std_ulogic := '1';
- signal rst_fetch2 : std_ulogic := '1';
- signal rst_icache : std_ulogic := '1';
- signal rst_dcache : std_ulogic := '1';
- signal rst_dec1 : std_ulogic := '1';
- signal rst_dec2 : std_ulogic := '1';
- signal rst_ex1 : std_ulogic := '1';
- signal rst_fpu : std_ulogic := '1';
- signal rst_ls1 : std_ulogic := '1';
- signal rst_wback : std_ulogic := '1';
- signal rst_dbg : std_ulogic := '1';
+ signal rst_fetch1 : std_ulogic;
+ signal rst_fetch2 : std_ulogic;
+ signal rst_icache : std_ulogic;
+ signal rst_dcache : std_ulogic;
+ signal rst_dec1 : std_ulogic;
+ signal rst_dec2 : std_ulogic;
+ signal rst_ex1 : std_ulogic;
+ signal rst_fpu : std_ulogic;
+ signal rst_ls1 : std_ulogic;
+ signal rst_wback : std_ulogic;
+ signal rst_dbg : std_ulogic;
signal alt_reset_d : std_ulogic;
signal sim_cr_dump: std_ulogic;
signal mshort_p : std_ulogic_vector(31 downto 0) := (others => '0');
signal valid_in : std_ulogic;
- signal ctrl: ctrl_t := (others => (others => '0'));
- signal ctrl_tmp: ctrl_t := (others => (others => '0'));
+ signal ctrl: ctrl_t;
+ signal ctrl_tmp: ctrl_t;
signal right_shift, rot_clear_left, rot_clear_right: std_ulogic;
signal rot_sign_ext: std_ulogic;
signal rotator_result: std_ulogic_vector(63 downto 0);
r <= reg_type_init;
ctrl.tb <= (others => '0');
ctrl.dec <= (others => '0');
+ ctrl.cfar <= (others => '0');
ctrl.msr <= (MSR_SF => '1', MSR_LE => '1', others => '0');
else
r <= rin;
constant GPIO_REG_DATA_CLR : std_ulogic_vector(GPIO_REG_BITS-1 downto 0) := "00101";
-- Current output value and direction
- signal reg_data : std_ulogic_vector(NGPIO - 1 downto 0) := (others => '0');
- signal reg_dirn : std_ulogic_vector(NGPIO - 1 downto 0) := (others => '0');
+ signal reg_data : std_ulogic_vector(NGPIO - 1 downto 0);
+ signal reg_dirn : std_ulogic_vector(NGPIO - 1 downto 0);
signal reg_in1 : std_ulogic_vector(NGPIO - 1 downto 0);
signal reg_in2 : std_ulogic_vector(NGPIO - 1 downto 0);
signal dmi_core_ack : std_ulogic;
-- Delayed/latched resets and alt_reset
- signal rst_core : std_ulogic := '1';
- signal rst_uart : std_ulogic := '1';
- signal rst_xics : std_ulogic := '1';
- signal rst_spi : std_ulogic := '1';
- signal rst_gpio : std_ulogic := '1';
- signal rst_bram : std_ulogic := '1';
- signal rst_dtm : std_ulogic := '1';
- signal rst_wbar : std_ulogic := '1';
- signal rst_wbdb : std_ulogic := '1';
+ signal rst_core : std_ulogic;
+ signal rst_uart : std_ulogic;
+ signal rst_xics : std_ulogic;
+ signal rst_spi : std_ulogic;
+ signal rst_gpio : std_ulogic;
+ signal rst_bram : std_ulogic;
+ signal rst_dtm : std_ulogic;
+ signal rst_wbar : std_ulogic;
+ signal rst_wbdb : std_ulogic;
signal alt_reset_d : std_ulogic;
-- IO branch split:
constant SPI_REG_INVALID : std_ulogic_vector(SPI_REG_BITS-1 downto 0) := "111";
-- Control register
- signal ctrl_reg : std_ulogic_vector(15 downto 0) := (others => '0');
+ signal ctrl_reg : std_ulogic_vector(15 downto 0);
alias ctrl_reset : std_ulogic is ctrl_reg(0);
alias ctrl_cs : std_ulogic is ctrl_reg(1);
alias ctrl_rsrv1 : std_ulogic is ctrl_reg(2);