0% found this document useful (0 votes)
78 views18 pages

Lab1 Tessent Shell Overview

This document contains confidential information from Siemens Industry Software Inc. (SISW) regarding the Tessent Shell environment and its usage for design analysis. It includes instructions for setting up the environment, performing basic commands, and utilizing introspection features within the Tessent Shell. The document also emphasizes the importance of adhering to SISW's licensing agreements and the proprietary nature of the content.

Uploaded by

HANIEL
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
78 views18 pages

Lab1 Tessent Shell Overview

This document contains confidential information from Siemens Industry Software Inc. (SISW) regarding the Tessent Shell environment and its usage for design analysis. It includes instructions for setting up the environment, performing basic commands, and utilizing introspection features within the Tessent Shell. The document also emphasizes the importance of adhering to SISW's licensing agreements and the proprietary nature of the content.

Uploaded by

HANIEL
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 18

Unpublished work.

© 2021 Siemens

This material contains trade secrets or otherwise confidential information owned by Siemens Industry
Software Inc. or its affiliates (collectively, "SISW"), or its licensors. Access to and use of this information
is strictly limited as set forth in Customer's applicable agreement with SISW. This material may not be
copied, distributed, or otherwise disclosed outside of Customer's facilities without the express written
permission of SISW, and may not be used in any way not expressly authorized by SISW.

This document is for information and instruction purposes. SISW reserves the right to make changes in
specifications and other information contained in this publication without prior notice, and the reader
should, in all cases, consult SISW to determine whether any changes have been made. SISW disclaims
all warranties with respect to this document including, without limitation, the implied warranties of
merchantability, fitness for a particular purpose, and non-infringement of intellectual property.

The terms and conditions governing the sale and licensing of SISW products are set forth in written
agreements between SISW and its customers. SISW’s End User License Agreement may be viewed
at: www.plm.automation.siemens.com/global/en/legal/online-terms/index.html.

No representation or other affirmation of fact contained in this publication shall be deemed to be a


warranty or give rise to any liability of SISW whatsoever.

TRADEMARKS: The trademarks, logos, and service marks ("Marks") used herein are the property of
Siemens or other parties. No one is permitted to use these Marks without the prior written consent of
Siemens or the owner of the Marks, as applicable. The use herein of third party Marks is not an attempt
to indicate Siemens as a source of a product, but is intended to indicate a product from, or associated
with, a particular third party. A list of Siemens' trademarks may be viewed at:
www.plm.automation.siemens.com/global/en/legal/trademarks.html. The registered trademark Linux® is
used pursuant to a sublicense from LMI, the exclusive licensee of Linus Torvalds, owner of the mark on
a world-wide basis.

Support Center: support.sw.siemens.com


Send Feedback on Documentation: support.sw.siemens.com/doc_feedback_form
Table of Contents
Before you Begin ................................................................................................................................ 2

Lab 1: Tessent Shell Overview .......................................................................................................... 3


Objectives ........................................................................................................................................ 3
Introduction ...................................................................................................................................... 3
Exercise 1: Basic Commands .......................................................................................................... 4
Exercise 2: Explore the Design Using Tessent Visualizer ................................................................ 9

NOTES: .............................................................................................................................................. 16
Before you Begin

You will need to:

1. Obtain lab data if you have not already done so.

2. Set environment variables.

Obtaining Lab Data


If the flow_data directory, with lab subdirectories, is located in the home directory (e.g. cd ~), please
proceed to the lab exercises as you have already set up the lab database on this VM.

If this is the first time you are starting a session for this VM, the flow_data directory will not be in the
home directory and you will need to download and extract it using the following instructions.

1. Double click on the Desktop icon Download_lab_data, . This launches a web browser.

2. On the resulting web page, select the file named tessent_flow_data_v2020.3_20201025.tgz.

3. In the resultant window, select the Download button, enable the Save File button, then, select the OK
button to download the file.

4. Move the file in the Downloads directory to the home directory. If you are using the terminal
(Applications>Favorites>Terminal) you can use the following command:

mv ./Downloads/tessent_flow_data_v2020.3_20201025.tgz .

5. In a terminal window, extract the files from the compressed tar file using the command:

tar xzvf ./tessent_flow_ data_v2020.3_20201025.tgz

You should now have a directory named flow_data in your Home directory. That directory contains all the
files you need to perform the exercises, in this learning path.

Setting Environment Variables


The environment uses bash and is ready to use for the labs with all needed environment variables already
setup.

You are now ready to proceed with lab exercises.

