Bool Attributes - The HAC Language
Description: The HAC Language

Next: Channel Attributes, Up: Attributes

### 11.1 Bool Attributes

Thus far all attributes on bools (nodes) are boolean valued. The default un-attributed node assumes default values for all known attributes. Boolean attributes are contagious in that once they are set to non-default values, they cannot be unset. Non-default values also propagate bottom-up through ports in the instance hierarchy. (They cannot propagate top-down, for that would violate modularity.) Furthermore, when connecting nodes, the non-default value always dominates (spreads contagiously). Keep this in mind when deciding at which level of hierarchy to attach attributes.

— Macro: iscomb b

> Nodes are initially `iscomb=false`. If b is true, node is marked as being driven combinationally, regardless of the actual fanin rule of the node. This can be used to tell other tools to not expect a staticizer on this node. If attribute value is unspecified, default value is true.

— Macro: autokeeper b

> Nodes are initially `iscomb=true`. If b is false, direct other back-end tools to not automatically staticize this node for simulation or netlist generation purposes. If unspecified, default value is true.

— Macro: isrvc1 b
— Macro: isrvc2 b
— Macro: isrvc3 b

> Nodes are initially `isrvc1=false`, `isrvc2=false`, `isrvc3=false`. If b is true, label this node in a way meaningful for redundant keeper circuits. If unspecified, argument is implicitly true.

Diagnostic attributes.

— Macro: ignore_interfere b

> Diagnostic attribute. If b is true, then suppress diagnostics about interference (opposing on-pulls) on this node. In simulation, the behavior should remain, just silence warnings. When b is omitted, it is assumed to be true.

— Macro: ignore_weak_interfere b

> Diagnostic attribute. If b is true, then suppress diagnostics about weak-interference (on-pull vs. X-pull or X-pull vs. X-pull) on this node. In simulation, the behavior should remain, just silence warnings. When b is omitted, it is assumed to be true.