Professional Documents
Culture Documents
03 Synthesis
03 Synthesis
Automated software tools can optimize logic quickly and without error
Verilog
Introduction to synthesis
1. Architectural
2. Logical
3. Physical
Verilog
Architectural Level
Logic Level
Physical Level
Y-Chart
Synthesis creates a sequence of transformations between view of
a circuit, from a higher level of abstraction to a lower one.
Verilog
1. Behavioral synthesis transforms an algorithm to an architecture of a register and a schedule of operations that occurs in specified
clock cycles.
3. Logic synthesis translates RTL description in to a Booleans representation and synthesize in to a netlist.
Verilog
LOGIC SYNTHESIS
Logic Synthesis generates a structural view (netlist) form a logic level view (RTL).
Logic level view is a set of Boolean equations described by a set of continuous
assignment statement in verilog.
Verilog
Outputs:
Espresso Minimizer
misII Minimizer
1) Decomposition
2) Extraction
3) Factoring
4) Substitution
5) Elimination
Verilog
misII Minimizer
1) Decomposition
2) Extraction
3) Factoring
4) Substitution
5) Elimination
Verilog
Example 1 (decomposition)
Figure shows the schematic of function F, that is to be
decomposed interms of new nodes X and Y. The original forms
of F is described as F = abc + abd + a’c’d’ + b’c’d’
F = XY + X’Y’
X= ab
Y= c+d
Verilog
Example 2 (Extraction)
Figure shows the Direct acyclic graph representing a function F,
G and H is to be decomposed in terms of node X and Y
F = (a+b)cd +e G=(a+b)e’ H=cde and X= (a+b) Y=cd
Example 3 (Factoring)
Figure shows the Direct acyclic graph representing a function F,
factored to identify Boolean factor in POS form.
F = ac+ad+bc+bd+e F =(a+b)(c+d)+e
Example 4 (Substitution)
Figure shows the Direct acyclic graph F before the function G is
substituted in F
G =(a+b) F=a+b+c
Example 5 (Elimination)
The DAG in Figure represents the function F before the function
G is eliminated from it, where before elimination
F=Ga +G’b G=c+d and after elimination F=ac+ad+bc’d’
Decomposition
Verilog
Extraction
Verilog
Substitution
Verilog
Elimination
Verilog
Final
Before
transfor
mation
After
transfor
mation
Verilog
RTL Synthesis
RTL Synthesis begins with an architecture and converts a RTL
Code into a set of Boolean equation that can be optimized by
synthesis tool
RTL Synthesis begins with an assumption that already set of
hardware recourses are available.
Scheduling and allocation of resource have been determined
subject to constraint imposed by the resource of architecture
Verilog
Comparator Synthesis
module comparator #(parameter size = 2)
(output reg agtb, altb, aeqb, input[size-1:0] a,b); Algorithm:
integer k; Check for each bit of two
always @(a,b) begin; compare loop word for equality.
for (k=size; k>0; k=k-1) If not equal compare MSB
Comparator Synthesis
Verilog
Priority Structure
A case statement implicitly attaches higher priority to the first
statement than to the last statement.
always @(*)
if (sel_a==1) y=a;
else if (sel_b==0) y=b;
else if (sel_c==1) y=c;
else y=d;
endmodule
Verilog
ALU
module alu_z1(output aluo, input[3:0] a,b,
input[2:0]op, input e);
reg [3:0] alur;
assign aluo=(e==1)?alur:4b’z;
always@(op,a,b)
case(op)
3’b001:alur=a|b;
3’b010:alur=a^b;
3’b110:~b;
default:alur=4b’0;
endcase
endmodule
Verilog
THANK YOU