Tessent Integrated Flow 2


Lab 1:
Tessent Shell Overview

Objectives
Upon completing this lab, you should be able to

• Use the .tessent_startup file to set Tessent options per your requirements

• Open a Tessent Shell Session and create a logfile

• Load the required design and library files

• Elaborate designs

• Change system modes using different commands

• Use introspection commands

• Trace a flat model

Introduction
The purpose of this lab is to give you some high level experience using the Tessent Shell environment.
You will gain more experience and a deeper understanding regarding the usage and usefulness of these
commands in later lectures and labs.

From this lab, you will gain an understanding of the process of using the Tessent Shell environment. For
example, automatically setting options when the tool starts, or once you have started the tool, what are the
first steps necessary to effectively use the tool. These include, setting the tool to one of its several different
contexts, loading the design and required library files. Then, once the tool has been set to the correct
context and different tool options set, analyzing the design by running DRCs, and exploring the design
using introspection and tracing features provided within the Tessent Shell Environment.

This lab only begins the discussion of the process and commands for two of the system modes and one of
its contexts.

For this lab, we are using a design which is at the netlist level in which scan cells have already been
added.

Tessent Integrated Flow 3


Exercise 1: Basic Commands
In this exercise, you will be exposed to some basic useful commands. First, we will show how to use
an optional startup file in Tessent to automatically execute desired commands every time you invoke
the tool. Then you will explore how to set the tool context, system mode, load a design and the
associated libraries, work with the configuration, and perform tool and design introspection using an
RTL design.

1. Using a $HOME/.tessent_startup file to save time and effort of issuing the same commands during
each invocation of Tessent Shell can be very helpful. Since this step is intended to simply
demonstrate the usage of the file, instead of using the default $HOME location for your startup file,
you will use another option to simply create an environment variable pointing to the directory
containing the .tessent_startup file.

You will then unset the environment variable so you won’t see the message for all the other lab
exercises.

a. Set the current directory to $FLOW_LABS/Lab1/Exercise1.

$ cd $FLOW_LABS/Lab1/Exercise1

b. Create an environment variable pointing to the pathname that contains the


example .tessent_startup file.

$ setenv TESSENT_STARTUP $FLOW_LABS/Lab1

c. Invoke Tessent Shell. Notice the Note stating the .tessent_startup file is being run and the
several command: entries displaying the comments we placed in the file.

$ tessent –shell

d. Exit the session.

SETUP> exit

e. Remove the environment variable so that the message isn't displayed every time you start
Tessent Shell during the remainder of the labs.
$ unsetenv TESSENT_STARTUP

2. Confirm you are in the $FLOW_LABS/Lab1/Exercise1 directory so you can start to work with a small
design within the Tessent Shell environment.

$ cd $FLOW_LABS/Lab1/Exercise1

3. Tessent Shell is invoked using the tessent command with a tool name switch option to indicate the
environment in which you wish to work. The following command uses the -shell switch option to
start the tool in the shell environment. Notice the two other options which create a logfile and, if one
exists, replaces it.

$ tessent -shell -logfile logfiles/Lab1_ex1.log -replace

Tessent Integrated Flow 4


4. First, set the tool context to load in an RTL design.

SETUP> set_context dft -rtl -design_id rtl1

There are 2 basic contexts, dft and patterns. In the dft context,
depending on which options are chosen, functionality is available to
change the design netlist, for example, insert a scan chain. In the
patterns context, functionality related to scan and IJTAG pattern
generation, ICL extraction, and scan pattern diagnosis is available.

5. Specify the location of the Tessent Shell Data Base (TSDB) directory

SETUP> set_tsdb_output_directory ./tsdb_outdir

6. Use the read_verilog command to load the design into the tool. Since the design has many files
we’ll have you execute read_verilog once, then call a dofile that reads in the remain design files.

SETUP> read_verilog design/rtl/carrier_nco.v

SETUP> dofile load_rtl.do

The "load_rtl" dofile contains a collection of read_verilog commands to


save you from manually entering each design module.
Note

7. Elaborate the design with set_current_design, specifying the top level.


SETUP> set_current_design gps_baseband

8. Specify the design level as a physical rather than logical only boundary.

SETUP> set_design_level physical_block

9. Sometimes you may want to confirm that you are working with the correct tool within the shell
environment. This can be done by executing the introspection command, get_tool_info with -
name option switch.

SETUP> get_tool_info -name

10. When contacting customer support, you will need to know which version of the tool you are currently
using. This can be done quickly within the session by executing the introspection command,
get_tool_info using the –version option switch.

SETUP> get_tool_info -version

Tessent Integrated Flow 5


The usage of these option switches is mutually exclusive. An error will
result if they are both used as switch options with a single execution of
Note the get_tool_info command.

11. Tessent provides hierarchical specifications for the tools. The three specification types are Defaults,
DFT, and Patterns. In our example, the DftSpecification and PatternsSpecifications have already
been created and customized for the design. Load the DftSpecification into the session using the
following command:

SETUP> read_config_data \
./tsdb_outdir/dft_inserted_designs/gps_baseband_rtl1.dft_spec

The PatternsSpecification can also be read in using the read_config_data


command. For this example, it would be:
Note
read_config_data \
./tsdb_outdir/patterns/gps_baseband_rtl1.patterns_spec_signoff

The tool does not accept a continuation character in command syntax when it is in
a "path" expression as it breaks a path.
Caution The continuation character, \, shown in the commands in Step 11 is ONLY for
readability in the workbook. Each get_config_value command is to be entered on a
single line.
The continuation character should only be used at "switch boundaries".

12. Using introspection commands you can report settings of interest to the session, or, in more
advanced command sequences using Tcl code, return values to your scripts.

SETUP> get_config_value \
/DftSpecification(gps_baseband,rtl1)\
/EDT/Controller(c1)/scan_chain_count

SETUP> get_config_value \
/DftSpecification(gps_baseband,rtl1)\
/EDT/Controller(c1)/longest_chain_range

13. The get_modules introspection command may be used to identify objects in the design to operate
upon or simply to report. The two acceptable values of the –of_type switch option are design or
cell.

SETUP> get_modules -of_type design

Tessent Integrated Flow 6


14. Now that you know how to access the list of modules in the design, that information may be used
with the get_instances command to process specific instantiations of the module in the design.
For our example, we have selected the module tracking_channel. You'll notice several tc# instances.

SETUP> get_instances -of_module tracking_channel

15. You can then use the information of the previous get_instances with another
get_instances command to access objects below individual instances. We know from the results
of the command executed in step 14, there is an instance of the tracking_channel module named tc4
in the design. Let’s see what instances are below it.

SETUP> get_instances -below_instance tc4

16. Now that you know how to access modules and instances, you can create and assign an attribute to
those objects. The first step of using a user defined attribute, is to register (i.e. create) it.

SETUP> register_attribute -name tracking_block_num \


-value_type string \
-object_types {module instance}

17. Verify the attribute was created using the get_attribute_list command, taking note that the
attribute tracking_block_num is the last one in the list reported to the session window.

SETUP> get_attribute_list \
-object_types {module instance} \
-user_defined

18. The attribute can now be assigned to the tc4 instance of the tracking_channel design module.

SETUP> set_attribute_value tc4 \


-name tracking_block_num -value TC4_inst_top

19. You can confirm that the attribute has been assigned to the tc4 instance using the
get_attributed_objects command, taking note that the system returns {tc4}.

SETUP> get_attributed_objects \
-attribute_name tracking_block_num \
-object_type {module instance}

20. You can confirm the value has been assigned to the tc4 instance using the get_attribute_value_list
command.

SETUP> get_attribute_value_list tc4 \


-name tracking_block_num

21. The commands may be nested, for example, the two previous commands:

SETUP> get_attribute_value_list [get_attributed_objects \


-attribute_name tracking_block_num \
-object_type {instance}] \
-name tracking_block_num

Tessent Integrated Flow 7


22. You can also confirm that the attribute and value have not been assigned any modules using the
get_attributed_objects command, taking note that the system returns a "null" value, { } .
SETUP> get_attributed_objects -attribute_name \
tracking_block_num -object_type {module}

23. The introspection commands become more powerful from a scripting perspective when used in
conjunction with Tcl scripting commands. The following sequence, sets the contents of the Tcl
variable, mytc4_instances, with a collection of all instances below tc4, then sets the attribute
tracking_block_num to tc4_inst.

SETUP> set mytc4_instances [get_instances \


-below_instance tc4]

SETUP> set_attribute_value $mytc4_instances \


-name tracking_block_num -value TC4_inst
SETUP> get_attributed_objects \
-attribute_name tracking_block_num \
-object_type {instance}

24. The commands may also be nested. When you execute the following command, all the instances
below instance tc5 will be tagged with the attribute tracking_block_num with a value of TC5_inst.

SETUP> set_attribute_value [get_instances \


-below_instance tc5] \
-name tracking_block_num \
-value TC5_inst

25. Another effective aspect of the introspection commands is filtering. In this example, the two
commands you execute will display only the instances with the tracking_block_num attribute for the
instances below either tc4 or tc5.

SETUP> get_instances \
-filter {tracking_block_num=~TC4_inst}

SETUP> get_instances \
-filter {tracking_block_num=~TC5_inst}

26. Exit the Tessent Shell session.


ANALYSIS> exit
This concludes exercise 1. Proceed to exercise 2.

Tessent Integrated Flow 8


Exercise 2: Explore the Design Using Tessent
Visualizer
In this exercise, you will work with a gate level design. You will be working in the patterns –scan context,
load the gate level design, then use some introspection commands to explore the design as well as explore
the results of the introspection commands graphically using the Tessent Visualizer.

1. Set the current directory to $FLOW_LABS/Lab1/Exercise2.

$ cd $FLOW_LABS/Lab1/Exercise2

2. Invoke the Tessent Shell, as in the first exercise, using the tessent command with the -shell
switch option to start the tool in the shell environment, and open a logfile, replacing it if a file with the
same name already exists in the directory.

$ tessent -shell -logfile logfiles/Lab1_ex2.log -replace

3. First, set the tool context to load a gate level, flattened design.

SETUP> set_context patterns -scan

4. Load the gate level design data. For the purposes of this exercise, all the information we need is in
the flat model.

SETUP> read_flat_model design/generated/chip_top.flat.gz

In a real design environment, depending on what you need to do in


Tessent Shell, you will most likely need to read in more information.
Note For example, the design source file and Tessent cell library file.

5. When it is necessary to trace the design connectivity, the tool provides for several commands. Using
the get_fanins and get_fanouts commands, with various options to stop the tracing, only
traces from pin and returns a collection of objects satisfying the command and specified options.

a. Execute the following get_fanins command.

ANALYSIS> get_fanins \
/PROCESSOR_1/GPIO_1/sync_cell_p1in_0/data_sync_reg[0]/D \
-stop_on cell_pin

Take note that the returned part pin is RDS_1/U_2/adder/U1/Y as the stop_on
option used in the command directed the tracing to stop at the cell pin and reports
the sourcing cell pin.
b. Execute the following get_fanins command. Note the returned net name is
PROCESSOR_1/GPIO_1/sync_cell_p1in_0/data_in as the stop_on option used in the
command directed the tracing to stop at the net and reports net connected to the input pin
specified in the command.

Tessent Integrated Flow 9


ANALYSIS> get_fanins \
/PROCESSOR_1/GPIO_1/sync_cell_p1in_0/data_sync_reg[0]/D \
-stop_on net

c. Execute the following get_fanouts command taking note that a collection of all the cell pins
(2), connected to the output pin is reported, as the stop_on option used in the command
directed the tracing to stop at the cell pin. In this example, one can surmise the signal fans out
to the data path, (e.g. D input of a register),
PROCESSOR_1/GPIO_1/sync_cell_p1in_0/data_sync_reg[1] /D and the scan path (e.g. Scan
In, SI, input, of a different register),
PROCESSOR_1/GPIO_1/sync_cell_p1in_0/data_sync_reg[0] /SI.

ANALYSIS> get_fanouts \
PROCESSOR_1/GPIO_1/sync_cell_p1in_0/data_sync_reg[0]/Q \
-stop_on cell_pin

d. Execute the following get_fanouts command. Notice one net,


PROCESSOR_1/GPIO_1/sync_cell_p1in_0/ts_0_intno1750, is reported as the stop_on option
used in the command directed the tracing to stop at the net.

ANALYSIS> get_fanouts \
PROCESSOR_1/GPIO_1/sync_cell_p1in_0/data_sync_reg[0]/Q \
-stop_on net

6. Next, you will graphically view the results of the get_fanins and get_fanouts commands
you just executed using the Tessent Visualizer.

a. Open the Tessent Visualizer

ANALYSIS> open_visualizer

b. Just for practice, in the Instance Browser, expand top, by clicking on plus sign icon to the left of
the name in the Instance Browser as identified in the following graphic taking note that it
expands and collapses the instance lists.

Tessent Integrated Flow 10


c. Open the Hierarchical Schematic window by positioning the cursor over the instance name,
then clicking the RMB, and selecting the Show on Hierarchical Schematic menu item.

Zooming in the Tessent Visualizer schematic views can be performed


using the middle mouse button (MMB), aka the scroll wheel, by
Note depressing the MMB (scroll wheel) and moving the mouse diagonally
upwards or downwards to the left and right. The zoom mode will be
displayed on the screen. You can display the different modes, by
depressing the MMB, move it slightly, then rotate it in different
directions.
The zoom mode/actions are:
Fit to window Up and to the left
Zoom in Downward and to the left
Zoom out Upwards and to the right
Zoom area Downwards and the right

d. Using the zoom commands described in the previous note and scroll bars, practice viewing
the details of the schematic, then, when you feel comfortable, proceed to the next step.

e. In the Instance Browser on the left, scroll down to, expand Processor_1, then GPIO_1, scroll
down to sync_cellP1in_0, expand it, then, using the RMB menu, view the data_sync_reg[0]
instance in a flat schematic. You may want to fit the instance to fit the window such that your
screen resembles the following graphics.

Tessent Integrated Flow 11


f. Click the LMB on the "diamond" at the end of the D pin to trace back to the source, taking note
that it's an XOR gate.

g. Position the cursor over the XOR, click the RMB, and notice the part name is
/RDS_1/U_2/adder/U1 and the pin is Y. Looking back at step 5, sub-step a), you will see that
the part pin that was reported by the get_fanins command, with stop_on set to cell_pin, is the
one you just explored.

h. Position the cursor on the "diamond" on the Q output pin of the sffr, you will get to choose which
output to show, in this example we will show both, select both paths then click the RMB, then
select the Show on Flat Schematic menu item, as depicted in the following graphic.

Tessent Integrated Flow 12


i. Position the cursor over each of the registers that have been added to the display, click the
RMB and take note of the part and pin names. You will notice that they are the same as those
reported by the get_fanouts command in step 5, sub-step c with the stop_on set to the cell_pin.

j. In the Instances Browser on the left, scroll down to expand Processor_1, then GPIO_1, scroll
down to sync_cellP1in_0, then, using the RMB menu, view the instance in the hierarchical
schematic.

k. Using what you've learned regarding zooming and scrolling, set up the viewer such that you
clearly see the sync_cell_p1in_0 instance.

l. To show the two cells inside of the instance and their connections, select the border of the
sync_cell_p1in_0 instance, then from the bottom bar, select Pins tab, then select all the pins

found in it, with the RMB open the menu then choose Show on Hierarchical Schematic; do the
same steps with Instances and Nets tabs to clearly see the instance and what’s in it.

Position the cursor as indicated in the following graphic, Compare the net name displayed at the
bottom bar with that reported in response to the get_fanins command executed in Step 5, sub-
step b in which the stop_on value was set to net. They should be the same.

Tessent Integrated Flow 13


We will ignore any DRC violations appear here like the red bubble on
top of \data_sync_reg[1], because debugging DRC violations is not
Note the purpose of this lab exercise.

m. Finally, position the cursor on the net and open the RMB menu, as depicted below, taking note
that the netname is the same that was reported by the get_fanouts command, executed in Step
5, sub-step d, with the stop_on value set to net.

n. Close the Tessent Visualizer.

As you've noticed, the get_fanins and get_fanouts commands


only trace between instances. The trace_flat_model command
Note traces through instances which exist between the from pin and the to
pin, forward or backward, depending on switches and the values
specified.

7. You will now explore the trace_flat_model command.

a. You will now use the trace_flat_model command to trace forward from all top level pins. Take
notice that some of the gate_pins are reported in the designID.pinID format. Since the returned
collection is larger than 50 objects, the first 50 are shown followed by …

ANALYSIS> trace_flat_model -from * -direction forward \


-controllability connected

b. The collection contents can be returned in terms of the design module boundary names using
the –map_tag_to_design_module_boundary switch set to on.
ANALYSIS> trace_flat_model -from * -direction forward \
-controllability connected \
-map_tag_to_design_module_boundary on

Tessent Integrated Flow 14


The * wildcard used in the prior two sub-steps for the value of the –
from switch was used for purely demonstration purposes. In an
Note actual exploration/debugging scenario, you would specify the pin(s) of
concern.

c. You will now use the command to trace backward from an internal pin back to all the pins to
which it is connected.
ANALYSIS> trace_flat_model \
-from RDS_2/\mw_U_14reg_cval_reg[2]/D \
-direction backward \
-controllability connected \
-map_tag_to_design_module_boundary on

8. Exit the Tessent Shell session.


ANALYSIS> exit
This is the end of exercise 2 and Lab 1.

Tessent Integrated Flow 15


NOTES:

Tessent Integrated Flow 16

You might also like