CIRCT 22.0.0git
|
A packed SystemVerilog type. More...
#include <MooreTypes.h>
Public Member Functions | |
Domain | getDomain () const |
Get the value domain of this type. | |
std::optional< unsigned > | getBitSize () const |
Get the size of this type in bits. | |
IntType | getSimpleBitVector () const |
Get the simple bit vector type equivalent to this packed type. | |
bool | containsTimeType () const |
Check if this is a TimeType , or an aggregate that contains a nested TimeType . | |
![]() | |
Domain | getDomain () const |
Get the value domain of this type. | |
std::optional< unsigned > | getBitSize () const |
Get the size of this type in bits. | |
void | print (mlir::AsmPrinter &odsPrinter) const |
Static Public Member Functions | |
static bool | classof (Type type) |
![]() | |
static bool | classof (Type type) |
static Type | parse (mlir::AsmParser &odsParser) |
A packed SystemVerilog type.
Packed types are the core types of SystemVerilog. They combine a core packed type with an optional sign and zero or more packed dimensions. The core packed types are:
bit
, logic
, reg
byte
, shortint
, int
, longint
, integer
, time
The packed dimensions can be:
[]
)[x:y]
)Note that every packed type is also a valid unpacked type. But unpacked types are not valid packed types.
Definition at line 141 of file MooreTypes.h.
|
inlinestatic |
Definition at line 143 of file MooreTypes.h.
bool PackedType::containsTimeType | ( | ) | const |
Check if this is a TimeType
, or an aggregate that contains a nested TimeType
.
Definition at line 177 of file MooreTypes.cpp.
Referenced by materializeSBVToPackedConversion().
std::optional< unsigned > PackedType::getBitSize | ( | ) | const |
Get the size of this type in bits.
Returns None
if any of the type's dimensions is unsized.
Definition at line 133 of file MooreTypes.cpp.
Referenced by getSimpleBitVector().
Domain PackedType::getDomain | ( | ) | const |
Get the value domain of this type.
Definition at line 118 of file MooreTypes.cpp.
References circt::moore::FourValued, and circt::moore::TwoValued.
Referenced by getSimpleBitVector().
IntType PackedType::getSimpleBitVector | ( | ) | const |
Get the simple bit vector type equivalent to this packed type.
Returns null if the type does not have a known bit size.
Definition at line 169 of file MooreTypes.cpp.
References getBitSize(), and getDomain().
Referenced by materializeSBVToPackedConversion().