slang::ast::HierarchyOverrideNode struct

A node in a tree representing an instance in the design hierarchy where parameters should be overriden and/or bind directives should be applied.

These are assembled from defparam values, bind directives, and command-line specified overrides.

Public variables

flat_hash_map<const syntax::SyntaxNode*, std::pair<ConstantValue, const syntax::SyntaxNode*>> paramOverrides
A map of parameters in the current scope to override.
flat_hash_map<OpaqueInstancePath::Entry, HierarchyOverrideNode> childNodes
A map of child scopes that also contain overrides.
std::vector<std::pair<BindDirectiveInfo, const syntax::SyntaxNode*>> binds
A list of bind directives to apply in this scope.

Variable documentation

flat_hash_map<const syntax::SyntaxNode*, std::pair<ConstantValue, const syntax::SyntaxNode*>> slang::ast::HierarchyOverrideNode::paramOverrides

A map of parameters in the current scope to override.

The key is the syntax node representing the parameter and the value is a pair, the first element of which is the value to set the parameter to and the second is the source defparam doing the overriding, if any (can be null).

std::vector<std::pair<BindDirectiveInfo, const syntax::SyntaxNode*>> slang::ast::HierarchyOverrideNode::binds

A list of bind directives to apply in this scope.

The first entry is info about the bind instantiation, and the second is an optional pointer to the definition it targets. If the target is null, then the bind is actually targeting the scope represented by this override node.