diff --git a/compiler/router/router.py b/compiler/router/router.py index d317d6b9..41a5ad9a 100644 --- a/compiler/router/router.py +++ b/compiler/router/router.py @@ -66,7 +66,8 @@ class router(router_tech): self.boundary = self.layout.measureBoundary(self.top_name) # These must be un-indexed to get rid of the matrix type self.ll = vector(self.boundary[0][0], self.boundary[0][1]) - self.ur = vector(self.boundary[1][0], self.boundary[1][1]) + # Pad the UR by a few tracks to add an extra rail possibly + self.ur = vector(self.boundary[1][0], self.boundary[1][1]) + self.track_widths.scale(5,5) def clear_pins(self): """ diff --git a/compiler/router/router_tech.py b/compiler/router/router_tech.py index 56e8e418..94c4268a 100644 --- a/compiler/router/router_tech.py +++ b/compiler/router/router_tech.py @@ -1,6 +1,7 @@ from tech import drc,layer from contact import contact from pin_group import pin_group +from vector import vector import debug class router_tech: @@ -35,8 +36,8 @@ class router_tech: self.track_width = max(self.horiz_track_width,self.vert_track_width) debug.info(1,"Track width: "+str(self.track_width)) - self.track_widths = [self.track_width] * 2 - self.track_factor = [1/self.track_width] * 2 + self.track_widths = vector([self.track_width] * 2) + self.track_factor = vector([1/self.track_width] * 2) debug.info(2,"Track factor: {0}".format(self.track_factor)) # When we actually create the routes, make them the width of the track (minus 1/2 spacing on each side)