Download as pdf or txt
Download as pdf or txt
You are on page 1of 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: SSN Introduction ................................................................................................................ 3


Objectives .................................................................................................................................. 3
Introduction ................................................................................................................................ 3
Exercise 1: SSN Components Introduction................................................................................... 4
Exercise 2: SSN Components Verification...................................................................................12

Lab Answers ................................................................................................................................15


Lab 1.........................................................................................................................................15

NOTES:.........................................................................................................................................16

Lab: SSN Introduction 1


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 ssn_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 ssn_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_ssn_data_v2021.2_20210907.tar.gz.

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_ssn_data_v2021.2_20210907.tar.gz .

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

tar xzvf ./tessent_ssn_data_v2021.2_20210907.tar.gz

You should now have a directory named ssn_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.

$SSN_LABS is an environment variable set up under the home directory that points to the training data
directory. If it is not already set up, you can execute SETENV SSN_LABS $HOME/ssn_data at your Linux
prompt to create it.

You are now ready to proceed with lab exercises.

Lab: SSN Introduction 2


Lab 1: SSN Introduction

Objectives
Upon completing this lab, you should be able to:

• Identify the SSN components

• Verify the SSN components

Introduction
SSN is a bus-based scan data distribution architecture. In this test case, as demonstrated in the following
figure, we will see the SSN scan circuit components and interfaces in Tessent Visualizer. After that, we will
verify these components in order to ensure that any potential problems are captured early in the flow. We
will be introduced to a comprehensive set of SSN verification capabilities.

Figure 1.1: Lab Design

Lab: SSN Introduction 3


Exercise 1: SSN Components Introduction
In this exercise, you will identify the SSN scan circuit components and interfaces like SSH, OCC, EDT,
IJTAG, Multiplexer, and Pipelines. We will use Tessent Visualizer to be able to visually see the connections
of these components.

Instructions
Change to the $SSN_LABS/Lab1/Exercise1 directory

$ cd $SSN_LABS/Lab1/Exercise1

Review the ssn_insertion script using any text editor, this script inserts the SSH, EDT, and OCC into
your design. The tool creates the SSN hardware based on the SSN wrapper of the DftSpecification.
For a description of the SSN wrapper, see the “SSN” wrapper description in the Tessent Shell
Reference Manual.

Run this dofile.

$ ./ssn_insertion

As you can notice, the script will open a blank schematic in Tessent Visualizer. In this exercise, we will
build the circuit shown on the following screenshot step by step using Tessent Visualizer.

Let’s start with the ScanHost (SSH), which is one of the core components of the SSN network, the SSH
node represents a primary interface to the scan circuitry.

Lab: SSN Introduction 4


Figure 1.2: SSH Node

In Tessent Visualizer, from the Instance Browser window, from the tree view box, expand the lists
and select gps_baseband_rtl1_tessent_ssn_scan_host_1_inst, then right-click and choose Show on
Hierarchical Schematic as shown.

The Hierarchical Schematic window will open, select the SSH instance named:
gps_baseband_rtl1_tessent_ssn_scan_host_1_inst, right-click and show all pins.

Select the instance, then from the Pins tab at the bottom of the window, select all the IJTAG related
pins and right-click then choose Delete from Hierarchical Schematic as shown. This action will just
hide these pins.

Lab: SSN Introduction 5


As you can see, the other pins will remain shown as follows.

As you can see, there are the bus_data_in pins and the bus_clock pin on the left, which are the inputs
coming into the SSH node.

Click on the green diamond of the bus_data_in pins and the bus_clock pin to trace their connections
as following.

Notice that the bus_data_in pin is connected to a pipeline node.

Lab: SSN Introduction 6


Right-click on the pipeline node and choose Show all pins, this will show the pin bus_data_in of the
pipeline instance.

Trace this pin by clicking on its green diamond, you will see it’s connected to the ssn_bus_data_in
port.

Traceback the bus_clock pin as we did with the other pin, you will see it’s connected with the
ssn_bus_clock port.

On the right side of the SSH instance, you can see the bus_data_out pin which is the output pin of
the SSH instance.

Trace forward from this pin, you will notice another pipeline being inserted as per the DFT
specification in the SSN wrapper. Repeat the same steps you did with the input pipeline node to
finally trace to the ssn_bus_data_out port and to connect the bus_clock pin to the ssn_bus_clock
port.

You can optionally select any instance and right-click on it, then choose the
option Delete unconnected pins to have more clear visual sight and focus
more on the important nets.
Note

The SSH node receives the scan data through the ssn_bus_in port. Once received, it gets registered in the
bus_register then passed into the first cloud of logic heading into another register. Finally, it reaches the
EDT logic through the to_scan_in path. So let’s see the EDT block connections.

Select the to_scan_in pin by clicking on it. Open the Tracer tab, a table will appear at the bottom of the
window showing that this pin is connected to multiple paths. Note that to_scan_in is actually 4 nets, shown
with [3:0].

Lab: SSN Introduction 7


Instead of showing all the paths to their destination points, from the opened table, in the Strategy
option, choose from the drop-down box the Trace by one option as shown in the following figure.

Then select these five paths, right-click and choose Show on Hierarchical Schematic.

As you can see, the to_scan_in pins are connected to the EDT controllers. The SSH can drive multiple
EDT instances. In the design, the SSH node drives two EDT controllers, one is the internal EDT controller
named gps_baseband_rtl1_tessent_edt_c1_int_inst and the other is the external EDT controller named
gps_baseband_rtl1_tessent_edt_c1_ext_inst.

On the left side of the SSH instance, you can see the from_scan_out pins which are input pins to the SSH
instance connected to the output of the EDT channels.

Traceback this signal, you can see it’s connected to a mux instance named
gps_baseband_rtl1_tessent_ssn_scan_host_1_inst_chain_group_mux.

Lab: SSN Introduction 8


Right-click on this mux instance, then choose Show all pins; Traceback the mux input pins
mux_in0 and mux_in1. As you can see, these inputs are connected to the output of the EDT controllers.

This multiplexer is the loopback multiplexer shown in Figure 1. This loopback path allows the testing of the
SSH internal logic without any interaction or interference from the EDT or scan chains.
Now let’s analyze the OCC component, which is one of the SSN required elements. The SSH generates
the following local scan signals using bus_clock, IJTAG registers, scan_enable, edt_update, edt_clock, and
shift_capture_clock, which is abbreviated as shift_cap_clock, as shown in Figure 1.

Trace forward from the SSN edt_update and edt_clock signals the same way we traced the
to_scan_in signals in step 14.

Lab: SSN Introduction 9


Each SSH node has a local clock generator component that generates a shift_capture_clock and the
scan_enable and edt_update signals. The local clock injection mux can handle this shift_capture_clock
coming from the SSH and deliver it to the scan chains or EDT scan channels.

Select the scan_en pin, then choose Tracer from the table at the bottom. In the Pin name (end)
column of the table, select gps_baseband_rtl1_tessent_occ_clk_inst/scan_en, right-click then choose
Show on Hierarchical Schematic.

Select the OCC instance named gps_baseband_rtl1_tessent_occ_clk_inst, right-click then choose


Show all pins.

Lab: SSN Introduction 10


Trace back the pins: fast_clock, and the slow_clock.

The fast_clock input can be free-running asynchronous clocks.

Optionally, you can show all the pins of the SSH instance, you will see that the other pins are related to the
IJTAG interface same as the pins shown on the OCC instance. You can trace these pins one by one to see
their connections.

When you are done, exit the Tessent Visualizer Window from Open > Quit Tessent Visualizer, or
enter the following command in the transcript of Tessent Shell to exit Tessent Visualizer and Tessent
Shell in a single invocation.
SETUP> exit

This is the end of Exercise 1.

Lab: SSN Introduction 11


Exercise 2: SSN Components Verification
As part of the Tessent SSN workflow, and in order to ensure that any potential problems are captured early
in the flow, a comprehensive set of SSN verification capabilities are available for you. These include SSN
retargeting design rule checks, and a set of dedicated simulation test benches, like:

• ICL Network Patterns

• SSN Continuity Patterns

In this exercise, we will focus on the ICL and SSN continuity patterns.

Instructions
Change to the $SSN_LABS/Lab1/Exercise2 directory.

$ cd $SSN_LABS/Lab1/Exercise2

Review the ssn_insertion_and_patterns_creation script using any text editor, this script inserts the
SSH, EDT, and OCC logic into your design. The tool creates the SSN hardware based on the SSN
wrapper definition of the DftSpecification. At the end of the script, we will create the patterns that
verify any potential problems. This is an important early step in the flow.

Run this dofile.

$ ./ssn_insertion_and_patterns_creation
As you can notice, the script will open the Configuration Data Visualizer window on the Patterns tab as
shown in the following figure.

Lab: SSN Introduction 12


Expand the Patterns Specification, you will see the ICL Network Patterns wrapper and the SSN
continuity patterns wrapper. Expand these inner wrappers.

As you can see, we have the ICLNetworkVerify wrapper that specifies the creation of structural patterns to
verify the proper operation of the IJTAG Network.

This ICL verification step is repeated at each level of the hierarchy, and you will see this step when we go
through the SSN workflow diagrams for both the core level and top_level designs.

The SSNContinuityVerify wrapper specifies the creation of SSN continuity patterns to test the internal path
of the ScanHost from input to output. When you configure the SSN continuity patterns with this wrapper,
the tool generates the patterns as part of the create_patterns_specification and
process_patterns_specification commands.

When SSN circuitry is already present in the hardware, the


create_patterns_specification command now includes the “-ignore ssn” argument
option, which enables you to suppress generating the default
Note PatternsSpecification()/Patterns(SSN)/SSNContinuityVerify(default) wrapper.

Go back to your terminal and specify the location of the simulation library models using
the set_simulation_library_sources command.

SETUP> set_simulation_library_sources \
-v ../../libs/library/standard_cells/verilog/adk.v \
-v ../../libs/library/memories/*.v

Run the simulations to validate the SSN Continuity Patterns and the ICL Patterns.

Lab: SSN Introduction 13


SETUP> run_testbench_simulations

There should not be any simulation failures. Notice that the status of the simulations is reported as
they run. If you would like to check the pass/fail of simulations that had been run previously, use:

SETUP> check_testbench_simulations -report_status

Exit Tessent Shell.

SETUP> exit

This is the end of Exercise 2 and Lab 1.

Lab: SSN Introduction 14


Lab Answers

Lab 1

There were no questions in Lab1

Lab: SSN Introduction 15


NOTES:

Lab: SSN Introduction 16

You might also like