Advertisement
Guest User

Untitled

a guest
Nov 15th, 2018
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.76 KB | None | 0 0
  1. import numpy as np
  2. import time
  3.  
  4. numberinput = 3
  5. inputa = []
  6. list_nof =[]
  7. list_a_at_0 =[]
  8.  
  9. def compare_list (list_a,list_b):
  10. fault_count =0
  11. for i in range (0,len(list_a)):
  12. if(list_a[i]!=list_b[i]):
  13. fault_count = fault_count+1
  14. return fault_count
  15. #multiplexer circuit
  16. def mux2(inputa):
  17. list_out = []
  18. for i in inputa :
  19. A = int(i[1])
  20. B = int(i[2])
  21. X = int(i[0])
  22. C = A and (not(X))
  23. D = B and X
  24. Z = C or D
  25. print i
  26. print bool(Z)
  27. list_out.append(bool(Z))
  28. return list_out
  29. #create stuck at 0 or 1
  30. def stuck_at(input_list,stuck,position):
  31. for i in range (0,len(input_list)):
  32. input_list[i] = list(input_list[i])
  33. input_list[i][position]= stuck
  34. input_list[i] = "".join(input_list[i])
  35. return input_list
  36.  
  37. #create input for the circuit
  38. for i in range (0,pow(2, numberinput)) :
  39. #print bin(i)[2:].zfill(numberinput)
  40. inputa.append(bin(i)[2:].zfill(numberinput))
  41. #start_time = time.time()
  42. list_nof = mux2(inputa)
  43. list_a_at_0 = mux2(stuck_at(inputa,"0",0))
  44. list_b_at_0 = mux2(stuck_at(inputa,"0",1))
  45. list_x_at_0 = mux2(stuck_at(inputa,"0",2))
  46. list_a_at_1 = mux2(stuck_at(inputa,"1",0))
  47. list_b_at_1 = mux2(stuck_at(inputa,"1",1))
  48. list_x_at_1 = mux2(stuck_at(inputa,"1",2))
  49. #print("--- %s seconds ---" % (time.time() - start_time))
  50. print compare_list(list_nof,list_a_at_0)
  51. print compare_list(list_nof,list_b_at_0)
  52. print compare_list(list_nof,list_x_at_0)
  53. print compare_list(list_nof,list_a_at_1)
  54. print compare_list(list_nof,list_b_at_1)
  55. print compare_list(list_nof,list_x_at_1)
  56.  
  57.  
  58. print list_nof
  59. print list_a_at_0
  60. print list_b_at_0
  61. print list_x_at_0
  62. print list_a_at_1
  63. print list_b_at_1
  64. print list_x_at_1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement