Skip to content

Commit 2274a75

Browse files
committedNov 10, 2017
genlib/cdc: remove AsyncResetSynchronizer on gearbox
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.
1 parent a79badb commit 2274a75

File tree

1 file changed

+4
-6
lines changed

1 file changed

+4
-6
lines changed
 

‎migen/genlib/cdc.py

+4-6
Original file line numberDiff line numberDiff line change
@@ -211,17 +211,15 @@ def __init__(self, iwidth, idomain, owidth, odomain):
211211

212212
# # #
213213

214-
reset = Signal()
214+
rst = Signal()
215215
cd_write = ClockDomain()
216216
cd_read = ClockDomain()
217217
self.comb += [
218+
rst.eq(ResetSignal(idomain) | ResetSignal(odomain)),
218219
cd_write.clk.eq(ClockSignal(idomain)),
219220
cd_read.clk.eq(ClockSignal(odomain)),
220-
reset.eq(ResetSignal(idomain) | ResetSignal(odomain))
221-
]
222-
self.specials += [
223-
AsyncResetSynchronizer(cd_write, reset),
224-
AsyncResetSynchronizer(cd_read, reset)
221+
cd_write.rst.eq(rst),
222+
cd_read.rst.eq(rst)
225223
]
226224
self.clock_domains += cd_write, cd_read
227225

0 commit comments

Comments
 (0)