@ -127,12 +127,16 @@ package common is
is_signed: std_ulogic;
is_signed: std_ulogic;
insn: std_ulogic_vector(31 downto 0);
insn: std_ulogic_vector(31 downto 0);
data_len: std_ulogic_vector(3 downto 0);
data_len: std_ulogic_vector(3 downto 0);
byte_reverse : std_ulogic;
sign_extend : std_ulogic; -- do we need to sign extend?
update : std_ulogic; -- is this an update instruction?
end record;
end record;
constant Decode2ToExecute1Init : Decode2ToExecute1Type :=
constant Decode2ToExecute1Init : Decode2ToExecute1Type :=
(valid => '0', insn_type => OP_ILLEGAL, bypass_data1 => '0', bypass_data2 => '0', bypass_data3 => '0',
(valid => '0', insn_type => OP_ILLEGAL, bypass_data1 => '0', bypass_data2 => '0', bypass_data3 => '0',
lr => '0', rc => '0', oe => '0', invert_a => '0',
lr => '0', rc => '0', oe => '0', invert_a => '0',
invert_out => '0', input_carry => ZERO, output_carry => '0', input_cr => '0', output_cr => '0',
invert_out => '0', input_carry => ZERO, output_carry => '0', input_cr => '0', output_cr => '0',
is_32bit => '0', is_signed => '0', xerc => xerc_init, others => (others => '0'));
is_32bit => '0', is_signed => '0', xerc => xerc_init,
byte_reverse => '0', sign_extend => '0', update => '0', others => (others => '0'));
type Execute1ToMultiplyType is record
type Execute1ToMultiplyType is record
valid: std_ulogic;
valid: std_ulogic;
@ -189,7 +193,7 @@ package common is
end record;
end record;
constant Execute1ToFetch1TypeInit : Execute1ToFetch1Type := (redirect => '0', others => (others => '0'));
constant Execute1ToFetch1TypeInit : Execute1ToFetch1Type := (redirect => '0', others => (others => '0'));
type Decode2ToLoadstore1Type is record
type Execute1ToLoadstore1Type is record
valid : std_ulogic;
valid : std_ulogic;
load : std_ulogic; -- is this a load or store
load : std_ulogic; -- is this a load or store
addr1 : std_ulogic_vector(63 downto 0);
addr1 : std_ulogic_vector(63 downto 0);
@ -203,9 +207,9 @@ package common is
update_reg : gpr_index_t; -- if so, the register to update
update_reg : gpr_index_t; -- if so, the register to update
xerc : xer_common_t;
xerc : xer_common_t;
end record;
end record;
constant Decode2ToLoadstore1Init : Decode2ToLoadstore1Type := (valid => '0', load => '0', byte_reverse => '0',
constant Execute1ToLoadstore1Init : Execute1ToLoadstore1Type := (valid => '0', load => '0', byte_reverse => '0',
sign_extend => '0', update => '0', xerc => xerc_init,
sign_extend => '0', update => '0', xerc => xerc_init,
others => (others => '0'));
others => (others => '0'));
type Loadstore1ToDcacheType is record
type Loadstore1ToDcacheType is record
valid : std_ulogic;
valid : std_ulogic;