ASM models and their transformations are used in Synthagate at all stages of behavior (TLM) and structural (RTL) synthesis. Synthagate is the only tool that implements various transformations of initial behaviors (ASMs):
- ASM minimization. A designer shouldn’t think about minimization of an initial description – Synthagate automatically minimizes the pseudo code or the number of vertices in the ASM’s graph. Fig. 1 contains non minimized ASM with 42 vertices. Minimized ASM (Fig. 2) has only 30 vertices. As an interesting problem, try to get the second ASM from the first one.
Figure 1. Nonmin Asm – 42 vertices
Figure 2. Min Asm – 30 vertices
- ASM combining. If a digital system behavior is rather complex but contains several modes (instructions), in our example two – Coder and Decoder, a designer can describe these modes separately and Synthagate will combine them into one ASM with minimization of operator and conditional vertices (Fig. 3). There are no constraints on the number of separate ASMs to combine.
Figure 3. Combined ASM Day + Night
- Sub ASM insertion. At the last step of ASM transformations Synthagate inserts all component ASMs (generalized operators in Fig. 4) into combined ASM (Fig. 3) and constructs one combined and minimized Functional ASM without generalized operators (Fig. 5). This ASM presents a whole behavior of the design system and, in our example, contains 36 operator and conditional vertices. We discussed this ASM in section "What is Algorithmic State Machine?".
Figure 4. SubASMs for Traffic Light Controller
Figure 5. Combined and minimized ASM after inserting generalized operators
As you see, designer should draw very small ASMs (average number about 8-10 vertices in initial ASMs), but after combining, minimization and inserting generalized operators, the final functional ASM can contain even several hundred vertices. The same steps take place when a designer initially presents ASMs in System C. There is a possibility to check of ASMs equivalence at any stage of ASMs transformations. Once again, there are no constraints on the number of generalized operators and the number of levels of their insertions.
You can read about ASM transformations in book Samary Baranov " Finite State Machines and Algorithmic State Machines".