From f59d067abe4e8bc171ea22831b749b206d9dae9f Mon Sep 17 00:00:00 2001 From: dylanbenzi Date: Sun, 20 Sep 2026 18:28:52 -0400 Subject: [PATCH] add my logic notes --- notes.txt | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 notes.txt diff --git a/notes.txt b/notes.txt new file mode 100644 index 0000000..7da496e --- /dev/null +++ b/notes.txt @@ -0,0 +1,76 @@ +instructions needed (R, I, S, B) +ops needed: + NOP (I) opcode: 001 0011, funct3: 000 note: same encoding as addi x0, x0, 0 + ADD (R) opcode: 011 0011, funct3: 000, funct7: 000 0000 + SUB (R) opcode: 011 0011, funct3: 000, funct7: 010 0000 + SLL (R) opcode: 011 0011, funct3: 001, funct7: 000 0000 + SRL (R) opcode: 011 0011, funct3: 101, funct7: 000 0000 + ADDI (I) opcode: 001 0011, funct3: 000 + LOAD (I) opcode: 000 0011, funct3: 010 + STORE (S) opcode: 010 0011, funct3: 010 + BEQ (B) opcode: 110 0011, funct3: 000 + EBREAK (I) opcode: 111 0011, funct3: 000 + +- opcode [6:0] +- funct3 [14:12] +- rs1 [19:15] + +R type +- opcode: 011 0011 +- funct7 [31:25] +- rs2 [24:20] +- rs1 [19:15] +- funct3 [14:12] +- rd [11:7] +- opcode [6:0] + +I type +- opcode: 001 0011 | 000 0011 +- imm [31:20] +- rs1 [19:15] +- funct3 [14:12] +- rd [11:7] +- opcode [6:0] + +S type +- opcode: 010 0011 +- imm [31:25] +- rs2 [24:20] +- rs1 [19:15] +- funct3 [14:12] +- imm [11:7] +- opcode [6:0] + +B type +- opcode: 110 0011 +- imm [31:25] +- rs2 [24:20] +- rs1 [19:15] +- funct3 [14:12] +- imm [11:7] +- opcode [6:0] + +main decoder truth table +instr opcode regwrite immsrc alusrc memwrite resultsrc branch aluop +add 0110011 1 xx 0 0 0 0 10 +sub 0110011 1 xx 0 0 0 0 10 +sll 0110011 1 xx 0 0 0 0 10 +srl 0110011 1 xx 0 0 0 0 10 +addi 0010011 1 00 1 0 0 0 10 +lw 0000011 1 00 1 0 1 0 00 +sw 0100011 0 01 1 1 x 0 00 +beq 1100011 0 10 0 0 x 1 01 +ebreak 1110011 x xx 0 0 0 1 01 + + +alu decoder truth table +aluop funct3 {op[5], funct7[5]} alucontrol instruction +00 x x 00 (add) lw, sw +01 x x 01 (sub) beq +10 000 00, 01, 10 00 (add) add, addi + 000 11 01 (sub) sub + 001 x 10 (sll) sll + 101 x 11 (srl) srl + + +