Professional Documents
Culture Documents
Lynx Jump Start 0.6
Lynx Jump Start 0.6
Lynx 0.6
1
Agenda
Unit
Topic Lab
1 Lynx Introduction
2
Moore’s Law Driving Product Complexity
3 Synopsys Confidential
Challenges @ 65nm & Below
Need Advanced Number of Design Rules By
Process Node
●
● Low Power, SI, DFM, DFY,
Design MM, MC
700
Techniques
600
400
Limited Project ●
● Project progress 300
Visibility ●
● Informed decisions 200
100
Complicated (nm)
●
● Validated foundry data
Library & ●
● Sign-off checks
Foundry Setup
Validated ●
● Implement clean IP
Design Inputs ●
● IP compatibility
4
Introducing Lynx: Delivering Higher
Productivity and Predictability
Production
Production
Runtime
Flow
Runtime
Flow
Manager
Manager
IP-
DFT DFM
Specific
RTL GDSII
Manageme
ntntCockpit
Manageme
Ready System
Cockpit
Ready System
Foundry-
Foundry-
5 Synopsys Confidential
Flo
Produc
Produ
onFlo
Runtim
Runtim
Manag
Manag
on
Building On Proven Success Lynx
Manageme
ntntCockpit
Manageme
Ready System
Cockpit
Ready System
Foundry-
Foundry-
• “Methodologies
7+ years ofassociated
flow deployment
with designing
2009 –
s!
experience
advanced chips that take years to learn
Lynx
t
peou
2006-2008 VP of Engineering
Pilot – Based on tool RM’s
Tundra Semiconductor
1
2002-2006
“TIGER”
6
Silicon-
ProvenFlo
Fl
Silicon-
Runtim
Runtim
Automati
Proven
Automati
Architecture
Manageme
ntntReports
Manageme
Ready System
Reports
Ready System
Foundry-
Foundry-
Global Analysis
PT PT/SI Formality STAR Herc
Tasks
Flow
Steps SYN & DFT DP PNR FINISH
ICC MCMM
DCT ICC
QOR ICC
DCT RM DP RM
RM-Mode
DCT RM DP RM ICC RM
7
Producti
Productio
Flow
Runtim
nnFlow
Runtim
Manag
Manag
Manageme
ntntCockpit
System
Manageme
System
Ready
Cockpit
Ready
Foundry-
Foundry-
Pre- Process
Pre- Validated -specific
Libraries Rep methods
Validated
settings
Tech
Files (OCV…)
Essential
Update
reports
Utilities (PTSI…)
8
Producti
Productio
Flow
Runtim
nnFlow
Runtim
Manag
Manag
Manageme
ntntCockpit
System
Manageme
System
Ready
Cockpit
Ready
Foundry-
Foundry-
9 Synopsys Confidential
Producti
Productio
Flow
Runtim
nnFlow
Runtim
Manag
Manag
Manageme
ntntCockpit
System
Manageme
System
Ready
Cockpit
Ready
Foundry-
Foundry-
10 Synopsys Confidential
Producti
Runtim
Productio
Flow
Runtim
nnFlow
Manag
Manag
Designer Productivity
Manageme
ntntCockpit
Manageme
Ready System
Cockpit
Ready System
Foundry-
Foundry-
Guided
Variable Setup
Block-Level
Execution &
Monitoring
Drag-& Drop
Flow
Configuration
Color –Coded
for Easy Error
Identification
11 Synopsys Confidential
Producti
Productio
Flow
Runtim
nnFlow
Runtim
Manag
Manag
On-Demand Management
Lynx
Reports
Total Area
Manageme
ntntCockpit
Manageme
Cockpit
Ready System
Ready System
Foundry-
Foundry-
12 Synopsys Confidential
Anatomy Of A Complete Solution
What’s In Lynx?
Design Environment
Full-Chip R2G Flow
Tool Methodologies
Automation & Utilities
Automation & Utilities Lynx Design System
•• Individual
Advanced tool
•• Recommended
Technology
deployment (UPF,
technologies
configuration
starting point
(hierarchical, MCMM, etc.)
••Block-Level
Based on proven
Technology Node Optimization • Flow execution,
Hard IP Sub-Flows
validation monitoring
flows
Metrics&reporting
•Technology
Optimized technology
hard & soft core sub-
Node
flows
Full-Chip, Hierarchical R2G Flow •DesignFully integrated
Environment
Optimization
• Full flow analysis for timing,
•• power,
Validated
Tested
Job arealibraries
distribution
ARM iRMs •ARM
•• Validated techMethodologies
Reference
Data management
Updated
files
• Core-specific
Tapeout checklists w/
flows optimized for
Block Level Sub-Flows • power,
File &performance,
tool version control
• foundry-specific
Supported tape-in area
•• Endorsed
Multi-user support
criteria by ARM
DCT RM DP RM ICC RM
13
Lynx Benefits: “EDA In A Box”
Production
Production
Runtime
Flow
Flow
Runtime
Manager
Manager
Manageme
ntntCockpit
Manageme
System
Cockpit
System
Foundry-Ready
Foundry-Ready
1 Lynx Introduction
15
Lynx 0.6 Tools and Utilities for
Flow, Runtime Manager, and FRS
• Running the Lynx R2G Flow involves a wide spectrum of Synopsys tools
• This jumpstart guide assumes the required Synopsys tools and unix
utilities listed below have already been installed
• Synopsys 2008.09 tools require QSCB compliance
– http://www.synopsys.com/Support/Licensing/SupportPlatform/ReleaseSupport/Pages/default.
aspxfor Lynx Flow
• Tools
• Leda 2008.06
• MV Tools 2008.12 • Unix Utilities for Lynx Flow
• DC 2008.09-SP2
• Activetcl 8.4.13
• PT 2008.12
• Formality 2008.09-SP2 • Gmake 3.80
• Tetramax 2008.09-SP2
• ICC 2008.09-SP2
• Tools & Utilities for Lynx FRS
• Milkyway 2008.09 –SP2 • Activetcl 8.4.13
• StarRCXT 2008.12 • Gtar 1.14
• Gmake 3.80
• Hercules 2008.09-1
• Perl 5.8.5
• PrimeRail 2008.12 • Patch 2.5.4
• Hspice 2008.09-SP1 • DC 2007.12
• Milkyway 2008.09
• VCS MX 2008.12 • StarRCXT 2008.06-SP2
• ICWB 2008.12
16
Management Cockpit Unix Utilities
• Synopsys QSC A/B/C
• Java Runtime Environment - Sun Java 2
Standard Edition 6.0 Update 7 or higher
– available on micro, can be loaded by module
load
– Installing Java Runtime Environment
• Go to
– http://java.sun.com/javase/downloads/index.jsp
• Select latest version
– Java SE Runtime Environment (JRE) 6 Update 10
• Click “Download”
• Select your platform and follow the installation
instructions on the download page
17
Management Cockpit 3rd-party Libraries
Name Version License Link Download
ZK 3.5.2 Commercial https://sourceforge.ne Link
(JFreeC (JFreeChart LGPL ) t/project/downloading. (tar.gz)
hart php? Link (zip)
included groupname=zk1&filen
) ame=zk-bin-prof-
3.5.2.zip
Apache 5.5.27 Apache License V2.0 http://apache.mirror.fa Link(tar.gz)
Tomcat cebook.com/tomcat/t Link(zip)
omcat-
5/v5.5.27/bin/apache-
tomcat-5.5.27.zip
Apache 10.4.2 Apache License V2.0 http://www.hightechim Link(tar.gz)
Derby pact.com/Apache/db/ Link(zip)
derby/db-derby-
10.4.2.0/db-derby-
10.4.2.0-lib.zip
18
Loading the Runtime Manager (Internal
only)
• Internal Synopsys users do not need to install the
runtime manager.
• Internal users can simply load the runtime
manager that has already been installed on all
Synopsys DSA clusters
19
Installing the Runtime Manager - External
(1/2)
• External customers must install the Lynx Runtime Manager
• The Runtime Manager is delivered as a compressed tarfile. It includes all binary files needed
by the Lynx flow.
• The runtime manager is delivered separately from the flow so that multiple projects can utilize
the same binaries. It does NOT have to be installed in the same directory as the lynx flow.
<rtm_install_dir>/
<rtm_install_dir>/
version_X.X.X/
version_X.X.X/
admin/
admin/ auxx/
auxx/ bin/
bin/ doc/
doc/ linux/
linux/ suse32/
suse32/
20
Installing the Runtime Manager - External
(2/2)
• To use the binaries contained in the Runtime Manager installation,
simply add the bin directory to your unix path.
• Some binaries delivered with the Runtime Manager will pull a
license: Lynx-DB. This feature must exist in the license file you are
pointing to with LM_LICENSE_FILE or SNPSLMD_LICENSE_FILE
21
Installing the Lynx Flow
<flow_install_dir>/
<flow_install_dir>/
bin/
bin/ cache/
cache/ doc/
doc/ metrics/
metrics/ release/
release/ user/
user/
22
Verifying Unix Utilities
contains a utilities
to use to verify
that you have the
correct unix
utlities installed
• Invoke this utility
after installation
23
Environment Settings for Lynx Flow
24
Configuring Job Distribution (1/2)
25
Configuring Job Distribution (2/2)
• In addition to specifying
whether you are using LSF,
GRD, or no job distribution,
Lynx contains variables for
specifying which log options get
passed to LSF or GRD
– LSF
• SEV_JOB_RESOURCES – the
value of this variable get passed by
Lynx to LSF through the –R option.
E.g. bsub –R
$SEV_JOB_RESOURCES
– GRD
• SEV_JOB_OPTS – the value of this
variables allows you to specify valid
GRD options that get passed
automatically to qrsh. E.g. setenv
SEV_JOB_OPTS “-l
arch=glinux,qsc=b”.
26
Configuring Tool Loading
• By default, Lynx is configured to
an application called modulefiles
for loading and unloading of tool
paths and licenses
(SEV_APP_METHOD=module)
• If you do not use modulefiles and
would like Lynx to simply use the
tool setup that already exists in
your environment, Lynx also has
support for running without
modulefiles.
(SEV_APP_METHOD=none)
• If you need to change the default
settings, edit the appropriate
variables in
<flow_install_dir>/user/example_u
ser/example_workarea/scripts_glo
bal/conf/tool_launch_part1.make
27
Lynx Work Area
• Lynx is a full design system that is
architected to support multiple users and
flat or hierarchical designs
• The first step for any user to start working
with Lynx is to create a Lynx user directory
and work area
<flow_install_dir>/
<flow_install_dir>/
bin/
bin/ cache/
cache/ doc/
doc/ metrics/
metrics/ release/
release/ user/
user/
example_user/
example_user/
example_workarea/
example_workarea/
28
Workarea Directory Structure
• A Lynx workarea consists of 4 directories. For the 3 directories where scripts can be located, Lynx
automatically defines 3 variables which are used to point to these 3 different areas
– sample_designs – default location for RTL, this is optional
– scripts_techlib – technology scripts, $SEV_TSCRIPT_DIR=scripts_techlib/$SEV_TECHLIB
– scripts_global – global scripts, $SEV_GSCRIPT_DIR=scripts_global
– blocks – this is where work is done, $SEV_BSCRIPT_DIR=blocks/<design_name>/scripts_block
<username>/
<username>/
<workarea>/
<workarea>/
sample_designs/
sample_designs/ scripts_techlib/
scripts_techlib/ scripts_global/
scripts_global/ blocks/
blocks/
common.tcl
common.tcl “block” “block”
scripts scripts
“technology”
scripts
29
Creating a Work Area
30
Lynx Runtime Manager
31
Starting the Runtime Manager
Unix> cd <flow_install_dir>/user/<username>/my_workarea
Unix> setenv SEV_EDITOR nedit
Unix> rtm_shell &
32
LAB 1
33
Agenda
Unit
Topic Lab
1 Lynx Introduction
34
Lynx Built-In Library Support
35
Library Data in Lynx
• The Lynx
Runtime Manager
contains a
window called
Common
Navigator.
• To open this
window, select
Window->
Common
Navigator
36
Common Navigator == common.tcl
• Common Navigator is a graphical editor for an important Lynx file called common.tcl
• Common.tcl is located in a Lynx directory called scripts_techlib. This directory is where all common
technology-specific settings and scripts are stored in Lynx. The library itself is NOT stored in
scripts_techlib
• Note that the environment variable SEV_TECHLIB must be set to be to the same value as the name of the
directory directly underneath scripts_techlib
<username>/
<username>/
<workarea>/
<workarea>/
sample_designs/
sample_designs/ scripts_techlib/
scripts_techlib/ scripts_global/
scripts_global/ blocks/
blocks/
common.tcl
common.tcl
38
common.tcl Details
• common.tcl
• Located under
Lynx directory
scripts_techlib/$S
EV_TECHLIB/conf
• Can be edited using
Common Navigator
window in Runtime
Manager
• Contains SVAR
definitions that point to
your library data located
underneath
$SEV_TECHLIB_ROOT
39
SEV_TECHLIB_ROOT Details
<$SEV_TECHLIB_ROOT>
<$SEV_TECHLIB_ROOT>
• SEV_TECHLIB_ROOT is a tech/
tech/ lib/
lib/
pointer to the root directory doc/
doc/ <lib
<lib1>/ <lib
<libN>/
that contains your library 1>/ N>/
hercules_drc/
data hercules_drc/ doc/
doc/ doc/
doc/
contents of hspice/
hspice/ gds/
gds/ gds/
gds/
SEV_TECHLIB_ROOT are milkyway/
milkyway/ hspice/
hspice/ hspice/
hspice/
created with Lynx FRS starrc_xt/
starrc_xt/ lef/
lef/ lef/
lef/
(Foundry Ready System)
lvs/ lvs/
– FRS is a separate lvs/ lvs/
40
FRS Creates SEV_TECHLIB_ROOT
DW_TSMC_tcbn65lpcg_front_140a.tar.gz
DW_TSMC_tcbn65lpcg_back_140a.tar.gz
DW_TSMC_tcbn65lp_front_140b.tar.gz
DW_TSMC_tcbn65lp_back_140b.tar.gz
DW_TSMC_tcbn65lp_ccs_140b.tar.gz
DW_TSMC_tcbn65lpcg_ccs_140a.tar.gz
DW_TSMC_tcbn65lpcglvt_front_140a.tar.gz
DW_TSMC_tcbn65lpcglvt_back_140a.tar.gz
DW_TSMC_tcbn65lplvt_front_140b.tar.gz
DW_TSMC_tcbn65lplvt_back_140b.tar.gz
DW_TSMC_tcbn65lplvt_ccs_140b.tar.gz
DW_TSMC_tcbn65lpcglvt_ccs_140a.tar.gz
Foundry-
DW_TSMC_tcbn65lpcghvt_front_140a.tar.gz
DW_TSMC_tcbn65lpcghvt_back_140a.tar.gz
DW_TSMC_tcbn65lphvt_front_140b.tar.gz Ready
DW_TSMC_tcbn65lphvt_back_140b.tar.gz
DW_TSMC_tcbn65lphvt_ccs_140b.tar.gz
DW_TSMC_tcbn65lpcghvt_ccs_140a.tar.gz System
DW_TSMC_tpzn65lpgv2_front_140b.tar.gz
DW_TSMC_tpzn65lpgv2_back_140b.tar.gz
DW_TSMC_tpbn65gv_front_140a.tar.gz
DW_TSMC_tpbn65gv_back_140a.tar.gz
tn65clls001e1_1_3b.zip
tn65cldr001h3_1_4a.zip
tn65cldr001h2_1_4a.zip
t-n65-cl-dr-001-h1_1_4b_20080708.zip
t-n65-cl-sp-009-b1_1_2a_20070119.zip
41
Flo
Flow
Silicon-
Runtim
Silicon-
Proven
Runtim
Automati
Proven
Automati
FRS Lynx
Manageme
ntntReports
System
Manageme
System
Ready
Reports
Ready
Foundry-
Foundry-
42
Using Lynx FRS for TSMC65LP
43
Downloading FRS Scripts
• FRS is a tarfile
• Get the tarfile from the Lynx CAE. Eventually, this may
come from EST
• Uncompress/Untar the tarfile
• gunzip lynxxx_frsyy_<TECH>.tar.gz
• tar xvf lynxxx_frsyy_<TECH>.tar
44
FRS Directory Structure
FRS
FRSROOT/
ROOT/ User need to setenv for FRS_ROOT
release/
release/ Contains BOM list
work/
work/ newlib/
newlib/ Generated lib store here
tmp/
tmp/ Directory where FRS is invoked
patch/
patch/ Contains patch for tech files
scripts_frs/
scripts_frs/
All scripts are kept in scripts* directory
scripts_stdcell/
scripts_stdcell/ scripts_frs – Top level makefile, setup scripts
scripts_tech/
scripts_stdcell – stdcell lib build flow
scripts_tech/
scripts_tech – for star-rcxt, hercules
scripts_ram/
scripts_ram/ scripts_ram – ram lib build flow
scripts_io/
scripts_io/
scripts_io – io lib build flow
scripts_pll – pll lib build flow
scripts_pll/
scripts_pll/
logs/
logs/ Logs for FRS run
Misc
MiscPDF
PDFfile
file RELEASE_NOTES / README / KNOWN_ISSUES
45
BOM (Bill of Materials) List
46
Lynx FRS: Technology Installation
DW_TSMC_tcbn65lphvt_front_140b.tar.gz
DW_TSMC_tcbn65lphvt_back_140b.tar.gz
TSMC65LP
DW_TSMC_tcbn65lphvt_ccs_140b.tar.gz Library setup
DW_TSMC_tcbn65lplvt_front_140b.tar.gz
DW_TSMC_tcbn65lplvt_back_140b.tar.gz
TSMC65LP
DW_TSMC_tcbn65lplvt_ccs_140b.tar.gz Library setup
47
Downloading DesignWare TSMC
Libraries
• Download designware
TSMC files (DW_*) from
SVP café.
http://www.synopsys.com/dw/tsmc.php
• Must have a solvnet
account, and be a
designware customer with
a click-thru agreement.
• NOTE!!!!!! Internal
Synopsys users should
use SVP Cafe Ultra to get
the DW libraries
http://svpcafeultra.synopsys.com/
48
Downloading TSMC Technology Files
49
Configure FRS for Your Environment
50
frs_config.gmake (1/4)
51
frs_config.gmake (2/4)
• Contains job
distribution settings,
FRS_JOB*. Adjust
these appropriately
for your
environment. FRS
has built-in support
for LSF, GRD, and
no job distribution.
52
frs_config.gmake (3/4)
53
frs_config.gmake (4/4)
• FRS has 3 different methods for
creating TLUPLUS/NXTGRD Data
controlled by the variable
FRS_STARRC_DATA.
• TSMC(default) – Use TSMC pre-
generated files where possible and
generate the remaining data from
scratch. TLUPLUS/NXTGRD files
with emulated metal fill capabilties
are not provided by TSMC and
must be generated.
• SNPS – Use Synopsys pre-
generated files. This option is only
available to internal Synopsys
users
• USER – generate all
TLUPLUS/NXTGRD files from
scratch (runtime may be very long)
54
Running FRS
55
FRS Outputs
<$SEV_TECHLIB_ROOT>
<$SEV_TECHLIB_ROOT>
scripts_techlib/TSMC65LP. milkyway/
milkyway/ milkyway/
milkyway/
TSMC.A will work with the verilog/
verilog/ verilog/
verilog/
FRS-generated techlib
vhdl/
vhdl/ vhdl/
vhdl/
57
common.tcl Outline
• There are three classes of
variables defined in the
common.tcl file
– SVAR(config,*)
• Library /Scenario
settings
• Flow configuration
settings
– SVAR(tech,*)
• Identifies a technology
specific variable that is
common across all
libraries used in the
flow. E.g. techfile,
layer mapping files,
tluplus, nxtgrd,
DRC/LVS
– SVAR(lib,<lib_name>,*)
• Identifies a library
specific variable for the
indicated library name
58
Library/Scenario Variables
• Expand the tree below
Library/Scenario in the Techlib
Navigator window to show “Library
Names” and “Scenario Elements”
• These variables are propagated
forward into other sections of
variable configuration as will be
shown in the following slides
• Double click on either of these
entries to configure the SVARs
associated with them
– Library Names
• SVAR(config,setup,lib_types_list)
– Scenario Elements
• SVAR(config,setup,oc_types_list)
• SVAR(config,setup,rc_types_list)
• SVAR(config,setup,mm_types_list)
59
Technology Variables, SVAR(tech,*)
60
Library Variables, SVAR(lib,<lib_name>,*)
61
Saving Changes to common.tcl (1/2)
62
Saving Changes to common.tcl (2/2)
63
Agenda
Unit
Topic Lab
1 Lynx Introduction
64
Blocks Directory
• The Lynx flow itself is actually run from within
“blocks” directory
• Each block that is built separately as part of your
chip will have its own directory underneath “blocks”
<username>/
<username>/
<workarea>/
<workarea>/
sample_designs/
sample_designs/ scripts_techlib/
scripts_techlib/ scripts_global/
scripts_global/ blocks/
blocks/
common.tcl
common.tcl
65
Des_hard_macro
• Des_hard_macro is the
recommended design to use
for quickly testing the flow
and library configuration.
– It can be built out-of-the box
with FRS-generated
TSMC65LP data
– It is very small and thus builds
very quickly which allows for
quick turnaround times.
– It is a standard-cell only
design so it can very easily be
targeted to any non-FRS
library
66
Lynx Flow Architecture
• The Lynx R2G flow is made of 4 “steps”: SYN, DP, PNR, and
FINISH
• Analysis (STA, formality,…) is run at the end of each step.
• All Lynx flows, whether they are step flows or analysis flows
– Are encapsulated in makefiles
– Can be viewed and configured graphically with the Runtime Manager
– Can be executed, monitored, and debugged within the Runtime Manager
Global Analysis
PT PT/SI Formality STAR Herc
Tasks
Flow SYN DP PNR FINISH
Steps
67
Lynx Flows Example
blocks
des_hard_macro
Block Flow – block_flow.rtm/
block_flow.make
68
Lynx Flow Terminology
69
Opening Block/Task Flows
• Double-click on a
block in the Block
Navigator to access
any block/task flows
defined for a given
block.
• Browse through the
“Block Flows” or
“Task Flows” tree
and click the flow
you want to open.
• All flows are saved
as a *.rtm file.
70
.rtm Files
71
Building des_hard_macro
• After running FRS to build the TSMC65LP
library, you are ready to build des_hard_macro
– The flow for des_hard_macro is defined in a series of
makefiles that we will discuss in the following slides
• The entire RTL2 GDS flow for des_hard_macro
can be run by executing the block flow.
• The recommended method for executing the
block flow is to use the Runtime Manager
although it is also possible to invoke the flow
from the unix command line.
72
Des_hard_macro Block Flow:
block_flow.rtm
• This is the block flow for
des_hard_macro
• It contains only block
targets (8 of them).
• It is considered “flat” in
nature because it does not
contain any sub-block
targets
• The arrows indicate
dependencies. E.g.
dp.optimize cannot run until
syn.optimize has completed
• The “all” target is a phony
target that when invoked will
result in all 8 block targets
being invoked in order,
according to the
dependencies.
73
Flat Block Flow Structure
74
Building des_hard_macro with the
Runtime Manager (1/2)
• Right-click on
the “all”
target and
select
“Execute”
• This will
Bring up the
Execution
Manager
75
Building des_hard_macro with the
Runtime Manager (2/2)
• The Execution
Manager
allows us to
execute,
monitor and
debug the Flow
• It conists of a
list of all tasks
needed to build
the “all” target
76
Executing the Flow (1/3)
• Click on the
“Execute” button
to run the flow
and build the “all”
target.
• This will invoke
the flow using the
job distribution
settings that have
been configured
previously
77
Executing the Flow (2/3)
• You can build a
target other than
“all” by right-clicking
over the target you
want to build (e.g.
syn.optimize) and
selecting “Set
Execute Target”
from the pop-up
menu
• Then click the
“Execute” button to
build the target
78
Executing the Flow (3/3)
• Once the flow
has started to
run, you can
stop
execution of
the flow at
any point by
click the
“Stop” button
79
Running the block flow for
des_hard_macro (1/3)
• Here is a more detailed look at what
happens when you run the block flow for
des_hard_macro as indicated previously
80
Running the block flow for
des_hard_macro (2/3)
81
Running the block flow for
des_hard_macro (3/3)
• Each block target (e.g. syn.optimize) invokes 1 or more
task flows
• Syn.optimize ==
• scripts_block/syn/flow_syn.rtm
• Syn.analyze ==
• Scripts_block/formal/flow_formal.rtm
• Scripts_block/sta/flow_sta.rtm
• Scripts_block/atpg/flow_atpg.rtm
• Dp.optimize ==<view task properties>
• Dp.analyze==<view task properties>
• Pnr.optimize ==<view task properties>
• Pnr.analyze==<view task properties>
• Finish.optimize ==<view task properties>
• Finish.analyze==<view task properties>
82
Lynx Task Flows
• A task flow is defined for each Lynx “step” for each design. A task flow is also defined for each
analysis type.
• The task flows are composed of related tasks, task targets, with each task target corresponding to a
single tool script that is run in the flow
SYN – flow_syn.rtm DP – flow_dp.rtm PNR – flow_pnr.rtm FINISH – flow_finish.rtm
83
Lynx Task Flow Example: flow_syn.rtm
• Block Name: Flow
Name – Use this to
identify each flow
when multiple flows
are open at the same
time
• Flow Diagram
• Task target – each
box corresponds to a
single invocation of a
tool to run a task
script
• Connector – arrow
connecting 2 task
targets
84
Most Common Types of Flow
Configuration
• Edit properties for existing task targets
– Automation
– Script
• Add/remove task targets
• Change/add task connections
• Save a Flow
85
Task Properties
• Double-click
over a task
target to bring
up the
Properties
window. There
are 2 tabs
– Script
– Automation
86
Script Settings
87
Automation Settings
88
Saving a Flow
89
Monitoring the Flow (1/3)
• As the flow runs, the
execution manager
uses color-coding to
communicate the
status of tasks. A
completed task will
have one of 3 possible
colors
– Red: the task has failed
– Green: the task has
passed
– Yellow: a passfile has
been manually touched
to allow the flow to
continue
90
Monitoring the Flow (2/3)
• As a task is
running,
additional
colors are used
to tell you the
current status
of the task.
• Click Window
-> Legend to
see what each
color means
91
Monitoring the Flow (3/3)
• As you run the
flow, the
Runtime
Manager will
print out a
banner which
gives you
details about
the current task
that is running
92
Re-starting the Flow From an Earlier
Point
• You can re-execute
the flow starting with
any task, even if the
task has passed.
• Right-click on the task
(e.g. setup), select
“Pass Files” and click
“Delete Current” to
delete the passfile.
• To create a passfile for
a task that has failed,
select “Pass Files” ->
“Touch Current”
• Click Execute to re-
start flow execution.
93
Viewing Flow Results with Runtime
Manager
• You can
view log
files,
pass/fail
files, and
report files
from within
the
Execution
Manager
94
Viewing Flow Results Manually
blocks
des_hard_macro
Block Flow – block_flow.rtm/
block_flow.make
95
Step Directory Structure
96
Step Example
• Simple SYN step example
• Assuming the existence of a
syn/
syn/
GTECH database, a first pass
synthesis task could specify:
– SEV_SRC=elab
tmp
tmp work/
work/ logs/
logs/ rpts/
rpts/ – SEV_DST=task1
• A second pass, incremental
synthesis task could specify:
– SEV_SRC=task1
elab/
elab/ elab/
elab/ elab/
elab/
syn.tcl
syn.tcl – SEV_DST=task2
task1/
task1/ task1/
task1/ task1/
task1/
• A STA task could specify
syn_inc.tcl
syn_inc.tcl – SEV_SRC=task2
task2/
task2/ task2/
task2/ task2/
task2/ – SEV_DST=task2
sta.tcl
sta.tcl
97
Setup & Promote
98
Running Block and Task Flows from the
Command Line
• So far, we have shown you how to execute flows from within the Runtime
Manager
• It is also possible to run block and task flows from the unix command line
with rtm_make.
• To run a block flow, do the following
Unix> cd <flow_install_dir>/user/<username>/my_workarea
Unix> cd blocks/des_hard_macro
Unix> rtm_make –f block_flow.make
• To run a task flow, you must cd to the tmp directory corresponding to the
step that you are running.
• For example, to run the promote target in the syn flow (flow_syn.make) for
des_hard_macro, you would do the following
Unix> cd <flow_install_dir>/user/<username>/my_workarea/blocks/des_hard_macro
Unix> cd syn/tmp
Unix> rtm_make –f ../../scripts_block/syn/flow_syn.make promote
99
Lynx Des_chip Sample Design
des_chip
• Des_hard_macro dft_support
u_dft_support
PLL
des_chip_core
u_des_chip_core
is part of a larger
hierarchical Lynx des_ctl
u_des_ctl
design called added during DFT step
des_chip des_hard_macro
u_des_hard_macro_1
– Full RTL is TAP
provided des_hard_macro
u_des_hard_macro_2 BSRs
– Complete flow io
and scripts are u_io des_soft_macro_a
u_des_soft_macro_a
provided to build
des_chip with the des_soft_macro_b
u_des_soft_macro_b
FRS-created
TSMC65LP des_soft_macro_c
u_des_soft_macro_c
techlib
10
0
Design Hierarchy & Block Directories
• Lynx block directories are organized in a “flat” structure regardless of the design
hierarchy.
– At a minimum, the blocks/ directory is organized in terms of physical hierarchy.
Additional block directories can be created to support pre-floorplanning
partitioning. For example, separate block directories to support bottom-up
synthesis.
– In the des_chip design we have 5 partitions:
• 4 physical partitions: des_chip, des_hard_macro, des_soft_macro_a, and
des_soft_macro_b.
• 1 logical partition: des_soft_macro_c
<work_area>
<work_area>
blocks/
blocks/
des_chip/
des_chip/ des_hard_macro/
des_hard_macro/ des_soft_macro_a/
des_soft_macro_a/ des_soft_macro_b/
des_soft_macro_b/ des_soft_macro_c/
des_soft_macro_c/
10
1
Hierarchical Block Flow Example –
des_chip block_flow.rtm
• A hierarchical block
flow contains …
– Block targets. E.g.
syn.analyze target
for des_chip
– Sub-block targets.
E.g. invoke block
flow
(block_flow.rtm) for
des_soft_macro_a
and run
syn.analyze target
10
2
Building des_chip
• After building
des_hard_macro,
you are ready to
build des_chip
– When des_chip is
built, it will call block
flow makefiles for
des_soft_macro_a,
des_soft_macro_b,
and
des_soft_macro_c
10
3
LAB 2
10
4
Agenda
Unit
Topic Lab
1 Lynx Introduction
10
5
Adding a New Lynx Design
• Create a block
directory
• Configure block.tcl
• Add your design
data
– Constraints
– Scan Configuration
– Floorplan data
10
6
Lynx Sample Designs
• As mentioned previously, Lynx comes with several
designs: a block called des_hard_macro and a
hierarchical chip call des_chip.
• Lynx also comes with a UPF (unified power format for low
power, IEEE-1801) design called des_hard_macro_upf
• Lynx also provides the complete flow that can be used to
build each design with the TSMC65LP library
<work_area>
<work_area>
blocks/
blocks/
des_chip/
des_chip/ des_hard_macro/
des_hard_macro/ des_soft_macro_a/
des_soft_macro_a/ des_soft_macro_b/
des_soft_macro_b/ des_soft_macro_c/
des_soft_macro_c/ des_hard_macro_upf/
des_hard_macro_upf/
10
7
Creating a New Block Directory (1/3)
blocks/
blocks/
des_chip/
des_chip/ des_hard_macro/
des_hard_macro/ des_soft_macro_a/
des_soft_macro_a/ des_soft_macro_b/
des_soft_macro_b/ des_soft_macro_c/
des_soft_macro_c/ des_hard_macro_upf/
des_hard_macro_upf/
10
9
Creating a New Block Directory (3/3)
• Within the Runtime
Manager, select File->
Create Block
• In the pop-up window,
enter the name of the
new design and simply
pick the “template” that
most closely matches the
design you are adding
• For most designs, hard
(des_hard_macro) will
probably be the best
template.
• Another option in the
Create Block pop-up
window is to use an
existing block as the
template.
110
SVAR Configuration and Lynx Tool
Wrapper
• All tasks that are in run withing the Lynx Flow make use of
the Lynx tool wrapper
• The tool wrapper ensures that all tasks begin with a
common setup be using a set of Lynx configuration
variables called SVARs
• There are 2 Lynx files where all SVARs are defined
– common.tcl: One for the whole project. Default values for all
SVARs are defined here.
– block.tcl: One for each block. Sourced after common.tcl, so it can
over-ride values set in common.tcl
## Lynx
Lynx Tool
Tool Wrapper
Wrapper Script
Script scripts_global/conf/tool_wrapper.tcl
scripts_global/conf/tool_wrapper.tcl
Accessible
source
source common.tcl
common.tcl
source
source common_setup.tcl
common_setup.tcl Via GUI
source
source block.tcl
block.tcl Variable Tabs
source
source block_setup.tcl
block_setup.tcl
source
source $SEV_SCRIPT
$SEV_SCRIPT ###
### the
the task
task script
script is
is sourced
sourced after
after setup
setup files
files
111
Resetting Block.tcl
• When using a Lynx
template to create a
new block directory, A
good practice you may
want to consider is to
reset the contents of
the block.tcl file after
creating your block
directory.
• This will reset block.tcl
so that no common.tcl
SVAR settings are
being over-ridden.
• To reset block.tcl,
Variables-> Reset
SVAR Files. Select the
check-box next to the
block whose block.tcl
file you want to reset
and click OK.
112
Configuring block.tcl for your New
Design
• After creating a directory for your new block, the
next thing you should do is configure block.tcl.
• You will usually only need to modify a handful of
SVAR(config,*) variables in block.tcl.
• In the following slides we will show some of the
most common block.tcl settings you may need
to change. It is possible that your design may
require additional modifications to block.tcl
113
Block Navigator
114
block.tcl Scope Indicator (1/2)
115
block.tcl Scope Indicator (2/2)
• Click on the
scope
indicator to be
able to view
settings for
this variable
defined in
common.tcl
as well as in
the block.tcl
file for other
blocks
116
Library Setup
• Make sure
the Target
Library
and Link
Library
lists are
set
correctly
for your
design.
117
Integration Info
• If your design is a
chip, make sure to
check the box next to
“Is Chip?”
• Only fill out the other
variables , such as
hard macro list, if
your design is
hierarchical in nature
– Separately compile
sub-blocks
– Physically hierarchical
with soft macros being
generated during
design planning
118
Synthesis
• Check all of
the settings
in the
Synthesis
panel to see
if they are
appropriate
for your
design
– DFT settings
119
Building Your Design
• When you created your
block directory, you copied
a template for one of the
sample design blocks.
• This template will contain
files that refer to the
template design. Some of
these files will need to be
modified to contain data for
your design.
• The best way to see which
files you will need to modify
is to run the flow and see
which tasks fail. Even if a
flow passes all automated
checks, the customer is
ultimately responsible to
verify the flow contains all
required implementation
and verification steps and
settings for ensuring a
design meets sign-off
requirements
12
0
Pass/Fail Files
• All tasks generate a
logfile
• Upon task
completion, the
logfile is parsed and
either a .pass or .fail
file is generated.
• You can view
pass/fail files,
logfiles, reports, and
design databases
from within the
Execution Manager
12
1
Task Failures
• When putting a new design into
Lynx, some tasks will fail.
• There are three primary causes for
task failures in Lynx
– SNPS_ERROR – these are Lynx-
specific errors that are produced by
checks that are built into the Lynx flow
– Unexpected tool errors – tool-specific
error messages
– Expected messages not appearing in
the logfile
• E.g. Formality “Verification SUCCEEDED”
message
• START_TIME and STOP_TIME
messages
• When a task failure occurs, your
goal is to find out why it occurred.
• You should start by examing the
.fail file. The reason the .fail file
was generated will appear at the
top.
12
2
Adding Your Design Data into Lynx
12
3
Adding RTL for Your Design
12
4
Manifest File
• The manifest file is a TCL file which contains calls to sproc_manifest. Each
call to sproc_manifest will result in a file being either copied to or linked to
the syn/work/inputs directory.
sproc_manifest $SEV(workarea_dir)/sample_designs/des_chip/des.vh TYPE=NONE
sproc_manifest $SEV(workarea_dir)/sample_designs/des_chip/des_hard_macro.v
sproc_manifest $SEV(workarea_dir)/sample_designs/des_chip/des_hard_macro_bypass.v
sproc_manifest $SEV(workarea_dir)/sample_designs/des_chip/des_hard_macro_core.v TYPE=RTL_SVLOG
sproc_manifest $SEV(workarea_dir)/sample_designs/des_chip/convert_8_64.v
sproc_manifest $SEV(workarea_dir)/sample_designs/des_chip/convert_64_8.v
sproc_manifest $SEV(workarea_dir)/sample_designs/des_chip/des_encrypt_mixed.v
sproc_manifest $SEV(workarea_dir)/sample_designs/des_chip/des_decrypt_mixed.v
sproc_manifest $SEV(workarea_dir)/sample_designs/des_chip/des_functions.vh TYPE=NONE
12
5
Manifest Examples
• Copy des.vh to
syn/work/inputs. TYPE=NONE
indicates to Lynx that this file
should not be read in directly
into DC. It will appear in the
sproc_manifest $SEV(workarea_dir)/sample_designs/des_chip/des.vh TYPE=NONE search_path so it will be
sproc_manifest $SEV(workarea_dir)/sample_designs/des_chip/des_hard_macro.v included indirectly by any
sproc_manifest $SEV(workarea_dir)/sample_designs/des_chip/des_hard_macro_bypass.v
`include statements in the RTL
sproc_manifest $SEV(workarea_dir)/sample_designs/des_chip/des_hard_macro_core.v TYPE=RTL_SVLOG
sproc_manifest $SEV(workarea_dir)/sample_designs/des_chip/convert_8_64.v • Copy des_hard_macro.v to
sproc_manifest $SEV(workarea_dir)/sample_designs/des_chip/convert_64_8.v syn/work/inputs. Since no type
sproc_manifest $SEV(workarea_dir)/sample_designs/des_chip/des_encrypt_mixed.v
sproc_manifest $SEV(workarea_dir)/sample_designs/des_chip/des_decrypt_mixed.v is explicitly declared,
sproc_manifest $SEV(workarea_dir)/sample_designs/des_chip/des_functions.vh TYPE=NONE TYPE=RTL_VLOG is assumed
and the file will be read into DC
as a verilog RTL file
• Copy des_hard_macro_core.v
to syn/work/inputs and read
Example shown here is manifest
into DC as a system verilog file
file in SYN step! since TYPE=RTL_SVLOG
Manifest file for DP/PNR step
will be shown in detail flow
training.
12
6
Adding Constraints for Your Design
12
7
Clock Gating Information
12
8
Scan Configuration
• The dc_dft task in the
SYN step reads in
scan configuration
information before
inserting scan.
• The default file for
scan configuration
information is
scan_configuration.tcl
• Edit this file to include
your scan configuration
information by clicking
on the edit icon
12
9
Design Planning Information
• Design Planning is
part of the flow that
requires the most
data from the user.
• You will have to
modify multiple files
to integrate your
design planning
information into Lynx
• Please refer to the
Lynx DP step
documentation for
more details
13
0
Lynx Task Debugging
13
1
Running Tasks Interactively with the
Runtime Manager
• Right-click on a task in the
Execution Manage and select
“Run Task”.
• A pop-up window will allow
you to choose from several
options
– GUI: run tool in GUI mode
– FORCE PASS: always create a
passfile to allow flow to continue
running even if the task fails
– DONT RUN: Start tool, but do
not run the script. This allows
you to run the script
interactively line-by-line
– DONT EXIT: Start tool and run
the script, but do not exit.
– TRACE: Run tracelog for the
task to generate a trace file.
• Click OK to start the task
13
2
Running Tasks Interactively on the
Unix Command Line with rtm_make
• Lynx implements several arguments which can be used to control the way
task scripts are ran
– All Lynx rtm_make variables are prefixed with SEV_
• Values can be assigned on the command line or by setting an environment
variable.
– On the command line variables should always appear after the name of any
target that is specified
– Multiple options are separated by white space
rtm_make –f ../../scripts_block/syn/flow_syn.make 020_dc_compile ARG1=value1 ARG2=value2
• Variables set in the environment are persistent – they will apply to all Lynx
tasks until they are unset
– setenv ARG1 value1
• There is no way to error check for correct spelling of arguments
– If the expected behavior does not occur check the spelling of the arguments
13
3
Lynx rtm_make Options
13
4
Running View Targets
• Use a view target when you
just want to start a tool (e.g.
ICC, DC), but do not want to
run a script.
• Right-click on a task in the
Execution Manage and
select “View Design Data”.
• A pop-up window will allow
you to choose from several
options
– GUI: run tool in GUI mode
– DONT RUN: Start tool, but do
not run the script. This allows
you to run the script
interactively line-by-line
• Click OK to start the view
target
13
5
Lab 3
13
6
Agenda
Unit
Topic Lab
1 Lynx Introduction
13
7
Lynx Help
• Solvnet
• Lynx CAE team
• Detailed Training Modules
13
8
Detailed Training Modules
13
9