You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: include/hal_core/netlist/decorators/netlist_traversal_decorator.h
+9-2
Original file line number
Diff line number
Diff line change
@@ -51,42 +51,49 @@ namespace hal
51
51
* Traverse over gates that do not meet the `target_gate_filter` condition.
52
52
* Stop traversal if (1) `continue_on_match` is `false` the `target_gate_filter` evaluates to `true`, (2) the `exit_endpoint_filter` evaluates to `false` on a fan-in/out endpoint (i.e., when exiting the current gate during traversal), or (3) the `entry_endpoint_filter` evaluates to `false` on a successor/predecessor endpoint (i.e., when entering the next gate during traversal).
53
53
* Both the `entry_endpoint_filter` and the `exit_endpoint_filter` may be omitted.
54
+
* Provide a cache to speed up traversal when calling this function multiple times on the same netlist using the same forbidden pins.
55
+
* Do not use a cache if the filter functions operate on the `current_depth`.
54
56
*
55
57
* @param[in] net - Start net.
56
58
* @param[in] successors - Set `true` to get successors, set `false` to get predecessors.
57
59
* @param[in] target_gate_filter - Filter condition that must be met for the target gates.
58
60
* @param[in] continue_on_match - Set `true` to continue even if `target_gate_filter` evaluated to `true`, `false` otherwise. Defaults to `false`.
59
61
* @param[in] exit_endpoint_filter - Filter condition that determines whether to stop traversal on a fan-in/out endpoint.
60
62
* @param[in] entry_endpoint_filter - Filter condition that determines whether to stop traversal on a successor/predecessor endpoint.
63
+
* @param[inout] cache - An optional cache that can be used for better performance on repeated calls. Defaults to a `nullptr`.
61
64
* @returns The next gates fulfilling the target gate filter condition on success, an error otherwise.
* Starting from the given gate, traverse the netlist and return only the successor/predecessor gates for which the `target_gate_filter` evaluates to `true`.
72
76
* Traverse over gates that do not meet the `target_gate_filter` condition.
73
77
* Stop traversal if (1) `continue_on_match` is `false` the `target_gate_filter` evaluates to `true`, (2) the `exit_endpoint_filter` evaluates to `false` on a fan-in/out endpoint (i.e., when exiting the current gate during traversal), or (3) the `entry_endpoint_filter` evaluates to `false` on a successor/predecessor endpoint (i.e., when entering the next gate during traversal).
74
78
* Both the `entry_endpoint_filter` and the `exit_endpoint_filter` may be omitted.
79
+
* Do not use a cache if the filter functions operate on the `current_depth`.
75
80
*
76
81
* @param[in] gate - Start gate.
77
82
* @param[in] successors - Set `true` to get successors, set `false` to get predecessors.
78
83
* @param[in] target_gate_filter - Filter condition that must be met for the target gates.
79
84
* @param[in] continue_on_match - Set `true` to continue even if `target_gate_filter` evaluated to `true`, `false` otherwise. Defaults to `false`.
80
85
* @param[in] exit_endpoint_filter - Filter condition that determines whether to stop traversal on a fan-in/out endpoint.
81
86
* @param[in] entry_endpoint_filter - Filter condition that determines whether to stop traversal on a successor/predecessor endpoint.
87
+
* @param[inout] cache - An optional cache that can be used for better performance on repeated calls. Defaults to a `nullptr`.
82
88
* @returns The next gates fulfilling the target gate filter condition on success, an error otherwise.
* Starting from the given net, traverse the netlist and return only the successor/predecessor gates for which the `target_gate_filter` evaluates to `true`.
0 commit comments