UNIT4 - Introduction To Synthesis
UNIT4 - Introduction To Synthesis
Synthesis of Combinational
& Sequential Logic
Contents
• Introduction to synthesis
• Synthesis of combinational logic
• Synthesis of sequential logic with latches
• Synthesis of three state devices and bus interfaces
• Synthesis of sequential logic with flip flops
• Synthesis of explicit machines
• Registered logic
Introduction to Synthesis
• Synthesis: A gate level realization of the described functionality
• The critical steps of Synthesis tool include
- Detect and eliminate redundant logic
- Detect combinational feedback loops
- Exploit don’t-care conditions
- Detect unused states
- Detect and collapse equivalent states
- Make state assignments and
- Synthesize optimal, multilevel realizations of logic subject to constraints on
area and/or speed in a physical technology
Introduction to Synthesis
• Models of circuit can be classified according to three levels of
abstraction
- Architectural: operations that must be executed by circuit to
transform a sequence of inputs into a specified sequence of
outputs, but doesn’t associate the operations with specific clock
cycles.
• After substitution,
F has the form:
F=G+c
Eg: DAG of a function before (a) and after (b)
elimination of an internal node
• A DAG representing the function
F before and function G is
eliminated from it, where before
elimination
F = Ga + G’b
G=c+d
And after elimination:
F = ac + ad + bc’d’
RTL Synthesis
• It begins with an architecture and converts language-based RTL
statements into a set of Boolean equations that can be optimized by a
logic synthesis tool.
• Representation of a
behavioral model to
implement 3 procedural
assignments :
A = B+C
D = A *E
M= D - A
a) parse trees, and
b) data flow graph
Synthesis of Combinational Logic
•Synthesizable combinational logic can be described by
-A net list of structural primitives
-A set of continuous assignment statements
-A level sensitive cyclic behavior
•Verilog code
Eg: Logic synthesis:
A net list of structural primitives
• Schematic for a netlist of
primitives
y_out1 = ac+ad+ae
y_out2 = bc+bd+be
• The circuit synthesized from the
netlist
(after removing redundant
logic)
Eg: Logic synthesis:
Continuous assignment statements
• Circuit synthesized from a
continuous assignment
Eg: Logic synthesis:
Level sensitive cyclic behavior statements
• 2-bit Comparator
• 2-bit Comparator circuit
synthesized from a level
sensitive cyclic behavior
with a for loop
Eg: Synthesized model for MUX
•A
Simulation results
Eg: A Level sensitive Cyclic behavior in ALU
• Circuits synthesized from
ALU with z1 &
ALU with z2
Verilog code
ASIC Cells and resource sharing
•ASIC cell library usually contains cells that are more complex
than combinational primitive gates.
- Eg: most libraries will contain a model for a full-adder cell
- All of these situations imply the need for memory, which in edge sensitive
behavior dictates as a flip-flop, rather than a latch.
- Incomplete conditional statements will be synthesized using “clock enable”
Synthesis of Sequential logic with Flip-Flops :
Eg: Synchronous data swapping mechanism
• Synthesized circuit for
swap_synch with variables
referenced before being
assigned value
Eg: 4-bit Parallel load data register
• Verilog code:
• Enables the synthesis
tool to correctly infer
the need for a resettable
flip-flop, active on the
positive edge of the clock, so
that it creates the 4-bit array
of flip-flops
• Synthesis circuit for a 4-bit parallel load data register
Eg: Empty circuit
• assigns value to the register variable D_out, but it is not referenced
outside the scope of the behavior.
• Consequently, synthesis tool will eliminate D_out
• If D_out is declared as output port, then it will be synthesized as
output of flip-flop.
• Verilog code:
Synthesis of Explicit State Machines
• Melay and Moore machines are types of Finite State Machines (FSMs)
used in
- digital logic design,
- control systems, and
- computer science for modeling and designing sequential logic circuits.
Mealy Machines
• Definition:
A Mealy machine is a finite state machine where the output is determined by both the
current state and the current input.
• Characteristics:
• The output can change in the middle of a state transition.
• Typically requires fewer states compared to a Moore machine for the same problem, as outputs
can change with inputs immediately.
• More responsive to input changes because the output can change without waiting for a state
transition.
• Structure:
• Consists of a set of states, a start state, an input alphabet, an output alphabet, a transition
function (that takes a state and an input symbol and returns the next state), and an output
function (that takes a state and an input symbol and returns an output symbol).
• Applications:
• Used where the output needs to react quickly to changes in input.
• Common in scenarios like real-time systems, control systems, and communication protocols.
Moore machines:
• Definition:
A Moore machine is a finite state machine where the output is determined solely by the current
state, not the input.
• Characteristics:
• The output changes only on state transitions.
• Typically requires more states compared to a Mealy machine for the same problem, as outputs
are associated with states.
• More stable outputs as they do not change with input unless a state transition occurs.
• Structure:
• Consists of a set of states, a start state, an input alphabet, an output alphabet, a transition
function (that takes a state and an input symbol and returns the next state), and an output
function (that takes a state and returns an output symbol).
• Applications:
• Used where a more stable and predictable output is required.
• Common in scenarios where outputs need to be steady over periods, such as in digital clocks,
counters, and other timing-based systems.
b) Synthesis of Melay-type
NRZ to Manchester line code converter
• Verilog code:
• Simulation results:
Net list & Schematic diagram
NRZ Signals:
•Bipolar non-return-to-zero level:
- In clock language, in bipolar
NRZ-level the voltage "swings" from
positive to negative on the trailing
edge of the previous bit clock cycle.
- An example of this is RS-232, where
"one" is −12 V to −5 V and "zero" is +5
V to +12 V.
Manchester line code
• Manchester line code, also known as Manchester encoding, is a
method of encoding binary data used in digital communication
systems.
• It combines data and clock signals into a single self-synchronizing data
stream, ensuring that the transmitted signal contains no direct
current (DC) component and has good synchronization properties.
Example:
To illustrate Manchester encoding of IEEE standard,
consider the binary sequence 10101101: