def add_modules(self): self.m1m2_via = contact(layer_stack=("metal1", "via1", "metal2")) # Vertical metal rail gap definition self.metal2_extend_contact = (self.m1m2_via.second_layer_height - self.m1m2_via.contact_width) / 2 self.gap_between_rails = self.metal2_extend_contact + drc[ "metal2_to_metal2"] self.gap_between_rail_offset = self.gap_between_rails + drc[ "minwidth_metal2"] self.via_shift = (self.m1m2_via.second_layer_width - self.m1m2_via.first_layer_width) / 2 # used to shift contact when connecting to NAND3 C pin down self.contact_shift = (self.m1m2_via.first_layer_width - self.m1m2_via.contact_width) / 2 self.inv = pinv(name="pinverter", nmos_width=drc["minwidth_tx"], beta=2, height=self.bitcell_height) self.add_mod(self.inv) self.nand2 = nand_2(name="pnand2", nmos_width=self.nand2_nmos_width, height=self.bitcell_height) self.add_mod(self.nand2) self.nand3 = nand_3(name="pnand3", nmos_width=self.nand3_nmos_width, height=self.bitcell_height) self.add_mod(self.nand3) # CREATION OF PRE-DECODER self.pre2_4 = pre2x4(self.nand2_nmos_width, "pre2x4") self.add_mod(self.pre2_4) self.pre3_8 = pre3x8(self.nand3_nmos_width, "pre3x8") self.add_mod(self.pre3_8)
def add_decoders(self): """ Create the decoders based on the number of pre-decodes """ self.pre2_4 = pre2x4() self.add_mod(self.pre2_4) self.pre3_8 = pre3x8() self.add_mod(self.pre3_8)
def add_modules(self): self.dec4_4 = decode_stage_4_4() self.add_mod(self.dec4_4) self.dec5_4 = decode_stage_5_4() self.add_mod(self.dec5_4) self.pre2_4 = pre2x4() self.add_mod(self.pre2_4) self.pre3_8 = pre3x8() self.add_mod(self.pre3_8)
def add_modules(self): self.inv = pinv() self.add_mod(self.inv) self.nand2 = pnand2() self.add_mod(self.nand2) self.nand3 = pnand3() self.add_mod(self.nand3) # CREATION OF PRE-DECODER self.pre2_4 = pre2x4() self.add_mod(self.pre2_4) self.pre3_8 = pre3x8() self.add_mod(self.pre3_8)
def create_modules(self): """ Add all the required modules """ self.nor3 = nor3() self.add_mod(self.nor3) self.nand2 = nand2() self.add_mod(self.nand2) self.inv = pinv() self.add_mod(self.inv) self.inv2 = pinv(size=2) self.add_mod(self.inv2) self.inv5 = pinv(size=5) self.add_mod(self.inv5) if self.num_banks == 4: self.pre2_4 = pre2x4() self.add_mod(self.pre2_4)