Introduction To Synthesis
Introduction To Synthesis
HDL Source
Generic Boolean
(GTECH) Target Technology
Logic Synthesis Flow
RTL Description
Translation
Unoptimized Intermediate
Representation
Logic Optimization
b
always @ (a or b)
if (a == 1 and b == 1)
z <= 1;
else
z <= 0;
endmodule
OR GATE
TRANSILATION
module or2 (z, a, b); a
z
output z;
input a, b; b
always @ (a or b)
if (a == 0 and b == 0)
OPTIMIZATION
z <= 0; a
else
z <= 1; z
b
endmodule
D-FLIP FLOP
module cnt (q, d, clk, rst); module cnt (q, d, clk, rst);
output q; output q;
input d, clk, rst; input d, clk, rst;
reg q; reg q;
endmodule endmodule
COUNTER
endmodule
Code for Synthesis
Try to understand the hardware you are describing, to give tool the
best possible starting point.
Optimization
Optimized Netlist
Order and Group Arithmetic Functions
A2 +
A3 +
A4
+ ADD
+ ADD
A3
A4
+
Mapping
Inputs :
• RTL : Verilog ,VHDL
• Constraints : .SDC or .g
• Library : .lib
Outputs:
• Optimized netlist
• Constraints : .SDC or .g
Thank You
Resource Sharing
A1
B1
+ 1
Z1
0
C1
+
D1
Resource Sharing
endmodule
Order and Group Arithmetic Functions
A1
A2 +
A3 +
A4
+ ADD
Statement1
A1
A2
+
+ ADD
A3
A4
+ Statement2
Order and Group Arithmetic Functions
Ripple Carry
Ripple Carry-Select
+
Carry Look Ahead
Carry Save
Logic Synthesis
using
RTL Compiler
By Mr. Lingaiah
RTL Compiler Synthesis Flow
Setup Environment, Read Design & Elaborate
Setup Technology Environment
This library attribute specifies the target technology for synthesis .
To load the library ,enter
set_attr library slow.lib
Defining a clock :
The following SDC commands constrain the input and output ports
set_input_delay –clock clk1 0.2 [all_inputs]
set_output_delay –clock clk2 0.4 [all_outputs]
Checking for Missing Constraints
• -incremental: to achieve the timing goals of the design. To correct any timing
problems(critical region resynthesis for timing )and to correct DRC iteratively
Generic Synthesis Timing Reports (Report
timing)
Mapped Synthesis Timing Reports (Report
timing)
Ungrouping Objects
• The last step in the flow involves writing out the gate-level
net list, SDC, for processing in your place and route tool.