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):

. 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.*ASM minimization*

**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. ASMs Coder and Decoder and combined ASM Coder + Decoder**

At the last step of ASM transformations Synthagate inserts all component ASMs (generalized operators) and constructs one combined and minimized Functional ASM*Sub ASM insertion.**Funcmi*without generalized operators. This ASM presents a whole behavior of the design system and, in our example, contains 129 operator and conditional 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 such descriptions.