def clock(self, nex, load): G.checkBit(nex); G.checkBit(load) part1 = G.AND(self.prevLoad, self.aDFF.clock(nex)) part2 = G.AND(G.NOT(self.prevLoad), self.prev) self.prevLoad = load self.prev = G.OR(part1, part2) return self.prev
def clock(self, nex, load, address): G.sizeCheckn(nex, nex, self.n); G.checkBit(load) for next in address: G.checkBit(int(next)) if len(address) > self.k: sys.exit("THE NUMBER OF BITS IN ADDRESS IS NOT LESS THAN THE NUMBER OF REGISTERS. ABORTING THE MISSION!") output = self.registers[address].clock(nex, load) return output
def clock(self, nex, load): G.sizeCheckn(nex, nex, self.n); G.checkBit(load) output = [] for i in range(self.n): output.append(self.BITs[i].clock(nex[i], load)) return output
def __init__(self, a): G.checkBit(a) self.aDFF = DFF(a) self.prev = random.randint(0,1) # Noise self.prevLoad = random.randint(0,1) # Noise
def clock(self, nex): G.checkBit(nex) self.prev = self.temp self.temp = nex return self.prev
def __init__(self, a): G.checkBit(a) self.temp = random.randint(0,1) # Noise
def wiresN(x, n): G.checkBit(x) return [x] * n