spipro ®tutorials · lab 1.1: free form channel ... subcircuit (block with “x” symbol)...

87
SPIPro ® Tutorials Current Revision: Nov. 2015 SPISim LLC Vancouver, WA 98683, USA Tel. +14089056692 http://www.spisim.com

Upload: others

Post on 19-Oct-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro® Tutorials

Current Revision: Nov. 2015

SPISim LLC Vancouver, WA 98683, USA

Tel. +1­408­905­6692 http://www.spisim.com

Page 2: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

Copyright Notice and Proprietary Information Copyright © 2015 SPISim LLC (SPISim). All rights reserved. This software and documentation contain confidential and proprietary information that is the property of SPISim No part of this copyrighted work may be reproduced, modified or distributed in any form or by any means, without the prior written permission of SPISim. Right to Copy Documentation SPISim permits licensee to make copies of the documentation for its internal use only. Each copy shall include all copyrights, trademarks, disclaimers and proprietary rights notices. Disclaimer SPISim has made reasonable efforts to ensure that the information in this document is accurate and complete. However, SPISim assumes no liability for errors, or for any incidental, consequential, indirect, or special damages, including, without limitation, loss of use, loss or alteration of data, delays, or lost profits or savings, arising from the use of this document or SPIPro which it accompanies. Trademarks SPIPro, SPILite are are trademarks of SPISim. Other product and company names may be trademarks of their respective owners. SPISim’s products use some third party libraries. For a complete list and their source, please visit: http://www.spisim.com/blogs/libraries/

1

Page 3: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

Table of contents:

1. SPIPro Overview 2. Tutorial 1: Channel builder with CPro

Lab 1.1: Free form channel Lab 1.1.1: Build free form channel Lab 1.1.2: Interactive analysis Lab 1.1.3: Models and variables Lab 1.1.4: What­if analysis

Lab 1.2: Post­layout channel Lab 1.2.1: Extracted post­layout net(s) via NPro Lab 1.2.2: What­if analysis with layer stackup variable(s)

3. Tutorial 2: Post­layout review with NPro

Lab 2.1: Post­layout data inspection Lab 2.2: Layer stackup & Pad­stacks management Lab 2.3: Post­layout batch export

4. Tutorial 3: General modeling with MPro

Lab 3.1: General modeling flow Lab 3.1.1: Define variables Lab 3.1.2: Simulation plan Lab 3.1.3: Data collection Lab 3.1.4: Modeling Lab 3.1.5: Optimization/Prediction Lab 3.1.6: Model generation

5. Tutorial 4: T­Line modeling with TPro

Lab 4.1: T­Line model inspection Lab 4.2: Layer stackup modeling Lab 4.3: T­line model batch processing Lab 4.4: T­line model analysis

2

Page 4: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

6. Tutorial 5: IBIS modeling with BPro Lab 5.1: IBIS model inspection Lab 5.2: IBIS model generation

From data sheet From transistor design From existing simulation data

Lab 5.3: IBIS model performance report

7. Tutorial 6: S­parameter analysis with SPro Lab 6.1: S­parameter file inspection Lab 6.2: S­parameter analysis Lab 6.3: S­parameter files batch processing Lab 6.4: S­parameter report generation

8. Tutorial 7: DPro DDR post­processing

Lab 7.1: Data set­up Cmd/ctrl DQ/DQS Clock

Lab 7.2: Data processing and report

3

Page 5: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

SPIPro Overview

SPISim’s SPIPro is a software designed from ground up to meet various signal, power integrity design challenge and analysis needs. Utilizing modularized architecture, SPIPro’s different modules integrates closely on the same framework yet also allow customizable flow. The diagram below show the components and software stack of SPIPro:

SPIPro includes the following key components:

CPro: For channel building and serve as design cockpit to integrate with various modeling components and provide simulation control;

NPro: For post­layout design review and net extraction to CPro; VPro: For general waveform analysis and stimulus generation; BPro: For all aspects of IBIS modeling, analysis and reporting; SPro: For all aspects of S­Parameter modeling, analysis and reporting; TPro: For all aspects of transmission line modeling and analysis; MPro:For general modeling, optimization and prediction; DPro: For DDR specific post­processing and reporting.

Together, SPIPro provides strong support for most SI/PI engineers’

day to day work tasks. Working with simulator/2D field solver provided by HSpice or SPISim’s SSolver (ETA 2016), it provides practical, effective yet very affordable solution. SPIPro’s general workflow is shown in next page.

4

Page 6: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

This rest portion of this tutorial will walk through the use case of each SPIPro’s module.

5

Page 7: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

Tutorial 1: Channel builder with CPro

This tutorial is an introduction to channel modeling and analysis using SPISim’s CPro module.

The Problems: Channel analysis starts from topology definition, followed by models

assignment and finally circuit simulation and post­processing. For pre­layout analysis, the topologies are mostly created from scratch for architecturing or floor planning purpose. For post­layout validation, they are usually extracted from layout design with actual geometry (e.g. trace width and length) and layer stackup (e.g. layer thickness and material properties) values. In channel elements’ models, oftentimes user will want to define variables as part of the parameters for what­if analysis. Alternatively, one may also perform single simulation interactively. All these tasks are very labor intensive and error prone if done manually. Thus a highly automatic process is very desired.

To achieve these, CPro module in SPIPro provides topology focused

channel analysis capabilities. These features will be briefed in this tutorial.

Usage Scenarios: Use CPro to perform the following tasks:

Create: Create a free­form channel from scratch; Review: Review channel(s) extracted from post­layout nets; Simulate: Simulate channel in both time or frequency domains; What­if: Use variables in channel to perform what­if analysis.

Test case: Download test cases used for CPro tutorial from the link below: http://www.spisim.com/download/tutorials/CPro.zip

6

Page 8: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

Set-up environments: CPro add­on runs on top of NPro module. To use CPro’s features, first

switch to NPro module either in place (first NPro menu item as circled and selected below) or launch NPro as a standalone application (second NPro menu item circled below).

Once activated, CPro’s functions will be available under both “Net”

and “Schematic” main menus as boxed below in red. Among which, those under “Net” menu are for post­layout extraction from NPro to CPro, and those under “Schematic” menu are dedicated to schematic ot channel to be edited and analyzed. The first item, “Channel Builder” is a schematic editor with system channel focused. (Support IBIS, T­Line, S­param etc)

7

Page 9: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

Lab 1 Free form channel: In this lab, we will use channel builder to create a channel from

scratch, assign models and variables, then perform both interactive and what­if analysis. Models used for this lab are also under “Lab1” folder.

Lab 1.1.1 Build free form channel: To start, invoke “Channel Builder” from “Schematic” menu. A blank

schematic with elements pallette at the right will appear. The topology below is the channel we will build:

Follow the procedures below to complete this build: Drag and drop elements from palette and drop them to the canvas,

from left to right, select and drop; IBIS Differential driver Lossy TLine Sub­circuit (block with “X” symbol) S­Parameter (block with “S” symbol) IBIS Differential receiver

Try to align them roughly on the same position horizontally using the automatic placement guideline.

8

Page 10: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

At this moment, connections can’t be made yet as TLine, Subckt and S­Param blocks do not have pins. We need to specify models in order to show their pins on the blocks.

