I still don't like how you need to do `Settle` in `add_sync_process()`. I think the reason is that you want to keep the value as it was during the event. I am thinking something like:
```python
    _en, _d = Tick(en, d)
    if _en:
        yield q.eq(d)
```
For flipflop with enable.