mirror of https://github.com/VLSIDA/OpenRAM.git
Make clear source/target option instead of general setter (bug to remove source/target fixed)
This commit is contained in:
parent
d61fcb3be3
commit
b22d2a76a7
|
|
@ -78,81 +78,78 @@ class grid:
|
||||||
for k in self.map:
|
for k in self.map:
|
||||||
self.map[k].blocked=False
|
self.map[k].blocked=False
|
||||||
|
|
||||||
def set_source(self, n, value=True):
|
def clear_source(self):
|
||||||
|
for k in self.map:
|
||||||
|
self.map[k].source=False
|
||||||
|
self.source = set()
|
||||||
|
|
||||||
|
def set_source(self, n):
|
||||||
if not isinstance(n, vector3d):
|
if not isinstance(n, vector3d):
|
||||||
for item in n:
|
for item in n:
|
||||||
self.set_source(item, value)
|
self.set_source(item)
|
||||||
else:
|
else:
|
||||||
self.add_map(n)
|
self.add_map(n)
|
||||||
self.map[n].source=value
|
self.map[n].source=True
|
||||||
self.source.add(n)
|
self.source.add(n)
|
||||||
|
|
||||||
def set_target(self, n, value=True):
|
def clear_target(self):
|
||||||
|
for k in self.map:
|
||||||
|
self.map[k].target=False
|
||||||
|
self.target = set()
|
||||||
|
|
||||||
|
def set_target(self, n):
|
||||||
if not isinstance(n, vector3d):
|
if not isinstance(n, vector3d):
|
||||||
for item in n:
|
for item in n:
|
||||||
self.set_target(item, value)
|
self.set_target(item)
|
||||||
else:
|
else:
|
||||||
self.add_map(n)
|
self.add_map(n)
|
||||||
self.map[n].target=value
|
self.map[n].target=True
|
||||||
self.target.add(n)
|
self.target.add(n)
|
||||||
|
|
||||||
def add_source(self, track_list, value=True):
|
def add_source(self, track_list):
|
||||||
debug.info(3, "Adding source list={0}".format(str(track_list)))
|
debug.info(3, "Adding source list={0}".format(str(track_list)))
|
||||||
for n in track_list:
|
for n in track_list:
|
||||||
debug.info(4, "Adding source ={0}".format(str(n)))
|
debug.info(4, "Adding source ={0}".format(str(n)))
|
||||||
self.set_source(n, value)
|
self.set_source(n)
|
||||||
self.set_blocked(n, False)
|
# self.set_blocked(n, False)
|
||||||
|
|
||||||
def add_target(self, track_list, value=True):
|
def add_target(self, track_list):
|
||||||
debug.info(3, "Adding target list={0}".format(str(track_list)))
|
debug.info(3, "Adding target list={0}".format(str(track_list)))
|
||||||
for n in track_list:
|
for n in track_list:
|
||||||
debug.info(4, "Adding target ={0}".format(str(n)))
|
debug.info(4, "Adding target ={0}".format(str(n)))
|
||||||
self.set_target(n, value)
|
self.set_target(n)
|
||||||
self.set_blocked(n, False)
|
# self.set_blocked(n, False)
|
||||||
|
|
||||||
def add_perimeter_target(self, side="all", value=True):
|
def add_perimeter_target(self, side="all"):
|
||||||
debug.info(3, "Adding perimeter target")
|
debug.info(3, "Adding perimeter target")
|
||||||
|
|
||||||
|
perimeter_list = []
|
||||||
# Add the left/right columns
|
# Add the left/right columns
|
||||||
if side=="all" or side=="left":
|
if side=="all" or side=="left":
|
||||||
x = self.ll.x
|
x = self.ll.x
|
||||||
for y in range(self.ll.y, self.ur.y, 1):
|
for y in range(self.ll.y, self.ur.y, 1):
|
||||||
n = vector3d(x, y, 0)
|
perimeter_list.append(vector3d(x, y, 0))
|
||||||
self.set_target(n, value)
|
perimeter_list.append(vector3d(x, y, 1))
|
||||||
self.set_blocked(n, False)
|
|
||||||
n = vector3d(x, y, 1)
|
|
||||||
self.set_target(n, value)
|
|
||||||
self.set_blocked(n, False)
|
|
||||||
|
|
||||||
if side=="all" or side=="right":
|
if side=="all" or side=="right":
|
||||||
x = self.ur.x
|
x = self.ur.x
|
||||||
for y in range(self.ll.y, self.ur.y, 1):
|
for y in range(self.ll.y, self.ur.y, 1):
|
||||||
n = vector3d(x, y, 0)
|
perimeter_list.append(vector3d(x, y, 0))
|
||||||
self.set_target(n, value)
|
perimeter_list.append(vector3d(x, y, 1))
|
||||||
self.set_blocked(n, False)
|
|
||||||
n = vector3d(x, y, 1)
|
|
||||||
self.set_target(n, value)
|
|
||||||
self.set_blocked(n, False)
|
|
||||||
|
|
||||||
if side=="all" or side=="bottom":
|
if side=="all" or side=="bottom":
|
||||||
y = self.ll.y
|
y = self.ll.y
|
||||||
for x in range(self.ll.x, self.ur.x, 1):
|
for x in range(self.ll.x, self.ur.x, 1):
|
||||||
n = vector3d(x, y, 0)
|
perimeter_list.append(vector3d(x, y, 0))
|
||||||
self.set_target(n, value)
|
perimeter_list.append(vector3d(x, y, 1))
|
||||||
self.set_blocked(n, False)
|
|
||||||
n = vector3d(x, y, 1)
|
|
||||||
self.set_target(n, value)
|
|
||||||
self.set_blocked(n, False)
|
|
||||||
|
|
||||||
if side=="all" or side=="top":
|
if side=="all" or side=="top":
|
||||||
y = self.ur.y
|
y = self.ur.y
|
||||||
for x in range(self.ll.x, self.ur.x, 1):
|
for x in range(self.ll.x, self.ur.x, 1):
|
||||||
n = vector3d(x, y, 0)
|
perimeter_list.append(vector3d(x, y, 0))
|
||||||
self.set_target(n, value)
|
perimeter_list.append(vector3d(x, y, 1))
|
||||||
self.set_blocked(n, False)
|
|
||||||
n = vector3d(x, y, 1)
|
self.set_target(perimeter_list)
|
||||||
self.set_target(n, value)
|
|
||||||
self.set_blocked(n, False)
|
|
||||||
|
|
||||||
def is_target(self, point):
|
def is_target(self, point):
|
||||||
"""
|
"""
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue