|
| Comp-Arch | EDA & Tools| VHDL | Verilog | E-group Extracts | | Asynchronous | Synthesis | |
The Very first question that potentially arises
here is "What is Synthesis
?"
Synthesis is a blanket term which refers to the automatic translation of HDL code into an equivalent netlist of digital cells. Netlist is nothing but the structural logic description equivalent to the HDL input source. The source (HDL code) is the technology independent logic description written by the designer. The netlist contains the technology specific digital cells required for the actual design. There is no standard format for the netlists that logic synthesis produces, but EDIF (Electronic Design Interchange Format) is widely used. Hardware Description Languages (HDLs) allow the specification of designs in a non-structural manner, much like a programming language. HDLs are used to describe logic systems before they are actually implemented so that architectures can be verified before the logic is actually built. With the advent of synthesis tools, these high level logic descriptions can be transformed into technology specific description (netlist) automatically, reducing the design time and increasing flexibility.
|
HDLPlanet (http://hdlplanet.tripod.com)
Synthesis Page
|
The next possible question would be "What
is a Synthesizable Description ?"
Certain constructs in a hardware description language are either ignored or are not supported by synthesis tools. The reason for this is that some constructs have no direct hardware correlation or the hardware intent is extremely abstract. For example timing related constructs are ignored as the timing should come from the cells of the technology specific library. Constructs that are typically not supported include floating-point arithmetic operators, loop statements without a globally static range, timing related and file manipulation related constructs. In September 1999 a standard syntax and semantics for VHDL register transfer level (RTL) synthesis was defined. The subset of IEEE 1076 (VHDL) that is suitable for RTL synthesis along with the semantics of that subset for the synthesis domain. This standard defines a means of writing VHDL that guarantees the interoperability of VHDL descriptions among any other RTL synthesis tools that comply with this standard. Compliant synthesis tools may have any features above those required by this standard. This standard also minimizes the potential for functional simulation mismatches between models both before and after they are synthesized. In April 1999, a draft for a standard for Verilog register transfer level synthesis was proposed by the IEEE committee. This standard defines a subset of IEEE 1364-1995 (Verilog HDL) that is suitable for RTL synthesis and defines the semantics of that subset for the synthesis domain.
|
HDLPlanet (http://hdlplanet.tripod.com)
Synthesis Page
|
Taxonomy of
Synthesis Tasks
In layman's terms, synthesis is a process which translates a description of the function a module should perform (the behavior) into a composition, that is, an interconnection of elements (the structure). Synthesis approaches can be defined at each level of abstraction: circuit, logic and architecture. The task of circuit synthesis is to translate a logic description of a circuit into a network of transistors that meets a set of timing constraints. this process can be divided into two stages.
Logic synthesis is the task of generating a structural view of a logic-level model. This model can be specified in many different ways, such as state diagrams, finite state machines (FSMs), schematic diagrams, boolean equations, truth tables, or HDL descriptions. This data structure is converted into a network of generic logic cells. this n The synthesis techniques differ according to the nature of the circuit (combinational or sequential) or the intended implementation architecture (multilevel logic, PLA, or FPGA). The synthesis process consists of a sequence of optimization steps, the order and nature of which depend on the chosen cost function- area, speed, power or a combination of the three. Typically, logic optimization systems divide the task into following steps:
The two-level minimization tools were the first logic-synthesis techniques to become widely available. The Espresso program developed at the university of California at Berkeley is an example of a popular two-level minimization program. Wide availability of such tools made regular array-based architectures such as PLAs the prime choice for the implementation of random logic functions. Later state-machine synthesis came into picture. tasks involved include state minimization that aims at reducing the number of machine states, and the state encoding that assigns a binary encoding to the states of a finite state machine. The emergence of multilevel logic synthesis environments such as the Berkeley MIS tool swung the trend towards the standard cell and FPGA implementations that offer higher performance or integration density for a majority of random-logic functions. The combination of these techniques with sequential synthesis has made the RTL synthesis environments complete. The Synopsys Design Compiler is one of the leaders in the domain and spurred a dramatic change in the way digital circuit design is performed.
|
HDLPlanet (http://hdlplanet.tripod.com)
Synthesis Page
|
Architecture synthesis is the latest development in the synthesis area. It is also referred to as behavioral or high-level synthesis. Its task is to generate a structural view of the architecture/circuit in particular of its data-path, and a logic-level specification of its control unit, given a behavioral description of the task to be executed, and a set of performance, area and/or power constraints. The data-path is an interconnection of resources (implementing arithmetic or logic functions), steering logic circuits (like multiplexers and busses), that send data to the appropriate destination at the appropriate time and registers or memory arrays to store data.
While these operations represent the core of architecture synthesis, other steps can have a dramatic impact on the quality of the solution. An example of this are optimizing transformations that manipulate the initial behavioral description so that a superior solution can be obtained in terms of area or performance. Pipelining is a typical example of such transformation. Circuit implementations are evaluated on the basis of the following objectives: area, cycle-time (clock-period) and latency (number of cycles for performing all operations as well as throughput (rate of computation) in the case of pipelined circuits. In general, area and performance depend on the resources as well as on the steering logic, storage, wiring and control. A common simplification is to consider area and performance as depending only on resources. Circuits for which this assumption holds are called resource dominated circuits and are typical of some application fields such as digital signal processing (DSP). Architectural exploration consists of traversing the design space and providing a spectrum of feasible non-inferior solutions among which the designer can pick the desired implementation. Architectural synthesis tools can select an appropriate design point, according to some user specified constraints, and construct the corresponding data path and control unit.
|
HDLPlanet (http://hdlplanet.tripod.com)
Synthesis Page
|
|
|
|
Usenet Groups
|
|
FastCounter by bCentral |
Last Updated on 27th Jan 2002 |
Feedback/Suggestions accepted at vlsi_hdlplanet@yahoo.com