def METHOD_NAME(self):
    tb = {
        32: FullStackTB(64, 32),
        64: FullStackTB(64, 64)
    }
    ttl_changes = {
        32: [],
        64: []
    }
    @passive
    def monitor(dw):
        old_ttl_states = [0, 0]
        for time in itertools.count():
            ttl_states = [
                (yield tb[dw].ttl0),
                (yield tb[dw].ttl1)
            ]
            for i, (old, new) in enumerate(zip(old_ttl_states, ttl_states)):
                if new != old:
                    ttl_changes[dw].append((time, i))
            old_ttl_states = ttl_states
            yield
    run_simulation(tb[32], {"sys": [
        do_dma(tb[32].dut, 0), monitor(32),
        (None for _ in range(70)),
    ]}, {"sys": 8, "rio": 8, "rio_phy": 8})
    run_simulation(tb[64], {"sys": [
        do_dma(tb[64].dut, 0), monitor(64),
        (None for _ in range(70)),
    ]}, {"sys": 8, "rio": 8, "rio_phy": 8})
    correct_changes = [(timestamp + 11, channel)
                       for channel, timestamp, _, _ in test_writes_full_stack]
    self.assertEqual(ttl_changes[32], correct_changes)
    self.assertEqual(ttl_changes[64], correct_changes)