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: plugins/solve_fsm/include/solve_fsm/plugin_solve_fsm.h
+24-10Lines changed: 24 additions & 10 deletions
Original file line number
Diff line number
Diff line change
@@ -45,16 +45,17 @@ namespace hal
45
45
voidinitialize() override;
46
46
47
47
/**
48
-
* Generates the state graph of a finite state machine and returns a mapping from each state to a vector of all its possible transitions.
49
-
* A transition consits of a successor state and a vector of input mappings that lead to such a transition.
50
-
*
48
+
* Generates the state graph of a finite state machine and returns a mapping from each state to a all its possible transitions.
49
+
* The transitions are another mapping from all the possible successor states to the corresponding condition under which the transition is taken.
50
+
* This function uses an SMT solver to find all possible successors and afterwards computes the necessary conditions.
51
+
*
51
52
* @param[in] nl - Pointer to the netlist.
52
53
* @param[in] state_reg - A vector containing all the gates of the fsm representing the state register.
53
54
* @param[in] transition_logic - A vector containing all the gates of the fsm representing the transition_logic.
54
55
* @param[in] initial_state - A mapping from the state registers to their initial value. If omitted the intial state will be set to 0.
55
56
* @param[in] graph_path - Path where the transition state graph in dot format is saved.
56
57
* @param[in] timeout - Timeout value for the sat solvers. Defaults to 600000 ms.
57
-
* @returns A mapping from each state to all its possible transitions. The transitions are a map from the successor state to all the possible input mappings that lead to it.
58
+
* @returns A mapping from each state to all its possible transitions.
* Generates the state graph of a finite state machine and returns a mapping from each state to a vector of all its possible successor states using a simple brute force approach.
68
-
*
68
+
* Generates the state graph of a finite state machine and returns a mapping from each state to a all its possible transitions.
69
+
* The transitions are another mapping from all the possible successor states to the corresponding condition under which the transition is taken.
70
+
* This function uses a burte force search to find all possible successors and afterwards computes the necessary conditions.
71
+
*
69
72
* @param[in] nl - Pointer to the netlist.
70
73
* @param[in] state_reg - A vector containing all the gates of the fsm representing the state register.
71
74
* @param[in] transition_logic - A vector containing all the gates of the fsm representing the transition_logic.
72
75
* @param[in] graph_path - Path where the transition state graph in dot format is saved.
73
-
* @returns A mapping from each state to all its possible successors states.
76
+
* @returns A mapping from each state to all its possible transitions.
Generates the state graph of a finite state machine and returns a mapping from each state to all its possible successor states using a simple brute force approach.
47
-
48
-
:param halPy.Netlist nl: The netlist.
49
-
:param list[halPy.Gate] state_reg: A list containing all the gates of the fsm representing the state register.
50
-
:param list[halPy.Gate] transition_logic: A list containing all the gates of the fsm representing the transition_logic.
51
-
:param str graph_path: Path to the location where the state graph is saved in dot format.
52
-
:returns: A mapping from each state to all its possible successors states.
0 commit comments