def create_modules(self): """ construct all the required modules """ self.inv = pinv() self.add_mod(self.inv) if self.gate == "AND2": self.nand2 = nand2() self.add_mod(self.nand2) self.add_in2(gate=self.nand2) if self.gate == "AND3": self.nand3 = nand3() self.add_mod(self.nand3) self.add_in3(gate=self.nand3) if self.gate == "OR2": self.nor2 = nor2() self.add_mod(self.nor2) self.add_in2(gate=self.nor2) if self.gate == "OR3": self.nor3 = nor3() self.add_mod(self.nor3) self.add_in3(gate=self.nor3)
def create_modules(self): """ construct all the required modules """ self.nand2 = nand2() self.add_mod(self.nand2) self.nor2 = nor2() self.add_mod(self.nor2) self.inv1 = pinv(size=1) self.add_mod(self.inv1) self.inv5 = pinv(size=5) self.add_mod(self.inv5) self.freq_div = frequency_divider() self.add_mod(self.freq_div) self.dc = delay_chain(fanout_list=self.fanout_list, name="delay_chain1") self.add_mod(self.dc) self.dc2 = delay_chain(fanout_list=self.fanout_list2, name="delay_chain2") self.add_mod(self.dc2) self.start_stop = starter_stopper() self.add_mod(self.start_stop)
def create_modules(self): """ Adds all the required modules """ self.inv = pinv(size=1) self.add_mod(self.inv) self.nor2 = nor2() self.add_mod(self.nor2) self.nor3 = nor3() self.add_mod(self.nor3)
def __init__(self, columns, word_size, name="write_complete_array"): design.design.__init__(self, name) debug.info(1, "Creating {0}".format(name)) self.wc = write_complete() self.add_mod(self.wc) self.nor2 = nor2() self.add_mod(self.nor2) self.cols = columns self.w_size = word_size self.w_per_row = columns / word_size if self.w_per_row == 1: self.width = self.cols * self.wc.width self.height = self.wc.height if self.w_per_row == 2: self.inv = pinv() self.add_mod(self.inv) #6*self.m_pitch("m1") : vdd, gnd, en, wc0, wc1, space self.width = self.cols * self.wc.width + self.inv.width + self.nor2.width + 6 * self.m_pitch( "m1") self.height = self.wc.height + 6 * self.m_pitch("m1") if self.w_per_row == 4: self.nand2 = nand2() self.add_mod(self.nand2) #8*self.m_pitch("m1") : vdd, gnd, en, wc0, wc1, wc2, wc3, space self.width = self.cols * self.wc.width + self.nand2.width + self.nor2.width + 8 * self.m_pitch( "m1") self.height = 2 * self.nor2.height + 9 * self.m_pitch("m1") if self.w_per_row > 4: debug.error("more than 4 way column mux is not supported!", -1) self.add_pins() self.create_layout()