Ejemplo n.º 1
0
	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
Ejemplo n.º 2
0
	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
Ejemplo n.º 3
0
	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
Ejemplo n.º 4
0
	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
Ejemplo n.º 5
0
	def clock(self, nex):
		G.checkBit(nex)
		self.prev = self.temp
		self.temp = nex
		return self.prev
Ejemplo n.º 6
0
	def __init__(self, a):
		G.checkBit(a)
		self.temp = random.randint(0,1) # Noise
Ejemplo n.º 7
0
def wiresN(x, n):
    G.checkBit(x)
    return [x] * n