Chapter 14
Chapter 14
Samir Palnitkar
Logic Synthesis
► The process of converting a high-level
description of the design into an optimized
gate-level representation, given a standard
cell library and certain design constraints.
High-level Description
Standard Cell
Optimized Gate-level Library
Netlist
(technology
Dependent)
Meets Constraints
no
yes
Place and Route
Dr. Behnam Arad 3
EEE/CSC-273
Limitations without Logic synthesis
► For large designs, manual conversion was prone to
human errors. A small gate missed somewhere
could mean redesign of entire blocks
► The designer could never be sure that the design
constraints were going to be met until the gate-
level implementation was completed and tested
► If the gate-level design did not meet
requirements, the turnaround time for redesign of
blocks was very high.
► Each designer would implement the blocks
differently. There was little consistancy in design
styles.
Dr. Behnam Arad 4
EEE/CSC-273
Limitations (continue…)
► Timing, area and power dissipation in library
cells are fabrication-technology specific.
Thus if IC fabrication vendor changed after
the gate-level design was complete, this
would mean redesign of entire circuit and a
possible change in design methodology.
► Design reuse was not possible. Designs
were technology specific, hard to port and
very difficult to reuse.
Translation
Unoptimized Intermediate
Representation
Logic Optimization
Library of
available gates
Design Technology Mapping
(technology
Constraints and Optimization
library)
Optimized gate-level
representation
parameters parameter
timing
Dr. Behnam Arad 15
EEE/CSC-273
Optimized gate-level description
► After the technology mapping is complete,
an optimized gate-level netlist described in
terms of target technology components is
produced.
► If this netlist meets the required constraints,
it is handed out for final layout. Otherwise
the designer modifies the RTL or
reconstrains the design to achieve the
desired results.
Dr. Behnam Arad 16
EEE/CSC-273
Modeling tips for logic synthesis
► Use meaningful names for signals and
variables
► Avoid mixing positive and negative edge-
triggered flip-flops
► Use basic building blocks instead of
continuous assign statements
The final structure is not always symmetrical.
Basic building blocks creates symmetric designs.
Dr. Behnam Arad 17
EEE/CSC-273
Modeling tips (Continue..)
► Instantiatemultiplexers instead if-else or
case statements
► Use parentheses to optimize logic structure
Out = a + b + c + d; //3 adders in series
Out = (a + b) + (c + d);
//2 adders in series and one final adder to sum results
► Use arithmetic operators *, /, and %
instead design building blocks
Dr. Behnam Arad 18
EEE/CSC-273
Modeling tips (continue..)
► Be careful with multiple assignments to the same
variable
► Define if-else or case statements explicitly
if(control)
out <= a; //latch is inferred, incomplete specification
if(control)
out <= a;
else
out <= b; //complete specification for all values of control