slang::netlist namespace

Classes

struct AnalysisState
class Assignment
class Case
struct CombEdgePredicate
class CombLoops
class Conditional
class Config
A singleton to hold global configuration options.
template<class NodeType, class EdgeType>
struct CycleDetectionVisitor
Visitor class for identifying cycles during Depth-First Search.
template<class NodeType, class EdgeType, class EdgePredicate = select_all>
class CycleDetector
Class for reporting all cycles in a directed graph.
struct DataFlowAnalysis
A data flow analysis used as part of the netlist graph construction.
template<class NodeType, class EdgeType, class Visitor, class EdgePredicate = select_all>
class DepthFirstSearch
template<class NodeType, class EdgeType>
class DirectedEdge
A class to represent a directed edge in a graph.
template<class NodeType, class EdgeType>
class DirectedGraph
struct IntervalMapUtils
Utility class for working with IntervalMaps.
class Merge
struct NetlistDiagnostics
A collection of diagnostics for reporting on the netlist.
struct NetlistDot
A utility class for rendering a netlist graph in DOT format.
class NetlistEdge
A class representing a dependency between two nodes in the netlist.
class NetlistGraph
Represent the netlist connectivity of an elaborated design.
class NetlistNode
class NetlistPath
A class represening a path traversing nodes in the netlist.
struct NetlistVisitor
Visitor for building the netlist graph from the AST.
template<class NodeType, class EdgeType>
class Node
A class to represent a node in a directed graph.
class PathFinder
struct PendingLvalue
struct PendingRvalue
class Port
struct select_all
A predicate for selecting edges in a depth-first search.
class State
class SymbolVisitor
Visitor for printing symbol information in a human-readable format.

Enums

enum class NodeKind { None = 0, Port, Assignment, Conditional, Case, Merge, State }

Typedefs

using SymbolLSPMap = IntervalMap<uint64_t, const ast::Expression*, 8>
using SymbolSlotMap = std::map<const ast::ValueSymbol*, uint32_t>
using SymbolDriverMap = IntervalMap<uint64_t, NetlistNode*, 8>

Functions

auto file_name(const char* file) -> const char*
template<typename... T>
void DebugMessage(const std::source_location& location, fmt::format_string<T...> fmt, T && ... args)
Print a debug message with the current file and line number.
template<typename... T>
void InfoMessage(fmt::format_string<T...> fmt, T && ... args)
Print an informational message.

Enum documentation

enum class slang::netlist::NodeKind

Typedef documentation

using slang::netlist::SymbolLSPMap = IntervalMap<uint64_t, const ast::Expression*, 8>

using slang::netlist::SymbolSlotMap = std::map<const ast::ValueSymbol*, uint32_t>

using slang::netlist::SymbolDriverMap = IntervalMap<uint64_t, NetlistNode*, 8>

Function documentation

const char* slang::netlist::file_name(const char* file)

template<typename... T>
void slang::netlist::DebugMessage(const std::source_location& location, fmt::format_string<T...> fmt, T && ... args)

Print a debug message with the current file and line number.

template<typename... T>
void slang::netlist::InfoMessage(fmt::format_string<T...> fmt, T && ... args)

Print an informational message.