CIRCT 22.0.0git
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | List of all members
circt::moore::PackedType Class Reference

A packed SystemVerilog type. More...

#include <MooreTypes.h>

Inheritance diagram for circt::moore::PackedType:
Inheritance graph
[legend]
Collaboration diagram for circt::moore::PackedType:
Collaboration graph
[legend]

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.
 
- Public Member Functions inherited from circt::moore::UnpackedType
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 Public Member Functions inherited from circt::moore::UnpackedType
static bool classof (Type type)
 
static Type parse (mlir::AsmParser &odsParser)
 

Detailed Description

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:

The packed dimensions can be:

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.

Member Function Documentation

◆ classof()

static bool circt::moore::PackedType::classof ( Type  type)
inlinestatic

Definition at line 143 of file MooreTypes.h.

◆ containsTimeType()

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().

◆ getBitSize()

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().

◆ getDomain()

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().

◆ 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().


The documentation for this class was generated from the following files: