package core
- Alphabetic
- Public
- Protected
Type Members
- case class AXI4IdSpaceConstraint(idBits: Int = 4, maxFlight: Int = 8) extends Product with Serializable
Constrains how many id bits of the host memory channel are used, as well as how many requests are issued per id.
Constrains how many id bits of the host memory channel are used, as well as how many requests are issued per id. This generates hardware proportional to (2^idBits) * maxFlight.
- idBits
The number of lower idBits of the host memory channel to use.
- maxFlight
A bound on the number of requests the simulator will make per id.
- case class CPUManagedAXI4Params(addrBits: Int, dataBits: Int, idBits: Int, maxFlight: Option[Int] = None) extends Product with Serializable
- class CPUManagedStreamEngine extends StreamEngine
- abstract class ChannelizedWrapperIO extends Record with UnpackedWrapperConfig with TargetChannelIO
Builds a Record of tokenized interfaces based on a set of FAMEChannelConnectionAnnotations.
Builds a Record of tokenized interfaces based on a set of FAMEChannelConnectionAnnotations. Chisel-types are reconstructed by looking up a FIRRTL type in which can then be mapped back into a primitive chisel type.
This is instantiated twice: 1) On the TargetBox, to build a chisel-interface that can link against the FIRRTL 2) To build the SimWrapper's IO. This has the subset of channel interfaces present on the TargetBox that are connected to bridges.
This class includes many members that permit looking up record elements by channel type, and by channel name instead of using the underlying Chisel element name.
- class ClockRecord extends Record
- case class FPGAManagedAXI4Params(size: BigInt, dataBits: Int, idBits: Int, writeTransferSizes: TransferSizes, readTransferSizes: TransferSizes, interleavedId: Option[Int] = Some(0)) extends Product with Serializable
Specifies the AXI4 interface for FPGA-driven DMA
Specifies the AXI4 interface for FPGA-driven DMA
- size
The size, in bytes, of the addressable region on the host CPU. The addressable region is assumed to span [0, size). Host-specific offsets should be handled by the FPGAShim.
- dataBits
The width of the interface in bits.
- idBits
The number of ID bits supported by the interface.
- writeTransferSizes
Supported write transfer sizes in bytes
- readTransferSizes
Supported read transfer sizes in bytes
- interleavedId
Set to indicate DMA responses may be interleaved.
- class FPGAManagedStreamEngine extends StreamEngine
- class FPGATop extends LazyModule with HasWidgets
- class FPGATopImp extends LazyModuleImp
- class HostDecoupledIO[+T <: Data] extends Bundle
- case class HostMemChannelParams(size: BigInt, beatBytes: Int, idBits: Int, maxXferBytes: Int = 256) extends Product with Serializable
Specifies the size and width of external memory ports
- class HostReadyValid extends Bundle
- case class IChannelDesc[T <: Data](name: String, reference: T, modelChannel: DecoupledIO[T], tokenGenFunc: Option[() => T] = None) extends Product with Serializable
- case class OChannelDesc[T <: Data](name: String, reference: T, modelChannel: DecoupledIO[T], comparisonFunc: (Data, DecoupledIO[Data]) => Bool = (a, b) => !b.fire || a.asUInt === b.bits.asUInt) extends Product with Serializable
- class PipeChannel[T <: Data] extends Module
- class PipeChannelIO[T <: Data] extends Bundle
- class PipeChannelUnitTest extends UnitTest
- class ReadyValidChannel[T <: Data] extends Module
- class ReadyValidChannelIO[T <: Data] extends Bundle
- class ReadyValidChannelUnitTest extends UnitTest
- class SimReadyValidIO[T <: Data] extends Bundle
- class SimWrapper extends Module with UnpackedWrapperConfig
The SimWrapper is the shim between the transformed RTL and the rest of the Chisel-generated simulator collateral.
The SimWrapper is the shim between the transformed RTL and the rest of the Chisel-generated simulator collateral. 1) It instantiates the tranformed target (now a collection of unconnected, decoupled models) 2) Generates channels to interconnect those models and bridges by analyzing FAMEChannelConnectionAnnotations. 3) Exposes ReadyValid interfaces for all channels sourced or sunk by a bridge as I/O
- class SimWrapperChannels extends ChannelizedWrapperIO
- case class SimWrapperConfig(annotations: Seq[Annotation], leafTypeMap: Map[ReferenceTarget, Port]) extends Product with Serializable
The metadata required to generate the simulation wrapper.
The metadata required to generate the simulation wrapper.
- annotations
Notably FAMEChannelConnectionAnnotation, FAMEChannelFanoutAnnotation, BridgeIOAnnotations
- leafTypeMap
Provides the means to rebuild chisel-types that can "link" against the transformed RTL (FIRRTL), and associate specific annotations with those types..
- class StreamAdapterIO extends Bundle
- case class StreamDriverParameters(name: String, bufferBaseAddress: Int, countMMIOAddress: Int, bufferCapacity: Int, bufferWidthBytes: Int) extends Product with Serializable
A helper container to serialize per-stream constants to the header.
A helper container to serialize per-stream constants to the header. This is currently somewhat redundant with the default header emission for widgets.
- abstract class StreamEngine extends Widget
Base class for StreamEngine implementations.
Base class for StreamEngine implementations. StreamEngines collect all streams from bridges, which drive two Vec[Decoupled[UInt]], and implement the transport using an AXI4 slave and / or AXI4 master port, which is presented by the host platform.
Implementations that require an AXI4 subordinate set cpuManagedAXI4NodeOpt = Some(<node graph>) Implementations that require an AXI4 manager set fpgaManagedAXI4NodeOpt = Some(<node graph>)
- case class StreamEngineParameters(toCPUParams: Seq[StreamSourceParameters], fromCPUParams: Seq[StreamSinkParameters]) extends Product with Serializable
A wrapper class for common arguments to all StreamEngine implementations.
- trait StreamParameters extends AnyRef
Parameters that define a stream that are defined by bridges and collected by the engine.
- case class StreamSinkParameters(name: String, idx: Int, fpgaBufferDepth: Int, fpgaBufferWidthBytes: Int) extends StreamParameters with Product with Serializable
- case class StreamSourceParameters(name: String, idx: Int, fpgaBufferDepth: Int, fpgaBufferWidthBytes: Int) extends StreamParameters with Product with Serializable
- class StreamWidthAdapter extends Module
- class TargetBox extends BlackBox
- class TargetBoxIO extends ChannelizedWrapperIO
- trait TargetChannelIO extends AnyRef
Represents the interface of the target to which bridges connect.
- trait UnpackedWrapperConfig extends AnyRef
A convienence mixin that preprocesses the SimWrapperConfig
- class WriteMetadata extends Bundle
Value Members
- object AssertTokenIrrevocable
- case object CPUManagedAXI4Key extends Field[Option[CPUManagedAXI4Params]] with Product with Serializable
CPU-managed AXI4, aka "pcis" on EC2 F1.
CPU-managed AXI4, aka "pcis" on EC2 F1. Used by the CPU to do DMA into fabric-controlled memories. This could include in-fabric RAMs/FIFOs (for bridge streams) or (in the future) FPGA-attached DRAM channels.
- object DirectedLIBDNTestHelper
- case object FPGAManagedAXI4Key extends Field[Option[FPGAManagedAXI4Params]] with Product with Serializable
FPGA-managed AXI4, aka "pcim" on F1.
FPGA-managed AXI4, aka "pcim" on F1. Used by the fabric to do DMA into the host-CPU's memory. Used to implement bridge streams on platforms that lack a CPU-managed AXI4 interface. Set this to None if this interface is not present on the host.
- case object GenerateTokenIrrevocabilityAssertions extends Field[Boolean] with Product with Serializable
- object HostDecoupled
Adds a ready-valid handshaking protocol to any interface.
Adds a ready-valid handshaking protocol to any interface. The standard used is that the consumer uses the flipped interface.
- case object HostMemChannelKey extends Field[HostMemChannelParams] with Product with Serializable
- case object HostMemIdSpaceKey extends Field[Option[AXI4IdSpaceConstraint]] with Product with Serializable
DRAM Allocation Knobs
DRAM Allocation Knobs
Constrains how much of memory controller's id space is used. If no constraint is provided, the unified id space of all masters is presented directly to each memory controller. If this id width exceeds that of the controller, Golden Gate will throw an get an elaboration-time error requesting a constraint. See AXI4IdSpaceConstraint.
- case object HostMemNumChannels extends Field[Int] with Product with Serializable
- case object MemNastiKey extends Field[NastiParameters] with Product with Serializable
- object SimReadyValid
- object SimUtils
- case object SimWrapperKey extends Field[SimWrapperConfig] with Product with Serializable
- case object StreamEngineInstantiatorKey extends Field[(StreamEngineParameters, Parameters) => StreamEngine] with Product with Serializable
Set by a platform config to instantiate the supported StreamEnginer for that host.
Set by a platform config to instantiate the supported StreamEnginer for that host. e.g. F1 uses CPU-driven XDMA and so uses an engine that only uses the AXI4M interface.
- object TokenComparisonFunctions