17 #include <cerata/api.h>
24 using cerata::ClockDomain;
33 throw std::runtime_error(
"Offset must be integer multiple of data width / 8.");
43 [[nodiscard]] std::string
ToString()
const;
55 std::shared_ptr<ClockDomain> domain = cerata::default_domain());
57 std::shared_ptr<Object>
Copy()
const override;
70 std::shared_ptr<Axi4LitePort>
axi4_lite(Port::Dir dir,
71 const std::shared_ptr<ClockDomain> &domain = cerata::default_domain(),
Contains all classes and functions related to Fletchgen.
std::shared_ptr< Type > axi4_lite_type(Axi4LiteSpec spec)
AXI4-lite port type.
std::shared_ptr< Axi4LitePort > axi4_lite(Port::Dir dir, const std::shared_ptr< ClockDomain > &domain, Axi4LiteSpec spec)
Make a new AXI4-lite port, returning a shared pointer to it.
An AXI4-lite port derived from an AXI4-lite specification.
Axi4LitePort(Port::Dir dir, Axi4LiteSpec spec, std::string name="mmio", std::shared_ptr< ClockDomain > domain=cerata::default_domain())
Construct a new MmioPort.
Axi4LiteSpec spec_
The specification this port was derived from.
std::shared_ptr< Object > Copy() const override
Make a copy of this AXI4-lite port.
AXI4-lite bus specification.
std::string ToString() const
Return a human-readable representation of this Axi4LiteSpec.
size_t offset
The offset for all registers.
std::string ToAxiTypeName() const
Return a Cerata type name based on this Axi4LiteSpec.
size_t data_width
The data width.
size_t addr_width
The address width.