From ee459fb5f0e1589beb1b5193427e02d6e35608f5 Mon Sep 17 00:00:00 2001 From: Luke Kenneth Casson Leighton Date: Mon, 6 Apr 2020 15:51:36 +0000 Subject: [PATCH] weird routing in top right corner, tracks go nowhere --- experiments7/doAlu16.py | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/experiments7/doAlu16.py b/experiments7/doAlu16.py index 954a311..c2fdcde 100755 --- a/experiments7/doAlu16.py +++ b/experiments7/doAlu16.py @@ -73,7 +73,7 @@ class ALU16(Module): def build(self): h_margin = 25.0 - v_margin = 75.0 + v_margin = 50.0 if not self.build_submodules(): return False @@ -92,10 +92,18 @@ class ALU16(Module): height = self.from_dbu(max([ self.ab.getHeight(), add.ab.getHeight(), sub.ab.getHeight() ])) + 2*v_margin + + # experiment, over-ride + width = 1500 + height = 450 + self.ab = Box(0, 0, self.to_dbu(width), self.to_dbu(height)) - self.place_submodule(add, h_margin, v_margin) - self.place_submodule(sub, width-sub.ab_width-h_margin, v_margin) + add_wid = self.from_dbu(add.ab.getWidth()) + sub_ht = self.from_dbu(sub.ab.getHeight()) + self.place_submodule(add, h_margin, v_margin+add_wid) + self.place_submodule(sub, width-sub.ab_width-h_margin+sub_ht-25, + v_margin) # TODO: replace with some form of lazy evaluation? y_north = self.from_dbu(self.ab.getYMax()) @@ -111,19 +119,24 @@ class ALU16(Module): # this puts all the remaining cells (little ones) # into this (small) space so that they do not go # "all over the place" around the add and sub + + # XXX this doesn't work: box is far too big, covers the entire + # area (including "under" the add and sub) self.ab = Box( self.to_dbu((width-self.ab_width)/2 - h_margin), self.to_dbu(v_margin), self.to_dbu((width+self.ab_width)/2 + h_margin), self.to_dbu(height - v_margin) ) - self.place() + self.ab = Box(self.to_dbu(550), self.to_dbu(25), + self.to_dbu(1000), self.to_dbu(450)) + self.place() # place only # then route (globally) # this connects up not just in the remaining (little) cells, # it connects *to add and sub and the outside world as well* self.ab = Box(0, 0, self.to_dbu(width), self.to_dbu(height)) - result = self.place_and_route() + result = self.route() self.save() return result @@ -146,7 +159,7 @@ def ScriptMain(editor=None, **kwargs): 'BLOCKAGE2', 'BLOCKAGE3', 'BLOCKAGE4', ), }, - orientation=Transformation.Orientation.ID, + orientation=Transformation.Orientation.R3, ) sub = AddSub( 'sub', editor, @@ -162,7 +175,7 @@ def ScriptMain(editor=None, **kwargs): 'BLOCKAGE2', 'BLOCKAGE3', 'BLOCKAGE4', ), }, - orientation=Transformation.Orientation.XR, + orientation=Transformation.Orientation.R1, ) alu16 = ALU16( -- 2.30.2