def make(self): i = self.get_inputs() word_size = len(i.q) flip = FlipFlop(q=i.q, clk=i.clk) c_gate = AND(a=Bus.vdd(), b=i.c) adder = cb.CPA(a=flip.q, b=c_gate.y.zero_extend(flip.q)) reset_mux = cb.BaseMux(d0=adder.s, d1=Bus.gnd(adder.s), s=i.r) flip.connect(d=reset_mux.y) self.set_outputs(q=flip.q)
def make(self): i = self.get_inputs() #have nice defaults without user intervention not_e = INV(a=i.e).y l_mux = cb.BaseMux(d0=i.d, s=i.l) reset_mux = cb.BaseMux(d0=l_mux.y, d1=Bus.gnd(i.d), s=i.r) dflip = DFlipFlop(d=reset_mux.y, clk=i.clk) l_mux.connect(d1=dflip.q) self.set_tristate(q=not_e) self.set_outputs(q=dflip.q)