Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import numpy as np
- import time
- numberinput = 3
- inputa = []
- list_nof =[]
- list_a_at_0 =[]
- def compare_list (list_a,list_b):
- fault_count =0
- for i in range (0,len(list_a)):
- if(list_a[i]!=list_b[i]):
- fault_count = fault_count+1
- return fault_count
- #multiplexer circuit
- def mux2(inputa):
- list_out = []
- for i in inputa :
- A = int(i[1])
- B = int(i[2])
- X = int(i[0])
- C = A and (not(X))
- D = B and X
- Z = C or D
- print i
- print bool(Z)
- list_out.append(bool(Z))
- return list_out
- #create stuck at 0 or 1
- def stuck_at(input_list,stuck,position):
- for i in range (0,len(input_list)):
- input_list[i] = list(input_list[i])
- input_list[i][position]= stuck
- input_list[i] = "".join(input_list[i])
- return input_list
- #create input for the circuit
- for i in range (0,pow(2, numberinput)) :
- #print bin(i)[2:].zfill(numberinput)
- inputa.append(bin(i)[2:].zfill(numberinput))
- #start_time = time.time()
- list_nof = mux2(inputa)
- list_a_at_0 = mux2(stuck_at(inputa,"0",0))
- list_b_at_0 = mux2(stuck_at(inputa,"0",1))
- list_x_at_0 = mux2(stuck_at(inputa,"0",2))
- list_a_at_1 = mux2(stuck_at(inputa,"1",0))
- list_b_at_1 = mux2(stuck_at(inputa,"1",1))
- list_x_at_1 = mux2(stuck_at(inputa,"1",2))
- #print("--- %s seconds ---" % (time.time() - start_time))
- print compare_list(list_nof,list_a_at_0)
- print compare_list(list_nof,list_b_at_0)
- print compare_list(list_nof,list_x_at_0)
- print compare_list(list_nof,list_a_at_1)
- print compare_list(list_nof,list_b_at_1)
- print compare_list(list_nof,list_x_at_1)
- print list_nof
- print list_a_at_0
- print list_b_at_0
- print list_x_at_0
- print list_a_at_1
- print list_b_at_1
- print list_x_at_1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement