CIRCT  20.0.0git
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. More...
 
std::optional< unsigned > getBitSize () const
 Get the size of this type in bits. More...
 
- Public Member Functions inherited from circt::moore::UnpackedType
Domain getDomain () const
 Get the value domain of this type. More...
 
std::optional< unsigned > getBitSize () const
 Get the size of this type in bits. More...
 
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 133 of file MooreTypes.h.

Member Function Documentation

◆ classof()

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

Definition at line 135 of file MooreTypes.h.

◆ 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 114 of file MooreTypes.cpp.

◆ getDomain()

Domain PackedType::getDomain ( ) const

Get the value domain of this type.

Definition at line 100 of file MooreTypes.cpp.

References circt::moore::FourValued, and circt::moore::TwoValued.


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