Use system’s file to open the Lab1 folder, alternatively, use “Favorite Folder” available under “Window” menu then right click to add “Lab1” folder as one of the favorite folders.

Now we are ready to specify models: Right click TLine block , select “Edit properties”, then select

the middle radio button to use W­element. Then drag­N­drop MSSE2.tab from either system’s file explorer or “Favorites” window. Click “OK” and four pins will show up for this T­Line block.

Right click subckt block and select “Edit properties”. Drag­N­drop TwoVia_1to6.inc to the models list. After clicking OK, four pins will appear.

Do the same with S­parameter block using “Channel.s4p”; For driver and receiver, specify IBIS model: use

“DQ_FULL_333” for Tx block and “Input_333” for Rx. Click “Assign to P pin” for both cases. (N driver pin will be assigned with inverted signal automatically). Also specify the stimulus as PRBS with 333MHz for Tx. As shown below:

9

Page 11: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

To make connections, either use left mouse to drag from one pin to

another, or select a group of from and to pins and press “C” to connect.

10

Page 12: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

Lab 1.1.2 Interactive analysis: With connection made and model, stimulus assigned, we are ready to

simulate. First, save the created schematic to a folder with “.ccb” extension. ccb stands for CPro Channel Builder. Since there are no variables (yet) at this moment, we can only do interactive analysis for this particular setup. Analysis can be done in time domain or frequency domain. In the later case (FD), channel’s S­parameter will be extracted. Alternatively, user may export spice netlist only via “Schematic”: “Export spice file”.

To simulate, first specify path to HSpice simulator from “Options”: “Main” tab. For time domain analysis, Tx/Rx pins will be probed automatically by default. To probe more points, user may place “Voltage Probe” from palette to schematic then make connection to interested pins. Select “Schematic”: ”Simulate”: “Time Domain: Simulate one case”. Change settings seen below if needed.

11

Page 13: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

Note that in settings above, default waveform tab will be used to display results. To display waveform in a separate window, launch “VPro” as a standalone window first from main menu “Module”: “Window: VPro”.

Simulation should take just seconds and waveform list will be opened automatically. Select Tx/Tx pins to view results in place.

Note that the default working folder will be “SIM” folder in the same

folder where .ccb file is saved. “INC” folder will have T­Line related config. files. If schematic was simulated before being saved, system’s temporary folder will be used to hold simulation results.

For basic waveform operation, right click on the waveform and choose actions. For advanced waveform manipulation such as measurement and eye, switch to “VPro” and operate from its main menu.

For frequency domain, similar settings will be prompted. After that, user will need to arrange input/output ports and simulator will be used to extract channel’s S­Parameters. With these .snp files, eye analysis can be performed synthetically without time consuming bit­by­bit simulation.

12

Page 14: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

Lab 1.1.3 Models and variables: In this session, we will define sweep variable for what­if analysis.

Most elements can have variables defined as part of their parameters. First, go to “Options” menu and select desired variable pattern in “CPro” tab.

After that, right click element to be swept and define variable

according with pattern. For example, if T­Line’s length will be swept, we can use %TL1LEN to describe this variable. Its value will be defined later on. For device models, user may specify two or more to represent different corners.

For IBIS, user can select different corner then click “Assign to P Pin” and add that model/corner combination to the list. Repeat for different driver

13

Page 15: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

models or different corners as needed. All these will be swept through as model/corner combinations.

For elements which support dropped model, user may right click on

the selected model in the list to invoke built­in, type specific editor or inspector for these model. This allows user to get properties like T­Line impedance, S­Parameter insertion loss, and IBIS waveform data etc right away in place.

14

Page 16: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

15

Page 17: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

Lab 1.1.4 What-if analysis: With variable(s) defined, we can do what­if analysis. First, click on

the channel builder to bring variable table up at the left. Switch to the “Variables” tab. The variables defined in the channel will be indexed here. For model with different corners, their values will be listed automatically. For other variable such as %TL1LEN, user can click on the “VALUE” cell and enter sweep value. Supported value formats are:

List of values, separated by comma “,” MIN:STEP:MAX. For example, 0.1:0.1:0.5 is equivalent to 0.1, 0.2,

0.3, 0.4 Click the button shown in the screen below to “generate simulation

plan”:

User will be able to choose sampling methods in next steps. Full factorial

and space filling are provided in place by default. Alternatively, user can use MPro or other tools like Excel to generate a sampling table, then use “Load Existing” to use this simulation plan. Note that when using self­generated table, the column names must match the defined variable names including leading “%”.

Generated simulation plan will be summarized in a table like below:

16

Page 18: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

With the simulation plan table defined, user can select “Simulate”: “Time domain: sweep sim” and these settings will be simulated sequentially. A column with generated spice file name will be created in the selected simulation plan table. Simulation is done in separated thread. Progress will be updated accordingly and final results will again be shown in the “File list” window for user to choose and review.

Should there be any error which prevent simulation being done successfully, user may scroll through the messages in the output window for debugging purpose. SPIPro also comes with powerful editor under “Window”: “Text Editor” which can be used to debug and simulate particular spice file in place.

17

Page 19: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

Lab 1.2 Post-layout channel: In this lab, we will create net’s schematic extracted from post­layout

via NPro. The elements on the post­layout nets, such as traces and vias, are based on actual geometrical (such as trace width and layer stackup thickness) and material (such as permittivity and conductivity) from design. We will also do a what­if analysis to sweep one of stack­up’s parameters. Files need for this lab is in the “Lab2” folder.

Lab 1.2.1 Extracted post-layout net(s) via NPro:

First, switch to “Layout” window, then open the “Lab2.npd” file from “File” in main menu or drag­N­drop onto this layout tab. A “Layer window”, will be activated at the left. This window allows user to control visibilities of different layers and objects. Follow the set­up below and make sure DDR traces are shown in the layout.

To select net(s) to be extracted, first switch to “Net” pane in this layer window. To find interested net(s), either enter net name (wildcard allowed)

18

Page 20: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

and click “Filter” button or simply scroll down the sorted net list. Signal/Power/Ground net type can be assigned either in place under “TYPE” column or via menu “Net”: “Assign Pwr/Gnd nets”. Once net names are selected, click the “High­light Selected” button to highlight and select these nets. They will be displayed in white while others dimmed to gray (Click “Enable all” to show all nets in their original color).

With nets highlighted, user can specify models used for components

on this net and the driver stimulus as well. Optionally, user may skip this step and extract schematic directly then assign models in channel builder by right click to edit properties. If there are several nets to be extracted together, or to extract in batch mode, it’s suggest to have models and stimulus assigned in advance within this step so that proper default values are assigned.

19

Page 21: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

Schematics of selected nets can be exported using “Export net to

schematic” menu under “Net”. A dialog like below will be prompted asking user to assign driver pin. Layout of generated schematic will be arranged automatically with signal source at the left. A channel should only have one driver pin.

20

Page 22: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

Extracted channel schematic will then be generated. User may follow aforementioned procedures to perform interactive or what­if analysis. As these nets are from post­layout design, all the traces are based on actual design info like stackup geometry, trace width and material properties. Via model can be either predefined L/C value or estimation based on pad­stack’s geometry info. including PCB height and pad and barrel width etc.

