def get_selected_name(self, x, y): name = "" if self.en_arb_view: b = self.boxes["back"] if b.in_bounding_box(x, y): name = "back" b = self.boxes["remove"] if b.in_bounding_box(x, y): name = "remove" else: # Check host interface. b = self.boxes["host_interface"] if b.in_bounding_box(x, y): # Return the name. name = gm.get_unique_name("Host Interface", NodeType.HOST_INTERFACE) # Check master. b = self.boxes["master"] if b.in_bounding_box(x, y): name = gm.get_unique_name("Master", NodeType.MASTER) # Check memory interconnect. b = self.boxes["mic"] if b.in_bounding_box(x, y): name = gm.get_unique_name("Memory", NodeType.MEMORY_INTERCONNECT) # Check peripheral interconnect. b = self.boxes["pic"] if b.in_bounding_box(x, y): name = gm.get_unique_name("Peripherals", NodeType.PERIPHERAL_INTERCONNECT) # Check the peripheral slaves. for i in range(0, len(self.boxes["pslaves"])): pname = self.sgm.get_slave_name_at(i, SlaveType.PERIPHERAL) b = self.boxes["pslaves"][i] if b.in_bounding_box(x, y): name = pname # Check the memory slaves. for i in range(0, len(self.boxes["mslaves"])): mname = self.sgm.get_slave_name_at(i, SlaveType.MEMORY) b = self.boxes["mslaves"][i] if b.in_bounding_box(x, y): name = mname return name
def test_get_node_names(self): if self.dbg: print "adding two nodes" self.sgm.add_node("uart", gm.NodeType.HOST_INTERFACE) self.sgm.add_node("master", gm.NodeType.MASTER) names = self.sgm.get_node_names() uart_name = gm.get_unique_name("uart", gm.NodeType.HOST_INTERFACE) master_name = gm.get_unique_name("master", gm.NodeType.MASTER) self.assertIn(uart_name, names) self.assertIn(master_name, names)
def get_selected_name(self, x, y): name = "" if self.en_arb_view: b = self.boxes["back"] if b.in_bounding_box(x, y): name = "back" b = self.boxes["remove"] if b.in_bounding_box(x, y): name = "remove" else: # Check host interface. b = self.boxes["host_interface"] if b.in_bounding_box(x, y): # Return the name. name = gm.get_unique_name("Host Interface", NodeType.HOST_INTERFACE) # Check master. b = self.boxes["master"] if b.in_bounding_box(x, y): name = gm.get_unique_name("Master", NodeType.MASTER) # Check memory interconnect. b = self.boxes["mic"] if b.in_bounding_box(x, y): name = gm.get_unique_name("Memory", NodeType.MEMORY_INTERCONNECT) # Check peripheral interconnect. b = self.boxes["pic"] if b.in_bounding_box(x, y): name = gm.get_unique_name("Peripherals", NodeType.PERIPHERAL_INTERCONNECT) # Check the peripheral slaves. for i in range (0, len(self.boxes["pslaves"])): pname = self.sgm.get_slave_name_at(i, SlaveType.PERIPHERAL) b = self.boxes["pslaves"][i] if b.in_bounding_box(x, y): name = pname # Check the memory slaves. for i in range (0, len(self.boxes["mslaves"])): mname = self.sgm.get_slave_name_at(i, SlaveType.MEMORY) b = self.boxes["mslaves"][i] if b.in_bounding_box(x, y): name = mname return name
def test_move_memory_slave(self): self.sgm.add_node("slave_1", gm.NodeType.SLAVE, gm.SlaveType.MEMORY, debug = self.dbg) self.sgm.add_node("slave_2", gm.NodeType.SLAVE, gm.SlaveType.MEMORY, debug = self.dbg) self.sgm.add_node("slave_3", gm.NodeType.SLAVE, gm.SlaveType.MEMORY, debug = self.dbg) if self.dbg: count = self.sgm.get_number_of_memory_slaves() print "Number of slaves: %d" % (count) result = self.sgm.move_slave(2, 1, gm.SlaveType.MEMORY) s3_name = gm.get_unique_name("slave_3", gm.NodeType.SLAVE, gm.SlaveType.MEMORY, slave_index = 1) node = self.sgm.get_node(s3_name)
def test_move_peripheral_slave(self): self.sgm.add_node("slave_1", gm.NodeType.SLAVE, gm.SlaveType.PERIPHERAL, debug = self.dbg) self.sgm.add_node("slave_2", gm.NodeType.SLAVE, gm.SlaveType.PERIPHERAL, debug = self.dbg) self.sgm.add_node("slave_3", gm.NodeType.SLAVE, gm.SlaveType.PERIPHERAL, debug = self.dbg) if self.dbg: count = self.sgm.get_number_of_peripheral_slaves() print "Number of slaves: %d" % (count) self.sgm.move_slave(2, 1, gm.SlaveType.PERIPHERAL) s3_name = gm.get_unique_name("slave_3", gm.NodeType.SLAVE, gm.SlaveType.PERIPHERAL, slave_index = 1) result = True try: node = self.sgm.get_node(s3_name) except NodeError as ex: print "Error while trying to get Node: " + str(ex) result = False self.assertEqual(result, True)
def test_edge_name(self): if self.dbg: print "adding two nodes, connecting them, setting the name and then \ reading it" self.sgm.add_node("uart", gm.NodeType.HOST_INTERFACE) self.sgm.add_node("master", gm.NodeType.MASTER) uart_name = gm.get_unique_name("uart", gm.NodeType.HOST_INTERFACE) master_name = gm.get_unique_name("master", gm.NodeType.MASTER) self.sgm.connect_nodes(uart_name, master_name) self.sgm.set_edge_name(uart_name, master_name, "connection") result = self.sgm.get_edge_name(uart_name, master_name) self.assertEqual(result, "connection")
def test_get_node_data(self): if self.dbg: print "adding a nodes" self.sgm.add_node("uart", gm.NodeType.HOST_INTERFACE) uart_name = gm.get_unique_name("uart", gm.NodeType.HOST_INTERFACE) node = self.sgm.get_node(uart_name) self.assertEqual(node.name, "uart")
def test_get_nodes(self): if self.dbg: print "adding two nodes" self.sgm.add_node("uart", gm.NodeType.HOST_INTERFACE) self.sgm.add_node("master", gm.NodeType.MASTER) graph_dict = self.sgm.get_nodes_dict() uart_name = gm.get_unique_name("uart", gm.NodeType.HOST_INTERFACE) master_name = gm.get_unique_name("master", gm.NodeType.MASTER) if self.dbg: print "dictionary: " + str(graph_dict) self.assertIn(uart_name, graph_dict.keys()) self.assertIn(master_name, graph_dict.keys())
def test_connect_nodes(self): if self.dbg: print "adding two nodes" self.sgm.add_node("uart", gm.NodeType.HOST_INTERFACE) self.sgm.add_node("master", gm.NodeType.MASTER) uart_name = gm.get_unique_name("uart", gm.NodeType.HOST_INTERFACE) master_name = gm.get_unique_name("master", gm.NodeType.MASTER) # Get the number of connections before adding a connection. num_of_connections = self.sgm.get_number_of_connections() self.assertEqual(num_of_connections, 0) self.sgm.connect_nodes(uart_name, master_name) # Get the number of connections after adding a connection. num_of_connections = self.sgm.get_number_of_connections() self.assertEqual(num_of_connections, 1)
def test_set_parameters(self): """Set all the parameters aquired from a module.""" self.sgm.add_node("uart", gm.NodeType.HOST_INTERFACE) uart_name = gm.get_unique_name("uart", gm.NodeType.HOST_INTERFACE) file_name = os.getenv("SAPLIB_BASE") + "/hdl/rtl/wishbone/host_interface/uart/uart_io_handler.v" parameters = saputils.get_module_tags(filename = file_name, bus="wishbone") self.sgm.set_parameters(uart_name, parameters) parameters = None if self.dbg: print "parameters: " + str(parameters) parameters = self.sgm.get_parameters(uart_name) if self.dbg: print "parameters: " + str(parameters) self.assertEqual(parameters["module"], "uart_io_handler")
def test_get_slave_name_at(self): self.sgm.add_node("slave_1", gm.NodeType.SLAVE, gm.SlaveType.PERIPHERAL, debug = self.dbg) self.sgm.add_node("slave_2", gm.NodeType.SLAVE, gm.SlaveType.PERIPHERAL, debug = self.dbg) self.sgm.add_node("slave_3", gm.NodeType.SLAVE, gm.SlaveType.PERIPHERAL, debug = self.dbg) test_name = gm.get_unique_name("slave_2", gm.NodeType.SLAVE, gm.SlaveType.PERIPHERAL, slave_index = 1) found_name = self.sgm.get_slave_name_at(1, gm.SlaveType.PERIPHERAL) self.assertEqual(test_name, found_name)
def test_graph_remove_node(self): if self.dbg: print "adding two nodes" self.sgm.add_node("uart", gm.NodeType.HOST_INTERFACE) self.sgm.add_node("master", gm.NodeType.MASTER) size = self.sgm.get_size() if self.dbg: print "number of nodes: " + str(size) self.assertEqual(size, 2) # Remove the uart node. unique_name = gm.get_unique_name("uart", gm.NodeType.HOST_INTERFACE) self.sgm.remove_node(unique_name) size = self.sgm.get_size() if self.dbg: print "number of nodes: " + str(size) self.assertEqual(size, 1)
def test_graph_add_slave_node(self): if self.dbg: print "generating host interface node" self.sgm.add_node("gpio", gm.NodeType.SLAVE, gm.SlaveType.PERIPHERAL, debug=self.dbg) gpio_name = gm.get_unique_name("gpio", gm.NodeType.SLAVE, gm.SlaveType.PERIPHERAL, slave_index = 1) if self.dbg: print "unique name: " + gpio_name # Get the size of the graph. size = self.sgm.get_size() if self.dbg: print "number of nodes: " + str(size) self.assertEqual(size, 1)