# Pastebin PeOliG0W class CommonTestMultiClockDomain: def setUp(self, clock_names=("usb_12", "usb_48")): self.signals = {} self.cycle_count = {} self.last_value = {} for n in clock_names: self.signals[n] = ClockSignal(n) self.cycle_count[n] = 0 self.last_value[n] = 0 def _update_clocks(self): for n in self.signals: current_value = yield self.signals[n] # Run the callback if current_value and not self.last_value[n]: yield from getattr(self, "on_%s_edge" % n)() self.cycle_count[n] += 1 self.last_value[n] = current_value def on_usb_12_edge(self): if False: yield def on_usb_48_edge(self): if False: yield