Example #1
0
    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)
Example #2
0
    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)
Example #3
0
    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)
Example #4
0
    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()