Skip to content

Commit 51f03bb

Browse files
dlharmonwhitequark
authored andcommitted
vendor.xilinx_spartan_3_6: override reset synchronizer.
1 parent c16f5ec commit 51f03bb

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

nmigen/vendor/xilinx_spartan_3_6.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -419,6 +419,18 @@ def get_ff_sync(self, ff_sync):
419419
m.d.comb += ff_sync.o.eq(multireg._stages[-1])
420420
return m
421421

422+
def get_reset_sync(self, resetsync):
423+
m = Module()
424+
m.domains += ClockDomain("reset_sync", async_reset=True, local=True)
425+
for i, o in zip((0, *resetsync._stages), resetsync._stages):
426+
o.attrs["ASYNC_REG"] = "TRUE"
427+
m.d.reset_sync += o.eq(i)
428+
m.d.comb += [
429+
ClockSignal("reset_sync").eq(ClockSignal(resetsync._domain)),
430+
ResetSignal("reset_sync").eq(resetsync.arst),
431+
ResetSignal(resetsync._domain).eq(resetsync._stages[-1])
432+
]
433+
return m
422434

423435
XilinxSpartan3APlatform = XilinxSpartan3Or6Platform
424436
XilinxSpartan6Platform = XilinxSpartan3Or6Platform

0 commit comments

Comments
 (0)