hades.models.mips.core
Class InstrFrame

java.lang.Object
  extended byhades.models.mips.core.InstrFrame
All Implemented Interfaces:
Resetable

public class InstrFrame
extends java.lang.Object
implements Resetable

Execution unit, handles all pipeline stages and dispatches them to other units


Field Summary
 BaseInstr aktInstr
           
 int aktPipeStage
           
protected  Coprocessor[] coproc
           
protected  boolean debug
           
 Decoder decoder
           
 int instrFrameNumber
           
 int instruction
           
 boolean isBreakpoint
           
 boolean isDelaySlot
           
 boolean isJumpInstr
           
 int[] lastPipeStatus
           
protected  AccessMemory mem
           
 BaseInstr nopInstr
           
protected  PartHandler partHandler
           
static int PIPE_CALC_ALU
           
static int PIPE_DECODE1
           
static int PIPE_DECODE2
           
static int PIPE_FETCH_INSTR
           
static int PIPE_GIVE_DATA_ADR
           
static int PIPE_GIVE_INSTR_ADR
           
static int PIPE_IDLE
           
static int PIPE_OPERATE_DATA
           
static int PIPE_SIZE
           
static int PIPE_TRANS_DATA_ADR
           
static int PIPE_TRANS_INSTR_ADR
           
static int PIPE_WRITE_REG
           
 java.lang.String[] pipeStageName
           
 int realInstrAdr
           
protected  Registers reg
           
 Splitter splitter
           
 boolean valid
           
 int virtualInstrAdr
           
 
Constructor Summary
InstrFrame(PartHandler newPartHandler, int frameNumber)
          Initialization
 
Method Summary
 void beginDisassemble()
          Befoe disassemble() can be used beginDisassemble() has to be called in order to save the splitters state
 void calcAlu()
           
 void decodeInstr()
           
 java.lang.String disassemble(int instruction)
          Disassemble one instruction word
 java.lang.String disassembleName(int instruction)
          Get only the name of the instruction
 java.lang.String disassembleOperands(int instruction)
          Get only the operands of the instruction
 void doNothing()
          Maintenance
 void endDisassemble()
          After the last call of disassemble() endDisassemble() has to be called in order to restore the splitters state
 void fetchInstr()
           
 void finishInstr()
           
 boolean getBreakpoint()
          Internal Breakpoint detection
 boolean getLog()
           
 void giveDataAdr()
           
 void giveInstrAdr()
           
 void operateData()
           
 void por()
          Power on reset or hardware reset
 void reset()
          software reset
 void setLog(boolean newDebug)
           
 void setValid(boolean newValid)
          Instruction will only be executed when its valid-flag is set
 void translateDataAdr()
           
 void translateInstrAdr()
          Pipeline stages
 void writeRegister()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

instrFrameNumber

public int instrFrameNumber

aktInstr

public BaseInstr aktInstr

nopInstr

public BaseInstr nopInstr

realInstrAdr

public int realInstrAdr

virtualInstrAdr

public int virtualInstrAdr

valid

public boolean valid

isDelaySlot

public boolean isDelaySlot

isJumpInstr

public boolean isJumpInstr

isBreakpoint

public boolean isBreakpoint

debug

protected boolean debug

aktPipeStage

public int aktPipeStage

lastPipeStatus

public int[] lastPipeStatus

pipeStageName

public java.lang.String[] pipeStageName

splitter

public Splitter splitter

decoder

public Decoder decoder

instruction

public int instruction

partHandler

protected PartHandler partHandler

reg

protected Registers reg

mem

protected AccessMemory mem

coproc

protected Coprocessor[] coproc

PIPE_IDLE

public static final int PIPE_IDLE
See Also:
Constant Field Values

PIPE_TRANS_INSTR_ADR

public static final int PIPE_TRANS_INSTR_ADR
See Also:
Constant Field Values

PIPE_GIVE_INSTR_ADR

public static final int PIPE_GIVE_INSTR_ADR
See Also:
Constant Field Values

PIPE_FETCH_INSTR

public static final int PIPE_FETCH_INSTR
See Also:
Constant Field Values

PIPE_DECODE1

public static final int PIPE_DECODE1
See Also:
Constant Field Values

PIPE_DECODE2

public static final int PIPE_DECODE2
See Also:
Constant Field Values

PIPE_CALC_ALU

public static final int PIPE_CALC_ALU
See Also:
Constant Field Values

PIPE_TRANS_DATA_ADR

public static final int PIPE_TRANS_DATA_ADR
See Also:
Constant Field Values

PIPE_GIVE_DATA_ADR

public static final int PIPE_GIVE_DATA_ADR
See Also:
Constant Field Values

PIPE_OPERATE_DATA

public static final int PIPE_OPERATE_DATA
See Also:
Constant Field Values

PIPE_WRITE_REG

public static final int PIPE_WRITE_REG
See Also:
Constant Field Values

PIPE_SIZE

public static final int PIPE_SIZE
See Also:
Constant Field Values
Constructor Detail

InstrFrame

public InstrFrame(PartHandler newPartHandler,
                  int frameNumber)
Initialization

Method Detail

por

public void por()
Power on reset or hardware reset

Specified by:
por in interface Resetable

reset

public void reset()
software reset

Specified by:
reset in interface Resetable

doNothing

public void doNothing()
Maintenance


setValid

public void setValid(boolean newValid)
Instruction will only be executed when its valid-flag is set


getBreakpoint

public boolean getBreakpoint()
Internal Breakpoint detection


setLog

public void setLog(boolean newDebug)

getLog

public boolean getLog()

beginDisassemble

public void beginDisassemble()
Befoe disassemble() can be used beginDisassemble() has to be called in order to save the splitters state


disassemble

public java.lang.String disassemble(int instruction)
Disassemble one instruction word


disassembleName

public java.lang.String disassembleName(int instruction)
Get only the name of the instruction


disassembleOperands

public java.lang.String disassembleOperands(int instruction)
Get only the operands of the instruction


endDisassemble

public void endDisassemble()
After the last call of disassemble() endDisassemble() has to be called in order to restore the splitters state


translateInstrAdr

public void translateInstrAdr()
Pipeline stages


giveInstrAdr

public void giveInstrAdr()

fetchInstr

public void fetchInstr()

decodeInstr

public void decodeInstr()

calcAlu

public void calcAlu()

translateDataAdr

public void translateDataAdr()

giveDataAdr

public void giveDataAdr()

operateData

public void operateData()

writeRegister

public void writeRegister()

finishInstr

public void finishInstr()