def test_dmux(self):
     "Defines a truth table for dmux"
     a, b = dmux(zero, zero)
     self.assertFalse(a)
     self.assertFalse(b)
     a, b = dmux(zero, one)
     self.assertFalse(a)
     self.assertFalse(b)
     a, b = dmux(one, zero)
     self.assertTrue(a)
     self.assertFalse(b)
     a, b = dmux(one, one)
     self.assertFalse(a)
     self.assertTrue(b)
Beispiel #2
0
 def expand_winner(winner_list, s):
     if len(winner_list) == num_outputs:
         return winner_list
     if len(winner_list) == 1:
         index = 0
     else:
         index = int(math.log(len(winner_list), 2))
     winners = [dmux(winner, s[index]) for winner in winner_list] # Split winners using dmux
     winners = [instance for sublist in winners for instance in sublist] # Collapse list
     return expand_winner(winners, s)
Beispiel #3
0
 def expand_winner(winner_list, s):
     if len(winner_list) == num_outputs:
         return winner_list
     if len(winner_list) == 1:
         index = 0
     else:
         index = int(math.log(len(winner_list), 2))
     winners = [dmux(winner, s[index]) for winner in winner_list] # Split winners using dmux
     winners = [instance for sublist in winners for instance in sublist] # Collapse list
     return expand_winner(winners, s)