Lab 1.2.2 What-if analysis with layer stackup variable(s): In this lab, we will specify one of the stackup parameter as a variable

and perform what­if analysis. Repeat the process in previous lab until right before simulation. Right

click one of the T­Line block to edit its properties. As this channel is built from post­layout extraction, all the T­Line model are stackup based as indicated in the selected radio button “Stackup design” below.

Any of the variable in the stackup settings can be customized as a parameter, just follow up the variable pattern and define accordingly. In the example below, we use “%TRW” to represent the trace width. The key point is that user needs to export the config as file before closing the dialog to register the change. With this step done, user will see the variable “%TRW”

21

Page 23: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

in the “Variables” tab as described previously and can be used to perform what­if simulation.

There are no limitation on how many stackup variables one can use in a channel. The balance is between the number of simulation to be performed and the number of variables. For example, if three variables are defined and each has 5 value, total number of simulation needed for full factorial sampling method will be 3^5=81. In this case, one may want to use space filling or other sampling algorithm to reduce number of simulation cases.

22

Page 24: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

Tutorial 2: Post-layout review with NPro

This tutorial is an introduction to review post­layout design and manage relevant data using SPISim’s NPro module.

The Problems: While pre­layout analysis usually provides guidelines to design

architecture or floor planing, it is post­layout analysis which can verify the completed design. In addition, post­layout simulation can also be used to investigate issues identified in test board or prototype in the lab… usually by means of various what­if analysis. Thus a signal/power integrity flow is not complete without a post­layout module.

NPro module in SPIPro provides post­layout focused capabilities to

support navigation and investigation of completed design. It works closely with CPro , the channel builder, for post­layout analysis. Its features will be briefed in this tutorial.

Usage Scenarios: Use NPro to perform the following tasks:

Inspect: Navigate and review post­layout design; Design: Stackup/padstack management and design mock­ups; Analysis: Net analysis and extraction for channel analysis.

Test case: Download test cases used for NPro tutorial from the link below: http://www.spisim.com/download/tutorials/NPro.zip

23

Page 25: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

Set-up environments: NPro is a top­level module in SPIPro framework. Simply select the

“Module: NPro” as first boxed in red below to switch to NPro in place, or select “Window: NPro” to launch NPro as a standalone application window. Note that one instance of NPro support opening multiple layout files in the same application. These layout windows can also be pull­out of SPIPro window to place on the system’ desktop and compare side­by­side. Test case used for NPro’s tutorial is under “Lab1” folder.

NPro’s main analysis functions are highlighted below. Main menus

after “Net” are provided by other add­ons such as “Schematic” from CPro and “Waveform” from VPro.

24

Page 26: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

Lab 2.1 Post-layout data inspection: In this lab, we will show how to navigate post­layout design and

perform simple mock­up. The mock­up process is particularly useful for planning of power/ground planes.

The key UI for post­layout inspection is the “Layout” window shown below. It has several tabs focusing on layer/object, net and component respectively. These items’ visibilities can be turned­on or off and elements on nets can also be reported as a table.

Design navigation and mock­up editing is done via the functions

under “Draw” and “View” menu. Together, they provide useful features for data inspection for signal integrity or power integrity applications.

25

Page 27: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

Lab 2.2 Database management: Most of the post­layout design format for manufacturing purpose back

annotate layer stackup info (height), material properties (permittivity, conductivity etc) and pad­stack info. That means user need extra effort, sometimes need to re­enter the data, to incorporate these info. into design. NPro’s database management support import/export with visualization, as shown below for stackup and pad­stack info.

Use provided .npd file to experiment changing these design settings

then export/import to be reuse for design of different revisions. These management function are provided under “Edit” main menu.

26

Page 28: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

In addition to stackup and pad­stack info, net properties such as power

domain and signal/ground info, pin driver/receiver model and stimulus etc can also be assigned and saved as part of design information for review or analysis. The net and model assignment capabilities are provided under “Net” main menu.

27

Page 29: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

Lab 2.3 Post-layout batch export: In CPro tutorial Lab2, we have shown how to perform post­layout net

extraction to channel schematic in CPro for further analysis or simulation. To batch export two or more nets to disk, the process is very similar:

Invoke “Net”: “Setup Pwr/Gnd Nets” to set up net’s power domains; Select and highlight interested nets in “Net” tab of “Layer Window”; Invoke “Net”: “Setup models” to configure Tx/Rx and stimulus etc; Invoke “Net”: “Batch exporting nets” to bring up UI shown below: Specify Tx pins and target to be exported; Data will be exported to the specified folder.

28

Page 30: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

Tutorial 3: General Modeling with MPro

This tutorial is an introduction to general modeling and optimization using SPISim’s MPro module.

The Problems: There are many factors involved in system’s channel analysis. For

example, layer height, trace’s width and spacing all affects transmission line’s impedance and crosstalk. Both of trace length and driver strength also play important roles on signal quality. To identify major factors contributing to a particular performance matrix, one usually needs to have a systematic method and flow and do such investigation and modeling: create a design with variables, define simulation plan, execute and collect data, analyze and generate model, and finally use this model to perform prediction, optimization or generate associated behavioral syntax.

To achieve these, MPro module in SPIPro provides functions to

support general modeling flow. These features will be briefed in this tutorial.

Usage Scenarios: Use MPro to perform the following tasks:

Design: Create DOE, space filling or other design for modeling; Execute: Execute the simulation plan and collect data; Modeling: Model inputs/outputs with linear or nonlinear algorithm; Predict: Predict and optimize performance based on the model; Analyze: General analysis such as filtering, SQL data mining.

Test case: Download test cases used for MPro tutorial from the link below:

http://www.spisim.com/download/tutorials/MPro.zip

29

Page 31: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

Set-up environments: MPro is a top­level module in SPISim’s platform. To use MPro’s

features, first switch to MPro module either in place (first MPro menu item as circled and selected below) or launch MPro as a standalone application (second MPro menu item circled below).

Along with MPro’s add­on, such as BPro, menu items will be enabled if the module are activated, as shown below.

30

Page 32: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

Lab 3.1 General modeling flow: In this lab, we will use layer stackup modeling as an example to create

a model for a three line microstrip setup. Field solver will be used to perform simulation on TPro module. MPro’s features for all stages of modeling flow will be discussed. Test cases used are under “Lab1” folder.

Lab 3.1.1 Define variables: A layer stackup of three single ended microstrips have been created.

TPro is used to create this layer stackup. In the configuration, we have defined three variables: signal layer height H2, trace width W and trace to trace spacing S. All but these three variables have been given numerical values.

31

Page 33: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

Lab 3.1.2 Simulation plan: With three numerical variables, number of simulation needed to cover

the solution space depends on the variable ranges, how fine the grids are and the sampling algorithm. If each variable has 10 possible values, full factorial sampling plan will yield 10^3 = 1000 test cases for simulation. The number will grow quickly with more number of variables. In this cases, we use “RSM” sampling algorithm to create a 15 cases run for this design:

The sampling algorithm will generate value of either “­1”, “0”, “1”

which usually map to min, mean and max values of the variables. With that table generated, we add columns for other constant field required for stackup generation:

As we have ranges these variables at hand, next step is to map the

generated, almost blank table to a table with appropriate values. “Design”: “Map Formulas” is invoked which takes scripts to map different columns.

32

Page 34: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

The result table has values set for each of 15 test cases, and can be used to generate layer stackup and extract performance parameters for each of them. In this example, we calculate “self­impedance” from result stackup.

33

Page 35: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

Lab 3.1.3 Data collection: The data collection step includes executing simulation plan and

extract the performance matrices, resulting a table of inputs and outputs which can be used to create model. Generally, a text based template file, such as a spice simulation deck, will be generated. The sweeping table like generated in previous section will be used to create simulatable deck based on the template, and single or multi­threaded based simulation will be performed on all these test cases and post­processed to gather results.

In our lab, stackup settings need to be computed for each case as

width and spacing will push the starting point of next traces further, thus simple text replacement is not applicable. We import the generated table and performed field solving and extracted the impedance in TPro:

34

Page 36: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

A plot of the extracted performance target, self impedance in this case,

show their values are in a reasonable ranges. Thus the simulation is valid.

35

Page 37: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

36

Page 38: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

Lab 3.1.4 Modeling: As we have a table containing input conditions and measured

performance as well, we can create models using different algorithms to map these data. Model predicted results can then be compared with actual, simulated performance target to see how well the model stands. When creating model, one needs to specify input variables, output targets, algorithm to be used and modeling parameters:

Use second order RSM yields prediction errors about 1~3 ohms

Use feed forward neural network with five neurons in the hidden

layers gives more accurate modeling based on the provided data set.

37

Page 39: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

38

Page 40: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

Lab 3.1.5 Optimization/Prediction: Since the neural network gives a more accurate prediction, we can use

it to predict a configuration of desired target, 50 ohms in this case. As all neural networks in MPro and RSM with second or higher terms are nonlinear, we can use either “Direct method” (based on Simplex algorithm) or “Genetic algorithm” to perform the optimization, as shown below.

Should the prediction be successful, result configuration will be suggested.

39

Page 41: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

40

Page 42: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

Lab 3.1.6 Model generation: With this model, one can generate associated stackup model using

predicted value. In addition, Verilog­A syntax using “Model”: “Gen Verilog­A model” menu can also be generated to be run in circuit simulator.

41

Page 43: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

Tutorial 4: T-Line modeling with TPro

This tutorial is an introduction to transmission line modeling and layer stackup planning using SPISim’s TPro module.

The Problems: Transmission lines (T­Line for short) are main components of

system’s communication channel. Paths connecting different components between driver and receiver are represented by T­Lines. A T­Line introduces delay, its frequency response also results in dispersion and different impedance across the path causes signal reflection and inter symbol interference. In addition, different T­Lines running in parallel also causes signal coupling and attenuation. In addition, pre­layout study of a system design also often starts with planning of layer stackup, where T­Lines run through. Thus it’s important to have a systematic flow to supports these tasks and T­Line analysis for signal integrity considerations.

To achieve these, TPro module in SPIPro provides T­Line focused

capabilities. These features will be briefed in this tutorial.

Usage Scenarios: Use TPro to perform the following tasks:

Inspect: View T­Line model performance and frequency contents; Modeling: Layer stackup planning and modeling; Processing: Batch post­processing to extract performance parameters; Analysis: T­Line model analysis and tuning.

Test case: Download test cases used for TPro tutorial from the link below: http://www.spisim.com/download/tutorials/TPro.zip

42

Page 44: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

Set-up environments: TPro add­on runs on top of VPro module. To use TPro’s features, first

switch to VPro module either in place (first VPro menu item as circled and selected below) or launch VPro as a standalone application (second VPro menu item circled below).

If TPro module is installed, its menus will appear under both

“Window” and “Tools” menus. Menu items will be enabled if the module is activated, as shown below.

43

Page 45: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

Lab 4.1 T-Line model inspection: In this lab, we will inspect T­Line’s tabular format frequency

dependent data and some of their parameters. Test cases used are under “Lab1” folder.

First, open T­Line data viewer from “Window”:”T­Waveform”

There are four ways to open T­Line data files in .tab format:

Main menu “File”:”Open”; Drag­N­drop files on to the File List window, as shown in the middle

below; Open a “Favorite” window, add interested path and double­click or

right click and open files, as shown in the left below; This favorite window will persist next time SPIPro is launched; More commonly visited folders can be added the same way; To remove folder, select and right­click to “Remove” To delete folder physically, right­click and select “Delete”

Open a “File explorer” window, as shown in the right below; This explorer window will persist next time SPIPro is launched; All connected drives, including network drives, will be

scanned. If one or more network drives becomes unavailable, it may take a while to complete the scan.

44

Page 46: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

There are two ways to view waveform data. From the lower part of “File List” window, either:

From “Signal view” tab, select one or more interested R/L/G/C matrix elements then click “View Selected”. Waveform will be displayed in the aforementioned “T­Waveform” window.

From “Matrix view” tab, click to selected interested cells. If desired data to view is one of R/L/G/C matrices, select so accordingly from the drop­down list. For general T­Line parameters, simply select the cell representing targeted line.

To compare same data from different files, multi­select those files in the file list (upper half of File list window). Same ports/matrix elements of these files will be plotted together.

Once waveform have been displayed, use the control in the

T­waveform window as circled below to view different properties or perform analysis like impedance, delay, attenuation and crosstalk etc.

45

Page 47: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

In “T­waveform window”, all the V­Pro supported operations like

measurement, draw and calculation etc can be performed via associated main menu items.

To view matrix contents of T­Line’s model data, select interested frequency from the the “Freq. view” tab of the “File list” window, then click “View Selected”. Full matrix of selected frequency point be displayed in a table window.

Contents in the table can be copied and pasted to other application such as Excel etc.

46

Page 48: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

Lab 4.2 Layer stackup modeling: In this lab, we will specify geometry properties of T­Line trace layout

in a layer stackup, use 2D field solver to obtain their model data and perform measurement. The result data set can be used to form a prediction formula to estimate best/worst layer stackup/trace geometry configuration in terms of desired performance targets such as impedance, attenuation or crosstalk. The schematic which we are going to synthesized is shown below. Test cases used are under “Lab2” folder.

Invoke a layer stackup window, shown below, via “Window” menu. This window is divided into two parts. At the upper portion is the stackup example and variable definitions. The lower part include four tabs to define configuration, specify variable values, what­if instant prediction and generation flow. In this step, “Config.” tab should be chosen. The upper portion of this tab is the stackup settings and their material properties. The bottom part is the trace layout in the signal layer. The setting in various cells can be either a numerical value or a variable. In the latter case (variable), their values may be defined in a sweep table.

In this lab, select “Stripline 1B1A” in the preset to load predefined stackup. Then click “Add trace” button three times to add three traces in the signal layer then assign their trace type as “DP” (differential pair).

47

Page 49: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

For those parameters which user has no intention to sweep, their numerical values can be entered directly now. Alternatively, click “Create Table” button at the lower right to create predefined table with headers and first tentative row. Layer stackup window will also switch to “Table” tab automatically upon clicking “Create Table”. User then can click “+” button to add more rows and enter values according each variable’s definitions, select rows and use “­” button to delete if needed, export this table to be edited outside SPIPro using tool like Excel and import later.

