Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * Do not change Module name
- */
- module main;
- integer input_list [9:0];
- integer initialized_instructions [9:0];
- integer initialized_memory [99:0];
- integer i, k;
- integer instruction_counter;
- integer inp_idx;
- integer curr_input, curr_output;
- integer output_flag;
- integer instruction, instruction_reg, address_reg;
- integer accumulator;
- initial
- begin
- $display("--- Beginning of Program ---");
- //filling input list with values
- input_list[0] = 9;
- input_list[1] = 5;
- input_list[2] = 7;
- input_list[3] = 12;
- input_list[4] = 13;
- input_list[5] = 72;
- input_list[6] = 24;
- input_list[7] = 39;
- input_list[8] = 51;
- input_list[9] = 20;
- //filling instruction list with values
- initialized_instructions[0] = 901;
- initialized_instructions[1] = 399;
- initialized_instructions[2] = 607;
- initialized_instructions[3] = 299;
- initialized_instructions[4] = 708;
- initialized_instructions[5] = 901;
- initialized_instructions[6] = 809;
- initialized_instructions[7] = 603;
- initialized_instructions[8] = 605;
- initialized_instructions[9] = 0;
- //filling memory list with zeroes
- for(i = 0; i < 100; i = i+1) begin
- initialized_memory[i] = 0;
- end
- initialized_memory[0] = 901;
- initialized_memory[1] = 399;
- initialized_memory[2] = 607;
- initialized_memory[3] = 299;
- initialized_memory[4] = 708;
- initialized_memory[5] = 901;
- initialized_memory[6] = 809;
- initialized_memory[7] = 603;
- initialized_memory[8] = 605;
- initialized_memory[9] = 0;
- $write("Initialized Input List: ");
- for(i = 0; i < 10; i = i + 1) begin
- $write("%d ",input_list[i]);
- end
- $display("\n");
- $write("Initialized Instruction List: ");
- for(i = 0; i < 10; i = i + 1) begin
- $write("%d ",initialized_instructions[i]);
- end
- $display("\nInitialized Memory:");
- for(i = 0; i < 10; i = i + 1) begin
- for (k = 0; k < 10; k = k + 1) begin
- $write("%d ", initialized_memory[(10*i)+k]);
- end
- $display("\n");
- end
- instruction_counter = 0;
- output_flag = 0;
- inp_idx = 0;
- while(instruction_counter < 10) begin
- instruction = initialized_instructions[instruction_counter];
- instruction_reg = instruction / 100;
- address_reg = instruction % 100;
- //INP
- if ((instruction_reg == 9) && (address_reg == 01)) begin
- accumulator = input_list[inp_idx];
- curr_input = accumulator;
- inp_idx = inp_idx + 1;
- end
- //OUT
- else if ((instruction_reg == 9) && (address_reg == 02)) begin
- output_flag = 1;
- curr_output = accumulator;
- end
- //STA
- else if (instruction_reg == 3) begin
- initialized_memory[address_reg] = accumulator;
- end
- instruction_counter = instruction_counter + 1;
- end
- end
- endmodule
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement