self.sync += [
If(scl & (counter != 20),
counter.eq(counter + 1)
).ElIf(~scl & (counter != 0),
counter.eq(counter - 1)
),
If(counter < 5,
scl_filtered.eq(0)
).ElIf(counter > 15,
scl_filtered.eq(1)
)
]