In this lab, let’s import externally predefined table SLDP3.csv, result shown below:

Since there are three rows in this what­if sweeping table, three different T­Line models will be created later. User may specify as many rows as needed to cover the desired solution space.

With valid values specified, user may click particular row, thus particular T­Line setup and see their actual geometry instantly at the top of stackup window. Use buttons at the right to zoom in/out etc if needed.

To help user identifying meaningful variable range, TPro also comes

with a prediction database built from more than 100,000 existing T­Line models. User may switch to “Predict” tab and experiment with different variables’ values to see their impact on impedance, crosstalk and

48

Page 50: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

attenuation. Click “Copy Vars. to Table” button at the bottom to add a row in the “Table” tab with current variable settings.

At this stage, we have defined stackup, trace layout in the “Config”

tab and valid variable values in the “Table” tab. We are ready to generate models! But first, check the “TPro” option tab and make sure field solver has been specified. Also make sure the number of CPU thread specified in the “Main” option tab matches allowed solver license. Both options can be accessible via SPIPro’s “Tools”: “Options” menu.

Now switch to “Generate” tab to go through the set­up process, as shown below.

49

Page 51: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

First, specify output folder where these T­Line models will be generated. If the same folder will be used by multiple project, optional prefix may be used. In the middle portion, specify measurement frequency and the performance targets to be measured. After that simply follow step 1~5 by clicking button at the right to go through the process. Here are the expected outcome:

Step 1: Clean­up output folder. Optional, it will delete previously generated T­Line model in the output folder.

Step 2: Generate stack up input files. Depending on the field solver used, the input format will be different. Depending on number of model to be setup, this step should not take more than a few seconds. The outcome will be plain text stackup files for solver. For each test case, one single­ended uncoupled and/or one differential pair uncoupled stackup files will also be generated for each victim. These are used to measure and report their Z0 and/.or Zdiff value for manufacturing specification.

Step 3: Simulate stackup input. This is the field solving step and may take long time. User can see progress as it simulates. If error happened, user will need to check the error output messages and fix the config. or what­if table problem then go through step 2 and 3 again. Expected outcome of this step is tabular T­Line models.

Step 4: Post­processing T­Line model. This step should not take longer than a few seconds. Each tabular model generated in step 3 will be processed to extract specified performance targets. Each tabular file will result a csv file containing measured results for this setup.

Step 5: Combine inputs with result table. This will combine all the csv results generated in Step 4 and combine them with original table specified in “Table” tab. The expected outcome is a single table, which can be exported to csv, containing both input and performance output data. User may use SPIPro’s MPro module or other optimization tool to create prediction model for best/worst case configuration.

50

Page 52: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

Lab 4.3 T-Line model files batch processing: In this lab, we will batch process several existing T­Line model files.

For each of the files to be processed, the measured report will be saved as a csv file. In addition, validation spice decks may also be generated with parasitics loads at both ends to further validate the T­Line’s performance. These results may be used to build a T­Line model library for future quick use or reference of signal integrity analysis. It is also useful oftentimes to check existing models at hand before massive what­if pre­layout study.. Test cases used are under “Lab3” folder.

Batch processing of T­Line model is done via TPro tab, shown at the top of the TPro’s analysis submenu:

The TPro window consists of several tabs, representing the flow for

the batch processing. Describing below: Files: User can specify .tab files to be batch processed here

either by clicking “Select Files for Analysis” button or drag­N­drop from system’s explorer here. Right click on the items allow user to view their data in the waveform window if needed. Note that the same measurements, such as impedance and propagation speed etc, will be performed to all these files. So user need to make sure these files share similar properties so that measurement will be meaningful.

Targets: In this tab, user specify what to measure. In general, select one of the targets at the top then Click “Add” to define this targets appearing at the bottom. There are two sub tabs for targets: “Victim” and “Trace” properties:

51

Page 53: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

Victim properties: Victim “only” measurements is for single­ended or differential­pair uncoupled (SEUC/DPUC respectively) victim traces. Thus, the file’s corresponding suffix, similar to the “SEUC” or “DPUC” files generated in the Lab2’s modeling flow, must match. First, make sure the trace type is correct and the victim trace is specified as “TRUE” before proceeding to add measurement target(s). For example, one can’t determine a given six line T­Line model is comprised of three differential pairs or six single ended traces. Thus the proper settings should be assigned first to ensure the measurement is meaningful.

Trace properties: Specify the matrix element by clicking on the cell as shown below. The selected cell will be in black. Then select the target and click “Add”. Trace target with the specified matrix suffices will be added to the target list below accordingly. Repeat the same process if needed. Each of the measurement

will have its own column in the final csv file. Results: In this tab, specify measurement frequency if needed.

Click “Run” at the bottom to process each of the files selected in “Files” tab to measure all the defined targets. Result csv file will be shown in the middle. Click the csv file to see its content in result window at the lower right of the main window.

Validate: This tab provides an optional step allowing user to specify the desired configuration for simulation based validation. Tool can generate HSpice deck to instantiate a “W­Element” using provided tabular model and corresponding parasitics like shown in the schematic at the top as well as the stimulus. Click “Run” to generate the decks and simulate. The process should take just a few seconds and resulting waveform will be opened automatically in the file list window for further inspection or comparison.

52

Page 54: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

Various tabs of the “TPro” window for batch processing:

“Files” and “Targets” tabs

“Results” and “Validate” tabs

53

Page 55: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

Validation results will be opened automatically in the waveform list window.

54

Page 56: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

Lab 4.4 T-line model analysis: In addition to the features highlighted in previous labs, TPro module

also provides several utility functions for T­Line model processing. They can be invoked via “T­Line analysis” menu under “Tools” main menu. A GUI like below will show up. It contains three regions in general:

Input: at the top. Usually user will drag­N­drop files from system’s explorer or “Favorites” window and drop here. In case .tab files have been opened in the File List window or displayed in the T­waveform window, the first two radio buttons will become available. Right click the list to remove one or all the files from the candidate.

Settings: in the middle, this portion is analysis dependent. Output: at the bottom. User may specify the resulting waveform to be

displayed in the File List only (Stored in memory) or output to disk as well. For the later case (write to file), user may specify output path. Some of the functions come with “Intro” pane like below, which gives

more detailed description on the processing purpose. When mouse hover across menu, a simpler description will always be prompted via tool­tips.

55

Page 57: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

Tutorial 5: IBIS modeling with BPro

This tutorial is an introduction to IBIS modeling and analysis using SPISim’s BPro module.

The Problems: Driver and receiver(s) sit at both ends of communication channel.

These circuits are usually represented by IBIS models. An IBIS model has advantages over its original transistor design over IP protection, simulation performance and universal acceptance. An IBIS model can be generated from data sheet or spec.. This will be useful for early stage channel study when models are not yet available or simply for performing a what­if analysis to provide impedance/slew rate feedback for buffer design. Eventually, an accurate IBIS model needs to be generated from transistor design or their simulation data. A systematic procedure needs to be followed to assure the quality and accuracy of generated models. Modeling engineer may also need fine tuning the data curve to remove some glitches or for performance optimization. Lastly, given a library of IBIS models, user often need to scan their performance parameters in order to identify appropriate buffer to be used or adjust output stage impedance accordingly.

