Fixed equation solver instructions

This commit is contained in:
WilliamMiceli
2019-03-25 17:08:22 -04:00
parent 2420d52fc3
commit 97fcfb7ef1

View File

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