Enabled Bubble Sort for testing

This commit is contained in:
WilliamMiceli
2019-04-06 14:18:43 -04:00
parent 3129880d50
commit 31f0d8a9fc

View File

@@ -5,16 +5,17 @@ module instructionMemory(
output reg [8:0] readData output reg [8:0] readData
); );
reg [8:0] memory [512:0]; reg [8:0] memory [100:0]; // Maximum of 512 memory locations
// Vivado will give warnings of unconnected ports on the "address" bus if they are unused
initial begin initial begin
//Equation Solver // //Equation Solver
memory[0] <= 9'b000000000; // memory[0] <= 9'b000000000;
memory[1] <= 9'b000100000; //load // memory[1] <= 9'b000100000; //load
memory[2] <= 9'b000101000; //load // memory[2] <= 9'b000101000; //load
memory[3] <= 9'b010100010; //add // memory[3] <= 9'b010100010; //add
memory[4] <= 9'b111100000; //shift left // memory[4] <= 9'b111100000; //shift left
memory[5] <= 9'b111100000; //shift left // memory[5] <= 9'b111100000; //shift left
// //Testing all instructions // //Testing all instructions
// memory[6] <= 9'b010100011; //sub // memory[6] <= 9'b010100011; //sub
@@ -75,69 +76,69 @@ module instructionMemory(
// memory[39] <= 9'b000000000; // memory[39] <= 9'b000000000;
// 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