To address all these needs, BPro module in SPIPro provides IBIS

focused capabilities. These features will be briefed in this tutorial.

Usage Scenarios: Use BPro to perform the following tasks:

Inspect: View IBIS model and manually tune/edit the model data; Modeling: Generate IBIS model from various data sources; Analysis: Extract performance parameters for IBIS file/library.

56

Page 58: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

Test case: Download test cases used for BPro tutorial from the link below: http://www.spisim.com/download/tutorials/BPro.zip

Set-up environments: BPro add­on runs on top of MPro module. To use BPro’s features,

first switch to MPro module either in place (first MPro menu item as circled and selected below) or launch MPro as a standalone application (second VPro menu item circled below).

Once enabled, BPro related functions will be accessible via “IBIS” main menu as shown below.

57

Page 59: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

Lab 5.1 IBIS model inspection: In this lab, we will inspect an IBIS model’s data and some of their data

curves. We will manually tune some of the data points and propagate changes back to the original model. Test cases used are under “Lab1” folder.

To invoke BPro’s IBIS inspector, select “IBIS Inspector” under the IBIS menu. Tool will then ask to specify an IBIS file to be inspected. Please select the v69adq.ibs under Lab1 folder. Note that the inspector will also open IBIS library path at the same time. The library path can be specified in BPro’s option menu via “Tools”: “Options”.

An IbsModel navigation window, boxed in green below, will show up on the left. There are two views: “Logic view” and “Structure view”. Navigate through the “Structure view”, expand and select one of the model element, the “Text” view of associated ibis file will be opened as boxed in red at the right below. BPro will automatically scroll to the proper location of this file where the keyword is selected is highlighted. Select different keyword or waveform at the left and see how the text view update to follow the change.

58

Page 60: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

Select a rising waveform then switch from “Text” view to “Wvfm” view. Many control element will become visible at the top of the waveform as boxed in red below. These controls can be used to fine tune and manipulate waveform data of existing IBIS file.

To manipulate waveform data, turn on the markers checkbox first, then

select one of the operation from the drop­down list next to “MAX” button, tune the whole trace or particular point by dragging one of the markers. When done, click “Conclude” button and the waveform content will be populated back to the “Text” view. Note that the ibis file is not yet saved at this moment. User need to save the file either via the “Text” view’s toolbar or by closing the text window and BPro will prompt to ask to save or discard the changes.

In addition to the tuning functions just mentioned, both the “Text” and

“Wvfm” view windows also provide many other analysis capabilities. For example, user can check the ibis file in place using “Check” button and navigate through the errors/warnings. Or add additional waveform pane to compare waveform data from different ibis file side by side.

59

Page 61: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

Lab 5.2 IBIS model generation: In this lab, we will generate IBIS models from different sources:

From data sheet From transistor design From existing simulation data

In the last two parts, we will be using publicly available, encrypted HSpice DQ model from micron as an example. Though this example is for DDR, similar processes can be applied to other types of IBIS modeling. Test cases used are under “Lab2” folder.

Functions of this lab can be invoked via “IBIS” menu, such as

“Generate spec model” shown below or “New IBIS model flow” menu to create IBIS model from transistor design or existing simulation data.

60

Page 62: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

Lab 5.2.1 Generate model from data sheet: BPro can create an IBIS file from spec/data sheet without doing

simulation. User only needs to fill in the spec. info such as slew rate and targeted impedance etc and an IBIS model will be generated within seconds.

After invoking menu for this function, a dialog like below will show up. User simply needs to fill in or modify existing values in each non­gray out boxes based on the spec./data sheet.

The settings can be exported to a config. file in plain text format to be imported for future use. HSpice compatible test bench circuits may also be generated for validation purpose.

Upon clicking “Generate” button, a spec. model with two waveform

tables will be created on the fly in the output directory. It will also be opened in the model inspector for further tuning/inspection if needed.

61

Page 63: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

Lab 5.2.2 Generate model from transistor design: Invoke “New Modeling Flow” from the “IBIS” main menu, the IBIS

modeling window will be opened as shown below. The window is divided into two portions: the upper part gives general

overview and instructions while the lower part perform the data collection and flow execution. Two modeling practices are supported: Generate IBIS model from original (transistor) design or from simulation data. Select one of the two tabs corresponding to the desired flow at the top and their data tabs will be enabled.

For this lab, select “From Org. Design” to start data entry for IBIS

modeling from original transistor data.

In the following steps, we are going to use Micron’s encrypted HSpice

model to create a corresponding IBIS model then correlate. Data file description: in the Lab 2 folder, user should find the

following files and folders:

62

Page 64: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

IbsModel: For reference only, containing final results; SimData: Containing simulated data, so that user can proceed with

the model process using these pre­simulated data; v69a_model.cnr: This is model of different corner settings, will be

“included” as part of the simulations. v69a_dqbuff.inc: This is encrypted buffer design from Micron. It

will be instantiated in the set­up deck to extract buffer responses. DQBase.sp: This is the baseline spice file BPro will build upon. v69a_dq_FrMicron.sp: This file is for reference only. It’s original

file obtained from Micron. Comparing to the DQBase.sp, user can see that simulation settings, corner and buffer instantiation has been disabled in DQBase.sp as BPro will add these settings automatically. Nevertheless, this file demonstrate how the encrypted spice buffer can be used for normal simulation.

Lab2.cfg: This config file is the setup for this flow. It is in plain text format and can be either used for reference, or imported into the BPro after modifying corresponding paths inside.

The modeling flow then is divided into several information collecting

steps and final execution: Project: Specify working folders and simulator, checker paths; Design: Specify buffer design type and buffer terminals; Stimulus: Specify various bias and control conditions to excite

buffer properly, also include settings used for different corners. Modeling: Specify how simulation data should be tuned for

waveform extraction. In particular the trimming options to avoid

63

Page 65: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

buffer overclocking. Also included are spec. parameters not used by simulation, but are required per IBIS spec.

Validation: Specify which performance parameters should be extracted upon successful model generation for validation purpose.

Execute: Step­by­step process to apply information gathered above for IBIS model creation.

These steps are represented by tabs’ screen captures shown below: Project: working directory, simulator path and golden parser path.

Various callback scripts may be provided for customization purpose.

Design: specify the base spice for BPro to parse and identify buffer’s subckt definition. User then specify driver type and associated terminal nodes such that BPro can instantiate a buffer instance on top of base spice.

64

Page 66: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

Stimulus: specify the buffer’s operating condition and excitation settings. The lower portion is a customizable table which extra rows can be added to specify buffer’s biasing condition and different corner’s control flags. In the example below, parameters and parameters for corner library have been specified to be applied to different model generation test benches.

65

Page 67: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

Modeling: specify the generated IBIS version and model names. BPro also provide trimming options to remove leading and/or trailing data points with tolerance to avoid buffer being overclocked. These are settings in head/tail trimming and Max VT duration lines of different corners.

Validation: specify performance parameters to be extracted once model is generated. A csv file will be produced accordingly.

