33 lines
994 B
Plaintext
33 lines
994 B
Plaintext
|
|
//a1f: ALU 1 operation (function)
|
|
// 000:ALU_OP_ADD
|
|
// 001:ALU_OP_SUB
|
|
// 010:ALU_OP_AND
|
|
// 011:ALU_OP_OR
|
|
// 100:ALU_OP_XOR
|
|
// 101:ALU_OP_ADD_SIGNED_B
|
|
//
|
|
//a1o: out_alu1_sel. Handled in `PROC_EX_STATE_EXIT
|
|
//
|
|
//a12: In ALU 1 sel 2
|
|
//
|
|
//a11: In ALU 1 sel 1
|
|
//
|
|
//rwa: Register Write Address
|
|
//
|
|
//nxs: Next State
|
|
// 00: PROC_EX_STATE_ENTRY
|
|
// 01: PROC_DE_LOAD_16_PARAM
|
|
// 10: PROC_DE_LOAD_8_PARAM
|
|
// 11: PROC_DE_LOAD_REG_TO_PARAM
|
|
//
|
|
//Nxt M: Next microcode address
|
|
|
|
|
|
// 24 21 18 15 13 11 7 5 0
|
|
// rr1 |a1f|a1o|a12|a11|rwa |nxs|Nxt M |
|
|
@000 0000_000_000__00__00_0000__00_000000
|
|
@001 zzzz_000_110__10__11_0111__01_000010 // ALU_1: 0 ALU_2: PC ALU_OP:ADD ALU_out: [SP] (also fetch the opcode argument to PARAM1)
|
|
@002 1100_001_011__00__01_1100__00_000011 // ALU_1: SP ALU_2: PARAM2 (2) ALU_OP:SUB ALU_out: SP
|
|
@003 zzzz_000_101__10__00_zzzz__00_000000 // ALU_1: PARAM1 (arg) ALU_2: PC ALU_OP:ADD ALU_out: PC
|