Skip to content

Commit

Permalink
genlib/cdc: remove AsyncResetSynchronizer on gearbox
Browse files Browse the repository at this point in the history
Since clocks are running at a different frequency, AsyncResetSynchronizers were delaying reset by a different amount of time on each clockdomain that can cause issues on wpointer/rpointer init.
enjoy-digital committed Nov 10, 2017
1 parent a79badb commit 2274a75
Showing 1 changed file with 4 additions and 6 deletions.
10 changes: 4 additions & 6 deletions migen/genlib/cdc.py
Original file line number Diff line number Diff line change
@@ -211,17 +211,15 @@ def __init__(self, iwidth, idomain, owidth, odomain):

# # #

reset = Signal()
rst = Signal()
cd_write = ClockDomain()
cd_read = ClockDomain()
self.comb += [
rst.eq(ResetSignal(idomain) | ResetSignal(odomain)),
cd_write.clk.eq(ClockSignal(idomain)),
cd_read.clk.eq(ClockSignal(odomain)),
reset.eq(ResetSignal(idomain) | ResetSignal(odomain))
]
self.specials += [
AsyncResetSynchronizer(cd_write, reset),
AsyncResetSynchronizer(cd_read, reset)
cd_write.rst.eq(rst),
cd_read.rst.eq(rst)
]
self.clock_domains += cd_write, cd_read

0 comments on commit 2274a75

Please sign in to comment.