from gram.core.controller import ControllerSettings, gramController
from gram.core.crossbar import gramCrossbar
-# Core ---------------------------------------------------------------------------------------------
-
+__ALL__ = ["gramCore"]
class gramCore(Peripheral, Elaboratable):
def __init__(self, phy, geom_settings, timing_settings, clk_freq, **kwargs):
from gram.compat import delayed_enter
import gram.stream as stream
+__ALL__ = ["BankMachine"]
+
# AddressSlicer ------------------------------------------------------------------------------------
cmd_buffer = stream.Buffer(cmd_buffer_layout)
m.submodules += cmd_buffer_lookahead, cmd_buffer
m.d.comb += [
- #self.req.connect(cmd_buffer_lookahead.sink, include={"valid", "ready", "payload.we", "payload.addr"}),
cmd_buffer_lookahead.sink.valid.eq(self.req.valid),
self.req.ready.eq(cmd_buffer_lookahead.sink.ready),
cmd_buffer_lookahead.sink.payload.we.eq(self.req.we),
from gram.core.multiplexer import Multiplexer
# Settings -----------------------------------------------------------------------------------------
-
+__ALL__ = ["gramController"]
class ControllerSettings(Settings):
def __init__(self,
import gram.stream as stream
from gram.compat import RoundRobin, delayed_enter
-# _CommandChooser ----------------------------------------------------------------------------------
-
+__ALL__ = ["Multiplexer"]
class _CommandChooser(Elaboratable):
"""Arbitrates between requests, filtering them based on their type