Пример #1
0
 def instructions_generate(self):
     instruction_type = ["write", "read", "calc"]
     index = 0
     read = 0
     calc = 0
     write = 0
     while index < 100:
         operation = np.random.normal(2)
         operation = int(np.round(operation))
         if operation > 2 or operation < 0:
             pass
         else:
             # If operation is 0, it means that is a write.
             if operation == 0:
                 flag = True
                 while flag:
                     address = np.random.poisson(8)
                     if 0 <= address < 16:
                         write_instruction = Instruction()
                         write_instruction.set_processor_number(
                             self.get_number())
                         write_instruction.set_operation(
                             instruction_type[0])
                         write_instruction.set_address_bin(address)
                         write_instruction.set_data(random.randint(
                             0, 65535))
                         self.add_instruction(write_instruction)
                         flag = False
                         write += 1
                     else:
                         pass
             # If operation is 1, it means that is a read
             elif operation == 1:
                 flag = True
                 while flag:
                     address = np.random.poisson(8)
                     if 0 <= address < 16:
                         read_instruction = Instruction()
                         read_instruction.set_processor_number(
                             self.get_number())
                         read_instruction.set_operation(instruction_type[1])
                         read_instruction.set_address_bin(address)
                         read_instruction.set_data(0)
                         self.add_instruction(read_instruction)
                         flag = False
                         read += 1
                     else:
                         pass
             elif operation == 2:
                 calc_instruction = Instruction()
                 calc_instruction.set_processor_number(self.get_number())
                 calc_instruction.set_operation(instruction_type[2])
                 calc_instruction.set_address_bin(0)
                 calc_instruction.set_data(0)
                 self.add_instruction(calc_instruction)
                 calc += 1
             index += 1
     print("Calc:" + str(calc))
     print("Read:" + str(read))
     print("Write:" + str(write))
Пример #2
0
 def insert_instruction(self, operation, address, data, index):
     instruction = Instruction()
     instruction.set_operation(operation)
     instruction.set_address_bin(address)
     instruction.set_data(data)
     self.instructions.insert(index, instruction)