mirror of https://github.com/VLSIDA/OpenRAM.git
32 lines
1015 B
Python
32 lines
1015 B
Python
|
|
# See LICENSE for licensing information.
|
||
|
|
#
|
||
|
|
# Copyright (c) 2016-2023 Regents of the University of California, Santa Cruz
|
||
|
|
# All rights reserved.
|
||
|
|
#
|
||
|
|
from openram.base.vector import vector
|
||
|
|
from .navigation_node import navigation_node
|
||
|
|
|
||
|
|
|
||
|
|
class navigation_blockage:
|
||
|
|
""" This class represents a blockage on the navigation graph. """
|
||
|
|
|
||
|
|
def __init__(self, ll, ur):
|
||
|
|
|
||
|
|
self.ll = ll
|
||
|
|
self.ur = ur
|
||
|
|
|
||
|
|
|
||
|
|
def create_corner_nodes(self):
|
||
|
|
""" Create nodes on all 4 corners of this blockage. """
|
||
|
|
|
||
|
|
corners = []
|
||
|
|
corners.append(navigation_node(vector(self.ll[0], self.ll[1])))
|
||
|
|
corners.append(navigation_node(vector(self.ll[0], self.ur[1])))
|
||
|
|
corners.append(navigation_node(vector(self.ur[0], self.ll[1])))
|
||
|
|
corners.append(navigation_node(vector(self.ur[0], self.ur[1])))
|
||
|
|
corners[0].add_neighbor(corners[1])
|
||
|
|
corners[0].add_neighbor(corners[2])
|
||
|
|
corners[3].add_neighbor(corners[1])
|
||
|
|
corners[3].add_neighbor(corners[2])
|
||
|
|
return corners
|