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. ASMs Coder and Decoder and combined ASM Coder + Decoder
- Sub ASM insertion. At the last step of ASM transformations Synthagate inserts all component ASMs (generalized operators) and constructs one combined and minimized Functional ASM 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.