Made the decode unit able to continuously decode (simple) instructions if BIU allows it
This commit is contained in:
parent
30c3deca37
commit
90f63b525d
@ -206,10 +206,32 @@ reg [23:0] INSTRUCTION_BUFFER;
|
||||
|
||||
reg owe_set_init;
|
||||
|
||||
//TODO: Why do we need to make a local copy on a register for the code inside the always @(next_state) to read it?
|
||||
// For some reason the raw VALID_INSTRUCTION signal reads always 1 and it has something to do with the block
|
||||
// being triggered by next_exec
|
||||
reg VALID_INSTRUCTION_lc;
|
||||
always @(VALID_INSTRUCTION)begin VALID_INSTRUCTION_lc<=VALID_INSTRUCTION; end
|
||||
|
||||
always @(next_exec) begin
|
||||
valid_exec_data<=0;
|
||||
proc_state<=`PROC_DE_STATE_ENTRY;
|
||||
if ( VALID_INSTRUCTION_lc == 1 && SIMPLE_MICRO == 0 && DE_DEPENDS_ON_PREVIOUS == 0 && ucode_seq_addr_entry==`UCODE_NO_INSTRUCTION) begin
|
||||
`ifdef DEBUG_PC_ADDRESS
|
||||
$display("Running command at %04x (%08x)",INSTRUCTION_LOCATION,INSTRUCTION);
|
||||
`endif
|
||||
`ifdef CALCULATE_IPC
|
||||
new_instruction <= !new_instruction;
|
||||
`endif
|
||||
DE_OUTPUT_sampled <= DE_OUTPUT;
|
||||
set_initial_values<= !set_initial_values;
|
||||
valid_instruction_ack <= !valid_instruction_ack;
|
||||
ProgCount <= INSTRUCTION_LOCATION+{12'b0,instr_end};
|
||||
INSTRUCTION_BUFFER<=INSTRUCTION[23:0];
|
||||
wait_exec<=1;
|
||||
valid_exec_data<=1;
|
||||
end else begin
|
||||
wait_exec<=0;
|
||||
valid_exec_data<=0;
|
||||
end
|
||||
end
|
||||
|
||||
reg wait_exec;
|
||||
|
Loading…
Reference in New Issue
Block a user