def elaborate(self, platform):
m = Module()
- m.submodules += self._bridge
+ m.submodules.bridge = self._bridge
- m.submodules += self.dfii
+ m.submodules.dfii = self.dfii
m.d.comb += self.dfii.master.connect(self._phy.dfi)
m.submodules.controller = self.controller
m.d.comb += self.controller.dfi.connect(self.dfii.slave)
- m.submodules += self.crossbar
+ m.submodules.crossbar = self.crossbar
return m
write = request.is_write == self.want_writes
m.d.comb += valids[i].eq(request.valid & (command | (read & write)))
- arbiter = RoundRobin(n)
- m.submodules += arbiter
+ m.submodules.arbiter = arbiter = RoundRobin(n)
choices = Array(valids[i] for i in range(n))
m.d.comb += [
arbiter.request.eq(valids),
log2_int(len(bank_machines))))
# nop must be 1st
commands = [nop, choose_cmd.cmd, choose_req.cmd, refresher.cmd]
- steerer = _Steerer(commands, dfi)
- m.submodules += steerer
+ m.submodules.steerer = steerer = _Steerer(commands, dfi)
# tRRD timing (Row to Row delay) -----------------------------------------------------------
m.submodules.trrdcon = trrdcon = tXXDController(settings.timing.tRRD)
trp = self._trp
trfc = self._trfc
- tl = Timeline([
+ m.submodules.timeline = tl = Timeline([
# Precharge All
(0, [
self.a.eq(2**10),
self.done.eq(1),
]),
])
- m.submodules += tl
m.d.comb += tl.trigger.eq(self.start)
return m
def elaborate(self, platform):
m = Module()
- executer = RefreshExecuter(self._abits, self._babits, self._trp, self._trfc)
- m.submodules += executer
+ m.submodules.executer = executer = RefreshExecuter(self._abits, self._babits, self._trp, self._trfc)
m.d.comb += [
self.a.eq(executer.a),
self.ba.eq(executer.ba),
trp = self._trp
tzqcs = self._tzqcs
- tl = Timeline([
+ m.submodules.timeline = tl = Timeline([
# Precharge All
(0, [
self.a.eq(2**10),
self.done.eq(1)
]),
])
- m.submodules += tl
m.d.comb += tl.trigger.eq(self.start)
return m