Uploaded by mharanadh

TCL Symposium Model

advertisement
TCL Symposium
A scripts makes our job lot easier
ASIC Backend TCL Scripting
Outcome of the TCL Symposium
●
●
●
●
●
●
You have come up with how to tackle the problem statement
At which stage which all tcl packages used to solve the issues
Importance of syntax and its attribute, switches, arguments etc
Examples that build your skills to solve any kind of problems in the real time project
Formats/ templates that simplified to write the tcl code, and develop the decipline
It helps, Systematic approach to learn from beginner to advance level
Steps to follow the format
● Copy the table and express the same
Name
Your name
1
Problem
Statement
Here you can express which all tcl commands trying to explore
2
Tcl Packages
Mention that at which stage you were trying to use the commands for your script,
for example
At design/sta/pnr/sdc/eco/drc etc ?
3
Syntax
Here you need to mention all the syntax used
4
Arguments
Give brief explanation about syntax ,attributes, switches, etc
5
Syntax and
argument
Descriptions
Describe briefly about syntax, attributes, switches
6
Unix
commands
usage
Mention unix commands used in your scripts, if any
7
Examples
Usage
Mention your tcl scripts
8
Script
Explaination
Give the simple explanation about the problem statement, script discipline, script
body, and its logic
Here are some examples
Name
Naveen AS
1
Problem
Statement
Find a net called "reg" using case insensitive search
2
Tcl Packages
Tcl SDC PNR flow..
The following table displays information for the get_nets Tcl command
3
Syntax
get_nets [-h | -help] [-long_help] [-no_duplicates]
[-nocase] [-nowarn] [ ]
4
Arguments
-h | -help Short help
-long_help Long help with examples and possible return values
-no_duplicates Do not match duplicated net names -nocase Specifies
case-insensitive node name matching
-nowarn Do not issue warning messages about unmatched patterns
<filter> Valid destinations (string patterns are matched using Tcl string
matching)
5
Syntax and
argument
Descriptions
Returns a collection of nets in the design. All net names in the collection match
the specified pattern. Wildcards can be used to select multiple nets at once. The
default matching scheme returns nets whose names match the specified filter
and nets that are automatically generated by the Quartus Prime software from
these nets. Use the -no_duplicates option to exclude duplicated nets. The filter
for the collection is a Tcl list of wildcards, and must follow standard Tcl or Timing
Analyzer-extension substitution rules. See help for the
use_timing_analyzer_style_escaping command for details.
6
Examples
Usage
# Find a net called "reg" using case insensitive search
get_nets -nocase reg
# Create a collection of all nets whose names start with
"reg"
get_nets reg*
# Create a collection of all nets in the design
set mycollection [get_nets *]
# Output net names.
foreach_in_collection net $mycollection
{
puts [get_net_info -name $net]
}
7
Script
Explaination
Name
Naveen AS
1
Problem
Statement
reporting the worst-case slack if a path is found
2
Tcl Packages
Tcl STA/PNR flow
Information for the report_timing Tcl command
3
Syntax
report_timing [-h | -help] [-long_help] [-append]
[-data_delay] [-detail ] [-extra_info ] [- fall_from ]
[-fall_from_clock ] [-fall_through ] [- fall_to ]
[-fall_to_clock ] [-false_path] [-file ] [- from ]
[-from_clock ] [-hold] [-intra_clock] [-less_than_slack ]
[-npaths ] [-nworst ] [-pairs_only] [-panel_name ]
[-recovery] [-removal] [-rise_from ] [-rise_from_clock ]
[-rise_through ] [-rise_to ] [-rise_to_clock ] [-setup]
[-show_routing] [-split_by_corner] [-stdout] [-through ]
[-to ] [-to_clock ]
4
Arguments
-h | -help
Short help
-long_help Long help with examples and possible return values
-append If output is sent to a file, this option appends the result to that file.
Otherwise, the file will be overwritten. This option is not supported for HTML files.
-data_delay
-detail
Report only paths that are covered by a data delay assignment
Option to determine how much detail should be shown in the path report
-extra_info Option to determine how much detail should be shown in the Extra Info
report
-fall_from Valid sources (string patterns are matched using Tcl string matching)
and so on
5
Syntax and
argument
Descriptions
Reports the worst-case paths and associated slack. Use the "-setup", "-hold",
"-recovery", or "- removal" options to specify which kind of analysis should be
performed. The report can be directed to the Tcl console ("-stdout", default), a file
("-file"), the Timing Analyzer graphical user interface ("- panel_name"), or any
combination of the three. You can limit the analysis performed by this command to
specific start and end points, using the "-from" and "-to" options. Use the
"-rise_from" and "-fall_from" options to limit the analysis to endpoints with
established high or low starting states. Use the "-rise_to" and "-fall_to" options to
limit the analysis to destination points with high or low ending states. The analysis
can be further limited to clocks using the "-from_clock" and "-to_clock" options, or
to specific edges of the clock using the "-rise_from_clock", "-fall_from_clock", "rise_to_clock", and "-fall_to_clock" options. Additionally, the "-through" option can
be used to restrict analysis to paths which go through specified pins or nets.
6
Examples
Usage
reporting the worst-case slack if a path is found.
project_open my_project
# reporting the worst-case slack if a path is found.
set my_list [report_timing -from foo -to bar]
set num_paths [lindex $my_list 0]
set wc_slack [lindex $my_list 1]
if { $num_paths > 0 } {
puts "Worst case slack -from foo -to bar is $wc_slack" }
# The following command is optional delete_timing_netlist
project_close
7
Example :
Script
Explaination
●
●
●
●
●
●
Here in this example, reporting the worst case slack from the timing report
by tcl script
Setting the user variable by user name my_list to get the report timing
information and saved it into my_list
Now listing the num of paths by setting variable
Now listing all worst case slack by setting the variable
Now using the if conditions to find worst slack in the list, if there are any no
of the paths are greater than zero then if condition met then show the
worst case slack
Else show there is no worst slack in the list
Download