コード例 #1
0
    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
コード例 #2
0
  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)
コード例 #3
0
ファイル: graph_drawer.py プロジェクト: CospanDesign/olympus
  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
コード例 #4
0
  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)
コード例 #5
0
  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)
コード例 #6
0
  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")
コード例 #7
0
  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")
コード例 #8
0
  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())
コード例 #9
0
  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)
コード例 #10
0
  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")
コード例 #11
0
  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)
コード例 #12
0
  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)
コード例 #13
0
  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)