66

Page 68: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

Execute: this is step­by­step process to apply information and settings gathered in previous tabs. User need to step through these process as needed. Several files will be produced at each step and user will have a chance to inspect and make correction if necessary. All but the step 3, simulate input files, take a few seconds at most. Several files need to be simulated in Step 3 to generate data for different IBIS table data.

In this lab, user may enter the settings or import the Lab2.cfg, then

click through the step 0~2, skip step 3 by simply copying provided simulated files in “SimData” folder to the working folder then continue from step 4 through the end. An ibis file will be generated at the end.

The fact that we can skip step 3 and continue the processes means that

user can simulate the generated test bench circuit outside BPro. Simply bring back the data with same naming convention and probing legends in the waveform file to continue the process.

67

Page 69: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

Lab 5.2.3 Generate model from existing simulation data: BPro also supports IBIS model generation from existing simulation

data. This is useful when simulating buffer and IBIS modeling are done by different engineers may be due to IP protection purpose. As long as the waveform conform to the BPro’s requirement and probing legend is done properly, original buffer design is not needed to generate its IBIS model.

We will be using waveform file in Lab2’s “SimData” folder to go

through this process. Original V69XXX buffer files and DQBase.sp are not required and can be removed… since we will not be doing any simulation.

By selecting “From Sim. Data” tab as shown below, the “Sim Data”

tab in the lower portion of modeling window will be enabled. It includes two sub­tabs: one to enter buffer’s operation condition and another to specify waveform information.

68

Page 70: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

In the simulation data tab, specify the existing waveform data and their probing legend(s) for each of the required data. Note that the simulation setup which produces these waveforms should be similar like generated from original buffer. For example, BPro expects VT waveform (VT0 and VT1 are under different test loads) to be low to high to low, such that rising and falling transition data can be captured accordingly.

Except for the “Sim Data” tab, all the other settings required are same

as previous lab. User need to fill in the data then start step 4 through the end of the execution process in the last tab.

69

Page 71: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

Lab 5.3 IBIS model performance report: In this lab, we will report various performance parameters of given

IBIS files and summarize in an table. To invoke this function, select “Report model performance” menu as shown below.

Drag­N­drop ibis files in Lab3 folder on the the list pane at the top.

Since each of these ibs files is about 8MB, it may take several seconds to complete parsing. Then specify the measurement threshold and reporting targets. Click “Report” to generate the summarized report.

70

Page 72: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

Within seconds, each .ibs file specified will be post­processed and a corresponding file with .csv extension will be generated in the same folder. These csv reports will also be opened automatically in the MPro’s table window for further review or charting. Each model in the ibs file will be analyzed. One can then use MPro’s charting function to plot data easily.

71

Page 73: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

Tutorial 6: S-parameter analysis with SPro

This tutorial is an introduction of doing S­parameter modeling and analysis using SPISim’s SPro module.

The Problems: For system electrical analysis, S­parameter models are often used to

represent frequency response of inhomogeneous components such as vias and connectors. These models, usually in touchstone .sNp or citi .cit formats, are usually extracted from 3D field solvers based on these components’ physical structures and material properties. Besides, S­parameters may also be obtained via VNA measurements in the lab. Lastly, a passive communication channel, which is comprised of aforementioned S­parameters and homogeneous elements like transmission lines, can also be represented with single S­parameter by cascading different stages in sequences. One or more such channel S­parameters via what­if analysis can be synthesized and analyzed very quickly for eye or ber (bit­error rate) analysis. A summarized report generated automatically for all these models of different conditions will save great amount of time and effort when identifying source of signal integrity problems.

To satisfy these tasks, SPro module in SPIPro provides S­parameter focused capabilities. These features will be briefed in this tutorial.

Usage Scenarios: Use SPro to perform the following tasks:

Inspect: View S­parameter’s waveform and frequency contents; Analyze: Perform tasks such as cascading, renormalization etc; Processing: Batch post­processing to extract performance parameters; Reporting: Generate TD/FD domain figures as a summarize report.

72

Page 74: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

Test case: Download test cases used for SPro tutorial from the link below: http://www.spisim.com/download/tutorials/SPro.zip

Set-up environments: SPro add­on runs on top of VPro module. To use SPro’s features, first

switch to VPro module either in place (first VPro menu item as circled and selected below) or launch VPro as a standalone application (second VPro menu item circled below).

If SPro module is installed, its menus will appear under both

“Window” and “Tools” menus. Menu items will be enabled if the module is activated, as shown below.

73

Page 75: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

Lab 6.1 S-parameter file inspection: In this lab, we will inspect S­parameters’ data and some of their

parameters. Test cases used are under “Lab1” folder. First, open S­parameter data viewer from “Window”:”S­Waveform”

There are four ways to open S­parameter files:

Main menu “File”:”Open”; Drag­N­drop files on to the File List window, as shown in the middle

below; Open a “Favorite” window, add interested path and double­click or

right click and open files, as shown in the left below; This favorite window will persist next time SPIPro is launched; More commonly visited folders can be added the same way; To remove folder, select and right­click to “Remove” To delete folder physically, right­click and select “Delete”

Open a “File explorer” window, as shown in the right below; This explorer window will persist next time SPIPro is launched; All connected drives, including network drives, will be

scanned. If one or more network drives becomes unavailable, it may take a while to complete the scan.

74

Page 76: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

There are two ways to view waveform data. From the lower part of “File List” window, either:

From “Signal view” tab, select one or more interested ports then click “View Selected”. Waveform be displayed in the aforementioned “S­Waveform” window.

From “Matrix view” tab, click to selected interested cells. The four quadrants represents like S11, S12, S21 and S22 of a 4­port parameters.

To compare same data from different files, multi­select those files in the file list (upper half of File list window). Same ports/matrix elements of these files will be plotted together.

Once waveform have been displayed, use the control in the S­waveform window as circled below to view different properties or perform analysis like TDR or PDA (peak distortion analysis) eyes for through type (S12 or S21) data.

75

Page 77: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

In S­waveform window, all the waveform based operations like

measurement, draw and calculation etc can be performed via associated main menu items.

To view matrix content of S­parameter(s), first select “S­table” via

“Window” menu. A table window will be opened as shown below:

There are two ways to view matrix contents. From the lower part of “File List” window, either:

From “Freq. view” tab, select one or more interested points then click “View Selected”. Full matrix of selected frequency point be displayed in the aforementioned “S­Table” window

From “Matrix view” tab, select one or more interested elements. After clicking “View Selected”, data of these elements across ALL frequency points will be displayed in the S­Table window.

76

Page 78: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

Lab 6.2 S-parameter analysis: In this lab, we will combine then cascade different S­parameters’ data

to form a channel’s s­parameters. The schematic which we are going to synthesized is shown below. Test cases used are under “Lab2” folder.

In SPro, the cascade function is performed stage by stage. Number of

ports between stages are the same in general. That means if one stage, such as via in the schematic above, is comprised of three s4p, they need to be combined before cascading can be done. Furthermore, the port ordering of each stage is sequential: inputs followed by outputs.

SPro provides many s­parameters operations accessible via “Tools”: “S­parameter analysis” submenu. In this lab, we have only one s4p representing a ViaA above. First we will clone another two instances, ViaB and ViaC so that this stage will have same 12 ports (6 inputs and 6 outputs).

