namespace
netlist
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_class CycleDetector
all> - 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_class DepthFirstSearch
all> -
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 DriverInfo
- Information about a driver of a particular range of a symbol.
- struct DriverMap
-
template<typename T>class ExternalManager
- struct IntervalMapUtils
- Utility class for working with IntervalMaps.
- struct LSPUtilities
- 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
- class ReportDrivers
- Visitor for printing symbol information in a human-readable format.
- struct ReportingUtilities
- class ReportVariables
- Visitor for printing symbol information in a human-readable format.
- struct select_all
- A predicate for selecting edges in a depth-first search.
- class State
- class SymbolTracker
Enums
- enum class NodeKind { None = 0, Port, Assignment, Conditional, Case, Merge, State }
Typedefs
-
using DriverList = std::unordered_set<DriverInfo, DriverInfo::
Hash> - A list of AST/netlist drivers for a particular range of a symbol.
- using DriverListHandle = uint32_t
- using DriverBitRange = std::pair<uint32_t, uint32_t>
- A range over which a symbol is driven.
- using SymbolSlotMap = std::map<const ast::Symbol*, uint32_t>
- Map symbols to indexes.
- using SlotSymbolMap = std::vector<const ast::Symbol*>
- Map indexes to symbols.
- using SymbolDrivers = std::vector<DriverMap>
- Per-symbol SymbolDriverMaps.
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
#include <netlist/NetlistNode.hpp>
Typedef documentation
using slang:: netlist:: DriverList = std::unordered_set<DriverInfo, DriverInfo:: Hash>
#include <netlist/DriverMap.hpp>
A list of AST/netlist drivers for a particular range of a symbol.
using slang:: netlist:: DriverListHandle = uint32_t
#include <netlist/DriverMap.hpp>
An identifier held by the interval map corresponding to the separately-allocated driver list.
using slang:: netlist:: DriverBitRange = std::pair<uint32_t, uint32_t>
#include <netlist/DriverMap.hpp>
A range over which a symbol is driven.
using slang:: netlist:: SymbolSlotMap = std::map<const ast::Symbol*, uint32_t>
#include <netlist/SymbolTracker.hpp>
Map symbols to indexes.
using slang:: netlist:: SlotSymbolMap = std::vector<const ast::Symbol*>
#include <netlist/SymbolTracker.hpp>
Map indexes to symbols.
using slang:: netlist:: SymbolDrivers = std::vector<DriverMap>
#include <netlist/SymbolTracker.hpp>
Per-symbol SymbolDriverMaps.
Function documentation
const char* slang:: netlist:: file_name(const char* file)
#include <netlist/Debug.hpp>
#include <netlist/Debug.hpp>
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.
#include <netlist/Debug.hpp>
template<typename... T>
void slang:: netlist:: InfoMessage(fmt::format_string<T...> fmt,
T && ... args)
Print an informational message.