From 97fcfb7ef149390ef34fae448434d82f252755ae Mon Sep 17 00:00:00 2001 From: WilliamMiceli Date: Mon, 25 Mar 2019 17:08:22 -0400 Subject: [PATCH] Fixed equation solver instructions --- lab2CA.srcs/sources_1/new/instructionMemory.v | 137 +++++++++--------- 1 file changed, 67 insertions(+), 70 deletions(-) diff --git a/lab2CA.srcs/sources_1/new/instructionMemory.v b/lab2CA.srcs/sources_1/new/instructionMemory.v index c7cc954..c11da7d 100644 --- a/lab2CA.srcs/sources_1/new/instructionMemory.v +++ b/lab2CA.srcs/sources_1/new/instructionMemory.v @@ -11,14 +11,11 @@ module instructionMemory( initial begin //Equation Solver memory[0] <= 9'b000000000; - memory[1] <= 9'b011000000; //add0 - memory[1] <= 9'b011001001; //add1 - memory[1] <= 9'b000100000; //load - memory[2] <= 9'b000101000; //load - memory[3] <= 9'b010100010; //add - memory[4] <= 9'b111100000; //shift left - memory[5] <= 9'b111100000; //shift left - memory[6] <= 9'b000000000; //halt + memory[1] <= 9'b000100000; //load + memory[2] <= 9'b000101000; //load + memory[3] <= 9'b010100010; //add + memory[4] <= 9'b111100000; //shift left + memory[5] <= 9'b111100000; //shift left // //Testing all instructions // memory[6] <= 9'b010100011; //sub @@ -80,68 +77,68 @@ module instructionMemory( // Bubble Sort - memory[0] <= 9'b000000001; // nop - // Setup - memory[1] <= 9'b010000000; // zero $a - memory[2] <= 9'b000100000; // lb $a, $a - memory[3] <= 9'b010001000; // zero $b - memory[4] <= 9'b010010000; // zero $c - memory[5] <= 9'b010011000; // zero $d - memory[6] <= 9'b101001000; // banks $b, $0 - memory[7] <= 9'b101001010; // banks $b, $1 - memory[8] <= 9'b100100011; // jf EndChk - // Increment current index to compare next pair of values - // Inc: - memory[9] <= 9'b101001001; // bankl $b, $0 - memory[10] <= 9'b011001001; // addi $b, 1 - memory[11] <= 9'b101001000; // banks $b, $0 - // Check if at the end of the array - // EndChk: - memory[12] <= 9'b101001001; // bankl $b, $0 - memory[13] <= 9'b011101000; // slt $b, $a - memory[14] <= 9'b110001001; // beq $b, JSC - memory[15] <= 9'b100100001; // jf LoadNext - // JSC: - memory[16] <= 9'b100110100; // jf SwapChk - // Load next values for comparison - // LoadNext: - memory[17] <= 9'b101001001; // bankl $b, $0 - memory[18] <= 9'b011001001; // addi $b, 1 - memory[19] <= 9'b000110010; // lb $c, $b - memory[20] <= 9'b011001001; // addi $b, 1 - memory[21] <= 9'b000111010; // lb $d, $b - // Compare loaded values to see if they need to be swapped - memory[22] <= 9'b101011110; // banks $d, $3 - memory[23] <= 9'b011111100; // slt $d, $c - memory[24] <= 9'b110011001; // beq $d, JI - memory[25] <= 9'b100100001; // jf Swap - // JI: - memory[26] <= 9'b101110010; // jb Inc - // Swap values in array - // Swap: - memory[27] <= 9'b101001001; // bankl $b, $0 - memory[28] <= 9'b011001001; // addi $b, 1 - memory[29] <= 9'b101011111; // bankl $d, $3 - memory[30] <= 9'b001011010; // sb $d, $b - memory[31] <= 9'b011001001; // addi $b, 1 - memory[32] <= 9'b001010010; // sb $c, $b - memory[33] <= 9'b010001000; // zero $b - memory[34] <= 9'b011001001; // addi $b, 1 - memory[35] <= 9'b101001010; // banks $b, $1 - memory[36] <= 9'b101111100; // jb Inc - // Check to see if any swaps have been made in the last iteration - // SwapChk: - memory[37] <= 9'b101001011; // bankl $b, $1 - memory[38] <= 9'b110001001; // beq $b, JE - memory[39] <= 9'b100100001; // jf Reset - // JE: - memory[40] <= 9'b100100011; // jf End - // Reset: - memory[41] <= 9'b010001000; // zero $b - memory[42] <= 9'b101001000; // banks $b, $0 - memory[43] <= 9'b101111011; // jb LoadNext - // End: - memory[44] <= 9'b000000000; // halt +// memory[0] <= 9'b000000001; // nop +// // Setup +// memory[1] <= 9'b010000000; // zero $a +// memory[2] <= 9'b000100000; // lb $a, $a +// memory[3] <= 9'b010001000; // zero $b +// memory[4] <= 9'b010010000; // zero $c +// memory[5] <= 9'b010011000; // zero $d +// memory[6] <= 9'b101001000; // banks $b, $0 +// memory[7] <= 9'b101001010; // banks $b, $1 +// memory[8] <= 9'b100100011; // jf EndChk +// // Increment current index to compare next pair of values +// // Inc: +// memory[9] <= 9'b101001001; // bankl $b, $0 +// memory[10] <= 9'b011001001; // addi $b, 1 +// memory[11] <= 9'b101001000; // banks $b, $0 +// // Check if at the end of the array +// // EndChk: +// memory[12] <= 9'b101001001; // bankl $b, $0 +// memory[13] <= 9'b011101000; // slt $b, $a +// memory[14] <= 9'b110001001; // beq $b, JSC +// memory[15] <= 9'b100100001; // jf LoadNext +// // JSC: +// memory[16] <= 9'b100110100; // jf SwapChk +// // Load next values for comparison +// // LoadNext: +// memory[17] <= 9'b101001001; // bankl $b, $0 +// memory[18] <= 9'b011001001; // addi $b, 1 +// memory[19] <= 9'b000110010; // lb $c, $b +// memory[20] <= 9'b011001001; // addi $b, 1 +// memory[21] <= 9'b000111010; // lb $d, $b +// // Compare loaded values to see if they need to be swapped +// memory[22] <= 9'b101011110; // banks $d, $3 +// memory[23] <= 9'b011111100; // slt $d, $c +// memory[24] <= 9'b110011001; // beq $d, JI +// memory[25] <= 9'b100100001; // jf Swap +// // JI: +// memory[26] <= 9'b101110010; // jb Inc +// // Swap values in array +// // Swap: +// memory[27] <= 9'b101001001; // bankl $b, $0 +// memory[28] <= 9'b011001001; // addi $b, 1 +// memory[29] <= 9'b101011111; // bankl $d, $3 +// memory[30] <= 9'b001011010; // sb $d, $b +// memory[31] <= 9'b011001001; // addi $b, 1 +// memory[32] <= 9'b001010010; // sb $c, $b +// memory[33] <= 9'b010001000; // zero $b +// memory[34] <= 9'b011001001; // addi $b, 1 +// memory[35] <= 9'b101001010; // banks $b, $1 +// memory[36] <= 9'b101111100; // jb Inc +// // Check to see if any swaps have been made in the last iteration +// // SwapChk: +// memory[37] <= 9'b101001011; // bankl $b, $1 +// memory[38] <= 9'b110001001; // beq $b, JE +// memory[39] <= 9'b100100001; // jf Reset +// // JE: +// memory[40] <= 9'b100100011; // jf End +// // Reset: +// memory[41] <= 9'b010001000; // zero $b +// memory[42] <= 9'b101001000; // banks $b, $0 +// memory[43] <= 9'b101111011; // jb LoadNext +// // End: +// memory[44] <= 9'b000000000; // halt // Binary Search