First, select the “Clone” menu, then drag­N­drop ViaL1L6.s4p from either system’s file explorer or “Favorites” window on to the candidate window at the top right. In the middle section, specify another two same instance will be cloned. The bottom portion specify the output of the generated s­parameters. In this case, check the “Write file(s) to path” so that new s­parameters will be saved physically.

77

Page 79: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

To cascade S­parameters stage by stage, select “Cascade” menu, then

drag­N­drop candidates to the top­right list. In the middle section, select files to be cascaded from the left and arrange their order such that their top­down appearing order represent their left­to­right sequence in the schematic. Again, the output portion can be specified at the lower portion of the dialog.

78

Page 80: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

In fact, most of SPro’s analysis capabilities share similar UIs. Taking “Convert” function as an example. Three portions are included in the UI:

Input: at the top. Usually user will drag­N­drop files from system’s explorer or “Favorites” window and drop here. In case snp files have been opened in the File List window or displayed in the S­waveform window, the first two radio buttons will become available. Right­click the list to remove one or all the files from the candidate.

Settings: in the middle, this portion is analysis dependent. Output: at the bottom. User may specify the resulting waveform to be

displayed in the File List only (Stored in memory) or output to disk as well. For the later case (write to file), user may specify suffix to be added.

79

Page 81: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

Lab 6.3 S-parameter files batch processing: In this lab, we will batch process several S­parameter files obtained

either via parameter sweep of what­if analysis in frequency domain, or various lab measurement. For each of the files to be processed, the measured report will be saved as a csv file. These files may be further analyzed via tool like Excel or SPISim’s MPro module. Test cases used are under “Lab3” folder.

Batch processing of S­parameter is done via S­Pro tab, shown at the top of the SPro’s analysis submenu:

A “SPro Window” will then be shown at the left of the tool. It is comprised of three tabs representing three steps of processing:

Files: User can specify snp files to be batch processed here either by clicking “Select Files for Analysis” button or drag­N­drop from system’s explorer here. Right­click on the items allow user to view their data in the waveform window if needed. Note that the same measurements, such as insertion loss or return losses etc, will be performed to all these files. So user need to make sure these files share similar properties so that measurement will be meaningful.

Targets: In this tab, user specify what to measure. Select one of the targets at the top. All but the “File name” also requires selecting interested matrix elements. Click “Add” to define this targets appearing at the bottom. Repeat the same process if needed. Each of the measurement will have its own column in the final csv file.

Results: In this tab, specify measurement frequency ranges if needed. Click “Run” at the bottom to process each of the files selected in “Files” tab to measure all the defined targets. Result csv file will be shown in the middle. Click the csv file to see its content in result

80

Page 82: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

window at the lower right of the main window:

SPro tab for batch s­parameter processing:

81

Page 83: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

Lab 6.4 S-parameter report generation: In addition to various measurement and csv output, SPro can also

generate a summarized report for both time domain and frequency domain based figures and histograms. This batch processing capability is very useful in identifying problems among vast amount of S­parameter files obtained in lab or manufacturing environment. In this lab, we will go through the process to generate a summarized report for several USB3 channel S­parameters. After execution, a summarised report will be generated. Test cases used are under “Lab4” folder.

SPro’s reporting function can be invoked via “S­Parameter Analysis” menu, as shown below:

The reporting GUI is comprised of four tabs:

Global: Global settings related to S­parameters to be processed; FD Figures: Optionally add one or more FD figures to the report; TD Figures: Optionally add one or more TD figures to the report; Report: Select report folder, export settings then execute.

82

Page 84: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

In this lab, we will be processing several .s20p and generate TD/FD figures. Basically the flow is to start filling settings from “Global” tab from top to bottom, then add one ore more interested figures in FD/TD Figures tab, finally specify output folder and click “Execute” to choose .snp files to be processed in the “Report” tab. When processing is done, user will be able to see summarized report indexed by a top HTML file.

Here are detailed steps and some informations. For complete report syntax, please refer to the help document via tool’s menu. Global Tab:

Number of ports: specify number of ports for given .snp files S­Parameter type: select one from drop­down list:

Single: means the snp files are single ended and user will be able to specify Sss_i_j and Tss_i_j for these ports;

EvenOdd and Incremental: means the given snps are for full differential and their port order is specified as such. User may refer to on­line help or “Convert” analysis menu to see detailed EvenOdd/Incremental mode port ordering. Tool will convert each snp files and allow user to specify Sdd_i_j, Sdc_i_j,

83

Page 85: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

Scd_i_j, Scc_i_j and Tdd_i_j for the figure output. d and c suffix here stand for “differential” and “common mode” respectively.

Mixed: means the given snp has mixed single­ended and differential ports. With this selection, user need to proceed and specify next two settings, Single­ended port and Differential ports, by clicking on the text fields. Tool will do mixed­mode extraction and allow user to specify Ssd_i_j, Ssc_i_j, Sds_i_j, Scs_i_j and Tss_i_j as part of the reports. s, d and c suffixes here stand for “single­ended”, “differential” and “common­mode” respectively.

Reference impedance: optional, tool will renormalize first if specified; Extrapolation: optional, tool will extrapolate so that TDR plot will

have sufficient resolution. TD Settings: optional, used only if one or more TD figures are

specified.

FD/TD Figures tabs: Click “+” to add one figure, then select this newly added figure and

click “Edit” to edit settings, as shown below: User specifies figure title, select interested traces to plot. Select one or more traces from the left and add them to the right

list. These are the traces which will be processed. Do measurement at: At each of the specified frequency, tool

will measure trace value, generate a csv file and a histogram with gaussian distribution. Use comma “,” to separate different frequencies.

X/Y­axis range: Optional, plot’s X/Y­axis range. When not set, tool will arrange automatically. As one figure may spawn several sub “histogram” figures, user may use “(XMin XMax)” to specify ranges for each of them. The number of settings here is either 0 (auto arrange), 1 (only for main figure) or 1+N where

84

Page 86: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

N is equivalent to number of measurement frequencies (thus number of histograms).

Histogram bin width: Sorting bin range for histogram plot. Limit lines: Limit lines in matlab like points pair. One or more

limit lines may be specified. limit lines are enclosed with ““ “” and use comma “,” to separate different limit lines.

CSV output format: for CSV output, user may specify format (RI or DB) and their c­style precision (e.g. %8.3e for scientific notation with three digit in mantissa).

For this lab, enter the settings as shown below:

Report tab: Specify the output folder where report will be generated; Optional: export existing settings to a file; Execute: choose snp files, four .s20p in the lab folder in this case, and

tool will process each of them according to the report settings. When done, user will see the summarized report indexed by a html. Example results is included in Lab4 folder for user’s reference. The index page is also shown below.

85

Page 87: SPIPro ®Tutorials · Lab 1.1: Free form channel ... Subcircuit (block with “X” symbol) SParameter (block with “S” symbol) IBIS Differential receiver Try to align them roughly

SPIPro Tutorials

Encryption: The saved config. file is encrypted to avoid being tampering or for external release. Default RSA based keys has been provided by the tool.

86