mirror of https://github.com/VLSIDA/OpenRAM.git
Check membership of keys without using keys() list
This commit is contained in:
parent
74fbe8fe63
commit
ec1fb087b5
|
|
@ -71,7 +71,8 @@ class grid:
|
||||||
self.map[n].path=value
|
self.map[n].path=value
|
||||||
|
|
||||||
def clear_blockages(self):
|
def clear_blockages(self):
|
||||||
self.set_blocked(set(self.map.keys()),False)
|
for k in self.map:
|
||||||
|
self.map[k].blocked=False
|
||||||
|
|
||||||
def set_source(self,n,value=True):
|
def set_source(self,n,value=True):
|
||||||
if isinstance(n, (list,tuple,set,frozenset)):
|
if isinstance(n, (list,tuple,set,frozenset)):
|
||||||
|
|
@ -121,7 +122,7 @@ class grid:
|
||||||
for item in n:
|
for item in n:
|
||||||
self.add_map(item)
|
self.add_map(item)
|
||||||
else:
|
else:
|
||||||
if n not in self.map.keys():
|
if n not in self.map:
|
||||||
self.map[n]=grid_cell()
|
self.map[n]=grid_cell()
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -204,7 +204,7 @@ class router(router_tech):
|
||||||
continue
|
continue
|
||||||
# Combine if at least 1 grid cell is adjacent
|
# Combine if at least 1 grid cell is adjacent
|
||||||
if pg1.adjacent(pg2):
|
if pg1.adjacent(pg2):
|
||||||
if not index1 in adjacent_pins.keys():
|
if not index1 in adjacent_pins:
|
||||||
adjacent_pins[index1] = set([index2])
|
adjacent_pins[index1] = set([index2])
|
||||||
else:
|
else:
|
||||||
adjacent_pins[index1].add(index2)
|
adjacent_pins[index1].add(index2)
|
||||||
|
|
@ -341,7 +341,7 @@ class router(router_tech):
|
||||||
|
|
||||||
# Block all of the pin components (some will be unblocked if they're a source/target)
|
# Block all of the pin components (some will be unblocked if they're a source/target)
|
||||||
# Also block the previous routes
|
# Also block the previous routes
|
||||||
for name in self.pin_groups.keys():
|
for name in self.pin_groups:
|
||||||
blockage_grids = {y for x in self.pin_groups[name] for y in x.grids}
|
blockage_grids = {y for x in self.pin_groups[name] for y in x.grids}
|
||||||
self.set_blockages(blockage_grids,True)
|
self.set_blockages(blockage_grids,True)
|
||||||
blockage_grids = {y for x in self.pin_groups[name] for y in x.blockages}
|
blockage_grids = {y for x in self.pin_groups[name] for y in x.blockages}
|
||||||
|
|
@ -745,7 +745,7 @@ class router(router_tech):
|
||||||
group_map = {}
|
group_map = {}
|
||||||
for pin in pin_list:
|
for pin in pin_list:
|
||||||
gid = group_id[pin]
|
gid = group_id[pin]
|
||||||
if gid not in group_map.keys():
|
if gid not in group_map:
|
||||||
group_map[gid] = pin_group(name=pin_name, pin_set=[], router=self)
|
group_map[gid] = pin_group(name=pin_name, pin_set=[], router=self)
|
||||||
# We always add it to the first set since they are touching
|
# We always add it to the first set since they are touching
|
||||||
group_map[gid].pins[0].add(pin)
|
group_map[gid].pins[0].add(pin)
|
||||||
|
|
@ -803,7 +803,7 @@ class router(router_tech):
|
||||||
put a rectangle over it. It does not enclose grid squares that are blocked
|
put a rectangle over it. It does not enclose grid squares that are blocked
|
||||||
by other shapes.
|
by other shapes.
|
||||||
"""
|
"""
|
||||||
for pin_name in self.pin_groups.keys():
|
for pin_name in self.pin_groups:
|
||||||
debug.info(1,"Enclosing pins for {}".format(pin_name))
|
debug.info(1,"Enclosing pins for {}".format(pin_name))
|
||||||
for pg in self.pin_groups[pin_name]:
|
for pg in self.pin_groups[pin_name]:
|
||||||
pg.enclose_pin()
|
pg.enclose_pin()
|
||||||
|
|
@ -1091,7 +1091,7 @@ class router(router_tech):
|
||||||
|
|
||||||
if show_all_grids:
|
if show_all_grids:
|
||||||
self.rg.add_all_grids()
|
self.rg.add_all_grids()
|
||||||
for g in self.rg.map.keys():
|
for g in self.rg.map:
|
||||||
self.annotate_grid(g)
|
self.annotate_grid(g)
|
||||||
|
|
||||||
if show_blockages:
|
if show_blockages:
|
||||||
|
|
@ -1105,12 +1105,11 @@ class router(router_tech):
|
||||||
height=ur.y-ll.y)
|
height=ur.y-ll.y)
|
||||||
if show_blockage_grids:
|
if show_blockage_grids:
|
||||||
self.set_blockages(self.blocked_grids,True)
|
self.set_blockages(self.blocked_grids,True)
|
||||||
grid_keys=self.rg.map.keys()
|
for g in self.rg.map:
|
||||||
for g in grid_keys:
|
|
||||||
self.annotate_grid(g)
|
self.annotate_grid(g)
|
||||||
|
|
||||||
if show_enclosures:
|
if show_enclosures:
|
||||||
for key in self.pin_groups.keys():
|
for key in self.pin_groups:
|
||||||
for pg in self.pin_groups[key]:
|
for pg in self.pin_groups[key]:
|
||||||
if not pg.enclosed:
|
if not pg.enclosed:
|
||||||
continue
|
continue
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue