X-Git-Url: https://rtime.felk.cvut.cz/gitweb/fpga/lx-cpu1/tumbl.git/blobdiff_plain/d161f700f83405651daa3225a48979e67c849b7b..8f15121bd781ce710a4bea9c4bb9b4975b556e2e:/hw/mbl_Pkg.vhd diff --git a/hw/mbl_Pkg.vhd b/hw/mbl_Pkg.vhd index 2b53585..c81f642 100644 --- a/hw/mbl_Pkg.vhd +++ b/hw/mbl_Pkg.vhd @@ -55,6 +55,8 @@ PACKAGE mbl_Pkg IS TYPE MEM_ACTION_Type IS (NO_MEM, WR_MEM, RD_MEM); TYPE TRANSFER_SIZE_Type IS (WORD, HALFWORD, BYTE); TYPE SAVE_REG_Type IS (NO_SAVE, SAVE_RA, SAVE_RB); + TYPE CMP_COND_Type IS (COND_ALL, COND_EQ, COND_NE, COND_LT, COND_LE, COND_GT, COND_GE); + TYPE CMP_COND_TYPE_Type IS (COND_TYPE_ALL, COND_TYPE_IF_THEN, COND_TYPE_IF_THEN_THEN, COND_TYPE_IF_THEN_ELSE); -- TYPE IF2ID_Type IS RECORD program_counter : STD_LOGIC_VECTOR (31 DOWNTO 0); @@ -76,6 +78,8 @@ PACKAGE mbl_Pkg IS mem_Action : MEM_ACTION_Type; -- rd_mem implies writeback transfer_Size : TRANSFER_SIZE_Type; wrb_Action : WRB_ACTION_Type; + cmp_Cond : CMP_COND_Type; + cmp_Cond_Type : CMP_COND_TYPE_Type; END RECORD; TYPE ID2GPRF_Type IS RECORD @@ -116,6 +120,11 @@ PACKAGE mbl_Pkg IS branch_target : STD_LOGIC_VECTOR (31 DOWNTO 0); END RECORD; + TYPE EX2CTRL_Type IS RECORD + flush_first : STD_LOGIC; + flush_second : STD_LOGIC; + END RECORD; + TYPE HALT_Type IS RECORD halt : STD_LOGIC; halt_code : STD_LOGIC_VECTOR ( 4 DOWNTO 0); @@ -223,12 +232,14 @@ PACKAGE mbl_Pkg IS COMPONENT exeq IS GENERIC ( USE_HW_MUL_g : BOOLEAN := FALSE; - USE_BARREL_g : BOOLEAN := FALSE + USE_BARREL_g : BOOLEAN := FALSE; + COMPATIBILITY_MODE_g : BOOLEAN := FALSE ); PORT ( ID2EX_i : IN ID2EX_Type; GPRF2EX_i : IN GPRF2EX_Type; EX2IF_o : OUT EX2IF_Type; + EX2CTRL_o : OUT EX2CTRL_Type; HALT_o : OUT HALT_Type; -- EX_WRB_i : IN WRB_Type; @@ -291,6 +302,7 @@ PACKAGE mbl_Pkg IS -- exeq to fetch feedback registers EX2IF_REG_i : IN EX2IF_Type; EX2IF_REG_o : OUT EX2IF_Type; + EX2CTRL_REG_i : IN EX2CTRL_Type; -- exeq to core (halting) exeq_halt_i : IN STD_LOGIC; -- exeq to mem pipeline registers