Example #1
0
    def __init__(self, field, blocks, north_pins, south_pins, east_pins,
                 west_pins):

        BaseOptimizer.__init__(self, field)

        # flags
        self.group_connected_to_parent_neighbor_set_parent_size = True

        self.groups = []
        self.blocks = blocks
        self.wide_search_index = 0
        self.wide_search_queue = []

        self.pins_east = east_pins
        self.pins_west = west_pins
        self.pins_north = north_pins
        self.pins_south = south_pins

        # dictionary with pin.net_name as key and a block list as value
        self.dictionary_net_blocks = {}
        self.dictionary_vdd_blocks = {}
        self.dictionary_out_blocks = {}
        self.dictionary_gnd_blocks = {}
        self.dictionary_inp_blocks = {}
        self.dictionary_bia_blocks = {}

        self.bias_nets = set()

        self.group_east = Group([OUT_GRP])
        self.group_south = Group([GND_GRP])
        self.group_north = Group([VCC_GRP])
        self.group_west = Group([-5])
        self.group_main = Group([MAIN_GRP])

        self.group_east.neighbor_west.append(self.group_main)
        self.group_main.neighbor_east.append(self.group_east)

        self.group_west.neighbor_east.append(self.group_main)
        self.group_main.neighbor_west.append(self.group_west)

        self.group_north.neighbor_south.append(self.group_main)
        self.group_main.neighbor_north.append(self.group_north)

        self.group_main.neighbor_south.append(self.group_south)
        self.group_south.neighbor_north.append(self.group_main)

        # static block positions
        self.static_blocks = {}
Example #2
0
    def __init__(self, field, blocks, north_pins, south_pins, east_pins, west_pins):

        BaseOptimizer.__init__(self, field)

        # flags
        self.group_connected_to_parent_neighbor_set_parent_size = True

        self.groups = []
        self.blocks = blocks
        self.wide_search_index = 0
        self.wide_search_queue = []

        self.pins_east = east_pins
        self.pins_west = west_pins
        self.pins_north = north_pins
        self.pins_south = south_pins

        # dictionary with pin.net_name as key and a block list as value
        self.dictionary_net_blocks = {}
        self.dictionary_vdd_blocks = {}
        self.dictionary_out_blocks = {}
        self.dictionary_gnd_blocks = {}
        self.dictionary_inp_blocks = {}
        self.dictionary_bia_blocks = {}

        self.bias_nets = set()

        self.group_east = Group([OUT_GRP])
        self.group_south = Group([GND_GRP])
        self.group_north = Group([VCC_GRP])
        self.group_west = Group([-5])
        self.group_main = Group([MAIN_GRP])

        self.group_east.neighbor_west.append(self.group_main)
        self.group_main.neighbor_east.append(self.group_east)

        self.group_west.neighbor_east.append(self.group_main)
        self.group_main.neighbor_west.append(self.group_west)

        self.group_north.neighbor_south.append(self.group_main)
        self.group_main.neighbor_north.append(self.group_north)

        self.group_main.neighbor_south.append(self.group_south)
        self.group_south.neighbor_north.append(self.group_main)

        # static block positions
        self.static_blocks = {}
Example #3
0
 def __init__(self, learning_rate, decay, momentum):
     BaseOptimizer.__init__(self, learning_rate, decay, momentum)
Example #4
0
 def __init__(self, field):
     BaseOptimizer.__init__(self, field)
     
     
Example #5
0
 def __init__(self, learning_rate, decay, momentum):
     BaseOptimizer.__init__(self, learning_rate, decay, momentum)
     self.beta1 = 0.9
     self.beta2 = 0.99
     self._smooth_gradients = {}