ASM Creator Manual ASM Creator is part of the EDA tool for logic and system design of very complicated digital circuits named Abelite. With ASM Creator it is possible draw the Algorithmic State Machine (ASM) flowchart and build it to connectivity list. An example flowchart of the Euclidean algorithm for finding greatest common divisor (GCD) is presented on Figure 1. Figure 1: Flowchart of the Euclidean GCD Algorithm The flowchart consists of a number of interconnected vertices. Any algorithm starts with the “Begin” vertex, which is followed by a combination of “Condition” and “Process” vertices, and terminates with an “End” vertex. There are also special “Comment“ vertices, which are not part of the algorithm, but can be added for explanatory purposes. To place a vertex, select it from the pane on the left and drag-and-drop it to the desired location. It will align to the grid automatically. To make a connection, press “Connector” button, left-click any red dot of the source vertex, then left-click any red dot of the target vertex. If connection requires a twisting path, then left-click the turning point and continue in other direction. When successful, the “Connector” button is unselected automatically (right-click for manual deselect), so in order to make a new connection it must be pressed again. Every vertex has a fixed number of available connections. The “Begin” vertex allows only one output connection, while “End” vertex – only one input connection. “Process” vertex takes one input connection and provides one output connection. “Condition” vertex allows one input connection and two output connections. Note, that the first output connection of the “Condition” vertex is automatically considered a “0” path. Double-click the arrow to change the value of the condition for the path. After the vertex has been fully connected, it becomes unavailable, although it may still have free connection points. Both “Condition” and “Process” verteces can accommodate a textural description of the conditional equations and micro instructions respectively. While the exact content is used for illustrative purpose only, in case of “Process” vertices every line of this description is treated as a separate micro operation. Vertices may be resized in order to fit the textural description properly. ASM Creator provides a vast array of possibilities for changing the visual appearance of the flowchart. The formatting can be applied to an individual element by simply selecting it, or to a group of elements. The desired flowchart portion is selected either by drawing a rectangle around it with a mouse, or by clicking individual elements while holding the “Ctrl” key down. Any vertex or connection arrow can have an unique line width, line pattern, line and fill colour. For textural information it is possible to select the font, size, style, alignment and colour as well. Any selected element or a group of elements of the flowchart can be freely moved around. However, in order to maintain connection, arrows, which link the selected part to the rest of the flowchart, should not be selected. To lengthen or shorten an arrow, select it first and then drag by either a starting, ending or turning point, which is marked with a rectangle. Figure 2: Generalized Operator “Remainder_Computation” When ready, the flowchart can be saved as an “ASM_name.asd” file for subsequent viewing, editing or printing with ASM Creator. ASM Creator allows to open multiple “.asd” files at the same time. To switch between the opened files, click the corresponding filename in the pane just above the workspace. In order to close a file, select it and press the button with a white cross in a red rectangle or select “Close” command from the “File” drop-down menu. ASM Creator allows to build a hierarchy of algorithms. Any “Process” vertex can be linked to another “.asd” file, which contains a sub-algorithm. An example flowchart of the remainder computation algorithm is presented on Figure 2. In order to link it to a “Remainder_Computation” vertex of the flowchart from Figure 1, the sub-algorithm should be saved with the exactly same name (“Remainder_Computation.asd”). It does not really matter in which folder this file is situated, as ASM Creator would search the whole computer, if necessary, to find it. To open the flowchart of the linked sub-algorithm, right-click the corresponding “Process” vertex and select “Open” command. If there is none, an empty workspace will be opened. To insert the sub-algorithm into the current flowchart, right-click the corresponding “Process” vertex and select “Expand” command. Pressing “Yes” in the following dialog box uncovers the whole hierarchy for the selected “Process” vertex, expanding every subalgorithms of the linked flowcharts as well. Pressing “No” inserts only the next level of hierarchy, leaving the nested algorithms of the linked flowchart closed. In the same dialog box, it is possible to choose the color of the connection arrows, which are linked to the beginning and the end of sub-algorithm in the current flowchart. The flowchart can be built to connectivity list by pressing the “Build“ button in the toolbar or by selecting the “Build“ command from “Build“ drop-down menu. Each line of the resultant connectivity list (“ASM_name.gsa”) corresponds to a vertice in the flowchart, which is numbered and provided with a list of subsequent vertices. File “ASM_name.mic” provides the list of encoded micro instructions (capital Y-s) together with encoded micro operations (small y-s). File “ASM_name.txt” provides the encoding legend for micro instructions, micro operations and logical conditions.