2019-02-08 23:59:56 +01:00
|
|
|
/******************************************************************************
|
|
|
|
* Dx
|
|
|
|
* register manipulation field A
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
`include "decstates.v"
|
|
|
|
|
|
|
|
`DEC_DX: begin
|
2019-02-11 09:12:19 +01:00
|
|
|
field <= `T_FIELD_A;
|
|
|
|
alu_first <= 0;
|
|
|
|
alu_last <= 4;
|
|
|
|
|
|
|
|
case (nb_in[3:2])
|
|
|
|
2'b00: begin
|
|
|
|
alu_op <= `ALU_OP_ZERO;
|
2019-02-11 11:29:31 +01:00
|
|
|
alu_reg_dest <= reg_ABCD;
|
2019-02-11 09:12:19 +01:00
|
|
|
end
|
|
|
|
2'b01: begin
|
|
|
|
alu_op <= `ALU_OP_COPY;
|
2019-02-11 11:29:31 +01:00
|
|
|
alu_reg_dest <= reg_ABCD;
|
|
|
|
alu_reg_src1 <= reg_BCAC;
|
2019-02-08 23:59:56 +01:00
|
|
|
end
|
2019-02-11 09:12:19 +01:00
|
|
|
2'b10: begin
|
|
|
|
alu_op <= `ALU_OP_COPY;
|
2019-02-11 11:29:31 +01:00
|
|
|
alu_reg_dest <= reg_BCAC;
|
|
|
|
alu_reg_src1 <= reg_ABCD;
|
2019-02-08 23:59:56 +01:00
|
|
|
end
|
2019-02-11 09:12:19 +01:00
|
|
|
2'b11: begin
|
|
|
|
alu_op <= `ALU_OP_EXCH;
|
2019-02-11 11:29:31 +01:00
|
|
|
alu_reg_dest <= reg_ABAC;
|
|
|
|
alu_reg_src1 <= reg_BCCD;
|
2019-02-08 23:59:56 +01:00
|
|
|
end
|
|
|
|
endcase
|
2019-02-11 09:12:19 +01:00
|
|
|
next_cycle <= `BUSCMD_NOP;
|
|
|
|
decstate <= `DEC_ALU_INIT;
|
|
|
|
alu_return <= `DEC_START;
|
2019-02-08 23:59:56 +01:00
|
|
|
end
|