From 218445e20cb2712d5d39ac1acd3279774b27ef95 Mon Sep 17 00:00:00 2001 From: Arthur Lu Date: Sat, 20 Aug 2022 00:33:07 -0700 Subject: [PATCH] remove ORR instruction --- RTL/ALU.sv | 1 - RTL/Ctrl.sv | 4 ---- firmware/assembler.py | 4 ++-- firmware/program1.asm | 2 +- firmware/program2.asm | 2 +- firmware/program3.asm | 2 +- 6 files changed, 5 insertions(+), 10 deletions(-) diff --git a/RTL/ALU.sv b/RTL/ALU.sv index a8f436f..8861d21 100644 --- a/RTL/ALU.sv +++ b/RTL/ALU.sv @@ -35,7 +35,6 @@ module ALU #(parameter W=8)( CIN = 'b1; Out = AdderResult[W-1:0]; end - ORR: Out = A | B; // bitwise OR between A and B AND: Out = A & B; // bitwise AND between A and B LSH: Out = B << A; // shift B by A bits (limitation of control) RXOR_7: Out = ^(A[6:0]); // perform reduction XOR of lower 7 bits of A diff --git a/RTL/Ctrl.sv b/RTL/Ctrl.sv index 3d4dcc4..2de87b5 100644 --- a/RTL/Ctrl.sv +++ b/RTL/Ctrl.sv @@ -90,10 +90,6 @@ module Ctrl #( ALU_OP = ADD; RaddrA = A_operand; end - 'b0_0110_?: begin // ORR - ALU_OP = ORR; - RaddrA = A_operand; - end 'b0_0111_?: begin // AND ALU_OP = AND; RaddrA = A_operand; diff --git a/firmware/assembler.py b/firmware/assembler.py index 2ab7f30..0484b48 100644 --- a/firmware/assembler.py +++ b/firmware/assembler.py @@ -35,7 +35,7 @@ op_type = { 'CLB': 'G', 'ADD': 'A', #'SUB': 'A', - 'ORR': 'A', + #'ORR': 'A', 'AND': 'A', 'LSH': 'T', 'PTY': 'G', @@ -58,7 +58,7 @@ op_codes = { 'CLB': 0b0_0011_1000, 'ADD': 0b0_0100_0000, #'SUB': 0b0_0101_0000, - 'ORR': 0b0_0110_0000, + #'ORR': 0b0_0110_0000, 'AND': 0b0_0111_0000, 'LSH': 0b0_1000_0000, 'PTY': 0b0_1000_1000, diff --git a/firmware/program1.asm b/firmware/program1.asm index b60e7c5..c01e50e 100644 --- a/firmware/program1.asm +++ b/firmware/program1.asm @@ -56,7 +56,7 @@ lfsr_routine: GET r7 // get previous state PUT r1 // store feedback bit to r1 temporarily GET r7 // get previous state again LSH #d1 // left shift previous state by 1 - ORR r1 // or with parity bit to get next state + XOR r1 // or with parity bit to get next state PUT r7 // put next state to r7 GET r14 // load link register JMP r0 // return to function call address diff --git a/firmware/program2.asm b/firmware/program2.asm index db6f72b..f004521 100644 --- a/firmware/program2.asm +++ b/firmware/program2.asm @@ -98,7 +98,7 @@ lfsr_routine: GET r7 // get previous state PUT r1 // store feedback bit to r1 temporarily GET r7 // get previous state again LSH #d1 // left shift previous state by 1 - ORR r1 // or with parity bit to get next state + XOR r1 // or with parity bit to get next state PUT r7 // put next state to r7 GET r14 // load link register JMP r0 // return to function call address diff --git a/firmware/program3.asm b/firmware/program3.asm index d7d4d42..891bd50 100644 --- a/firmware/program3.asm +++ b/firmware/program3.asm @@ -139,7 +139,7 @@ lfsr_routine: GET r7 // get previous state PUT r1 // store feedback bit to r1 temporarily GET r7 // get previous state again LSH #d1 // left shift previous state by 1 - ORR r1 // or with parity bit to get next state + XOR r1 // or with parity bit to get next state PUT r7 // put next state to r7 GET r14 // load link register JMP r0 // return to function call address