From 85ba783a69052c5133fb76ae87e450303a4fd841 Mon Sep 17 00:00:00 2001 From: Jeevaha Coelho Date: Tue, 15 Dec 2020 05:21:37 -0800 Subject: [PATCH 1/2] Fixed signing error in alu and added excel file --- Instructions.xlsx | Bin 0 -> 14368 bytes rtl/mips_cpu_alu.v | 18 +++++++++--------- 2 files changed, 9 insertions(+), 9 deletions(-) create mode 100644 Instructions.xlsx diff --git a/Instructions.xlsx b/Instructions.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..2c17c4448d33feecdbb96151b9266c83a116b0ba GIT binary patch literal 14368 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 literal 0 HcmV?d00001 diff --git a/rtl/mips_cpu_alu.v b/rtl/mips_cpu_alu.v index ba26f57..9f2d48e 100644 --- a/rtl/mips_cpu_alu.v +++ b/rtl/mips_cpu_alu.v @@ -5,7 +5,7 @@ module mips_cpu_alu( input logic [4:0] shamt, //5-bit input used to specify shift amount for shift operations. Taken directly from the R-type instruction (Non-Variable) or from output logic ALUCond, //If a relevant condition is met, this output goes high(Active High). Note: Relevant as in related to current condition being tested. - output logic signed[31:0] ALURes // The ouput of the ALU + output logic[31:0] ALURes // The ouput of the ALU ); /* @@ -77,19 +77,19 @@ Ops ALUOps; //Note confusing naming to avoid potential duplicate variable naming assign ALUOps = ALUOp; case(ALUOps) ADD: begin - ALURes = $signed(A) + $signed(B); + $signed(ALURes) = $signed(A) + $signed(B); end SUB: begin - ALURes = $signed(A) - $signed(B) ; + $signed(ALURes) = $signed(A) - $signed(B) ; end MUL: begin - ALURes = $signed(A) * $signed(B); + $signed(ALURes) = $signed(A) * $signed(B); end DIV: begin - ALURes = $signed(A) / $signed(B); + $signed(ALURes) = $signed(A) / $signed(B); end AND: begin @@ -121,11 +121,11 @@ Ops ALUOps; //Note confusing naming to avoid potential duplicate variable naming end SRA: begin - ALURes = $signed(B) >>> shamt; + $signed(ALURes) = $signed(B) >>> shamt; end SRAV: begin - ALURes = $signed(B) >>> A; + $signed(ALURes) = $signed(B) >>> A; end EQ: begin @@ -205,11 +205,11 @@ Ops ALUOps; //Note confusing naming to avoid potential duplicate variable naming end MULU: begin - ALURes = A * B; + $signed(ALURes) = $signed(A) * $signed(B); end DIVU: begin - ALURes = A / B; + $signed(ALURes) = $signed(A) / $signed(B); end endcase From c88ad413cfb2c45143aec370500e45c65c81495c Mon Sep 17 00:00:00 2001 From: theexecutor13 Date: Tue, 15 Dec 2020 22:05:57 +0800 Subject: [PATCH 2/2] Update reference.txt --- inputs/reference/reference.txt | 311 +++++++++++++++++++++++++++------ 1 file changed, 260 insertions(+), 51 deletions(-) diff --git a/inputs/reference/reference.txt b/inputs/reference/reference.txt index 4ca0414..053a0e8 100644 --- a/inputs/reference/reference.txt +++ b/inputs/reference/reference.txt @@ -1,18 +1,23 @@ == Instruction == -C code Assembly code Hex code Reference Output ================ -ADDIU Add immediate unsigned (no overflow) +==ADDIU Add immediate unsigned (no overflow)== + +ORI $4,$0,0xA +ADDIU $2,$4,20 +JR $0 + +3404000a +24820014 +00000008 + +register_v0 = 30 == ADDU Add unsigned (no overflow) == -int main(void) { - int a = 3 + 5; -} - ORI $4,$0,3 ORI $5,$0,5 ADDU $2,$4,$5 @@ -511,73 +516,277 @@ JR $0 register_v0 = 0x12345678 -// DIVU Divide unsigned +==MTHI Move to HI== -// DIV Divide +ori $4, $0, 5 +mthi $4 +mfhi $2 +jr $0 -//MFHI Move from Hi +34040005 +00800011 +00001010 +00000008 -//MFLO Move from lo +register_v0 = 5 -//MTHI Move to HI +==MTLO Move to LO== -//MTLO Move to LO +ori $4, $0, 5 +mtlo $4 +mflo $2 +jr $0 -//MULT Multiply** +34040005 +00800013 +00001012 +00000008 -//MULTU Multiply unsigned** +register_v0 = 5 -//OR Bitwise or +==MULT Multiply== -//ORI Bitwise or immediate +ori $4, $0, 4 +ori $5, $0, 3 +mult $4, $5 +mflo $2 +jr $0 -//SB Store byte +34040004 +34050003 +00850018 +00001012 +00000008 -//SH Store half-word** +register_v0 = 12 -//SLL Shift left logical +==MULTU Multiply unsigned== -//SLLV Shift left logical variable ** +ori $4, $0, 4 +ori $5, $0, 3 +multu $4, $5 +mflo $2 +jr $0 + +34040004 +34050003 +00850019 +00001012 +00000008 + +register_v0 = 12 + +==OR Bitwise or== + +ori $4, $0, 5 +ori $5, $0, 3 +or $2, $4, $5 +jr $0 + +34040005 +34050003 +00851025 +00000008 + +register_v0 = 7 + +==ORI Bitwise or immediate== + +ori $2, $0, 3 +ori $2, $0, 5 +jr $0 + +34020003 +00000008 +34020005 + +register_v0 = 7 + +==SB Store byte== + +ori $4, $0, 1029 +ori $5, $0, 1 +sb $4, 1($5) +jr $0 + +34040405 +34050001 +a0a40001 +00000008 + +register_v0 = 5 + +SH Store half-word + +==SLL Shift left logical== + +ori $4,$0,3 +sll $2,$4,2 +jr $0 + +34040003 +00041080 +00000008 + +register_v0 = 16 + +==SLLV Shift left logical variable== + +ori $4,$0,2 +ori $5,$0,3 +sllv $2,$5,$4 +jr $0 + +34040002 +34050003 + +register_v0 = 16 //SLT Set on less than (signed) -//SLTI Set on less than immediate (signed) +==SLTI Set on less than immediate (signed)== -//SLTIU Set on less than immediate unsigned - -//SLTU Set on less than unsigned - -//SRA Shift right arithmetic - -//SRAV Shift right arithmetic** - -//SRL Shift right logical - -//SRLV Shift right logical variable** - -//SUBU Subtract unsigned - -//SW Store word - -ori $4, $0, 0xFFFF 3404FFFF -ori $5, $0, 0x1008 34051008 -sw $4, 4($5) ACA40004 -ori $5, $0, 0x100C 3405100C -lw $2, 0($5) 8CA20000 -jr $0 00000008 - -ori $4, $0, 0x1234 -ori $5, $0, 0x1008 -sw $4, 0($5) -lw $2, 0($5) +ori $4, $0, 10 +slti $2, $4, 9 jr $0 +3404000a +28820009 +00000008 + +register_v0 = 0 + +==SLTIU Set on less than immediate unsigned== + +ori $4, $0, 10 +sltiu $2, $4, 9 +jr $0 + +3404000a +2c820009 +00000008 + +register_v0 = 0 + +==SLTU Set on less than unsigned== + +ori $4, $0, 10 +ori $5, $0, 9 +sltu $2, $4, $5 +jr $0 + +3404000a +34050009 +0085102b +00000008 + +register_v0 = 0 + +==SRA Shift right arithmetic== + +ori $4,$0,-2147483647 +sra $2,$4,$2 +jr $0 + +register 0 = -536870912 (first 3 bits high - rest low) + +34040001 +00041003 +00000008 + +==SRAV Shift right arithmetic== + +ori $4, $0, 4 +ori $5,$0,0xF000 +srav $2,$5,$4 +SRAv $v0 $a1 $a0 +jr $0 + +register 0 = -536870912 (first 3 bits high - rest low) + +34040004 +3405F000 + +==SRL Shift right logical== + +ori $4,$0,-2147483647 +srl $2,$4,$2 +jr $0 + +register 0 = 536870912 (2^29) + +34040001 +00041002 +00000008 + +==SRLV Shift right logical variable== + +ori $4,$0,2 +ori $5,$0,16 +srlv $2,$5,$4 +jr $0 + +34040002 +34050010 +00851006 +00000008 + +register_v0 = 3 + +==SUBU Subtract unsigned== + +ori $4,$0,5 +ori $5,$0,3 +subu $2,$4,$5 +jr $0 + +34040005 +34050003 +00851023 +00000008 + +register_v0 = 2 + +==SW Store word== + +ori $4, $0, 0xFFFF +ori $5, $0, 0x1008 +sw $4, 4($5) +ori $5, $0, 0x100C +lw $2, 0($5) +jr $0 + 3404FFFF 34051008 -ACA40000 +ACA40004 +3405100C 8CA20000 00000008 -//XOR Bitwise exclusive or +register_v0 = 0x0000FFFF -//XORI Bitwise exclusive or immediate +==XOR Bitwise exclusive or== + +ori $4, $0, 5 +ori $5, $0, 2 +xor $2, $4, $5 +jr $0 + +34040005 +34050002 +00851026 +00000008 + +register_v0 = 7 + +==XORI Bitwise exclusive or immediate== + +ori $4,$0,5 +xori $2,$4,0xF +jr $0 + +34040005 +3882000F +00000008 + +register_v0 = 10