namespace
analysisPost-elaboration analysis framework.
Classes
-
template<typename TDerived, typename TState>class AbstractFlowAnalysis
- An abstract class for flow analysis passes over SystemVerilog code.
- class AnalysisContext
- Holds various bits of state needed to perform analysis.
- class AnalysisManager
- The analysis manager coordinates running various analyses on AST symbols.
- struct AnalysisOptions
- Contains various options that can control analysis behavior.
- class AnalyzedAssertion
- Represents an analyzed assertion (or procedural checker).
- class AnalyzedDesign
- Represents the result of analyzing a full design.
- class AnalyzedProcedure
- Represents an analyzed procedure.
- class AnalyzedScope
- Represents an analyzed AST scope.
- class CaseDecisionDag
- A helper class for building a decision DAG (directed acyclic graph) for case statement exhaustiveness analysis.
- class ClockInference
- Various helper methods for inferring clocks in assertions and checkers.
- class DataFlowAnalysis
- Performs data flow analysis on a single procedure, tracking the assigned ranges of nets and variables at each point in the procedure.
- struct DataFlowState
- Represents the state of a data flow analysis at a single point in a procedure.
- class DriverTracker
- A helper class that tracks drivers for all symbols in a thread-safe manner.
- class FlowAnalysisBase
- A base class for flow analysis passes that contains non-specialized helper functions.
- class PendingAnalysis
- Represents a pending analysis for a particular AST symbol, such as a module or interface instance, a class type, etc.
- class ValueDriver
- Represents an expression that drives a value by assigning to some range of its type.
Enums
- enum class AnalysisFlags { None = 0, CheckUnused = 1 << 0, FullCaseUniquePriority = 1 << 1, FullCaseFourState = 1 << 2, AllowMultiDrivenLocals = 1 << 3, AllowDupInitialDrivers = 1 << 4 }
- Defines flags that control analysis behavior.
-
enum class DriverSource: uint8_
t { Initial, Final, Always, AlwaysComb, AlwaysLatch, AlwaysFF, Subroutine, Other } - Specifies possible containing symbol kinds for value drivers.
-
enum class DriverFlags: uint8_
t { None = 0, InputPort = 1 << 1, OutputPort = 1 << 2, ClockVar = 1 << 3, Initializer = 1 << 4 } - A set of flags that control how assignments are checked.
Enum documentation
enum class slang:: analysis:: AnalysisFlags
Defines flags that control analysis behavior.
Enumerators | |
---|---|
None |
No flags specified. |
CheckUnused |
Analysis should check for and report on unused symbols. |
FullCaseUniquePriority |
'unique' and 'priority' keywords are used to assume full case coverage. |
FullCaseFourState |
Require X and Z bits be covered for full case coverage. If not set, only 0 and 1 bits are required. |
AllowMultiDrivenLocals |
Allow multi-driven subroutine local variables. |
AllowDupInitialDrivers |
Signals driven by an always_comb are normally not allowed to be driven by any other process. This flag allows initial blocks to also drive such signals. |
enum class slang:: analysis:: DriverSource: uint8_ t
Specifies possible containing symbol kinds for value drivers.
enum class slang:: analysis:: DriverFlags: uint8_ t
A set of flags that control how assignments are checked.
Enumerators | |
---|---|
None |
No special assignment behavior specified. |
InputPort |
The assignment is for an input port of a module / interface / program (the assignment to the internal symbol from the port itself). |
OutputPort |
The assignment is for an output port of a module / interface / program (the assignment from the port connection). |
ClockVar |
The assignment is from a clocking block signal. |
Initializer |
The driver is for a net or variable initializer. |