Professional Documents
Culture Documents
2|Page
Table of contents
Page no.
introduction.......................4
1.Basic Definitions................7
2.Compilation procedure...........15
3.Flow of RTL compiler............20
4.RC of a 128 Counter.............34
5.List of VLSI tools..............41
3|Page
1.1 Introduction
The basic aim of an Encounter
design from the netlist given
physical design is acquired on
INTERFACE (GUI) . as the name
between the user and the graphic
4|Page
5|Page
Fig I.3 Moore's law's Plot of CPU transistor counts against dates of introduction.
6|Page
Chapter 1
BASIC
DEFINITIONS
7|Page
1.NETLIST :-
structural code
10.
non linear delay model (NLDM) :- standard delaymodelling format.
11.
clock gating :- this occurs when data signal is
used to control the data . Output of a FF is
dependent on input data.
12.
Library :- A library is a collection of control
attributes, environment description , standard cell
description , delay calculations and delay models.
13.
LEF :- Library Exchange Format :- contains
specifications on layer, design rules, via
definitions, metal capacitance ,cell descriptions,
cell dimensions, layout of pins and blockages,
capacitances in ASCII format.
9|Page
14.
synthesis :- refers to Logic synthesis, the
process of converting a higher-level form of a design
into a lower-level implementation
15.
DEF :-Design Exchange Format is an open
specification for representing physical layout of an
integrated circuit in an ASCII format. It represents
the net list and circuit layout. DEF is used in
conjunction with Library Exchange Format (LEF) to
represent complete physical layout of an integrated
circuit while it is being designed.
16.
latch :- Latches are designed to
be transparent. That is, input signal changes cause
immediate changes in output; when
several transparent latches follow each other, using
the same clock signal, signals can propagate through
all of them at once.
In electronics, a flip-flop or latch is
a circuit that has two stable states and can be used
to store state information. A flip-flop is a bistable
multivibrator. The circuit can be made to change
state by signals applied to one or more control
inputs and will have one or two outputs. It is the
basic storage element in sequential logic. Flip-flops
and latches are a fundamental building block
of digital electronics systems used in computers,
communications, and many other types of systems
SCAN D FLIPFLOP
A special type of D flip flop where it is functioned
only when the test pattern is loaded . The idea is to
drive the DFF 's D unit with an alternate source of
data during device testing. After one or more clock
ticks, the flipflops are put back into test mode, and
the test results are "scanned out".
10 | P a g e
17.
FPGAs are semi custom devices generally
maintained for multiple times programming a single
circuit, whereas ASICs are fully custom designs the
circuit can no more be programmed when it is working
under ASIC.
there is a weird element called one time programmable
FPGA where you can actually program only for one
purpose it is a SRAM, which has volatile memory.
18.
Mask-Programmable Gate Array (MPGA) was developed
to handle larger logic circuits. MPGAs consist of an
array of pre-fabricated transistors that can be
customized into the user logic circuit by connecting
the transistors with custom wires.
-large setup cost is involved and manufacturing time
is long.
Benefit
Faster time-tomarket
Simpler design
cycle
More predictable
project cycle
Due to elimination of
potential re-spins, wafer
capacities, etc.
Field reprogram
ability
11 | P a g e
ASIC Design
Advantage
Benefit
Full custom
capability
Lower unit
costs
Smaller form
Since device is manufactured to
factor
design specs
FPGAs used for lower speed/complexity/volume designs
in the past, todays FPGAs easily push the 500 MHz
performance barrier. the examples are
embedded processors,DSP blocks, clocking,
high-speed serial at ever lower price point
12 | P a g e
13 | P a g e
22.
Path groups
14 | P a g e
Chapter 2
Compilation
Procedure
15 | P a g e
in
which
3.Specify constraints
for optimising a specific design in the desired
congestion, area , power and timing we use various
constraint files to limit the layout only to specific
conditions.
17 | P a g e
4.synthesize
synthesis technically mean breaking up the things ,
similarly in VLSI world synthesize mean to break the
logic of the program into electronic devices.
5.check results
checking the result such as timing slack, congestion
,power, area after the compilation is to be checked
after every optimisation step is must , that will
decide the endpoint of optimisation. If not met the
optimised point feedback the process, add few more
constraints to it.
1. complexity
2.congestion (cannot be optimised much during RTL
compilation, Soc Encounter is best for checking and
optimising this constraint )
3.timing (slack)
4.power
5.area
19 | P a g e
Chapter 3
Flow of RTL
compiler
20 | P a g e
21 | P a g e
22 | P a g e
-rw-r--r--rw-r--r--rw-r--r--rw-r--r--rw-r--r--rw-r--r--rw-r--r--rw-r--r--rw-r--r--rw-r--r--rwxr-xr-x
-rw-r--r--rw-r--r--rw-r--r--rw-r--r--rw-r--r--rw-r--r--rw-r--r--rw-r--r--rw-r--r--rw-r--r--rw-r--r--rw-r--r--rw-r--r--
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
fast.lib
ff_g_1v32_0c.lib
ff_hvt_1v32_0c.lib
README
slow_0v70_1v08.lib
slow_0v80_0v80.lib
slow_0v80_0v90.lib
slow_0v80_1v08.lib
slow_0v90_1v08.lib
slow_1v08_1v08.lib
slow.lib
ss_g_0v70_125c.lib
ss_g_0v80_125c.lib
ss_g_0v90_125c.lib
ss_g_1v08_125c.lib
ss_hvt_0v70_125c.lib
ss_hvt_0v80_125c.lib
ss_hvt_0v90_125c.lib
ss_hvt_1v08_125c.lib
ss_pg_0v70_1v08.lib
ss_pg_0v70_1v08.lib_org
tt_g_1v20_25c.lib
tt_hvt_1v20_25c.lib
typical.lib
constraints
constraints are the command lines given by the programmer
for optimising the system to meet the desired area, power,
timing issues.
Display failed constraints
echo $::dc ::sdc_failed_commands > failed.sdc
in the terminal
25 | P a g e
path_adjust
pa_i2o
path_adjust
pa_i2c
path_adjust
pa_c2o
path_adjust
pa_c2c
i :- input
o:- output
c :- register
Remove constraints
rm [find /des* -exceptions pa_*]
pa stands for Path Adjust
Optimising total negative slack (TNS)
set_attr tns_opto true /
Sequential optimisation
set_attr hdl_preserve_unused_register true
set_attr delete unloaded_seqs true /
Sequential merging
set_attr optimize_merge_flops true /
set_attr optimize_merge_latches true /
sequential merging combines equivalent sequential
cells, both flops and latches, within same hierarchy.
flops increase the area and instance count.
Mapping to complex cells
set_attr hdl_ff_keep_feedback true [find / -hdl_arch
DFF*]
uses the complex flip flops inside the library and
maps synchronous feedback logic infront of the
sequential elements.
Mixing up the cells into a multibit cell interfacing
set_attr use_multibit_cells true /
it makes the circuit more compact, because the
dispersed cells are combined into a block using this
26 | P a g e
Superthreading
set_attribute super_thread_servers {machine_names} /
for automatic
set_attribute auto_super_thread true /
by this we can enable different threads to start
operating at same time.
set_clock -period 4.75 clock: clock period constraint
set at 4.75 (210 MHz).
set_clock_uncertainty setup 0.475 clock: -ve clock
skew can lead to setup violations. Possible value of
ve skew is provided to DC so that it can model for
that. Generally setup uncertainty is taken as 10%
set_clock_uncertainty hold 0.27 clock: +ve clock
skew can lead to hold violations. Possible value of
+ve skew is provided to DC so that it can model for
that. Generally hold uncertainty is taken as 5%.
set_clock_latency 0.45 clock: this provides possible
network latency constraint to DC.
set_clock_latency source 0.4 clock: source latency
of 0.45 is selected.
set_clock_transition 0.04 clock: clock transition
time of 0.04 is modeled.
set_input_delay 0.40 [all_inputs]: input delay of 0.4
is set to all inputs.
remove_input_delay [get_ports clock]: constraining
clock with input delay leads to wrong timing
analysis. To exclude clock port from the input delay
this command is used.
set_output_delay 0.40 [all_outputs]: output delay of
0.4 is provided. Since all outputs are registered
this delay does not affect the timing analysis.
28 | P a g e
#####################################################
##########################
# External Delay Information
#####################################################
##########################
set_input_delay 0.4 [get_ports {{a_row0[3]}}]
set_input_delay 0.4 [get_ports {{a_row0[2]}}]
set_input_delay 0.4 [get_ports {{a_row0[1]}}]
set_input_delay 0.4 [get_ports {{a_row0[0]}}]
set_input_delay 0.4 [get_ports {{a_row1[3]}}]
29 | P a g e
31 | P a g e
2. source ./<script_file_name>
runs the script inside rc(RTL Compiler) , generally used
for running templates.
3. write_hdl
>
filename.vg
>
/root/rclabs/work/ constraints.sdc
33 | P a g e
Chapter 4
RC OF A 128
BIT
COUNTER
34 | P a g e
######################################################
##### verilog code on 128 bit counter
######################################################
module counter(up,down,clk,reset,count);
input up,down,clk,reset;
output [127:0]count;
reg [127:0]count;
always @(posedge clk or negedge reset)
begin
if(!reset)
count <= 128'b0000;
else if(up==down)
count <= count;
else if(up)
count <= count+1;
else if(down)
count <= count-1;
else
count <= count;
end
endmodule
35 | P a g e
# read HDL
read_hdl -v2001 counter.v
(To read your HDL verilog code)
# elaborate design
elaborate
# constraints
define_clock -period 2000 -name clk [find /des* -port clk]
read_sdc counter.sdc
(GIVE your constraints file)
# synthesize
synthesize -to_mapped -eff low
(SPECIFY your effort level as high or low or medium)
# check results
36 | P a g e
37 | P a g e
###########
38 | P a g e
##########################################################
#### REPORT FILES
##########################################################
Type
CellArea Percentage
------------------------------------39 | P a g e
datapath modules
0.00
0.00
external muxes
0.00
0.00
others
1420.72
100.00
------------------------------------total
1420.72
100.00
==========================================================
==
Generated by:
Encounter(R) RTL Compiler
RC10.1.304 - v10.10-s339_1
Generated on:
Aug 03 2013 02:22:34 pm
Module:
counter
Technology library:
slow 1.5
Operating conditions:
slow (balanced_tree)
Wireload mode:
segmented
Area mode:
timing library
==========================================================
==
Max_transition design rule: no violations.
40 | P a g e
Chapter 5
LIST OF VLSI
TOOLS
41 | P a g e
3
* 3D Design Viewer
A
*
*
*
*
*
*
*
*
*
*
*
*
*
*
C
*
*
*
*
*
*
*
*
*
*
*
*
Suite
*
Cadence
Cadence
Cadence
Cadence
Cadence
Cadence
Cadence
Cadence
Cadence
Cadence
Cadence
Cadence
3D Design Viewer
ActiveParts Portal
AMS Methodology Kit
Chip Optimizer
Chip Planning System
CMP Predictor
Incisive Verification Kit
InCyte Chip Estimator
Litho Electrical Analyzer
Litho Physical Analyzer
Low-Power Methodology Kit
MaskCompose Reticle and Wafer Synthesis
42 | P a g e
D
* Design IP
E
*
*
*
*
*
*
*
Encounter
Encounter
Encounter
Encounter
Encounter
Encounter
Encounter
43 | P a g e
*
*
*
*
*
*
Encounter
Encounter
Encounter
Encounter
Encounter
Encounter
Library Characterizer
Power System
RTL Compiler
RTL Compiler Advanced Physical Option
Timing System
True-Time ATPG
F
* First Encounter Design Exploration and Prototyping
I
*
*
*
*
*
*
*
*
*
*
*
*
*
*
L
* Litho Electrical Analyzer
* Litho Physical Analyzer
* Low-Power Methodology Kit
M
* MaskCompose Reticle and Wafer Synthesis Suite
N
44 | P a g e
* NanoRoute Router
O
*
*
*
*
P
* Physical Verification System
* PSpice A/D and Advanced Analysis
Q
* QRC Extraction
* QuickCycles Service
* QuickView Layout and Manufacturing Data Viewer
R
* Rapid Prototyping Platform
* RF Design Methodology Kit
* RF SiP Methodology Kit
S
*
*
*
*
*
*
*
*
(T2B)
*
Sigrity
Sigrity
Sigrity
Sigrity
Sigrity
Sigrity
Sigrity
Sigrity
BroadBand Spice
OptimizePI
OrbitIO
PowerDC
PowerSI
Speed2000
SystemSI
Transistor-to-behavioral Model Conversion
45 | P a g e
*
*
*
*
*
*
*
*
*
Sigrity XcitePI
Sigrity XtractIM
SiP Digital Architect
SiP Digital Layout
SiP Digital SI
SiP Layout
SoC Encounter RTL-to-GDSII System
Space-Based Router
SpeedBridge Adapters
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
46 | P a g e
48 | P a g e
##########################################################
49 | P a g e