rohd_hcl library

Classes

Adder
An abstract class for adders..
AdderSelectKnob
A knob for selecting an adder to use in a component.
ApbCompleterAgent
A model for the completer side of an ApbInterface.
ApbComplianceChecker
A checker for some of the rules defined in the APB interface specification.
ApbInterface
A standard APB interface.
ApbMonitor
A monitor for ApbInterfaces.
ApbPacket
A packet on an ApbInterface.
ApbReadPacket
A read packet on an ApbInterface.
ApbRequesterAgent
An agent for sending requests on an ApbInterface.
ApbRequesterDriver
A driver for the ApbInterface from the requester side.
ApbTracker
A tracker for the ApbInterface.
ApbWritePacket
A write packet on an ApbInterface.
Arbiter
An abstract description of an arbiter module.
Axi4Channel
An AXI4 channel that may or may not support reads and/or writes.
Axi4MainAgent
An agent for sending requests on Axi4ReadInterfaces and Axi4WriteInterfaces.
Axi4ReadAgent
An agent for sending and monitoring read requests
Axi4ReadComplianceChecker
A checker for some of the rules defined in the AXI4 interface specification.
Axi4ReadInterface
A standard AXI4 read interface.
Axi4ReadMainDriver
A driver for the Axi4ReadInterface interface.
Axi4ReadMonitor
A monitor for Axi4ReadInterfaces.
Axi4ReadRequestPacket
A read packet on an Axi4ReadInterface.
Axi4RequestPacket
A request packet on an AXI4 interface.
Axi4SubordinateAgent
A model for the subordinate side of an Axi4ReadInterface and Axi4WriteInterface.
Axi4SystemInterface
AXI4 clock and reset.
Axi4Tracker
A tracker for the Axi4ReadInterface or Axi4WriteInterface.
Axi4WriteAgent
An agent for sending and monitoring write requests.
Axi4WriteComplianceChecker
A checker for some of the rules defined in the AXI4 interface specification.
Axi4WriteInterface
A standard AXI4 write interface.
Axi4WriteMainDriver
A driver for the Axi4WriteInterface interface.
Axi4WriteMonitor
A monitor for Axi4WriteInterfaces.
Axi4WriteRequestPacket
A write packet on an Axi4WriteInterface.
AxiAddressRange
A repesentation of an address region for the AXI Subordinate. Regions can have access modes and can be leveraged for wrapping bursts.
BinaryToGrayConverter
A module for converting binary values to Gray code representation.
BinaryToOneHot
Encodes a binary number into one-hot.
BitCompressor
Base class for bit-level column compressor function
BitonicSort
Bitonic Sort is a pipelined sort module that sort toSort to specified order based on isAscending.
BitonicSortConfigurator
A Configurator for BitonicSort.
BooleanConfig
A configuration class for boolean configurations, which can be used to statically enable or disable features in a component.
BrentKung
BrentKung implements the Brent-Kung shaped ParallelPrefix tree pattern.
BruteSignExtension
A Brute Sign Extension class.
CarrySaveMultiplier
A binary multiplier using carry-save technique with pipelining.
CarrySaveMultiplierConfigurator
A Configurator for CarrySaveMultiplier.
CarrySelectCompoundAdder
Carry-select compound adder.
CarrySelectOnesComplementCompoundAdder
Carry-select ones-complement compound adder.
CaseOneHotToBinary
Decodes a one-hot number into binary using a case block.
ChoiceConfigKnob<T>
A ConfigKnob for selecting one of multiple options.
ClockGate
A generic and configurable clock gating block.
ClockGateControlInterface
An Interface for controlling ClockGates.
ColumnCompressor
A column compressor module
CompactRectSignExtension
A Partial Product Generator using Compact Rectangular Extension
CompactSignExtension
A Compact Sign Extension class.
CompoundAdder
An abstract class for all compound adder module implementations.
CompoundAdderConfigurator
A Configurator for CompoundAdder.
CompressionTreeDotProduct
An integer dot product module using a ColumnCompressor.
CompressionTreeMultiplier
An implementation of an integer multiplier using compression trees.
CompressionTreeMultiplyAccumulate
An implementation of an integer multiply-accumulate using compression trees
Compressor2
2-input column compressor (half-adder)
Compressor3
3-input column compressor (full-adder)
CompressTerm
A compression term.
ConfigKnob<T>
A configuration knob for use in Configurators.
Configurator
An object that enables a consisten API for configuring a Module and performing common tasks with it.
Count
Count 1 or 0.
Counter
Keeps a count of the running sum of any number of sources with optional configuration for widths, saturation behavior, and restarting.
CounterConfigurator
A configurator for Counter.
Csr
Logic representation of a Control and Status Register (CSR).
CsrBackdoorInterface
An interface to interact very simply with a CSR.
CsrBlock
Logic representation of a block of registers.
CsrBlockConfig
Definition for a coherent block of registers.
CsrConfig
Configuration for an architectural register.
CsrFieldConfig
Configuration for a register field.
CsrInstanceConfig
Configuration for a register instance.
CsrTop
Top level module encapsulating groups of CSRs.
CsrTopConfig
Definition for a top level module containing CSR blocks.
DataPortInterface
An interface to a simple memory that only needs enable, address, and data.
Deserializer
Deserializer aggregates data from a serialized stream.
DotProductBase
A dot product module for integers.
EccConfigurator
A Configurator for HammingEccReceiver and HammingEccTransmitter.
EdgeDetector
An edge detector for positive, negative, or any edge on a signal relative to the previous clock cycle.
EdgeDetectorConfigurator
A Configurator for EdgeDetector.
ErrorCheckingReceiver
A receiver for data which includes a code for checking and possibly correcting.
ErrorCheckingTransmitter
A transmitter for data which includes a code for checking and possibly correcting data at the receiving end.
Extrema
Determines the extremas (maximum or minimum) of a List<Logic>.
ExtremaConfigurator
A Configurator for Extrema.
Fifo<LogicType extends Logic>
A module Fifo implementing a simple FIFO (First In, First Out) buffer.
FifoChecker
A checker for Fifos that they are being used properly and not reaching any dangerous conditions.
FifoConfigurator
A Configurator for Fifo.
FifoTracker
A tracker for a Fifo which can generate logs.
Find
Find functionality
FindConfigurator
A Configurator for Find.
FindPattern
FindPattern functionality
FixedPoint
A representation of (un)signed fixed-point logic following Q notation (Qm.n format) as introduced by Texas Instruments: (https://www.ti.com/lit/ug/spru565b/spru565b.pdf).
FixedPointSqrt
Implementation Algorithm explained here; https://projectf.io/posts/square-root-in-verilog/
FixedPointSqrtBase
Base class for fixed-point square root
FixedPointSqrtConfigurator
A Configurator for FixedPointSqrt.
FixedPointValue
An immutable representation of (un)signed fixed-point values following Q notation (Qm.n format) as introduced by Texas Instruments: (https://www.ti.com/lit/ug/spru565b/spru565b.pdf).
FixedPointValuePopulator<FxvType extends FixedPointValue>
A populator for FixedPointValues, a utility that can populate various forms of FixedPointValues.
FixedToFloat
FixedToFloat converts a fixed point input to floating point with rouding to nearest even. If the input exceeds the floating point range, the output will be infinity. E4M3 is not supported as this format doesn't support infinity.
FixedToFloatConfigurator
A Configurator for FixedToFloat.
Float8ToFixed
Float8ToFixed converts an 8-bit floating point (FP8) input to a signed fixed-point output following Q notation (Qm.n) as introduced by (Texas Instruments): (https://www.ti.com/lit/ug/spru565b/spru565b.pdf). FP8 input must follow E4M3 or E5M2 as described in (FP8 formats for deep learning): (https://arxiv.org/pdf/2209.05433). This component offers re-using the same hardware for both FP8 formats. Infinities and NaN's are not supported. The output is of type Logic and in two's complement. It can be cast to a FixedPoint by the consumer based on the mode. if mode is true: Input is treated as E4M3 and converted to Q9.9
FloatingPoint
Flexible floating point logic representation.
FloatingPoint16
Sixteen-bit floating point representation.
FloatingPoint16Value
A representation of an FP16 floating-point value.
FloatingPoint32
Single floating point representation.
FloatingPoint32Value
A representation of a single-precision floating-point value.
FloatingPoint32ValuePopulator
A special type of FloatingPointValuePopulator that adjusts how FloatingPoint32Values are populated.
FloatingPoint64
Double floating point representation.
FloatingPoint64Value
A representation of a double-precision floating-point value.
FloatingPoint64ValuePopulator
A special type of FloatingPointValuePopulator that adjusts how FloatingPoint64Values are populated.
FloatingPoint8E4M3
Eight-bit floating point representation for deep learning: E4M3.
FloatingPoint8E4M3Value
The E4M3 representation of a 8-bit floating point value as defined in FP8 Formats for Deep Learning.
FloatingPoint8E5M2
Eight-bit floating point representation for deep learning: E5M2.
FloatingPoint8E5M2Value
The E5M2 representation of a 8-bit floating point value as defined in FP8 Formats for Deep Learning.
FloatingPointAdder<FpTypeIn extends FloatingPoint, FpTypeOut extends FloatingPoint>
An abstract API for floating point adders.
FloatingPointAdderConfigurator
A Configurator for FloatingPointAdders.
FloatingPointAdderDualPath<FpTypeIn extends FloatingPoint, FpTypeOut extends FloatingPoint>
A fast adder module for variable width FloatingPoint logic signals.
FloatingPointAdderSinglePath<FpTypeIn extends FloatingPoint, FpTypeOut extends FloatingPoint>
A single-path adder implementation for FloatingPoint values.
FloatingPointBF16
Sixteen-bit BF16 floating point representation.
FloatingPointBF16Value
A representation of a BF16 floating-point value.
FloatingPointConditionalSwap<FpType extends FloatingPoint>
A module that swaps two floating point values based on a condition.
FloatingPointConverter<FpTypeIn extends FloatingPoint, FpTypeOut extends FloatingPoint>
A converter module between different FloatingPoint logic signals.
FloatingPointMultiplier<FpTypeIn extends FloatingPoint, FpTypeOut extends FloatingPoint>
An abstract API for floating-point multipliers.
FloatingPointMultiplierSimple<FpTypeIn extends FloatingPoint, FpTypeOut extends FloatingPoint>
A multiplier module for FloatingPoint logic.
FloatingPointMultiplierSimpleConfigurator
A Configurator for FloatingPointMultiplierSimples.
FloatingPointSort<FpType extends FloatingPoint>
A module that sorts two floating point values, output the larger one first.
FloatingPointSortByExp<FpType extends FloatingPoint>
A module that sorts two floating point values by exponent output the one with the larger exponent first.
FloatingPointSqrt<FpType extends FloatingPoint>
An abstract API for floating point square root.
FloatingPointSqrtConfigurator
A Configurator for FloatingPointSqrt.
FloatingPointSqrtSimple<FpType extends FloatingPoint>
A square root module for FloatingPoint logic signals.
FloatingPointSwap<FpType extends FloatingPoint>
A module that swaps two floating point values.
FloatingPointTF32
TF32 floating point representation.
FloatingPointTF32Value
A representation of a TF32 floating-point value.
FloatingPointUtilities
A utility class for floating point operations.
FloatingPointValue
A flexible representation of floating point values. A FloatingPointValue has a mantissa in [0,2) with 0 <= exponent <= maxExponent(); A value which FloatingPointValue.isNormal has minExponent() <= exponent <= maxExponent() and a mantissa in the range of [1,2). Subnormal numbers are represented with a zero exponent and leading zeros in the mantissa capture the negative exponent value.
FloatingPointValuePopulator<FpvType extends FloatingPointValue>
A populator for FloatingPointValues, a utility that can populate various forms of FloatingPointValues.
FloatToFixed
FloatToFixed converts a floating point input to a signed fixed-point output following Q notation (Qm.n format) as introduced by (Texas Instruments): (https://www.ti.com/lit/ug/spru565b/spru565b.pdf). Infinities and NaN's are not supported. Conversion is lossless. The output is in two's complement and in Qm.n format where:
FloatToFixedConfigurator
A Configurator for FloatToFixed.
FullAdder
A simple full-adder with single-bit inputs a and b to be added with a carryIn.
GatedCounter
A version of a Counter which includes ClockGateing and ToggleGateing for power savings.
GeneralDotProduct
General version of the DotProductBase module that uses provided Multiplier and Adder functions to construct the dot product computation.
GrayToBinaryConverter
A module for converting Gray code to binary representation.
GroupOfKnobs
A knob which groups together other ConfigKnobs.
HammingEccReceiver
A receiver for transmissions sent with a Hamming code for error detection and possibly correction.
HammingEccTransmitter
A transmitter for data which generates a Hamming code for error detection and possibly correction.
IntConfigKnob
A knob to store an int.
IntOptionalConfigKnob
A knob to store an int.
KoggeStone
KoggeStone implements the Kogge-Stone shaped ParallelPrefix tree pattern.
LeadingDigitAnticipate
Module for predicting the number of leading digits (position of first digit change) before the sum of the two 2s-complement numbers. The leading digit position is either leadingDigit or leadingDigit + 1.
LeadingDigitAnticipateConfigurator
A Configurator for LeadingDigitAnticipate and LeadingZeroAnticipate.
LeadingZeroAnticipate
Module for predicting the number of leading zeros (position of leading 1) before an addition or subtraction.
LeadingZeroAnticipateBase
Base class for leading-zero anticipate modules.
LeadingZeroAnticipateCarry
Module for predicting the number of leading zeros (position of leading 1) before an addition or subtraction.
ListOfKnobsKnob
A knob wich holds a collection of other ConfigKnobs.
MaskedDataPortInterface
A DataPortInterface that supports byte-enabled strobing.
MaskRoundRobinArbiter
A RoundRobinArbiter implemented using request and grant masks.
Memory
A generic memory with variable numbers of read and write ports.
MemoryModel
A model of a Memory which uses a software-based SparseMemoryStorage to store data.
MemoryStorage
A storage for memory models.
MultiCycleDivider
The Divider module definition.
MultiCycleDividerInterface
Internal interface to the Divider.
MultiplicandSelector
A class accessing the multiples of the multiplicand at a position.
Multiplier
An abstract class for all multiplier implementations.
MultiplierConfigurator
A Configurator for Multipliers.
MultiplierEncoder
A class that generates the Booth encoding of the multipler.
MultiplierSelectKnob
A knob for selecting a multiplier to use in a component.
MultiplyAccumulate
An abstract class for all multiply accumulate implementations.
MultiplyOnly
A subclass of MultiplyAccumulate which ignores the third (c) accumulate term and applies the multiplier function.
NativeAdder
A class which wraps the native '+' operator so that it can be passed into other modules as a parameter for using the native operation. Note that NativeAdder is unsigned.
NativeMultiplier
A class which wraps the native '*' operator so that it can be passed into other modules as a parameter for using the native operation.
NoneSignExtension
A range of SignExtension classes to be used in building new arithmetic building blocks. Start with BruteSignExtension when composing new partial product array shapes as it should work in all situations. A Partial Product Generator using None Sign Extension
OneHotConfigurator
A Configurator for BinaryToOneHot and OneHotToBinary.
OneHotToBinary
Decodes a one-hot number into binary using a case block.
OnesComplementAdder
An adder (and subtractor) OnesComplementAdder that operates on ones-complement values, producing a magnitude and sign.
OutputWidthSelectKnob
A knob for selecting a different width output.
ParallelPrefix
ParallelPrefix is the core parallel prefix tree structure node The output is a List of multi-bit Logic vectors (typically 2-bit) that represent things like carry-save or generate-propagate signaling in adder networks. Each node in a parallel prefix tree transforms a row of inputs to an equal length row of outputs of these multi-bit Logic values.
ParallelPrefixAdder
Adder based on ParallelPrefix tree.
ParallelPrefixAdderConfigurator
A Configurator for ParallelPrefixAdders.
ParallelPrefixDecr
Decrementer based on ParallelPrefix tree.
ParallelPrefixIncr
Incrementer based on ParallelPrefix tree.
ParallelPrefixOrScan
Or scan based on ParallelPrefix tree.
ParallelPrefixPriorityEncoder
Priority Encoder based on ParallelPrefix tree.
ParallelPrefixPriorityFinder
Priority Finder based on ParallelPrefix tree.
ParityReceiver
Check for error & Receive data on transmitted data via parity
ParityTransmitter
Encode data to transport with Parity bits
PartialProduct
A PartialProduct module wrapping partial product array manipulation and generation of outputs in an actual module as opposed to an inline generator class.
PartialProductArray
A PartialProductArray is a class that holds a set of partial products for manipulation by PartialProductGeneratorBase and column compressor.
PartialProductGenerator
A concrete base class for partial product generation
PartialProductGeneratorBase
A PartialProductGeneratorBase class that generates a set of partial products. Essentially a set of shifted rows of Logic addends generated by Booth recoding and manipulated by sign extension, before being compressed.
PartialProductGeneratorBruteSignExtension
A wrapper class for BruteSignExtension we used during refactoring to be compatible with old calls.
PartialProductGeneratorCompactRectSignExtension
A wrapper class for CompactRectSignExtension we used during refactoring to be compatible with old calls.
PartialProductGeneratorCompactSignExtension
A wrapper class for CompactSignExtension we used during refactoring to be compatible with old calls.
PartialProductGeneratorStopBitsSignExtension
Stop-bits based sign extension
PartialProductMatrix
An module API that represents a set of partial products rows including their shifts. This is a base class for the PartialProduct module.
PartialProductSignExtension
API for sign extension classes.
PriorityArbiter
An Arbiter which always picks the lowest-indexed request.
PriorityArbiterConfigurator
A Configurator for PriorityArbiter.
PriorityEncoder
Base class for priority encoders.
RadixEncode
A bundle for the leaf radix compute nodes. This holds the multiples of the multiplicand that are needed for encoding.
RadixEncoder
Base interface for radix radixEncoder
ReadyValidAgent
A generic agent for ready/valid protocol.
ReadyValidMonitor
A Monitor for ready/valid protocol.
ReadyValidPacket
A packet to be transmitted over a ready/valid interface.
ReadyValidReceiverAgent
An Agent for receiving over a ready/valid protocol.
ReadyValidTracker
A tracker for a ready/valid protocol.
ReadyValidTransmitterAgent
An Agent for transmitting over a ready/valid protocol.
ReadyValidTransmitterDriver
An Agent for transmitting over a ready/valid protocol.
RecursiveModulePriorityEncoder
Priority finder based on bitwise OR operations, using a tree of modules.
RecursiveModulePriorityEncoderNode
Recursive Tree Node for Priority Encoding.
RecursivePriorityEncoder
Priority finder based on or() operations.
ReductionTree
Recursive Node for Reduction Tree
ReductionTreeGenerator
Reduction Tree Generator that produces a recursive tree computation inline so that the operation can access global signals.
RegisterFile
A flop-based Memory.
RegisterFileConfigurator
A Configurator for RegisterFiles.
Ripple
A ripple shaped ParallelPrefix tree.
RippleCarryAdder
An RippleCarryAdder is a digital circuit used for binary addition. It consists of a series of full adders connected in a chain, with the carry output of each adder linked to the carry input of the next one. Starting from the least significant bit (LSB) to most significant bit (MSB), the adder sequentially adds corresponding bits of two binary numbers.
RippleCarryAdderConfigurator
A Configurator for RippleCarryAdder.
RotateConfigurator
A Configurator for rotation.
RotateLeft
Rotates a Logic to the left.
RotateLeftFixed
Rotates left by a fixed amount.
RotateRight
Rotates a Logic to the right.
RotateRightFixed
Rotates right by a fixed amount.
RotateRoundRobinArbiter
A RoundRobinArbiter implemented using rotations and a PriorityArbiter.
RoundRNE
A rounding class that performs rounding-nearest-even
RoundRobinArbiter
A StatefulArbiter which fairly arbitrates between requests.
RoundRobinArbiterConfigurator
A Configurator for PriorityArbiter.
RuntimeConfig
A configuration class for runtime configurations, which can be used to dynamically configure a component at runtime.
SerializationConfigurator
A Configurator for Serializer and Deserializer.
Serializer
Serializes wide aggregated data onto a narrower serialization stream.
ShiftRegister
A shift register with configurable width and depth and optional enable and reset.
SignBit
Store a Signbit as Logic
SignedShifter
A bit shifter that takes a positive or negative shift amount
SignMagnitudeAdder
A SignMagnitudeAdder performs addition on values in sign/magnitude format.
SignMagnitudeAdderBase
A SignMagnitudeAdderBase performs addition on values in sign/magnitude format.
SignMagnitudeDualAdder
A sign-magnitude adder implementation that uses two ones-complement adders wired in opposition to compute the magnitude and sign without using internal twos-complement addition. This will cost more area than a SignMagnitudeAdder but will not require the caller to guarantee the order of inputs or deal with the end-around carry and will be faster than adding the end-around carry to get the correct sum.
SignMagnitudeValue
An immutable representation of a sign-magnitude value.
SignMagnitudeValuePopulator<SmvType extends SignMagnitudeValue>
A populator for SignMagnitudeValues, a utility that can populate various forms of SignMagnitudeValues.
Sklansky
Sklansky implements the Sklansky-shaped ParallelPrefix tree pattern.
Sort
An abstract class for all sort algorithm.
SparseMemoryStorage
A sparse storage for memory models.
SpiChecker
Checker component for Serial Peripheral Interface (SPI).
SpiInterface
A standard Serial Peripheral Interface.
SpiMain
Main component for Serial Peripheral Interface (SPI).
SpiMainAgent
An agent for the main side of the SpiInterface.
SpiMainDriver
A driver for the main side of the SpiInterface.
SpiMonitor
A monitor for SpiInterfaces.
SpiPacket
A packet for the SpiInterface.
SpiSub
Sub component for Serial Peripheral Interface (SPI).
SpiSubAgent
A model for the sub side of the SPI interface.
SpiSubDriver
A driver for the sub side of the SpiInterface.
SpiTracker
A tracker for SpiInterface.
StatefulArbiter
An Arbiter which holds state in order to arbitrate.
StaticOrRuntimeParameter
A general configuration class for specifying parameters that are for both static or runtime configurations of a component feature.
StopBitsSignExtension
A StopBits Sign Extension.
StringConfigKnob
A knob for holding a String.
SubNormalAsZeroSelecKnob
Set of knobs for subnormal treatment.
Sum
Computes a sum of any number of sources with optional configuration for widths and saturation behavior.
SumConfigurator
A configurator for Sum.
SumInterface
A PairInterface representing an amount and behavior for inclusion in a sum or count.
SumInterfaceKnob
A knob for a single sum interface.
SummationConfigurator
A configurator for a module like SummationBase.
TextConfigKnob<T>
A configuration knob for use in Configurators which can be configured by text.
ToggleConfigKnob
A knob for holding a bool.
ToggleGate
A gate for signals to avoid toggling when not needed.
TreeOneHotToBinary
Module for binary-tree recursion for decoding one-hot.
TrivialCompoundAdder
A trivial compound adder.

Enums

ApbDirection
A grouping of signals on the ApbInterface interface based on direction.
Axi4BurstField
Helper to enumerate the encodings of the xBURST signal.
Axi4CacheField
Helper to enumerate the one hot encodings of the AxCACHE signal.
Axi4Direction
A grouping of signals on the Axi4ReadInterface and Axi4WriteInterface interfaces based on direction.
Axi4ProtField
Helper to enumerate the one hot encodings of the AxPROT signal.
Axi4RespField
Helper to enumerate the encodings of the xRESP signal.
Axi4SizeField
Helper to enumerate the encodings of the xSIZE signal.
CompressTermType
Compress terms
CsrAccess
Definitions for various register access patterns.
CsrBackdoorPortGroup
A grouping for interface signals of CsrBackdoorInterfaces.
CsrFieldAccess
Definitions for various register field access patterns.
DataPortGroup
A grouping for interface signals of DataPortInterfaces.
FloatingPointConstants
Critical threshold constants
FloatingPointRoundingMode
Floating Point Rounding Modes
HammingType
Type of Hamming code, with different characteristics for error correction, error detection, and number of check bits required.
RotateDirection
A direction for something to rotate.
SignExtension
Methods for sign extending the PartialProductGeneratorBase
SpiDirection
Direction of the packet.

Mixins

ResettableEntries
Provides functionality for structures with many entries to have various reset capabilities.

Extensions

LogicList on List<Logic>
Helper evaluation methods for printing aligned arithmetic bitvectors.
LogicValueBitString on LogicValue
This extension will eventually move to ROHD once it is proven useful.
LogicValueMajority on LogicValue
This extension will eventually move to ROHD once it is proven useful.
RotateLogic on Logic
Adds rotation functions to Logic.
RotateLogicValue on LogicValue
Adds rotation functions to LogicValue.
SignedBigInt on BigInt
This extension will provide conversion to Signed or Unsigned BigInt

Functions

condFlop(Logic? clk, Logic d, {Logic? en, Logic? reset, dynamic resetValue, bool asyncReset = false}) Logic
Conditionally constructs a positive edge triggered flip condFlop on clk.
currySignExtensionFunction(SignExtension signExtension) SignExtensionFunction
Used to test different sign extension methods
isPowerOfTwo(int n) bool
Returns whether n is a power of two.
largestPow2LessThan(int x) int
This computes the power of 2 less than x
log2Ceil(int w) int
Computes the bit width needed to store w addresses.
swap<LogicType extends Logic>(Logic doSwap, (LogicType, LogicType) toSwap) → (LogicType, LogicType)
Swap two Logic structures based on a conditional doSwap.

Typedefs

ColumnQueue = PriorityQueue<CompressTerm>
A column of partial product terms
PPGFunction = PartialProductGeneratorBase Function(Logic a, Logic b, RadixEncoder radixEncoder, {Logic? selectSignedMultiplicand, Logic? selectSignedMultiplier, bool signedMultiplicand, bool signedMultiplier})
Used to test different sign extension methods.
SignExtensionFunction = PartialProductSignExtension Function(PartialProductGeneratorBase ppg, {String name})
Used to test different sign extension methods

Exceptions / Errors

CsrValidationException
Targeted Exception type for control status register validation.
InfinityNotSupportedException
An exception thrown when a FloatingPointValue does not support infinity values.
RohdHclException
An Exception for the ROHD Hardware Component Library.