--- nand.py- +++ nand.py @@ -242,30 +242,45 @@ class JKFF(Obj): def __init__(self, parent, name='jkff', latency=10): Obj.__init__(self, parent, name) - RSFF(self, 'rsff', latency) - NAND_N(self, 3, 'nand_3_J', latency) - NAND_N(self, 3, 'nand_3_K', latency) - Joint(self, 'jt_Q') - Joint(self, 'jt_nQ') + RSFF(self, 'rsff_o', latency) + RSFF(self, 'rsff_j', latency) + RSFF(self, 'rsff_k', latency) + NAND(self, 'nand_j', latency) + NAND(self, 'nand_k', latency) + AND(self, 'and_j', latency) + AND(self, 'and_k', latency) Joint(self, 'jt_clk') + Joint(self, 'jt_j_i') + Joint(self, 'jt_k_i') + Joint(self, 'jt_j_o') + Joint(self, 'jt_k_o') Pin(self, 'CLK', 'L').conn = self.jt_clk.new_pin() + self.jt_clk.new_pin().conn = self.and_j.inp_a + self.jt_clk.new_pin().conn = self.and_k.inp_b - Pin(self, 'J', 'L').conn = self.nand_3_J.inp_1 - self.jt_clk.new_pin().conn = self.nand_3_J.inp_2 - self.nand_3_J.out.conn = self.rsff.R - - Pin(self, 'K', 'L').conn = self.nand_3_K.inp_1 - self.jt_clk.new_pin().conn = self.nand_3_K.inp_2 - self.nand_3_K.out.conn = self.rsff.S - - self.rsff.Q.conn = self.jt_Q.new_pin() - self.jt_Q.new_pin().conn = Pin(self, 'Q') - self.jt_Q.new_pin().conn = self.nand_3_K.inp_0 - - self.rsff.nQ.conn = self.jt_nQ.new_pin() - self.jt_nQ.new_pin().conn = Pin(self, 'nQ') - self.jt_nQ.new_pin().conn = self.nand_3_J.inp_0 + Pin(self, 'J', 'L').conn = self.nand_j.inp_b + Pin(self, 'K', 'L').conn = self.nand_k.inp_a + + self.nand_j.out.conn = self.rsff_j.R + self.and_j.out.conn = self.rsff_j.S + self.and_k.out.conn = self.rsff_k.R + self.nand_k.out.conn = self.rsff_k.S + + self.rsff_j.nQ.conn = self.jt_j_i.new_pin() + self.jt_j_i.new_pin().conn = self.rsff_o.R + self.jt_j_i.new_pin().conn = self.and_k.inp_a + self.jt_k_i.new_pin().conn = self.and_j.inp_b + self.jt_k_i.new_pin().conn = self.rsff_o.S + self.rsff_k.Q.conn = self.jt_k_i.new_pin() + + self.rsff_o.Q.conn = self.jt_j_o.new_pin() + self.jt_j_o.new_pin().conn = self.nand_k.inp_b + self.jt_j_o.new_pin().conn = Pin(self, 'Q') + + self.rsff_o.nQ.conn = self.jt_k_o.new_pin() + self.jt_k_o.new_pin().conn = self.nand_j.inp_a + self.jt_k_o.new_pin().conn = Pin(self, 'nQ') class CLK(Obj): def __init__(self, parent, hz=1.0, name='clk'):