Synthagate is a tool for design of Control and Data Path Intensive Systems with very complex Control Units containing numerous inputs and outputs. Synthagate performs full automatic synthesis of digital systems from behavior specification to description in HDL at a Register Transfer Level (RTL) and allows the user to quickly implement, check and estimate multiple design versions, to find an optimized solution for the design problems, to produce automatically the design documentation and to simplify the digital system verification problems.
The design flow in Synthagate is presented in Fig. 1. The design flow contains two large automatic stages – High Level Synthesis (HLS) and Register Transfer Level (RTL).
Figure1. Design Flow in Synthagate
Algorithmic state machines (ASMs) are used in Synthagate as an input to describe the behavior of digital systems. ASMs can be presented as:
- A graph, drawn with GUI (ASM Creator) – the special Synthagate graphical editor;
- A text in pseudo code of System C or in VHDL.
High Level Synthesis
- ASM transformations. ASM models and their transformations are used in Synthagate at all stages of behavioral (TLM) and structural (RTL) synthesis. Synthagate is the only tool that implements various transformations of initial behaviors:
- ASM minimization. A designer shouldn’t think about minimization of an initial description – Synthagate automatically minimizes the number of vertices in the ASM graph.
- ASM combining. If a digital system behavior is rather complex but contains several modes (instructions), Synthagate will combine them into one ASM with minimization of operator and conditional vertices. There are no constraints on the number of separate ASMs to combine.
- 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 without generalized operators. This ASM presents a whole behavior of the design system. The same steps take place when a designer initially presents ASMs in System C.
- Functional Specifications. To design the behavior description of a digital system the designer should not define each port or signal. The special Synthagate’s program FuncSpecBuilder creates an XML code of the functional specification and the designer should only insert the length of several ports and signals (not all, only a very small part of them) in the dialog mode.
- Behavior description of the design system. With Functional ASM and functional specification as an input, Synthagate automatically constructs the behavior description of the whole design system in VHDL or in System C.
After preparing the test bench at the behavior level the designer can simulate the functional project with any simulation tool. The same test bench can be used later at the last stage of design – after top design at the structural (RTL) level. For simulation at the High Level the designer can use design system in VHDL or in System C.
Register Transfer Level
- Data path design. In Data path design Synthagate uses External Specification in XML constructed automatically.
- Automatic generation of components. Synthagate automatically generates VHDL codes for components of Data Path. If a designer would like to use some predesigned IP cores, he must put their RTL codes in the special folder before the High level design. Later these components will be included in the library of automatically generated units.
- Generation VHDL code for Data Path. At the last step of Data Path design Synthagate automatically instantiates components in the Data Path.
- Control Unit design. Synthagate automatically creates the RTL code of Control unit. Its input signals are feedbacks from the Data path and some input signals of the digital system, its outputs are micro operations implemented in the Data path and some output signals of the digital system.
- Top design. At the last stage, Synthagate creates the code for the top level automatically by instantiating Control Unit and Data Path into the top of the project.