saber user guide 2010.03

438
Saber® User Guide Version D-2010.03-SP1, June 2010 Saber is a registered trademark of Sabremark Limited partnership and is used under license.

Upload: ethanroc

Post on 14-Apr-2015

142 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Saber User Guide 2010.03

Saber® User GuideVersion D-2010.03-SP1, June 2010

Saber is a registered trademark of Sabremark Limited partnership and is used under license.

Page 2: Saber User Guide 2010.03

ii Saber® User Guide

Copyright Notice and Proprietary InformationCopyright © 2010 Synopsys, Inc. All rights reserved. This software and documentation contain confidential and proprietary information that is the property of Synopsys, Inc. The software and documentation are furnished under a license agreement and may be used or copied only in accordance with the terms of the license agreement. No part of the software and documentation may be reproduced, transmitted, or translated, in any form or by any means, electronic, mechanical, manual, optical, or otherwise, without prior written permission of Synopsys, Inc., or as expressly provided by the license agreement.

Right to Copy DocumentationThe license agreement with Synopsys permits licensee to make copies of the documentation for its internal use only. Each copy shall include all copyrights, trademarks, service marks, and proprietary rights notices, if any. Licensee must assign sequential numbers to all copies. These copies shall contain the following legend on the cover page:

“This document is duplicated with the permission of Synopsys, Inc., for the exclusive use of __________________________________________ and its employees. This is copy number __________.”

Destination Control StatementAll technical data contained in this publication is subject to the export control laws of the United States of America. Disclosure to nationals of other countries contrary to United States law is prohibited. It is the reader’s responsibility to determine the applicable regulations and to comply with them.

DisclaimerSYNOPSYS, INC., AND ITS LICENSORS MAKE NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS MATERIAL, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.

Registered Trademarks (®)Synopsys, AMPS, Astro, Behavior Extracting Synthesis Technology, Cadabra, CATS, Certify, CHIPit, Design Compiler, DesignWare, Formality, HAPS, HDL Analyst, HSIM, HSPICE, Identify, Leda, MAST, ModelTools, NanoSim, OpenVera, PathMill, Physical Compiler, PrimeTime, SCOPE, Simply Better Results, SiVL, SNUG, SolvNet, Syndicated, Synplicity, the Synplicity logo, Synplify, Synplify Pro, Synthesis Constraints Optimization Environment, TetraMAX, UMRBus, VCS, Vera, and YIELDirector are registered trademarks of Synopsys, Inc.

Trademarks (™)AFGen, Apollo, Astro-Rail, Astro-Xtalk, Aurora, AvanWaves, BEST, Columbia, Columbia-CE, Confirma, Cosmos, CosmosLE, CosmosScope, CRITIC, CustomExplorer, CustomSim, DC Expert, DC Professional, DC Ultra, Design Analyzer, Design Vision, DesignerHDL, DesignPower, DFTMAX, Direct Silicon Access, Discovery, Eclypse, Encore, EPIC, Galaxy, Galaxy Custom Designer, HANEX, HapsTrak, HDL Compiler, Hercules, Hierarchical Optimization Technology, High-performance ASIC Prototyping System, HSIMplus, i-Virtual Stepper, IICE, in-Sync, iN-Tandem, Jupiter, Jupiter-DP, JupiterXT, JupiterXT-ASIC, Liberty, Libra-Passport, Library Compiler, Magellan, Mars, Mars-Rail, Mars-Xtalk, Milkyway, ModelSource, Module Compiler, MultiPoint, Physical Analyst, Planet, Planet-PL, Polaris, Power Compiler, Raphael, Saturn, Scirocco, Scirocco-i, Star-RCXT, Star-SimXT, StarRC, System Compiler, System Designer, Taurus, TotalRecall, TSUPREM-4, VCS Express, VCSi, VHDL Compiler, VirSim, and VMC are trademarks of Synopsys, Inc.

Service Marks (sm)MAP-in, SVP Café, and TAP-in are service marks of Synopsys, Inc.

SystemC is a trademark of the Open SystemC Initiative and is used under license.ARM and AMBA are registered trademarks of ARM Limited.Saber is a registered trademark of SabreMark Limited Partnership and is used under license.All other product or company names may be trademarks of their respective owners.

D-2010.03-SP1

Page 3: Saber User Guide 2010.03

Contents

1. Quick Reference. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

Saber Guide Icon Bar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

Saber Guide Mouse Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

Saber Tool Bar Icons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2. Saber Guide Windows/Pulldown Menus . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

General Pulldown Menu Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

Tear-Off Menus (Motif Configuration Only) . . . . . . . . . . . . . . . . . . . . . . . 8

Pulldown Menu Names and Contents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

File Pulldown Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

Open Design Dialog Box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

Edit Pulldown Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

Alter Design Dialog Box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

Experiment Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14Plotting Simulation Results in an Experiment Using "ScopePlot" . . 18

Application Preferences (UNIX) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19Application Preferences – General Operation . . . . . . . . . . . . . . . . . 20

Graph Pulldown Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

Signal Attributes Menu Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

Signal Attributes - View Axis Options. . . . . . . . . . . . . . . . . . . . . . . . . . . . 24Vertical Axis Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24Horizontal Axis Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

Axis Attributes Menu Option. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

Members Menu Option. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

Measure Results Menu Option. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

Selected Axes Menu Option. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29Range. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29Scale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30Grids. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30Sliders . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30Lock Menu Item . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

Selected Signals Menu Option. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

iii

Page 4: Saber User Guide 2010.03

Contents

Selected Signals>Stack Region Menu Item . . . . . . . . . . . . . . . . . . . 33Selected Signals>Color Menu Item . . . . . . . . . . . . . . . . . . . . . . . . . 33Selected Signals>Style Menu Item. . . . . . . . . . . . . . . . . . . . . . . . . . 33Selected Signals>Symbol Menu Item. . . . . . . . . . . . . . . . . . . . . . . . 34Selected Signals>Symbol Width Menu Item . . . . . . . . . . . . . . . . . . 34Selected Signals>View Menu Item. . . . . . . . . . . . . . . . . . . . . . . . . . 34Selected Signals>Trace Height Menu Item . . . . . . . . . . . . . . . . . . . 35Selected Signals>Digital Display Menu Item . . . . . . . . . . . . . . . . . . 35Selected Signals>Delete Signals Menu Item . . . . . . . . . . . . . . . . . . 36

Analyses Pulldown Menu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

Hierarchical Browsing in Analysis Forms . . . . . . . . . . . . . . . . . . . . . . . . . 37

Extract Pulldown Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

Hierarchical Browsing with the Add Signals to Plotfile Form . . . . . . . . . . 38

Results Pulldown Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

Hierarchical Browsing in Report Forms . . . . . . . . . . . . . . . . . . . . . . . . . . 39

Tools Pulldown Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

Window Pulldown Menu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

Help Pulldown Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

3. Simulating Designs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

Design Process Overview Using Saber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

Simulating Designs Using Saber Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

Understanding Analysis Forms and Form Files . . . . . . . . . . . . . . . . . . . . 45Saving the Current Configuration Details of an Analysis Form . . . . 45Loading a Previously Saved Configuration from a Form File . . . . . . 46Switching Between Saber and Saber HDL Simulators - Form File Behavior

47

Verifying Design Functionality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

Tuning Design Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

Specifying Signals for Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

Searching and Adding Signals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50Search Options in Signal Browser . . . . . . . . . . . . . . . . . . . . . . . . . . 51

Examining the Simulator Transcript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

Changed Memory Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

NaN and Inf Detection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

iv

Page 5: Saber User Guide 2010.03

Contents

4. Finding and Debugging DC Operating Points . . . . . . . . . . . . . . . . . . . . . . . 53

Performing DC Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54

Evaluating the Operating Point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

Determining the Next Step. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

Debugging DC Analysis Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

Hints for Finding Difficult DC Operating Points . . . . . . . . . . . . . . . . . . . . 58

Simulator Found the Wrong Operating Point . . . . . . . . . . . . . . . . . . . . . . 60

Simple Circuits That are Hard for DC Analysis . . . . . . . . . . . . . . . . . . . . 63

5. Checking Time-domain Response-Process Overview . . . . . . . . . . . . . . . . 65

Specifying the First Transient Data Point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

Performing a Transient Analysis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

Extending a Transient Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

Viewing the Transient Analysis Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

Measuring the Analysis Results. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

Determining the Next Step. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

Checking the Frequency Spectrum of a Time-Domain Signal . . . . . . . . . . . . . 76

Performing Fourier Analysis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

Performing FFT Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

6. Special Topics in Transient Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

Starting Oscillators in a Transient Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

Example Oscillator Circuit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

Starting Oscillators by Modifying the DC Initial Point . . . . . . . . . . . . . . . . 87

Starting Oscillators By Using Current and Voltage Sources . . . . . . . . . . 89

Keeping Oscillators Going . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

Eliminating Spikes in a Transient Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

7. Sweeping Independent Sources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

Executing a DC Transfer Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

Viewing the DC Transfer Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

Determining the Next Step. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

v

Page 6: Saber User Guide 2010.03

Contents

8. Checking the Frequency Response – Process Overview . . . . . . . . . . . . . 99

Determining the Circuit Bias Point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

Executing an AC Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

Viewing the Small Signal Analysis Results . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

Measuring AC Analysis Results. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

Determining the Next Step. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

Transforming Frequency-Domain Signals to the Time-Domain (ifft) . . . . . . . . 109

9. Calibrating Analyses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

Calibrating a DC Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

Calibrating a DC Transfer Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115

Calibrating a Transient Analysis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

Calibrating the Small Signal Analyses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

Calibrating the Fourier, FFT, and IFFT Analyses . . . . . . . . . . . . . . . . . . . . . . . 118

Description of the Calibration Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120

How Tolerances Are Specified for Calibration . . . . . . . . . . . . . . . . . . . . . 121

10. Using Two-Port, Noise and Distortion Analyses. . . . . . . . . . . . . . . . . . . . . 125

Two-Port Analysis Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126

Determining Small-Signal Transfer Function - Process Steps . . . . . . . . . . . . . 126

Noise Analysis Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128

Checking Noise Specifications. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

Distortion Analysis Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133

Checking Distortion Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134

Viewing the Distortion Analysis Results. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

Analyzing the Distortion Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138

11. Determining Parameter Sensitivity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

Performing a Parameter Sweep. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

Sweeping Parameters Example – Analyzing a Design over a Temperature Range 143

vi

Page 7: Saber User Guide 2010.03

Contents

Determining Component Sensitivity. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144

Performing Nominal Simulations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145

Performing Sensitivity Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146

Generating the Sensitivity Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148

Evaluating the Sensitivity Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149

12. Tuning Design Parameters with Statistical Analysis . . . . . . . . . . . . . . . . . 151

Specifying the Parameter Tolerance Ranges. . . . . . . . . . . . . . . . . . . . . . . . . . 152

Executing the Monte Carlo Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153

Viewing the Monte Carlo Results. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157

Determining the Next Step after a Monte Carlo Analysis . . . . . . . . . . . . . . . . 158

13. Determining Component Stress Levels. . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

Collecting Part Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

Specifying Stress Ratings on Components . . . . . . . . . . . . . . . . . . . . . . . . . . . 162

Specifying Derating Values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163

Performing a Nominal Simulation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165

Performing the Stress Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165

Viewing the Stress Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166

Analyzing the Stress Report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167

14. Saber Worst-Case Analysis Tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169

Worst-Case Analysis Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169

Worst-Case Analysis Approaches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170

Statistical Worst-Case Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172Monte-Carlo Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172Root-Sum Square (RSS) Tolerance Calculation . . . . . . . . . . . . . . . 173

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Extreme Value Analysis (EVA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174

Worst-Case Analysis tool Invocation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175

Worst-Case Analysis tool Use Model. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176

Worst-Case Analysis tool - Test Definition and Procedures. . . . . . . . . . . . . . . 176

Defining a Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177Specifying Design Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178

vii

Page 8: Saber User Guide 2010.03

Contents

Automatic Extraction of Stochastic Parameters . . . . . . . . . . . . . . . . 181

Specifying a Sequence of Simulation Analyses . . . . . . . . . . . . . . . . . . . 191

Specifying Performance Measures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192Measuring Waveform Difference . . . . . . . . . . . . . . . . . . . . . . . . . . . 194Adding a Performance Measure. . . . . . . . . . . . . . . . . . . . . . . . . . . . 196

Specifying Optimization Objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197Performing EVA in the Worst-Case Analysis tool . . . . . . . . . . . . . . . 199Adding an Optimization Objective . . . . . . . . . . . . . . . . . . . . . . . . . . 200

Specifying Search Algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201Adding an Algorithm to a Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203

Executing the Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204Boosting Search Performance with Parallel Evaluations . . . . . . . . . 205

Viewing Parameters, Progress, and Results . . . . . . . . . . . . . . . . . . . . . . 206Parameter View Pane. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206Progress and Signal View Pane . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207

Exporting the Results. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208

Saving the Test Suite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209

Additional Tools for Understanding Design Behavior . . . . . . . . . . . . . . . . 209Using the RSS Calculator. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Utility

210Using the Parameter Sweep Utility. . . . . . . . . . . . . . . . . . . . . . . . . . 211

Worst-Case Analysis - Search Algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216

Corner Versus Range Search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216

Exhaustive Corner Search . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217

Sensitivity Corner Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217

Variable Neighborhood Search (VNS) . . . . . . . . . . . . . . . . . . . . . . . . . . . 218

Simulated Annealing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220

Greedy Randomized Adaptive Search Procedures (GRASP) . . . . . . . . . 222

Genetic Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225

Random Search with Interval Shrinkage . . . . . . . . . . . . . . . . . . . . . . . . . 226

Steepest Descent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226

Downhill Simplex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228

Worst-Case Analysis - Application Programming Interface . . . . . . . . . . . . . . . 228

WCA API Command Reference. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229wca:open . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229wca:save. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230wca:close . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231wca:add . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231wca:config . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239wca:delete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239wca:run. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239

viii

Page 9: Saber User Guide 2010.03

Contents

wca:stop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240wca:list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240wca:info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240wca:eval . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241wca:clear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241wca:help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242

Optimizer API Command Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242opt:create . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243opt:gui. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244opt:add . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245opt:config . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246opt:delete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246opt:run . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247opt:stop. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247opt:list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247opt:clear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248opt:help. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248Optimization Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249

Exporting an AIM Script . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249

15. Distributed Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251

Distributed Iterative Analysis (DIA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251

Analyses Supported in DIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252

Submitting DIA Jobs to Compute Grid . . . . . . . . . . . . . . . . . . . . . . . . . . . 252

Experiment Editor - Submit to Grid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253

Grid Status. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257

Grid Status Tabs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258

Job Categories. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258

Grid Status Operations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258

16. Checking Linear Systems Analysis Specifications . . . . . . . . . . . . . . . . . . 261

Matrix Representation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262

Determining the Poles and Zeros of a System . . . . . . . . . . . . . . . . . . . . . . . . 262

Determining the Circuit Operating Point. . . . . . . . . . . . . . . . . . . . . . . . . . 263

Executing Pole-Zero Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263

Viewing Pole-Zero Analysis Results. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265Viewing the Results in CosmosScope . . . . . . . . . . . . . . . . . . . . . . . 266Viewing the Results in the Report Tool . . . . . . . . . . . . . . . . . . . . . . 268

Measuring Pole-Zero Analysis Results . . . . . . . . . . . . . . . . . . . . . . . . . . 268

ix

Page 10: Saber User Guide 2010.03

Contents

Determining the Next Step . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270

Determining Time Domain Response Using Pole-Zero Data . . . . . . . . . . . . . 271

Determining Poles and Zeros - Linear Time Domain . . . . . . . . . . . . . . . . 272

Executing Linear Time Domain Analysis (tresp) . . . . . . . . . . . . . . . . . . . 272

Determining Poles and Zeros - Frequency Response . . . . . . . . . . . . . . . . . . . 274

Executing Frequency Response Analysis (fresp). . . . . . . . . . . . . . . . . . . 275

Linear Time Response Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277

17. Text Editors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279

Client/server model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279

Non client/server model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280

A. Files Used by Saber Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283

Preference Files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283

Site-specific Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284

User-specific Preferences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286

Session-specific Configuration Parameters . . . . . . . . . . . . . . . . . . . . . . 287.guidecfg File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287.sketchcfg File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287.scopecfg File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288.scopecfg_data Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288

Startup Files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289

Log Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290

Project Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290

Report Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290

B. Error Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293

Simulator Error Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293

Bad encrypted data found . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297

Cannot connect to license server. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297

Client not authorized to connect to server . . . . . . . . . . . . . . . . . . . . . . . . 298

ERROR “ALG_ITERATIONS” Too many iterations . . . . . . . . . . . . . . . . . 299

ERROR “ALG_NO_SOLUTION” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300

ERROR “ALG_OUT_OF_REGIONS” . . . . . . . . . . . . . . . . . . . . . . . . . . . 302

ERROR “ALG_SINGULAR_JACOBIAN” . . . . . . . . . . . . . . . . . . . . . . . . . 303

x

Page 11: Saber User Guide 2010.03

Contents

ERROR “ALG_W_NO_DT_MM” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304

ERROR: bad screen distance”” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304

ERROR “BUG_ASSERT_FAILED” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304

ERROR “BUG_PROGRAM”. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305

ERROR “CLASS_COMPATIBILITY” . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305

ERROR “CLASS_DFILE_READ”. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306

ERROR “CLASS_IP_NOT_FOUND” . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306

ERROR “CLASS_NO_DEFAULT” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306

ERROR “CLASS_NO_MATCH” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307

ERROR “CLASS_OPEN_FILE” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307

ERROR “CLASS_STAMP_CHANGE” . . . . . . . . . . . . . . . . . . . . . . . . . . . 307

ERROR “CLASS_UNMATCHED_END”. . . . . . . . . . . . . . . . . . . . . . . . . . 308

ERROR “CLASS_VERSION”. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310

ERROR “DYN_LOAD_FAILED” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311

ERROR “ERR_BUFFER”. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311

ERROR “ERR_MISSING_ARG” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311

ERROR “ERR_NOSTORE” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312

ERROR “EXT_TDB_EXCEPTION” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313

ERROR “MAST_BAD_FIELD_NAME”. . . . . . . . . . . . . . . . . . . . . . . . . . . 313

ERROR “MAST_DUP_CMP” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314

ERROR “MAST_EXT_IN_ROOT” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314

ERROR “MAST_FILE_NOT_FOUND” . . . . . . . . . . . . . . . . . . . . . . . . . . . 315

ERROR “MAST_IMPORTED_USED” . . . . . . . . . . . . . . . . . . . . . . . . . . . 315

ERROR “MAST_NO_COMP”. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317

ERROR “MAST_NO_FIELD_NAME”. . . . . . . . . . . . . . . . . . . . . . . . . . . . 317

ERROR “MAST_NO_NUM_EQUATION” . . . . . . . . . . . . . . . . . . . . . . . . . 318

ERROR “MAST_NO_NUM_REFERENCE . . . . . . . . . . . . . . . . . . . . . . . 319

ERROR “MAST_PIN_CONFLICT”. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319

ERROR “MAST_UNDEF_NAME” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320

ERROR “MAST_UNDEF_TMP”. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321

ERROR “PL_BAD_DATAFILE”. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322

ERROR “PL_BAD_EVENTS”. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322

ERROR “PL_OPEN_FILE”. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322

ERROR “SEC_NOT_AUTHORIZED”. . . . . . . . . . . . . . . . . . . . . . . . . . . . 323

ERROR “TER_ALIGNMENT”. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324

ERROR “TER_NOT_AUTH”. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324

ERROR “TMPL_HYPER_VALUE” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325

ERROR “TMPL_NLM_PAR_UNDEF” . . . . . . . . . . . . . . . . . . . . . . . . . . . 326

ERROR “TMPL_SRC_POS_OR_0”. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326

xi

Page 12: Saber User Guide 2010.03

Contents

ERROR “UI_OPEN_FILE” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327

FATAL ERROR “BUG_PROGRAM” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327

FATAL ERROR “DYN_REF” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 327

FATAL ERROR “ERR_NOFILERD” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328

FATAL ERROR “SEC_CFGFAIL” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329

FATAL ERROR “SEC_NOAUTH” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329

FATAL ERROR “SEC_LMGR_CRASH” . . . . . . . . . . . . . . . . . . . . . . . . . . 330

FATAL ERROR “SEC_NO_REQUIRED” . . . . . . . . . . . . . . . . . . . . . . . . . 330

FATAL ERROR “SEC_NOT_AUTHORIZED” . . . . . . . . . . . . . . . . . . . . . . 330

License server not responding - attempting to reconnect . . . . . . . . . . . . 332

not loaded by saberld. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333

saberld: Fortran or C compiler required. Neither found ... . . . . . . . . . . . . 333

Syntax error . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334

Unable to open display “machine_name”. . . . . . . . . . . . . . . . . . . . . . . . . 334

Unable to open display “machine_name:0” . . . . . . . . . . . . . . . . . . . . . . . 335

undefined symbol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336

WARNING "ALG_NO_MM_DC”. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337

WARNING “ALG_THRESHOLD” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338

WARNING “MAST_NO_GROUND” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338

WARNING “SEC_EXPIRED” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338

WARNING “SEC_EXPIRING” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339

WARNING “SEC_LMGR_MESS”. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339

WARNING “SEC_LMGR_MSG”. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343

WARNING “SEC_LMGR_RECOVERY”. . . . . . . . . . . . . . . . . . . . . . . . . . 344

WARNING “SEC_LMGR_RECOVERED” . . . . . . . . . . . . . . . . . . . . . . . . 344

WARNING “SEC_NOT_AVAIL”. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344

WARNING “SPLIT_UNCONNECTED_BUT_CLASSIFIED” . . . . . . . . . . 344

WARNING “TMPL_LIMIT_IP” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345

WARNING “TMPL_LIMIT_TIME” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346

WARNING "MAST_STAT_TOPOLOGY" . . . . . . . . . . . . . . . . . . . . . . . . . 346

X display server name required. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347

X toolkit error: can’t open display . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347

License Manager Log File Messages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347

. . . BAD CODE for feature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348

BADCODE “encryption code in license file is inconsistent” . . . . . . . . . . . 349

BADCOMM “invalid returned data from license server” . . . . . . . . . . . . . . 349

BADDATE “invalid date format in license file”. . . . . . . . . . . . . . . . . . . . . . 349

BADFILE "invalid license file syntax" . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350

BADHOST “cannot find SERVER hostname in network database” . . . . . 350

xii

Page 13: Saber User Guide 2010.03

Contents

CANTCONNECT “cannot connect to license server”. . . . . . . . . . . . . . . . 350

EXPIRED "feature has expired" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350

license daemon: execl failed: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351

license manager: can’t initialize: cannot find license file . . . . . . . . . . . . . 352

. . . (lmgrd) license manager: Not a valid server host, exiting . . . . . . . . . 353

. . . (lmgrd) Retrying socket bind (address in use) . . . . . . . . . . . . . . . . . . 353

. . . (lmgrd) Trying connection to . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354

No features to serve. Shutting down saber_dmn . . . . . . . . . . . . . . . . . . . 355

NOREADLIC "cannot read license file" . . . . . . . . . . . . . . . . . . . . . . . . . . 355

NOSERVER "Cannot connect to a license server" . . . . . . . . . . . . . . . . . 356

NO_SERVER_IN_FILE "no SERVER lines in license file". . . . . . . . . . . . 356

NOSERVICE "no TCP "license" service exists" . . . . . . . . . . . . . . . . . . . . 356

NOSOCKET “no socket connection to license manager server” . . . . . . . 356

NOTTHISHOST "invalid host" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357

OLDVER "license file does not support this version" . . . . . . . . . . . . . . . . 357

. . . (saber_dmn) Wrong hostid, exiting. . . . . . . . . . . . . . . . . . . . . . . . . . . 357

SERVLONGGONE "license server does not support this . . . . . . . . . . . . 358

SNOSERVSUPP "license server does not support this feature" . . . . . . . 359

C. Netlister Command Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361

Netlister Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361

schtos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363

Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363

Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363

Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364

D. Simulating Digital Parts in Saber . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371

Using Default Hypermodels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372

Using Ideal Hypermodels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372

Using Technology-Specific Hypermodels . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373

Hypermodel Filenames and Logic Families . . . . . . . . . . . . . . . . . . . . . . . . . . 374

Creating Part Number-Specific Hypermodels . . . . . . . . . . . . . . . . . . . . . . . . . 375

Using Multiple Hypermodel Families in a Design . . . . . . . . . . . . . . . . . . . . . . 376

Selecting Hypermodels from the Saber/Netlister Settings Form . . . . . . . . . . 377

Net Re-naming Due to Hypermodel Insertion . . . . . . . . . . . . . . . . . . . . . . . . . 378

xiii

Page 14: Saber User Guide 2010.03

Contents

E. Advanced Simulator Transient Analysis Controls . . . . . . . . . . . . . . . . . . . 379

Formulating the System Matrix for Transient Analysis . . . . . . . . . . . . . . . . . . . 381

Nonlinear Solution Algorithms Used in Transient Analysis . . . . . . . . . . . . . . . 385

Basics of the Newton-Raphson Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385

Basics of the Katzenelson Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390

Sample Points and Newton Steps Used in Transient Analysis . . . . . . . . . . . . 391

Matrix Pivoting and Conditioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393

Numerical Limitations of Transient Analysis. . . . . . . . . . . . . . . . . . . . . . . . . . . 395

Integration Methods Used in Transient Analysis . . . . . . . . . . . . . . . . . . . . . . . 396

Local Truncation Error Controls in Transient Analysis . . . . . . . . . . . . . . . . . . . 401

Time Step Controls for Transient Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403

F. Stress Analysis Concepts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405

Safe Operating Area (SOA) Curves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405

Thermal Effects Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407

Thermal Effects for Parts without Heat Sinks. . . . . . . . . . . . . . . . . . . . . . 408

Thermal Effects for Parts with Heat Sinks . . . . . . . . . . . . . . . . . . . . . . . . 408

Specifying Thermal Effects Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409

Setting Ambient Temperatures in a Design . . . . . . . . . . . . . . . . . . . . . . . . . . . 410

G. Passing Hierarchical Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413

Passing Hierarchical Parameters. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413

Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417

xiv

Page 15: Saber User Guide 2010.03

1

1Quick Reference

Describes Saber Guide icons, mouse usage, and Saber Tool Bar icons.

This section covers the following topics:■ Saber Guide Icon Bar■ Saber Guide Mouse Usage■ Saber Tool Bar Icons

Saber Guide Icon Bar

The following table lists all Saber Guide Icon Bar icons and describes where to find information on their functions.

Icon Description Function

Open File Open a file.

Operating Point

Open the Operating Point Analysis form. This form allows you to calculate the operating point of the system.

Frequency Response

Open the Small-Signal Frequency Analysis form. This form allows you to perform a small-signal AC analysis of a system to find the AC response.

Saber® User Guide 1D-2010.03-SP1

Page 16: Saber User Guide 2010.03

Chapter 1: Quick ReferenceSaber Guide Icon Bar

DC Transfer Open the DC Transfer Analysis form. this form allows you to perform an Operating Point analysis to calculate the operating point at each point in a user defined sweep.

Transient Analysis

Open the Time-Domain Transient Analysis form. This form allows you to perform a transient analysis of the design to find the time domain response.

Pole Zero Analysis

Open the Pole Zero Analysis form. This form allows you to determine the poles and/or zeros of a system.

Vary Open the Parameter Sweep form. this form allows you to sweep part parameter values over a user-specified range and execute one or more analyses at each swept value.

Monte Carlo Open the Monte Carlo Analysis form. This form allows you to execute a set of Saber commands in a statistical environment, which has the effect of performing a series of Monte Carlo runs on the commands.

Sensitivity Open the Sensitivity Analysis form. This form allows you to set the parameters and perturbation for a sensitivity analysis, and choose the type of analysis to be performed.

List/Alter Open the List/Alter Design form. This form allows you to change temporarily (but not delete) the value of any element or parameter in the template describing the current block.

Experiment Open the Experiments dialog box. This dialog box allows you to execute one or more commands repeatedly.

Last Plot File Load the plot file from the most recent analysis into CosmosScope.

Icon Description Function

2 Saber® User GuideD-2010.03-SP1

Page 17: Saber User Guide 2010.03

Chapter 1: Quick ReferenceSaber Guide Mouse Usage

Saber Guide Mouse Usage

Unix systems use a three-button mouse.

In Windows, you may use a two-button mouse, a three-button mouse, or a two-button mouse configured to emulate a three-button mouse.

If you use a two-button mouse, you can access the functionality provided by a third mouse button by holding down the right mouse button and selecting the function from the popup menu that appears.

Interrupt Simulation

Temporarily halt the current simulation.

Saber Guide Transcript

Open the Saber Guide transcript window.

Busy Indicator

Rotates when the Saber simulator is working.

Mouse Buttons Function

Left button single click Select an object

Left Button click, drag and release Select text

Left button double click Open files and directories

Middle mouse button single click Paste an object

Middle mouse button press and hold and drag Pan across a window

Icon Description Function

Saber® User Guide 3D-2010.03-SP1

Page 18: Saber User Guide 2010.03

Chapter 1: Quick ReferenceSaber Tool Bar Icons

Saber Tool Bar Icons

The following table lists all Saber Tool Bar icons and describes where to find information on their functions

Tool Icon Function

Command Line Tool Opens the Command Line tool. This tool allows you to enter AIM commands, write scripts, and save them into files. You can also view a log of AIM commands as executed by the application.

Draw Tool Opens the Draw tool. This tool allows you to create symbols as well as general graphic objects and text.

Signal Manager Opens the Signal Manager. This tool allows you to browse plot files and display them as graphs.

Measurement Tool Opens the Measurement tool. This tool performs measurement operations that are used to display one or more “performance measures” for a waveform.

Calculator Opens the Calculator. This tool allows you to perform mathematical and logical operations on AIM language expressions and waveforms as well as on numbers.

Macro Recorder Opens the Macro Recorder tool. This tool records a series of actions, allows you to edit these actions, and plays them back as a script.

RF Tool Opens the RF Tool. This tool allows you to perform special measurements and calculations when running RF analysis.

MATLAB Tool Opens the MATLAB tool. This tool is an interface to MATLAB applications.

4 Saber® User GuideD-2010.03-SP1

Page 19: Saber User Guide 2010.03

Chapter 1: Quick ReferenceSaber Tool Bar Icons

Report Tool Opens the Report tool. This tool allows you to edit simulation files or any ASCII text. It is linked to the Saber Simulator so that new reports can be generated and displayed in the report window.

Testify Open the Testify Test Manager tool.

Tool Icon Function

Saber® User Guide 5D-2010.03-SP1

Page 20: Saber User Guide 2010.03

Chapter 1: Quick ReferenceSaber Tool Bar Icons

6 Saber® User GuideD-2010.03-SP1

Page 21: Saber User Guide 2010.03

2

2Saber Guide Windows/Pulldown Menus

Describes the Pulldown menu bar that runs across the top of the Saber window.

This section covers the following topics:■ General Pulldown Menu Operation■ Pulldown Menu Names and Contents■ File Pulldown Menu■ Edit Pulldown Menu■ Graph Pulldown Menu■ Analyses Pulldown Menu■ Extract Pulldown Menu■ Results Pulldown Menu■ Tools Pulldown Menu■ Window Pulldown Menu■ Help Pulldown Menu

General Pulldown Menu Operation

To open a pulldown menu, follow these steps:

1. Highlight the menu name by placing the mouse cursor over the menu name.

2. Single click with the left mouse button on the highlighted name to open the menu.

Saber® User Guide 7D-2010.03-SP1

Page 22: Saber User Guide 2010.03

Chapter 2: Saber Guide Windows/Pulldown MenusGeneral Pulldown Menu Operation

To activate an item in a pulldown menu, follow these steps:

1. Highlight the item by placing the mouse cursor over the item.

2. Single click the left mouse button to activate the item.

3. A pulldown menu item that contains cascade menus will have an arrow to the right of the item.

4. To display the cascade menu, move the cursor over the item with the arrow (Motif configuration).

5. To display the cascade menu, move the cursor over the item with the arrow and single click the left mouse button.

6. To find out the function of a pulldown menu item, place the mouse cursor over the item. A short explanation of the item will appear in the Help field at the bottom of the window.

This section covers the following topics:■ Tear-Off Menus (Motif Configuration Only)

Tear-Off Menus (Motif Configuration Only)You have the option of opening a pulldown menu, moving it to some other part of your screen, and keeping it displayed until you have finished using it.

To tear-off a menu, follow these steps:

1. Highlight the menu name by placing the mouse cursor over the menu name.

2. Press & hold the middle mouse button on the highlighted menu.

3. Move the displayed pulldown menu to the desired location.

4. Release the mouse button to place the menu.

Cascade Menu Arrows

8 Saber® User GuideD-2010.03-SP1

Page 23: Saber User Guide 2010.03

Chapter 2: Saber Guide Windows/Pulldown MenusPulldown Menu Names and Contents

To return the tear-off menu to normal control, follow these steps:

1. Highlight the menu name in the Pulldown menu bar by placing the mouse cursor over the menu name.

2. Single click the left mouse button.

Pulldown Menu Names and Contents

Different menus will be displayed depending on the application you are using.

The following is a list of available menus from the Pulldown menu bar.

File Pulldown Menu

The File pulldown menu allows you to open existing files, save your work to new files, create new windows, save configuration settings, open the print dialog box, and exit applications.

Option Description

File Menu Open existing files, save your work to new files, create new windows, save configuration settings, open the print dialog box, and exit the application.

Edit Menu Editing operations, customizing the look and operations of the windows.

Graph Menu Operations allowing you to navigate and modify CosmosScope windows.

Analyses Menu Simulator design analysis options.

Extract Menu Simulator post-processing data manipulation.

Results Menu Simulator post-processing data display options.

Tools Menu Access to the Saber Tools available as icons at the bottom of the screen.

Window Menu Management of multiple areas in the Saber window.

Help Menu Assistance options on various Saber features.

Option Description

Saber® User Guide 9D-2010.03-SP1

Page 24: Saber User Guide 2010.03

Chapter 2: Saber Guide Windows/Pulldown MenusFile Pulldown Menu

The Save Graph dialog box allows you to specify a path and file name. In addition, a pop-up dialog box prompts you to save the graph file in one of the following ways:

1. With a copy of the waveforms in the graph.

2. With a reference to the plot file from which the waveforms in the graph were plotted.

In the first case, all connection to the plot file is lost. In the second case, the connection to the plot is maintained. Thus, if the graph is reopened it can be automatically updated due to any Replace or Append plot actions specified for the plot file in an analysis.

The Save Outline dialog box allows you to specify a path and file name for an outline. In addition, a Graph Outline pop-up dialog box allows you to specify several attributes for the saved outline. You can select whether or not to maintain the connection to the plot file in the same way as for a graph outline. You control this by checking (or unchecking) the Dependencies checkbutton on the Graph Outline dialog box.

New Creates a new source file or XY Graph, Smith Chart, or Polar Chart window.

Open Opens an existing design or symbol using the Open Files dialog box.

Close Closes the active window or all windows.

Save Saves the active window to the current file path and name.

Menu Option Description

Export Image Opens an Export Image dialog box which allows you to export the contents of an editor window to a file in a variety of graphics formats.

Configuration Saves your configuration. There are three options:■ Save - saves your configuration immediately.■ Clear - clears any saved configuration you have made in the current session.

The next time Saber is invoked your configuration will be the default settings.■ Save on Exit - saves your session configuration upon exiting.

Output Options Opens the Set Output Options dialog box. This dialog box allows you to set up background colors and color mode for printed or exported graphics formats and printer set-ups. You can also give your colors a color boost.

Print Opens the Saber Print dialog box. This menu item allows you to print the entire contents of a window, including graphics that may not be in your immediate view. To print the current design, single click on the OK button.

10 Saber® User GuideD-2010.03-SP1

Page 25: Saber User Guide 2010.03

Chapter 2: Saber Guide Windows/Pulldown MenusFile Pulldown Menu

If you want to save information, you must choose the File > Save item before exiting.

If you want to save your configuration settings you must choose the File > Configuration > Save item.

If you want to save your configuration every time you exit Saber use the File > Configuration > Save on Exit item, or the Edit > Application Preference > Save Configuration on Exit > Yes item.

This section covers the following topics:■ Open Design Dialog Box

Open Design Dialog BoxThe Open Design dialog box contains the Design Files scrollable list field, Root Entity field, and Directory field.

Printer This menu item appears in UNIX versions of CosmosScope. It allows you to Create a new printer configuration, Remove a printer from the printer list, or change the Properties of your printers.

Exit Closes Saber without saving any information.

Most Recently Accessed Files

The space at the bottom of the File pulldown menu, above the Exit item, displays the last five windows that were opened in the Saber Guide work space.

Option Description

Design Files scrollable list

Lists the files, as defined by the .ai_vhddsn file, required to simulate the design named in the Root Entity field. The files in the list are configured in the order that the simulator reads them in, from top to bottom.

To reorder files:■ The up and down arrow buttons move the highlighted file up and down in the

list.■ The Add... button allows you to add files to the list.■ The Delete button allows you to remove files from the list.

Root Entity field The top-level description of the circuit you are simulating.

Directory field The directory path to the Root Entity.

Saber® User Guide 11D-2010.03-SP1

Page 26: Saber User Guide 2010.03

Chapter 2: Saber Guide Windows/Pulldown MenusEdit Pulldown Menu

Edit Pulldown Menu

The Edit pulldown menu allows you to perform editing operations, customize the look of the window, and customize the look and operation of the Saber Guide windows.

Save... button If you make any changes to the Design Files list, this saves the changes to the .ai_vhddsn file.

Load... button Loads a design into the Open Design dialog box.

Option Description

Undo Reverses your last completed operation. This item does not operate on general windows or UI operations. There is one level of undo. If the Undo menu item is stippled or greyed out, it will not operate on your last action.

Redo Reverts to the state you were in before you chose Undo. There is one level of redo.

Cut, Copy, Paste, Delete

In Saber Guide the Cut, Copy, Paste, and Delete items operate on one or more database objects. Therefore, if you have multiple windows open that contain the same database object, performing any of these actions will affect every window that contains that database object

For example, if you have multiple windows open of a single schematic and you Delete a wire, that wire will be deleted in every window.

Cut Removes a selected object and moves it into a clipboard.

Copy Copies a selected object in the active window into a clipboard.

Paste Pastes whatever is in the clipboard into the active window.

Delete Removes the currently selected items from the window.

Alter Changes temporarily (without deleting) the value of any element or parameter in the template describing the current block. This form does not change the file containing the template description (or netlist), but it does let you see the effect of a change before editing the file to make the change.

Experiment Allows you to execute one or more commands repeatedly.

Application Preferences (UNIX only)

Allows you to customize the text and colors of the window.

12 Saber® User GuideD-2010.03-SP1

Page 27: Saber User Guide 2010.03

Chapter 2: Saber Guide Windows/Pulldown MenusEdit Pulldown Menu

This section covers the following topics:■ Alter Design Dialog Box■ Experiment Editor■ Application Preferences (UNIX)

Alter Design Dialog BoxThe Alter Design dialog box allows you:

To change a parameter value

You can change the property value of an instance without propagating the change back into the Saber Sketch design by using the Alter Design form.

1. Open the Alter Design form by selecting either Edit > Alter... or the Alter button in the menu bar.

2. Select the Netlist tab.

3. Select an instance in the Hierarchical Instance List. If there is a + next to the instance name, double click to display the lower level hierarchy of this instance. All parameters can be found in the + Parameters category.

4. Highlight the parameter you want to change by clicking on it with the mouse cursor.

5. Display the Edit Values form by clicking the Edit... button in the Alter Design form.

6. Change the value in the Value field.

7. Make the changes to the in-memory design by clicking the OK button or the Apply button. This step does not affect the schematic or the netlist file.

Graph Preferences Allows you to customize the appearance of your graphs.

Set Default File Type Allows you to select one of the following: Incremental pl, Text/Excel, VCD, Plotfiles, Pre 5.0 plotfiles.

SaberGuide Preferences

Allows you to modify the functionality of the Saber Guide.

Saber Settings Allows you to modify the functionality of the Saber Simulator.

Update Template Information

Allows you to process templates before attempting to perform a netlist. Processing checks for errors and updates templates as necessary.

Saber® User Guide 13D-2010.03-SP1

Page 28: Saber User Guide 2010.03

Chapter 2: Saber Guide Windows/Pulldown MenusEdit Pulldown Menu

8. Close the Alter Design form.

Now you are ready to re-run your simulation with the new parameter value.

Optionally, you can use a wildcard expression in the Filter field to return only matching elements in the Hierarchical Instance List and Instance Arguments and Parameter Values fields. The Filter dropdown list has the selections container names and leaf names; in MAST designs, a container name is an instance and a leaf name is a parameter values or an instance argument.

To display the alter history

1. Open the Alter Design form by selecting either Edit > Alter... or the Alter button in the menu bar.

2. Select the History tab.

The history of alters performed in the current session will be displayed in the Alter History Listing window. This is a non-editable window.

For more information on using the Alter command, see the Saber Alter and Saber HDL Alter section of the Saber and Saber HDL Reference Manual .

Experiment EditorThe Experiment Editor dialog box allows you to specify a sequence of analysis, measures, loops and batch process the experiment on the compute grid.

14 Saber® User GuideD-2010.03-SP1

Page 29: Saber User Guide 2010.03

Chapter 2: Saber Guide Windows/Pulldown MenusEdit Pulldown Menu

To invoke the Experiment Editor, choose Edit > Experiment from the Saber Sketch or Saber Harness menu bar or click Experiment Editor button from the tool bar. The Experiment dialog box appears:

Choose the desired Analyses, Post Processing, Loop, and Other options from the menu bar that you want to execute on the active design and click OK. The experiment is executed in the specified order.

Note: You can invoke the Analyses, Post Processing, Loop, and Other menus by right-clicking in the empty portion of the scrollable list.

Saber® User Guide 15D-2010.03-SP1

Page 30: Saber User Guide 2010.03

Chapter 2: Saber Guide Windows/Pulldown MenusEdit Pulldown Menu

The following table provides the list of Analysis and Post-Processing methods supported in Saber:

Menu Item Forms Saber Simulator Saber HDL Simulator

Analyses

DC Operating Point X X

Small Signal AC X X

DC Transfer X X

Transient X X

Operating Point / Transient X X

Noise X -

Distrotion X -

Two-Port X -

Pole-Zero X -

Alter X X

Saber Command Line X X

PostProcessing

Measures X -

Statistical Summary X -

Fourier X -

FFT X -

IFFT X -

Stress X -

Get Initial Point X -

Edit Initial Point X -

Note: File and Edit options are common in both the simulators.

16 Saber® User GuideD-2010.03-SP1

Page 31: Saber User Guide 2010.03

Chapter 2: Saber Guide Windows/Pulldown MenusEdit Pulldown Menu

Refer to the Saber and Saber HDL Reference Manual for more information on specifying the analysis options.

Refer to the Experiment Editor - Submit to Grid section of the Distributed Processing for more information on submitting batch jobs to the compute grid.

This section covers the following topics:

Plotfile Summary X -

Add Signals to Plotfile X -

Transform Plotfile X -

Histogram X X

Operating Point Report X X

View Plotfiles in Scope X X

Plot Signals in Scope X -

Stress Report X -

Scope Command Line X X

Aim Command Line X X

Loop

Vary X X

Monte Carlo X X

Other

Stimulus Change X -

DC Test X -

Difference Test X -

Note: File and Edit options are common in both the simulators.

Saber® User Guide 17D-2010.03-SP1

Page 32: Saber User Guide 2010.03

Chapter 2: Saber Guide Windows/Pulldown MenusEdit Pulldown Menu

■ Plotting Simulation Results in an Experiment Using "ScopePlot"

Plotting Simulation Results in an Experiment Using "ScopePlot"To plot a specified list of signals from a single plotfile, open the ScopePlot form (by clicking on the ScopePlot button once it is placed in the experiment) and set "Specify Scope Graph/Outline" to "No". You can then select a plotfile and list of signals to plot. Setting the plotfile name to "Last" will select the most recent plotfile created by Saber (e.g. by the preceding analysis item in the experiment). You can select signals to display either by getting the current selected schematic signals, by browsing the list of signals in the design, or by browsing an existing plotfile. It is important to make sure that the signals which are selected for the specified plotfile name will be available in the plotfile when the experiment is run. In other words, make sure that the signal list specified for the analysis that creates the plotfile contains the signals that you wish to plot.

The second option is to use CosmosScope to create the desired graph and import the data necessary to recreate the graph into the experiment. The data is transferred through a CosmosScope file known as an "outline". An outline saves all information needed to format signals and measurements in the current graph including those signals created with the CosmosScope Calculator tools. An outline may be used to create a new graph with a different set of signals, different plotfiles, and different simulation end time from those which were used in the original graph.

To use this option in an experiment, set "Specify Scope Graph/Outline" to "Yes". You may then choose an outline by selecting "Get From Scope" or "Get From File" using the down arrow next to the field named "Outline" in the ScopePlot form. "Get From Scope" will automatically import the data necessary for recreating the graph which is currently active. Once again it is important to make sure that the signals and plotfiles will be available at the time that the ScopePlot is executed in the Experiment. By default, the signal and plotfile names are set the same as those used in the original graph. You may select different signals or plotfiles by pressing mouse button one in the "Signals" field in the ScopePlot form.

The "Get From File" option is similar to "Get From Scope", but reads the outline data from a file instead of directly from CosmosScope. To use "Get From File" you will need to select the item "Save>Outline" from within CosmosScope to save an outline of the graph that you wish to create in the experiment. Then use the "Get From File" item in the ScopePlot form to read the outline into the experiment. When using "Get From File" the default signal names are the same

18 Saber® User GuideD-2010.03-SP1

Page 33: Saber User Guide 2010.03

Chapter 2: Saber Guide Windows/Pulldown MenusEdit Pulldown Menu

as those in the original graph, and the default plotfile is set to "Last" (which selects the most recently generated plotfile). Once again you may modify the plotfiles and or signals by clicking on the signal field in the ScopePlot form.

Application Preferences (UNIX)The Application Preferences dialog box allows you to customize the text and colors of Saber windows, change the date format and to save configuration preferences. The Applications Preferences dialog box is not available on Windows.

To change colors:

• Single click on the Foreground, Active Foreground, Background or Active Background buttons that contain the colored square. A Color Editor dialog box will be displayed.

To change the style of text:

• Click on the ABC 123 button. The Font Selection dialog box will be displayed.

Other fields are described in the following table:

This section covers the following topics:

Option Description

Date Format Globally changes date displays in Saber.

To change the date display, click on the Edit button. The Edit Text Variables dialog box will be displayed.

Definition Field Displays the current date display format. To place an item in the Definition field, left click on the item.

Predefined Button Opens a list of predefined date displays.

Building Blocks Scrollable List Allows you to build your own date display.

Save Configuration on Exit Gives you the option of saving whatever your configuration is when you exit.

Saber® User Guide 19D-2010.03-SP1

Page 34: Saber User Guide 2010.03

Chapter 2: Saber Guide Windows/Pulldown MenusEdit Pulldown Menu

■ Application Preferences – General Operation

Application Preferences – General OperationTo apply a new preference, use the Apply button. The new preference will be immediately applied. This change is good only for your current session unless you use the Save button.

To save your changes as preference for later sessions, click on the Save button. You can now exit, return, and retain your new preferences.

The Defaults button sets your preferences to the original default selections.

The Reset button returns the settings that were in place when the current session was opened, or when the last settings were applied with the Apply button.

The Close button closes the dialog box.

Application Colors

Colors can be changed on the Foreground, Active Foreground, Background and Active Background.

The Foreground consists of the pulldown menu text and the text on buttons and fields in all of the menus and dialog boxes.

The Active Foreground consists of highlighted pulldown menu text and the highlighted text on buttons and fields in all of the menus and dialog boxes.

The Background consists of the window surface, and the surface of all menus and dialog boxes upon which text and buttons are displayed.

The Active Background consists of the highlight surrounding highlighted text.

Active Background

Background

Active Foreground

Foreground

(highlighted text)(highlighted background)

(text)

20 Saber® User GuideD-2010.03-SP1

Page 35: Saber User Guide 2010.03

Chapter 2: Saber Guide Windows/Pulldown MenusGraph Pulldown Menu

Graph Pulldown Menu

The Graph pulldown menu allows you to navigate and modify the CosmosScope windows.

Option Description

Paste Allows you to plot selected signals from the signal list into the graph region.

Annotate Info Allows you to insert information into the graph window.

Zoom to Fit Displays the entire design.

Zoom In Increases magnification to show increased detail.

Zoom Out Decreases magnification to show less detail but more of the design.

Signal Attributes Opens the Signal Attributes dialog box.

Axis Attributes Opens the Axis Attributes dialog box.

Toggle Axis Grid Turns the graph grid on and off.

Members Opens the Member Attributes dialog box, if a graph window containing multiple members is open.

Measure Results Opens the Measure Results dialog box.

Waveform compare Invokes the Digital Waveforms Compare dialog box, allowing you to perform comparisons between two digital waveforms.

Signal Search Searches for signals that have been graphed.

Selected Axes Operates on one or more axes that you have selected. Selected Axes items that are available to alter or show/hide are Range, Scale, Grids, Sliders, and Lock.

Selected Signals Allows you to adjust display characteristics.

Selected Graphics Allows you to modify graphic objects.

Font Controls the font selection, style, and size in the current graph.

Color Map Allows you to change the graph window color scheme.

Legend Allows you to change the position of the legends in the graph.

Match Aspect Ratio Allows you to change the dimensions of the graph window.

Saber® User Guide 21D-2010.03-SP1

Page 36: Saber User Guide 2010.03

Chapter 2: Saber Guide Windows/Pulldown MenusGraph Pulldown Menu

This section covers the following topics:■ Signal Attributes Menu Option■ Signal Attributes - View Axis Options■ Axis Attributes Menu Option■ Members Menu Option■ Measure Results Menu Option■ Selected Axes Menu Option■ Selected Signals Menu Option

Signal Attributes Menu OptionSelecting the Graph>Signal Attributes option opens the Signal Attributes dialog box. This dialog box allows you to select any signal displayed in the graph window, change the color of the signal, change the style of the line, add a symbol to the signal, change the symbol width, fill the area under the signal, manipulate the stack region, change the point of view of the signal, and change the signal label.

Rename window title Allows you to rename the title on the graph.

Clear Graph Clears all signals, axes, and legends from the graph.

Option Description

Signal Field Allows you to select a signal displayed in the graph window to view or modify its attributes.

To display all available signals in the graph window, single click the left mouse button on the downward pointing arrow at the right of the Signal field.

Color Field Allows you to change the color of the selected signal.

To change colors, single click on any one of the color buttons.

22 Saber® User GuideD-2010.03-SP1

Page 37: Saber User Guide 2010.03

Chapter 2: Saber Guide Windows/Pulldown MenusGraph Pulldown Menu

Style Field Allows you to change the appearance of the signal line. Several line styles are displayed. Selecting None causes the signal line to disappear. If the signal is also represented by symbols, the symbols will still be displayed.

Symbol Field For analog signals, the Symbol field allows you to add symbols to display the signal line. Several symbol styles are displayed. Selecting None causes the symbols to disappear. If the signal is also represented by a line, the line will still be displayed.

Symbol Width Field For analog signals, the Symbol Width field allows you to change the size of displayed symbols.

Bar Field For analog signals, the Bar field allows you to fill in the area under a curve with a pattern. Several bar patterns are displayed. The pattern will be in the color of the signal.

Stack Region Field Allows you to move the signal currently selected in the Signal Attributes dialog box in and out of different graph regions.Digital will move the selected analog

or digital signal into a single digital/trace graph region.

New will move the selected analog or digital signal into a new analog graph region at the top of all other analog graph regions in the graph window.

n (where n is the identifying number of a graph region) will move the selected analog or digital signal into the analog graph region specified by the number n.

Trace Height Field For digital signals, the Trace Height field allows you to change the height of selected signals.

Bus Field For digital signals, the Bus field changes the digital information display.

Saber® User Guide 23D-2010.03-SP1

Page 38: Saber User Guide 2010.03

Chapter 2: Saber Guide Windows/Pulldown MenusGraph Pulldown Menu

Signal Attributes - View Axis OptionsVarious options for the Vertical and Horizontal Axis are available by selecting Graph>Signal Attributes; these options are implemented by setting the View: fields in the Signal Attributes Dialog Box.

This section covers the following topics:■ Vertical Axis Options■ Horizontal Axis Options

Vertical Axis OptionsThe Vertical Axis options are: ■ Real(x) uses the real X values of a signal as the Y-axis of the graph region.

For example, if the X-axis is represented in Hertz, the Y-axis will also be represented in Hertz.

■ dB(x) uses the decibels of the x value of a signal as the Y-axis.■ Real(y) plots the real value of the Y-axis.

View Field For analog signals, the View fields allows you to change the display of the selected signal.The left hand field changes the Y-axis (vertical axis) plot of the

selected signal.

The right hand field changes the X-axis (horizontal axis) plot of selected signals based on different X-axis and Y-axis parameters.

Details on the Vertical Axis Options and Horizontal Axis Options are provided following this table, below.

Label Field Allows you to change the name of the signal.

To change the name type the name of the signal in the Label field.

Click the Apply button to display the new name in the graph window.

Close Button Closes the dialog box.

24 Saber® User GuideD-2010.03-SP1

Page 39: Saber User Guide 2010.03

Chapter 2: Saber Guide Windows/Pulldown MenusGraph Pulldown Menu

■ dB(y) plots the Y-axis in decibels.■ Mag(y) plots the magnitude of the Y-axis value.■ Imag(y) plots the Y-axis in imaginary terms.■ Phase(y) deg plots the Y-axis values.■ Phase(y) rad plots the Y-axis in terms of phase in radian units.■ CPhase(y) deg plots the Y-axis in terms of continuous phase, in degree

units.■ CPhase(y) rad plots the Y-axis in terms of continuous phase, in radian units.

Horizontal Axis OptionsThe Horizontal Axis options are: ■ Real(x) plots the real value of the X-axis.■ dB(x) plots the X-axis values in decibels.■ Real(y) uses the real Y values of a signal as the X-axis of the graph region.

For example, if the Y-axis is represented in volts, the X-axis will also be represented in volts.

■ dB(y) plots the X-axis in Y-axis terms and decibels. For example, if the Y-axis is represented in volts, the X-axis will be represented in volts and decibels.

■ Mag(y) plots the magnitude of the Y-axis value.■ Imag(y) plots the X-axis in imaginary Y-axis terms. For example, if the Y-axis

is represented in volts, the X-axis will be represented in imaginary volts.■ Phase(y) deg plots the X-axis in terms of phase, in degree units.■ Phase(y) rad plots the X-axis in terms of phase, in radian units.■ CPhase(y) deg plots the X-axis in terms of continuous phase, in degree

units.■ CPhase(y) rad plots the X-axis in terms of continuous phase, in radian units.

Saber® User Guide 25D-2010.03-SP1

Page 40: Saber User Guide 2010.03

Chapter 2: Saber Guide Windows/Pulldown MenusGraph Pulldown Menu

Axis Attributes Menu OptionThis option opens the Axis Attributes dialog box. This dialog box allows you to select an axis, zoom, pan, change the scale to linear or logarithmic, change grid increments, toggle the axis grid, and edit the axis label.

Option Description

Axis Field Allows you to select and update any axis displayed in the graph window. To display and select an available axes from the graph window, click the left mouse button on the down arrow to the right of the Axis field.

Range Fields These fields allow you to zoom and pan along the axis associated with the Axis field. The field of view is displayed in the Zoom From/To field. The entire possible viewing range is displayed beneath the Slider bar.

Zoom In Button Allows you to increase magnification to show increased detail.

Zoom to Fit Button Allows you to display the maximum number of data points to show the entire range of a signal.

Zoom Out Button Allows you to decrease magnification to show less detail, but more of the graphed information.

Zoom From/To Field Displays the current field of view for the selected axis and allows you to enter values for the range you want to display.

To change the field of view, type in the values in the From/To fields and Single click on the Apply button.

Slider Bar Allows you to pan along the selected axis.

Press and hold the left mouse button and move the slider bar right or left. The range available to be displayed is shown below the slider bar. The range displayed is dynamically shown in the From/To field.

Release the mouse button when the coordinates you want are displayed in the From/To field.

26 Saber® User GuideD-2010.03-SP1

Page 41: Saber User Guide 2010.03

Chapter 2: Saber Guide Windows/Pulldown MenusGraph Pulldown Menu

Members Menu OptionThe Member Attributes dialog box is for use with multi-member waveforms. This dialog box allows you to control which members of a waveform you want to show or hide on the graph, as well as which waveform member labels you want to hide or show on the graph. The Loop Highlight button causes each of the waveform members to be highlighted sequentially.

Scale Field Toggles the selected axis scale. The Linear button displays the selected axis scale in linear increments. The Log button displays the selected axis scale in logarithmic increments.

Increment Field (Grid, Exponent)

Allows you to change the resolution of the axis scale.

If you selected Linear for Scale, you will set the Grid Increment. If you selected Log for Scale, you will set Exponent Increment and Grids/Increment.

Grid Increment -- Sets the unit difference between labeled grids for a linear scale. For example, inserting 20u for a time scale will set each grid marking 20usec apart. This setting is also used by the Nice Ticks option in the Axes Zoom field of the Graph Preference dialog box, the XY tab.

Exponent Increment -- Sets the unit difference between labeled grids for a log scale. For example, inserting 1 for a frequency scale will set each grid marking exponentially apart—10, 100, 1000, etc.

Grids/Increment -- Sets the number of unlabeled subdivisions between grids for a log scale.

Number of Tick Subdivisions Field

Allows you to change the number of gradations (ticks) between grid increments.

To change the number of gradations, type in the number of ticks you want displayed and single click on the Apply button.

Grid Visibility Field Toggles the grid display. The Show button turns the axis grid in the active graph window on. The Hide button turns the axis grid off.

Axis Label Field Allows you to change the label of the axis. The actual units of the scale are not changed.

To change the axis label type the name of the signal in the Axis Label field.

Click the Apply button to display the new name in the graph window.

Close Button Exits the dialog box.

Saber® User Guide 27D-2010.03-SP1

Page 42: Saber User Guide 2010.03

Chapter 2: Saber Guide Windows/Pulldown MenusGraph Pulldown Menu

Measure Results Menu OptionThe Measure Results dialog box allows you to select a signal, delete measurements, hide measurement results, or show all measurement results.

The Measurement list displays all measurements that are active for a signal. Measurement values for the selected measurement are displayed in the Status list.

Option Description

Status List Displays a list of measurement values associated with the selected measurement in the Measurement list. Each value has a visibility indicator associated with it.

Visibility Indicator A Visibility Indicator shows the display status of a measurement value.

To change the state of the visibility indicator, single click the left mouse button.

An all black visibility indicator indicates that the measurement value is not displayed.

An all green visibility indicator shows that the measurement value is displayed.

Measurement

Status List

MeasurementDisplayed

MeasurementHidden

List

28 Saber® User GuideD-2010.03-SP1

Page 43: Saber User Guide 2010.03

Chapter 2: Saber Guide Windows/Pulldown MenusGraph Pulldown Menu

Selected Axes Menu OptionOperates on one or more axes that you have selected. Selected Axis items that are available to alter or show/hide are Range, Scale, Grids, Sliders, and Lock.

To select an axis, place the mouse cursor over the axis grid, the axis name next to the axis grid or the axis name in the legend, and single click with the left mouse button.

This section covers the following topics:■ Range■ Scale■ Grids■ Sliders■ Lock Menu Item

RangeThe following options are available by selecting Graph>Selected Axes>Range:■ Zoom to Fit displays the maximum number of data points to show the entire

range of a signal. ■ Zoom In increases magnification to show increased detail.

Signal Field Allows you to select any signal displayed in the graph window.

To display all available signals in the graph window, single click with the left mouse button on the downward pointing arrow at the right of the Signal field.

Delete Measurement Button

Permanently deletes the selected measurement.

Delete All Button Permanently deletes all measurements for the selected signal.

Show All Values Button Displays all values for the selected measurement.

Hide All Values Button Hides the display of all values for the selected measurement. Passing the mouse cursor over a visibility indicator in the Status list will cause a highlighted measurement value to appear on the signal.

Close Button Closes the Measure Results dialog box.

Saber® User Guide 29D-2010.03-SP1

Page 44: Saber User Guide 2010.03

Chapter 2: Saber Guide Windows/Pulldown MenusGraph Pulldown Menu

■ Zoom Out decreases magnification to show less detail, but more of the graphed information.

■ Pan Right allows you to view parts of the data that are not visible to the right of the currently displayed graph. This command operates only on the X-axis.

■ Pan Left allows you to view parts of the data that are not visible to the left of the currently displayed graph. This command operates only on the X-axis.

■ Pan Up allows you to view parts of the data that are not visible above the currently displayed graph. This command operates only on the Y-axis.

■ Pan Down allows you to view parts of the data that are not visible below the currently displayed graph. This command operates only on the Y-axis.

ScaleThe following options are available by selecting Graph>Selected Axes>Scale:■ Linear sets the selected axis to a Linear scale.■ Log sets the selected axis to a Logarithmic scale.

GridsThe following grid options are available: ■ Show turns the axis grid in the graph regions on.■ Hide turns the axis grid in the graph regions off.

SlidersYou have the option of using a slider bar to pan along the X-axis of a graph. ■ Show turns the slider bar on.■ Hide turns the slider bar off.

Lock Menu ItemAccept new signals allows signals to be added to the axis if the signals share the same units. For example, a signal with an amplitude in microvolts will share the same scaling as a signal with an amplitude in volts in the same graph region.

30 Saber® User GuideD-2010.03-SP1

Page 45: Saber User Guide 2010.03

Chapter 2: Saber Guide Windows/Pulldown MenusGraph Pulldown Menu

Lock out new signals does not allow signals to be added to the same axis even if they have the same units. For example, a signal with an amplitude in microvolts will have a different scale from a signal with an amplitude in volts in the same graph region.

Saber® User Guide 31D-2010.03-SP1

Page 46: Saber User Guide 2010.03

Chapter 2: Saber Guide Windows/Pulldown MenusGraph Pulldown Menu

Selected Signals Menu OptionThe Selected Signals feature operates on one or more graphed signals that you select, allowing you to adjust the display characteristics.

Selected Signals items that are available are Stack Region, Color, Style, Symbol, Symbol Width, View, Signal Grid Trace Height, Digital Display, Create Bus, and Delete Signals.

To select a signal, place the mouse cursor over the signal or over the signal name in the legend, and single click the left mouse button.

This section covers the following topics:■ Selected Signals>Stack Region Menu Item■ Selected Signals>Color Menu Item■ Selected Signals>Style Menu Item■ Selected Signals>Symbol Menu Item

32 Saber® User GuideD-2010.03-SP1

Page 47: Saber User Guide 2010.03

Chapter 2: Saber Guide Windows/Pulldown MenusGraph Pulldown Menu

■ Selected Signals>Symbol Width Menu Item■ Selected Signals>View Menu Item■ Selected Signals>Trace Height Menu Item■ Selected Signals>Digital Display Menu Item■ Selected Signals>Delete Signals Menu Item

Selected Signals>Stack Region Menu ItemAllows you to move selected signals in and out of different graph regions.

Digital/Trace moves selected analog or digital signals into the digital/trace graph region.

New Analog moves selected analog or digital signals into a new analog graph region.

Analog n (where n is the identifying number of a graph) moves selected analog or digital signals into the analog graph region specified by the number n.

Selected Signals>Color Menu ItemAllows you to choose one of the available signal colors.

Selected Signals>Style Menu ItemDisplays several line styles. Selecting None causes the signal line to disappear. If the signal is also represented by symbols, the symbols will still be displayed.

Saber® User Guide 33D-2010.03-SP1

Page 48: Saber User Guide 2010.03

Chapter 2: Saber Guide Windows/Pulldown MenusGraph Pulldown Menu

Selected Signals>Symbol Menu ItemDisplays several symbol styles. Selecting None causes the symbols to disappear. If the signal is also represented by a line, the line will still be displayed.

Selected Signals>Symbol Width Menu ItemAllows you to change the size of displayed symbols.

Selected Signals>View Menu ItemAllows you to change the display of selected signals

34 Saber® User GuideD-2010.03-SP1

Page 49: Saber User Guide 2010.03

Chapter 2: Saber Guide Windows/Pulldown MenusGraph Pulldown Menu

Horizontal Value changes the X-axis (horizontal axis) plot of selected signals based on different X-axis and Y-axis parameters.

Vertical Value changes the Y-axis (vertical axis) plot of selected graph regions.

AC signals will have the option to change the display to a Nyquist plot, Bode dB plot (the vertical scale is represented in decibels), Bode Ph (phase) plot (the vertical scale is represented in degrees), or a Nichols plot.

Monotonic Plot allows you to switch to plot of selected signals between monotonic mode and normal mode.

Selected Signals>Trace Height Menu ItemValid for digital or analog signals displayed in the Digital/Trace graph region. The Trace Height menu allows you to change the height of selected signals.

Selected Signals>Digital Display Menu ItemAllows you to display logical information in numerical forms such as binary, octal, decimal, hex, double, and stepped.

Digital signals combined into a bus can be displayed as a doubled waveform,

or as an analog stepped waveform.

Saber® User Guide 35D-2010.03-SP1

Page 50: Saber User Guide 2010.03

Chapter 2: Saber Guide Windows/Pulldown MenusAnalyses Pulldown Menu

Selected Signals>Delete Signals Menu ItemDeletes the signal or signals that are selected in the graph window. If the deleted signal is the only signal in the graph region, the whole graph region is deleted.

Analyses Pulldown Menu

The Analyses pulldown window contains:

This section covers the following topics:

Option Description

Operating Point DC Operating Point, DC Transfer, Edit Initial Point.

Time Domain Transient, Operating Point/Transient.

Frequency Small Signal AC, Distortion, Noise, Two-Port.

Linear Systems Analysis Pole-Zero, Linear Time Response, Frequency Response, Estimate System Time Parameters, Estimate System Frequency Parameters.

Parametric Vary, Sensitivity.

Statistical Monte Carlo, Statistical Summary, Histogram.

Stress Stress Analysis.

Fourier Fourier, FFT, IFFT.

Batch Measure The measure command provides a means to extract performance characteristics such as the duty cycle, the 3 dB frequency, or the rise time from a waveform.

Interrupt Pauses the simulator.

Continue Restarts the simulator for Transient, Operating Point/Transient, Vary, Monte Carlo analyses from the last data point calculated before the Interrupt command was issued to the simulator.

36 Saber® User GuideD-2010.03-SP1

Page 51: Saber User Guide 2010.03

Chapter 2: Saber Guide Windows/Pulldown MenusExtract Pulldown Menu

■ Hierarchical Browsing in Analysis Forms

Hierarchical Browsing in Analysis FormsIn general, when an analysis dialog box has fields requiring you to specify sources, signals, parameters, or arguments, you can select Browse Design from the dropdown list next to that field in order to open a dialog box allowing you to browse the design hierarchically for what the field requires. ■ If there is a + next to the instance name, double click to display the lower

level hierarchy of this instance.■ If the dialog box used for browsing has two panels, you can move highlighted

items to and from the Selected Items list by clicking the arrow buttons.■ Placing items in the Selected Items list is not necessary; Selected Items is

only used to make it easy for you to keep track of which items you have selected.

■ Optionally, you can use a wildcard expression in the Filter field to return only matching elements in the list fields. The Filter dropdown list has the selections container names and leaf names; in MAST designs, a container name is an instance and a leaf name is a parameter value or an instance argument.

Extract Pulldown Menu

The Extract pulldown window contains:

Option Description

Add Signals to Plotfile Extracts specified signals and their values from a Data File and generates a plot file that can be viewed in the CosmosScope Waveform Analyzer.

Get Initial Point Extract an initial point file from the data file specified by the Input Data File field.

Transform Plotfile Reads the contents of a plot file, specified by the Input Plot File field and stores a subset of its contents in another plot file specified by the Output Plot File field.

Saber® User Guide 37D-2010.03-SP1

Page 52: Saber User Guide 2010.03

Chapter 2: Saber Guide Windows/Pulldown MenusResults Pulldown Menu

This section covers the following topics:■ Hierarchical Browsing with the Add Signals to Plotfile Form

Hierarchical Browsing with the Add Signals to Plotfile FormYou can select Browse Design from the dropdown list next to the Signal List field in order to open a dialog box allowing you to browse the design hierarchically for instances and nodes. ■ If there is a + next to the instance name, double click to display the lower

level hierarchy of this instance.■ You can move highlighted items to and from the Design Instance/Node List

list by clicking the arrow buttons.

Placing items in the Selected Items list is not necessary; Selected Items is only used to make it easy for you to keep track of which items you have selected.

■ Optionally, you can use a wildcard expression in the Filter field to return only matching elements in the list fields. The Filter dropdown list has the selections container names and leaf names; in MAST designs, a container name is an instance and a leaf name is a parameter value or an instance argument.

Results Pulldown Menu

The Results pulldown window contains:

Limit Poles and Zeros Filters the number of poles and zeros by reading the plot file, specifying ranges for values of poles and zeros, and storing results in a new plot file.

Option Description

View Plotfiles in Scope Opens CosmosScope.

Operating Point Report Display the initial point values on the nodes of the current design.

38 Saber® User GuideD-2010.03-SP1

Page 53: Saber User Guide 2010.03

Chapter 2: Saber Guide Windows/Pulldown MenusResults Pulldown Menu

This section covers the following topics:■ Hierarchical Browsing in Report Forms

Hierarchical Browsing in Report FormsIn general, when report form dialog box has fields requiring you to specify sources, signals, parameters, or arguments, you can select Browse Design from the dropdown list next to that field in order to open a dialog box allowing you to browse the design hierarchically for what the field requires. ■ If there is a + next to the instance name, double click to display the lower

level hierarchy of this instance.■ If the dialog box used for browsing has two panels, you can move highlighted

items to and from the Selected Items list by clicking the arrow buttons.■ Placing items in the Selected Items list is not necessary; Selected Items is

only used to make it easy for you to keep track of which items you have selected.

■ Optionally, you can use a wildcard expression in the Filter field to return only matching elements in the list fields. The Filter dropdown list has the selections container names and leaf names; in MAST designs, a container name is an instance and a leaf name is a parameter value or an instance argument.

Initial Point Report Reports initial point data of transistor circuits. The command creates a two part report of the initial point data in a form similar to HSPICE. The first part includes the values of all selected nets. The second part includes information about selected instances.

Plotfile Report The Plot File Report displays the values of all signals specified in the named input file.

Stress Report Generates a formatted Stress Report from an input file from a a previous stress analysis run.

Sensitivity Report Generates a Sensitivity Report from an input file created by a sensitivity analysis run.

Small-Signal Report Calculates and displays the specified small signal parameters based on an initial point.

Pole-Zero Report Generates an ASCII report on a pole-zero analysis.

Plotfile Summary Summarizes the contents of a plot file, either on-screen or in a file.

Saber® User Guide 39D-2010.03-SP1

Page 54: Saber User Guide 2010.03

Chapter 2: Saber Guide Windows/Pulldown MenusTools Pulldown Menu

Tools Pulldown Menu

The Tools pulldown window contains:

Window Pulldown Menu

The Windows pulldown menu allows management of multiple windows in the primary window.

All of the windows are listed at the bottom of the Windows pulldown menu.

Option Description

Command Line Opens the Command Line tool. This tool allows you to enter AIM commands, write scripts, and save them into files. You can also view the Saber Log.

Drawing Tool Opens the Drawing tool. This tool allows you to create general graphic objects and text.

Signal Manager Opens the Signal Manager. This tool allows you to open plotfiles, filter out unwanted signals, place signals into a graph window, and place signals into the Calculator.

Measurement Open the Measurement tool. This tool allows you to perform measurement operations on displayed waveforms in the graph window. The results of the measurements are displayed in the graph along with the waveform.

Calculator Open the calculator. This tool allows you to perform operations on AIM language expressions and waveforms as well as on numbers. The calculator can be programmed to perform custom operations or a series of operations.

Macro Recorder Opens the Macro Recorder tool. This tool records a series of actions, allows you to edit these actions, and plays them back as a script.

RF Tool Opens the RF Tool. This tool allows you to perform measurements and calculations specific to RF analysis

MATLAB Command Line

Opens an AIM window allowing you to issue commands to MATLAB from within Saber.

Report Opens the Report tool. This tool allows you to edit simulation files or any ASCII text. It is linked to the Saber Simulator so that new reports can be generated and displayed in the report window.

Testify Opens the Testify Test Manager tool.

40 Saber® User GuideD-2010.03-SP1

Page 55: Saber User Guide 2010.03

Chapter 2: Saber Guide Windows/Pulldown MenusHelp Pulldown Menu

To open an iconized window or to bring a window to the front of a stack of windows

• Single click the left mouse button on the window name in the list.

Other functions are described in the following table:

Help Pulldown Menu

The Help pulldown menu offers assistance on various Saber features.

Help on SaberGuide opens the documentation describing this application.

Help on Scope opens the documentation describing this application.

About Online Documentation displays the online documentation version and copyright.

About CosmosScope displays the CosmosScope version and copyright.

About SaberGuide displays the Saber Guide version and copyright.

Option Description

Cascade Places windows so that they are on top of each other diagonally from the upper left hand corner to the lower right hand corner of the primary window.

Tile Places windows so they have no overlap.

Arrange Icons Neatly arranges multiple icons across the bottom of the window.

Saber® User Guide 41D-2010.03-SP1

Page 56: Saber User Guide 2010.03

Chapter 2: Saber Guide Windows/Pulldown MenusHelp Pulldown Menu

42 Saber® User GuideD-2010.03-SP1

Page 57: Saber User Guide 2010.03

3

3Simulating Designs

Introduces the Saber simulation tasks.

Saber consists of Saber Sketch, Saber Guide, and CosmosScope.■ You draw schematics using Saber Sketch (or a Frameway schematic

capture tool). ■ You interactively control simulation and analyses in order to verify design

functionality and tune design parameters using Saber Guide. ■ You view and analyze waveforms using CosmosScope.

This section covers the following topics:■ Design Process Overview Using Saber■ Simulating Designs Using Saber Guide■ Verifying Design Functionality■ Tuning Design Parameters■ Specifying Signals for Analysis■ Examining the Simulator Transcript■ Changed Memory Model■ NaN and Inf Detection

Saber® User Guide 43D-2010.03-SP1

Page 58: Saber User Guide 2010.03

Chapter 3: Simulating DesignsDesign Process Overview Using Saber

Design Process Overview Using Saber

Simulating Designs Using Saber Guide

After you invoke the Saber Guide User Interface and verify the netlister and Saber invocation options, you are ready to simulate the design using the Saber Simulator.

Typically, you will want to first verify your design functionality. Once you are certain your circuit works under nominal conditions, you can then tune your design parameters to reduce your design cost and increase circuit reliability.

Because Saber contains numerous types of analyses, you can select the appropriate analysis depending on the type of specification that you are trying to verify. Prior to running the analysis, Saber determines whether a new netlist needs to be generated and does so if necessary.

If you attempt to run an analysis on a schematic without specifying the top-level schematic, you will be prompted for the top-level schematic name (unless there is only one schematic open in the Saber work surface) or to cancel the analysis run.

Draw the Schematic

Verify Design Functionality

CosmosScope

Saber Sketch

Tune Design Parameters

View and Analyze Waveforms

orFramewayschematiccapture tool

Saber Guide

44 Saber® User GuideD-2010.03-SP1

Page 59: Saber User Guide 2010.03

Chapter 3: Simulating DesignsSimulating Designs Using Saber Guide

You can access these analyses using the Analyses pulldown menu in Saber Guide.

This section covers the following topics:■ Understanding Analysis Forms and Form Files

Understanding Analysis Forms and Form FilesAnalysis Forms: Analysis forms enable you to specify the options and arguments for different kinds of analyses that Saber supports.

Form Files: Form files are ASCII data files that store the configuration information of a Saber analysis. By saving and loading form files, the analysis forms can automatically be setup without having to change the values manually from their defaults.

Note: A form file records the configuration details of the last saved analysis.

A form file has an extension .ai_frm and is associated with a design.

This section covers the following topics:■ Saving the Current Configuration Details of an Analysis Form■ Loading a Previously Saved Configuration from a Form File■ Switching Between Saber and Saber HDL Simulators - Form File Behavior

Saving the Current Configuration Details of an Analysis FormA form file stores the options and arguments of an analysis form and allows you to share the analysis settings of the design with other users of Saber.

Saber® User Guide 45D-2010.03-SP1

Page 60: Saber User Guide 2010.03

Chapter 3: Simulating DesignsSimulating Designs Using Saber Guide

This procedure provides instructions to save the current configuration details of an analysis form to a form file:

1. You can invoke the Saber Guide Transcript Window in one of the two ways:

2. Click File > Forms > Save to save the current configuration details to a previously saved form file.

3. Click File > Forms > Save As to save the current configuration details to either a different form file or to a new form file.

Loading a Previously Saved Configuration from a Form FileThis procedure provides instructions to load the analysis form values from a previously saved configuration from a form file:

1. You can invoke the Saber Guide Transcript Window in one of the two ways:

2. Select File > Forms > Open to load an existing form file associated with that particular design and analysis form.

If you are using... then...

Saber Sketch or Saber Harness ■ Click the Show/Hide Guide icon from the tool bar. The simulator transcript (cmd) button is displayed.

■ Click the cmd button to launch the Saber Guide Transcript window.

Saber or Saber HDL simulator Click the cmd button to launch the Saber Guide Transcript window

If you are using... then...

Saber Sketch or Saber Harness ■ Click the Show/Hide Guide icon from the tool bar. The simulator transcript (cmd) button is displayed.

■ Click the cmd button to launch the Saber Guide Transcript window.

Saber or Saber HDL simulator Click the cmd button to launch the Saber Guide Transcript window

46 Saber® User GuideD-2010.03-SP1

Page 61: Saber User Guide 2010.03

Chapter 3: Simulating DesignsVerifying Design Functionality

Switching Between Saber and Saber HDL Simulators - Form File BehaviorWhen you switch between simulators, the following sequence of actions takes place:

1. The forms associated with the current simulation context (for example, design A) is saved in the active form file (A.ai_frm)

2. The forms associated with the new simulation context (for example, design B) is loaded from B.ai_frm, which becomes the active form file.

Note: Switching simulators in Saber Sketch does not change the designs (design A = design B)

A new simulation context may not have an associated form file if the design is new and has never been simulated, or the design had been simulated but the forms were not saved.

You can enable (default) and disable the automatic saving/loading of forms from the Edit > SaberGuide Preferences or Edit>GuideHDL Preferences window. If the option is disabled, then the behavior of forms in Saber Sketch, Saber Simulator and Saber Guide is the same, except that the analysis forms in Saber Sketch are preserved when you switch designs or simulators.

Verifying Design Functionality

The Saber Simulator provides the following analyses to verify the functionality of your design in the time and frequency domains. Procedures for executing these analyses, viewing the resulting waveforms, and analyzing the results are in this manual.■ To verify the steady-state specifications, use the DC operating point analysis

to determine the time=0 state of the system. ■ To verify the time-domain specifications of your design, use the transient

analysis to determine the system response over time. The Saber Simulator provides the Fourier and FFT analyses to transform time-domain waveforms in to the frequency spectrum.

Saber® User Guide 47D-2010.03-SP1

Page 62: Saber User Guide 2010.03

Chapter 3: Simulating DesignsTuning Design Parameters

■ To verify the frequency domain specifications of your design, use the AC analysis to determine the small-signal frequency response of the system. The Saber Simulator provides the iFFT analysis to transform frequency domain waveforms into the time domain.

■ Use the DC Transfer analysis to sweep an independent source and calculate the operating point at each swept value.

Tuning Design Parameters

The Saber Simulator provides the following analyses to tune the design parameters, such as part values and tolerances, of your design. Procedures for executing these analyses, viewing the resulting waveforms, and analyzing the results are in this manual.■ Vary allows you to sweep design/part parameters (at user-defined values)

and execute a set of analyses at each parameter value.■ Monte Carlo allows you to randomly vary design/part parameters and run

various analyses to evaluate a simulated manufacturing run.■ Sensitivity analysis determines the sensitivity of a performance

measurement to a variance of a design/part parameter.■ Stress analysis determines whether a part is overstressed during a

particular DC, DC transfer or Transient analysis run.

Specifying Signals for Analysis

The Signal Browser allows you to specify signals for analysis. It displays model instance names and their associated signals, nodes, variables, and states from the design or model. You can perform the following tasks using the Signal Browser: ■ Select the instances, signals etc. to which the analysis is applied.■ Browse the design for the various available signals.■ Search for model instance names, model instance values (signals) or both.■ Add or remove the signals for viewing.

The following figure shows a screenshot of the Signal Browser.

48 Saber® User GuideD-2010.03-SP1

Page 63: Saber User Guide 2010.03

Chapter 3: Simulating DesignsSpecifying Signals for Analysis

The various parts of the Signal Browser are as follows:■ Search Box—Allows you to specify the model instance name or signal that

you want to search.■ Design Hierarchy List—Displays all the model instance names and their

signals. You can use the pop-up menu that appears on right-click to select or collapse the Model Instance names and their signals.

■ Selected List—Displays signals whose output you would like to view. You can use the pop-up menu that appears on right click to sort, select, or clear the signals.

■ Arrow Buttons—Allows you to add or remove signals from the Selected list.

This section covers the following topics:

Saber® User Guide 49D-2010.03-SP1

Page 64: Saber User Guide 2010.03

Chapter 3: Simulating DesignsSpecifying Signals for Analysis

■ Searching and Adding Signals

Searching and Adding SignalsTo search for a signal and to add it to the Selected list, follow these steps:

1. Search for the desired signal using one of the following methods:

2. Browse through the list of signals under the Design Hierarchy List.

3. Enter the search criteria to search for the appropriate signal as follows:

4. Click the arrow button beside the Search box. A popup menu appears. Choose any one of the three search options namely Match All, Match Model Instance Names, or Match in Selected Model Instances.

For descriptions on the search options see the Search Options in Signal Browser section.

5. To highlight all the matches found choose the Select All Matches option. If you clear this option arrow keys appear in the search for traversing through the matches found.

6. Enter the search criteria and click Enter. The signals based on the search criteria are highlighted.

Note: You must press the Enter key after making changes to any of the options.

7. Add the signals from the matches found to the Selected list using one of the following methods:

8. Double-click the signal.

9. Double-click the Model Instance Name. All the signals under the selected model instance name or the selected signal are added to the Selected list.

10. Select a signal name in the Design Hierarchy list and click the > button to add it to the Selected list. To remove a selected signal, select it in the Selected list and click the < button.

11. Repeat steps 1 and 2 to select additional signals.

12. Click OK to add the selected signals to the signal list.

This section covers the following topics:

50 Saber® User GuideD-2010.03-SP1

Page 65: Saber User Guide 2010.03

Chapter 3: Simulating DesignsExamining the Simulator Transcript

■ Search Options in Signal Browser

Search Options in Signal Browser The Signal Browser allows you to search for signals and add them to the Selected list. The Signal Browser supports wildcard search using the asterisk (*).

The Signal Browser provides three options for performing a search. They are:■ Match All—Searches for the specified search text in the model instance

names and all the signals. Use this option if you want to search in both the model instance names and the signals.

■ Match Model Instance Names—Searches for the specified search text in the model instance names. Use this option if you only want to search the model instance name.

■ Match in Selected Model Instances—Searches for the specified signal in the parts that are selected in Saber Sketch. Use this option if you want to search for signals in parts that are selected in Saber Sketch.

Examining the Simulator Transcript

You can view the simulator invocation messages by clicking on the Simulator Transcript icon (>cmd) in the top right corner of the Saber user interface. Saber also stores this information in the design.out file, located in the same directory as the netlist. For information on common error/warning messages produced by Saber, see Appendix B.

Changed Memory Model

The default memory model for the Saber Simulator is FLAT, making it unnecessary for you to increase the available memory with the saberld command on UNIX or the -size option on Windows when simulating large designs. As a consequence of this change, the simulator will no longer write a .tbl file when it quits, and therefore it will not be possible to restart a simulation session with the -e option.

Saber® User Guide 51D-2010.03-SP1

Page 66: Saber User Guide 2010.03

Chapter 3: Simulating DesignsNaN and Inf Detection

Users who want to retain the previous functionality can configure the Saber Simulator accordingly, by following these steps:

1. Start the Saber Simulator with any design

2. At the command prompt, enter the commands

CONFIG MEMory_model STANDARDCONFIG SAVE

3. Quit the simulator

4. Copy the file analogy.scf that was created in your working directory to a directory in your SABER_DATA_PATH. A convenient place is $HOME/config, where $HOME indicates your home directory. If this directory doesn't exist, create it.

NaN and Inf Detection

The simulation algorithms have been improved to detect the out of bound values NaN and Inf defined by IEEE Std. 754/854. Such values can occur for a variety of reasons during the solution of the equations. In some situations the simulator is able to correct the situation and continue the simulation, making the detection transparent to the user. In other situations the simulator will issue an appropriate error message.

52 Saber® User GuideD-2010.03-SP1

Page 67: Saber User Guide 2010.03

4

4Finding and Debugging DC Operating Points

Discusses how to work with operating points in DC analysis.

After you invoke the simulator on the design and verify that the netlist is correctly read in, the next step in the design analysis process is to find an operating point.

An operating point is a set of values that define the steady state of a nonlinear system at time=0 with all time-varying parameters and their derivatives set to 0 and with noise and ac sources set to 0. Because all derivatives are set to 0, all dynamic elements are effectively removed from the circuit (e.g. capacitors are effectively opened, and inductors are effectively shorted. All time dependent sources are effectively removed.) In electrical circuits, this analysis determines the DC bias values of the design.

Using DC analyses, you inform the simulator to calculate the operating point and store the results in an Initial Point file. The initial point file serves two major purposes:■ It is the operating point used in other simulator analyses (e.g. time-domain

analysis and small signal frequency analysis).■ It provides a quick check to determine possible incorrect part parameters.

This section covers the following topics:■ Performing DC Analysis■ Evaluating the Operating Point■ Determining the Next Step■ Debugging DC Analysis Results

Saber® User Guide 53D-2010.03-SP1

Page 68: Saber User Guide 2010.03

Chapter 4: Finding and Debugging DC Operating PointsPerforming DC Analysis

Performing DC Analysis

To find the operating point:

1. Open the Operating Point Analysis Dialog Box (Analyses > Operating Point > DC Operating Point)

2. Verify the contents of the DC analysis fields.

In most cases, the simulator can determine the operating point by using the default settings. Typically, you run the DC analysis by using the default settings and then evaluate the resulting initial point to determine whether any changes need to be made to either the design or the DC analysis fields.

3. Set the amount of information sent to the transcript.

The simulator provides the Monitor Progress and Debug fields to control transcript feedback during DC analysis.

Monitor Progress informs the simulator to transcribe one of the following reports:

• Total execution time of the analysis (if set to 0).

• Execution summary and time (if set to -1).

• Iteration information, such as number of iterations and truncation error for each nth iteration (if set to a positive number n).

Debug reports statistics on each potential solution that the simulator calculates. This feature is typically used when the simulator cannot find an operating point using the default values and you want to determine whether the design is converging on an operating point.

4. Set the DC initial and end point file names.

These fields define the beginning circuit initial and endpoint conditions and the DC analysis results.

• The Initial Point File contains the initial values of all design variables at the beginning of a DC analysis. The default file name (zero) sets all continuous time (analog) variables to zero and event-driven (digital) either to undefined or to an initial value if one was set on the digital pin.

• The End Point File contains the node values at the completion of a DC analysis. You will use this file as the initial point file for other simulator analyses, such as time-domain (transient) and small-signal frequency domain (ac). By default, the simulator names this file dc.

54 Saber® User GuideD-2010.03-SP1

Page 69: Saber User Guide 2010.03

Chapter 4: Finding and Debugging DC Operating PointsEvaluating the Operating Point

If you are completing several DC analysis iterations, you should use the previous end point file as the initial point file of the next run. This technique will decrease the analysis execution time and increase the convergence rate because the simulator does not have to start over with all design variables set to zero on each iteration. The following table shows a naming method for multiple dc analysis iterations:

5. Verify other settings in the Operating Point Analysis form.

In most cases, the simulator will find the DC operating point using the default settings. This procedure called out key fields that you would use when iterating or debugging a DC operating point.

6. Execute the Operating Point Analysis Dialog Box.

Clicking the Apply button executes the dcanalysis command. The successful DC analysis creates an Initial Point file, specified by the Initial Point File field, containing voltages and currents for every node in the system.

If the simulator did not obtain a solution, see Hints for Finding Difficult DC Operating Points on page 1-10.

After the simulator calculates an operating point, you should evaluate the calculated operating point.

Evaluating the Operating Point

Because some designs may contain more than one mathematically correct operating point, you should always evaluate the results of a DC analysis. To evaluate the operating point, follow these steps:

1. Display the Operating Point Report Dialog Box.

DC analysis Iteration Initial Point file

End Point file

First Run zero dc1

Second Run dc1 dc2

Third Run dc2 dc

Saber® User Guide 55D-2010.03-SP1

Page 70: Saber User Guide 2010.03

Chapter 4: Finding and Debugging DC Operating PointsEvaluating the Operating Point

Within the Saber Guide user interface, you can display the results of a DC analysis in an Operating Point Report by selecting the Results > Operating Point Report pulldown menu item.

2. Verify the contents of the fields.

By default, the Operating Point Report form is set up to display the DC values from the last calculated initial point file for the top-level nodes in the design. Other node values can be displayed using the Operating Point Report form’s Signal List entry field. Once generated, the report can be displayed in the Saber Guide transcript window (default) or in the Report Tool.

• Specify which initial point file to display.

If you want to display a different initial point file or multiple initial point files for comparison, you can specify the initial point files that you want to display in the Input Point File field.

• Specify the signals to display.

The following table gives examples of MAST Signal List syntax. You can include a space-separated list of multiple Signal List definitions within the same Signal List field.

MAST Signal List Examples

Definition

/*/*.* Include all components at the top level.

/.../*.* Include all instances at, and below the root level.

./ Include all signals in the current instance.

.../ Include all signals in instances below the current instance.

/.../pll.* Include all signals in all instances of any “pll” component.

pll.u12/ Include all signals in the pll.u12 instance.

sig1 sig2 Include each signal listed.

Browse Design See Specifying Signals for Analysis for more information.

56 Saber® User GuideD-2010.03-SP1

Page 71: Saber User Guide 2010.03

Chapter 4: Finding and Debugging DC Operating PointsDetermining the Next Step

• Display error estimation information.

When the Display Initial Point Error field is specified, the simulator transcribes an error estimate for each displayed signal, in addition to initial point node values. The error calculation is part of the DC algorithm. The simulator extracts this information from the dc_err file. You should not display the dc_err file by itself.

The error values are only available for system variables (i.e. node voltages and vars). They are not available for vals, which is indicated by printing undef in the dc_err column.

3. Execute the Operating Point Report dialog box.

Clicking the Apply button executes this form. By default, the simulator displays the values for the most recently calculated operating point file to the Report Tool. Once the values are displayed, you can evaluate the initial point to determine whether it is valid.

Determining the Next Step

If the DC results produce expected values, you are ready to continue the design process and proceed to one of the following steps:■ Calibrate DC analysis■ Sweep independent sources■ Check the time-domain response■ Check the frequency response

Saber® User Guide 57D-2010.03-SP1

Page 72: Saber User Guide 2010.03

Chapter 4: Finding and Debugging DC Operating PointsDebugging DC Analysis Results

Debugging DC Analysis Results■ Mis-Specified Parameter

If a mis-specified parameter caused the incorrect DC operating point, you can change the parameter in the netlist by using the Edit > Alter... menu item and re-running the DC analysis.

■ Connectivity ProblemIf a connectivity problem produces the incorrect DC operating point, you must fix the problem in the schematic, re-netlist the schematic, re-load the design into the simulator, and then re-run the dc analysis.

■ No Operating Point FoundIf the simulator didn’t find an operating point using default values, adjust the DC analysis arguments using the procedures described in “Hints for Finding Difficult DC Operating Points.”

■ Wrong Operating Point FoundIf the simulator found an unexpected operating point, adjust the DC analysis arguments using the procedures in “Simulator Found the Wrong Operating Point.”

■ Difficult Circuit ConfigurationsThere are some simple circuit configurations for which DC analysis may have a hard time finding an operating point. For a list of such configurations and some suggested approaches, see Simple Circuits That are Hard for DC Analysis on page 63.

This section covers the following topics:■ Hints for Finding Difficult DC Operating Points■ Simulator Found the Wrong Operating Point■ Simple Circuits That are Hard for DC Analysis

Hints for Finding Difficult DC Operating PointsIf the simulator failed to obtain a solution by using the default values, you can use the following process to find the operating point. You may also want to check the list of circuits with difficult DC operating points.

58 Saber® User GuideD-2010.03-SP1

Page 73: Saber User Guide 2010.03

Chapter 4: Finding and Debugging DC Operating PointsDebugging DC Analysis Results

After you find a solution, you can evaluate the solution.

1. If you get an error message indicating a singular matrix (e.g. ALG_SINGULAR_JACOBIAN, MAST_NO__NUM EQUATION, or MAST_NO_NUM_REFERENCE), there are likely to be errors in the circuit. Use the information provided with the error message to fix the problem, and re-run DC analysis.

2. Determine whether dcerr file was created in the local directory.

Do not confuse the dcerr file with the dc_err file created by a successful DC Analysis. If the dcerr file wasn’t created, contact customer support.

3. Determine whether the dcerr file contain reasonable results.

You can display the operating point by using the DIsplay command.

SABER Syntax: di dcerr

If the dcerr file does not contain reasonable results, go to Step 4.

Otherwise, re-run DC analysis with Debug mode on and using the dcerr file as the input to the analysis. (For all remaining steps, you should run with Debug mode on.)

SABER Syntax: dc (debug yes, dcip dcerr

If DC analysis still cannot find a solution, examine the output in the transcript to determine whether the design is converging.

4. Check whether the signals settled on a solution. If the signals haven’t settled, increase DR_Tsettle and repeat the dynamic ramping algorithm, for example:

SABER Syntax: dc (dr_tsettle 1, algstep n algstart dyn_r, debug yes

Repeat this step with a larger value for dc_tsettle if the signals still don’t settle on a solution (i.e. the last few time steps are still relatively small).

If the algorithm fails with an oscillation after reaching dr_tsettle, use the values in the dcerr file as the initial point.

5. Increase density by a factor of 3, reduce the truncation error to 5m and re-run the dynamic ramping algorithm, for example:

SABER Syntax: dc (den 3, dr_terr 5m, dr_tsettle 1, algstep n, algstart dyn_r, debug yes

Saber® User Guide 59D-2010.03-SP1

Page 74: Saber User Guide 2010.03

Chapter 4: Finding and Debugging DC Operating PointsDebugging DC Analysis Results

Simulator Found the Wrong Operating PointFor systems with multiple stable operating points, such as latches, flip-flops, and counters, an unbiased dc analysis might “get stuck” between operating points, rather than finding one. On the other hand, depending on the design, a dc analysis might have no trouble finding an operating point, but the operating point found might not be the one you are most interested in. In each of these cases, you can give the dc analysis a “boost” in the direction of a particular operating point by using the holdnodes variable of the dc analysis.

After you determine how to help the simulator find the expected solution, you can re-run the DC analysis.

As an example, consider the circuit shown in the following figure:

This classic circuit has one unstable and two stable operating points. The two stable operating points are:■ node c1 is “high” and node c2 is “low”■ node c2 is “high” and node c1 is “low”

If you run the DC analysis on this design and then use the display command to see the results, as follows:

SABER Syntax: dcdi dc

vcc

c2c1

q.q2q.q1 b1 b2

r.rc2r.rc1 1k1k

10k 10k

r.rb1 r.rb2

60 Saber® User GuideD-2010.03-SP1

Page 75: Saber User Guide 2010.03

Chapter 4: Finding and Debugging DC Operating PointsDebugging DC Analysis Results

The resulting display is the following:

Because nodes c1 and c2 should have different values for each stable operating point, it is clear that the result of the DC analysis, while an operating point, is not one of the stable ones. Using the holdnodes variable in DC analysis, you can break the “deadlock” For example, to find the operating point where c1 is “high” and c2 is “low”, you can use the holdnodes variable, as follows:

SABER Syntax: dc (hold c1 10, relhold y)di dc

time 0

------------------

b1 0.8286

b2 0.8286

c1 1.655

c2 1.655

i(v.vcc) -0.01669

q.q1/bp 0.8286

q.q1/cp 1.655

q.q1/ep 0

q.q2/bp 0.8286

q.q2/cp 1.655

q.q2/ep 0

vcc 10

0 0

Saber® User Guide 61D-2010.03-SP1

Page 76: Saber User Guide 2010.03

Chapter 4: Finding and Debugging DC Operating PointsDebugging DC Analysis Results

This command runs the dc analysis twice, with the initial point file from the first run being used as input to the second. On the first run, c1 is held at 10v. On the second, c1 is allowed to “seek its own level.” The result is the following display:

As shown in the previous Operating Point report, the DC values at nodes c1 and c2 are as expected. You can now proceed to the next step in the design process.

time 0

------------------

b1 0.07146

b2 0.8367

c1 9.167

c2 0.07145

i(v.vcc) -0.01076

q.q1/bp 0.07146

q.q1/cp 9.167

q.q1/ep 0

q.q2/bp 0.8367

q.q2/cp 0.07145

q.q2/ep 0

vcc 10

0 0

62 Saber® User GuideD-2010.03-SP1

Page 77: Saber User Guide 2010.03

Chapter 4: Finding and Debugging DC Operating PointsDebugging DC Analysis Results

Simple Circuits That are Hard for DC AnalysisThe following list describes simple circuit configurations that a DC analysis may have a hard time finding the Operating Point for:■ Single node connected only to capacitors and current sources (cut set of

capacitors)

In this configuration, all capacitors are effectively open circuits so the node may float in a DC analysis. You can avoid this problem by setting an initial condition at the node.

■ Loop containing only inductors and voltage sources

This configuration appears as a loop of shorts in a DC analysis. You can avoid this problem by setting an initial condition for the loop current.

■ Current source driving a capacitor

Because the capacitor is seen as an open circuit, an operating point may be difficult to obtain (the across voltage on the capacitor is not defined). Making the current source something other than ideal (giving the current somewhere to go) may help.

■ Voltage source driving an inductor

Because the inductor is seen as a short circuit, an operating point may be difficult to obtain.

■ Two inductors in series with conflicting current initial conditions■ Two capacitors in parallel with conflicting voltage initial conditions

Saber® User Guide 63D-2010.03-SP1

Page 78: Saber User Guide 2010.03

Chapter 4: Finding and Debugging DC Operating PointsDebugging DC Analysis Results

64 Saber® User GuideD-2010.03-SP1

Page 79: Saber User Guide 2010.03

5

5Checking Time-domain Response-ProcessOverview

Describes how to evaluate the time-domain response of your design using transient analysis.

After you have completed your design, you can verify that the time-domain response of the design meets specifications. The simulator determines the time-domain response of a design by using the transient analysis.

This section covers the following topics:■ Specifying the First Transient Data Point■ Performing a Transient Analysis■ Extending a Transient Analysis■ Viewing the Transient Analysis Results■ Measuring the Analysis Results■ Determining the Next Step■ Checking the Frequency Spectrum of a Time-Domain Signal■ Performing Fourier Analysis■ Performing FFT Analysis

Saber® User Guide 65D-2010.03-SP1

Page 80: Saber User Guide 2010.03

Chapter 5: Checking Time-domain Response-Process OverviewSpecifying the First Transient Data Point

Specifying the First Transient Data Point

Because the transient analysis uses the initial point as the first data point in an analysis run, you must find the operating point of the system prior to running the transient analysis, using one of the following methods: ■ In the Time-Domain Transient Analysis form, specify Yes in the Run DC

Analysis First field. This selection informs the simulator to execute a DC analysis to find the operating point and then run the transient analysis using the previously calculated operating point as the first data point. The Transient form is discussed in a later step.

■ Run the DC analysis separately by selecting the Analysis > Operating Point > DC Operating Point pulldown menu item. In most cases, the simulator will find the correct operating point using the default values in the DC Operating Point form.

If an oscillator is the driving source, manipulate the initial point file. Because oscillators rely on the amplification of noise to begin and noise is not inherent in the simulator, you must alter some of the node values in the initial point file to “kick start” the oscillator at the beginning of the transient run.

Performing a Transient Analysis

To perform a transient analysis:

1. Display the Time-Domain Transient Analysis Dialog Box (Analyses > Time-domain > Transient...).

2. In order to execute a transient analysis, you must specify the following information:

End Time (Basic tab) defines the time at which the transient analysis stops. For example, if the driving source of the design is a sinusoidal function with a period of 10us and you want to view the transient response of the first 5 cycles, you enter 50u (5 x 10u) as the value for this field.

Time Step (Basic tab) is used by the simulator during transient analysis to make an initial guess at the next solution point. As a rule of thumb, you should set this value to the smallest of the following parameters in your design:

• 1/10th of the smallest relevant time constant in the design

66 Saber® User GuideD-2010.03-SP1

Page 81: Saber User Guide 2010.03

Chapter 5: Checking Time-domain Response-Process OverviewPerforming a Transient Analysis

• Shortest rise or fall time of a square/pulse wave driving source

• 1/100th of the input period of a sinusoidal driving source

Start Time (Basic tab) defines the time at which the simulator begins the transient analysis. By default, this time comes from the initial point file. It is 0 if the initial point has been created by a DC analysis. Specifying a time that is different from the one in the initial point file allows you to specify a start time on the graph, but if the start time disagrees with the time in the initial point file, the resulting graph could be distorted.

3. Specify which analysis waveforms to create.

The Time-Domain Transient Analyses form provides the following two fields to specify how waveform data is to be saved for plotting and analysis:

The Plot File field (Input/Output tab) specifies the name of the plot file, which contains simulation results for the signals defined by the Signal List field. The size of the plot file is a function of the number of data points and the number of signals in the Signal List. By default, the simulator creates a plot file named “tr” for each transient run. If you do not want the simulator to create a plot file, you fill in the field with a “_”.

The Signal List field (Input/Output tab) specifies the signals for which simulation results are to be saved for plotting within CosmosScope. By default, the signal list includes only the signals at the top level of the design hierarchy. If you need to view other signals within the design hierarchy, you must add the signal names in the Signal List field.

The following table shows examples of MAST Signal List syntax. You can include a space-separated list of multiple Signal List definitions within the same Signal List field.

MAST Signal List Examples

Definition

/*/*.* Include all components at the top level.

/.../*.* Include all instances at, and below the root level.

./ Include all signals in the current instance.

.../ Include all signals in instances below the current instance.

/.../pll.* Include all signals in all instances of any “pll” component.

Saber® User Guide 67D-2010.03-SP1

Page 82: Saber User Guide 2010.03

Chapter 5: Checking Time-domain Response-Process OverviewPerforming a Transient Analysis

If you are unsure about which signals to specify, you can use the default setting (all signals in the root of the design). If you need more signals later, you can re-run the transient analysis with additional signals defined in the signal list. For long simulation run times, extract additional signals from the Data file using the Extract > Add Signals to Plot File menu item.

4. Set up automatic waveform plotting.

The Plot After Analysis menu field (Basic tab) allows you to specify post-analysis automatic plotting behavior.

You have the following choices:

• No causes no automatic plotting;

• Yes - Open Only opens the plot file after analysis;

• Yes - Append Plots opens the plotfile and updates previously graphed waveforms, placing new plots in addition to the current waveforms;

• Yes - Replace Plots opens the plotfile and updates previously graphed waveforms, replacing the current waveforms.

5. Decide whether to save raw simulation results.

Data Files contain simulation results for each data point in the simulation. Data files can become quite large; unless you are going to use the data file for any of the following purposes, you probably do not need to create one:

• Extracting additional signals for a plot file

• Extracting an operating point

• Transforming transient data into the frequency domain using Fourier Analysis

• Running Stress analysis

pll.u12/ Include all signals in the pll.u12 instance.

sig1 sig2 Include each signal listed.

Browse Design See Specifying Signals for Analysis for more information.

MAST Signal List Examples

Definition

68 Saber® User GuideD-2010.03-SP1

Page 83: Saber User Guide 2010.03

Chapter 5: Checking Time-domain Response-Process OverviewExtending a Transient Analysis

Because it is much faster to extract plot information from a data file than to re-run the analysis (especially for long simulation runs), you need to carefully consider whether or not to create a data file.

You specify the data file name in the Data File field under the Input/Output tab. By default, the simulator creates a data file named “tr” for each transient run. If you do not want the simulator to create a data file, fill in the field with an “_”.

6. Verify the first data point value.

The simulator uses the initial point, defined in the Initial Point File field of the Input/Output tab, as the first data point in the transient analysis run. You should verify that the simulator is using the correct initial point file prior to running the transient analysis.

You should also specify the Sample Point Density setting on the Calibration tab to a value equal to or larger than the value used during the generation of the initial point file. The simulator multiples the number of sample points defined in the model by the factor defined in this field. A larger number yields more accurate results at the expense of longer simulation run times.

7. Execute the transient analysis.

Clicking on the Apply button executes the analysis. The simulator determines the transient response of the design by using the initial point file to determine the initial circuit conditions and then calculating how the design responds to the passage of time. For information on all fields available with the Transient analysis and how the simulator determines the next timestep, refer to the online documentation.

After the simulator has finished simulating the design based on your transient analysis specifications, you can view the resultant waveforms in CosmosScope.

Extending a Transient Analysis

To resume a transient analysis from the end point of the previous analysis, use the continue command as follows: From the drop-down menus choose: Analyses > Continue > Transient, complete the Continue Time-Domain Transient Analysis dialog box fields, and click OK. This analysis can resume where the last transient analysis ended and continue to a newly specified end time. Instead of creating a new plot file, the continue command appends to the

Saber® User Guide 69D-2010.03-SP1

Page 84: Saber User Guide 2010.03

Chapter 5: Checking Time-domain Response-Process OverviewViewing the Transient Analysis Results

original plot- file, producing a graph that looks like the original transient analysis has been run with a longer end time.

You can create a separate plot file that begins where the previous one ends using the general method that repeats the original Analyses > Time Domain > Transient command with these different settings:■ Basic tab, specify the End Time to be some time after the previous End

Time. Leave the Start Time set to Default.■ Input/Output tab, specify the Initial Point File to be tr. Specify the End Point

File to be tr. Specify Allow IP File = EP File to be Yes.

By leaving the Start-Time set to Default, the resulting plot file gets its starting value from the specified Initial Point File (in this case, from the previous transient analysis run). Setting Allow IP File = EP File to Yes means that the Initial-Point and End-Point files can be given the same specification, without causing an error message. The simulator uses the End-Point File from the previous run as the Initial-Point File for this run.

If the plot-file names for each run are the same (for example tr), then each run overwrites the previous plot file. This is not a problem in the current session of CosmosScope because you can still view the earlier plots (CosmosScope stores them internally and numbers them sequentially in the signal manager). If you want to view the plots in a later session of CosmosScope, only the last plot-file is available. An alternate approach is to give the plot files different names (for example, tr1 and tr2) for each run. This creates multiple plot files instead of overwriting and lets you review your work at a later time.

Viewing the Transient Analysis Results

You use the Signal Manager within CosmosScope to manage and display signals from the various plot files that you create during the analysis process. Overall, the procedure for viewing waveforms from a transient analysis, is as follows:■ Add the plot file to the Signal Manager’s plot file list.■ Open the plot file.■ Select signals to plot.■ Plot the selected signals in a graph.

70 Saber® User GuideD-2010.03-SP1

Page 85: Saber User Guide 2010.03

Chapter 5: Checking Time-domain Response-Process OverviewViewing the Transient Analysis Results

You can do this step-by-step after an analysis, or you can set up Saber Guide to perform all or part of this process automatically.

The following procedure explains in more detail how to plot waveforms after an analysis:

1. Add the plot file to the Signal Manager and open it.

The simulator does this automatically if you specify one of the following under the Plot After Analysis menu field (Basic tab) before starting the analysis:

• Yes - Open Only

• Yes - Append Plots

• Yes - Replace Plots

In all of the above cases, Saber Guide invokes CosmosScope (if necessary) and opens the Signal Manager and appropriate plot file.

However, if you specify No in the Plot After Analysis menu field, the simulator does not open the Signal Manager. You can open the last created plot file either by selecting the Results > View Plot Files in Scope pulldown menu item. This activates the View Plotfiles dialog box. Under the Plot File pulldown menu field, select one of the following:

• Last selects the most recent plot file generated by the analysis. This is the default.

• Plotfile Names allows you to specify a list of plotfiles (separated by spaces) in the Plot File field. You can use a browser to select the plot files by clicking on the Browse button.

Under the Plot Action field, select one of the following actions:

• Yes - Open Only does the following:

Invokes CosmosScope, if necessary.Opens the Signal Manager window, if necessary.Opens the latest version of the plot file specified in the Plot File field.

• Yes - Append Plots does the following:

Invokes CosmosScope, if necessary.Opens the Signal Manager window, if necessary.Opens the latest version of the plot file specified in the Plot File field. Updates all previously graphed waveforms from the plot file, adding the new waveforms in addition to the corresponding waveforms from the previous analysis.

Saber® User Guide 71D-2010.03-SP1

Page 86: Saber User Guide 2010.03

Chapter 5: Checking Time-domain Response-Process OverviewViewing the Transient Analysis Results

• Yes - Replace Plots does the following:

Invokes CosmosScope, if necessary.Opens the Signal Manager, if necessary.Opens the latest version of the plot file specified in the Plot File field. Updates all previously graphed waveforms from the plot file, replacing the corresponding waveforms from the previous analysis.

The Append and Replace options are convenient to use during design optimization, when repeatedly running analyses to see the effects of altering design parameters.

After making the settings described above, you open the Signal Manager by clicking on the OK button or the Apply button. The Signal Manager dialog box appears, along with a Plot File window for the plot file you specified.

If you click on the OK button, the View Plotfiles dialog box closes. If you click on the Apply button, the dialog box remains open. Click on the Close button to close the dialog box.

2. Select the signals.

Assuming that you did not select the Append or Replace Plot Action options in the preceding step, you need to select the signals to be plotted. In the Plot File window, select each signal by clicking on it with the left mouse button. Unselect a signal by clicking on it again (or use the Deselect button or Signal menu).

3. Plot the selected signal(s).

You can plot the selected signals by clicking on the Plot button or by moving the cursor into the graph window and pressing the middle mouse button. (You can also plot a signal simply by double clicking on its name in the Plot File window.)

The selected signals in the plot file appear as waveforms in the active Graph window.

After you plot the signals, you can analyze the results in various ways and determine the next step in the design process.

72 Saber® User GuideD-2010.03-SP1

Page 87: Saber User Guide 2010.03

Chapter 5: Checking Time-domain Response-Process OverviewMeasuring the Analysis Results

Measuring the Analysis Results

CosmosScope provides numerous pre-defined automated measurements to dramatically decrease the time needed to extract specification data from plotted waveforms. To perform a measurement on a waveform, follow these steps:

1. Display the Measurement Tool. (Tools > Measurement).

2. Select the appropriate measurement.

After you display the Measurement tool, you can select which measurement you want to perform. In the Measurement field, you select the measurement by clicking on the downward arrow and selecting the measurement from within the various measurement categories.

The following table lists the measures accessible in the time-domain category:

Measurement Definition

Falltime Displays the fall time between the upper and lower levels of a waveform

Risetime Displays the rise time between the upper and lower levels of a waveform

Slew Rate Displays the difference between the upper and lower levels of a waveform divided by the risetime or falltime of the edge

Period Displays the period of a waveform cycle relative to the topline and baseline

Frequency Displays the frequency of a periodic waveform relative to the topline and baseline

Duty Cycle Displays the duty cycle of a periodic waveform relative to the topline and baseline values

Pulse Width Displays the pulse width relative to the topline and baseline

Delay Displays the delay between waveform edges of two signals

Overshoot Displays the overshoot of a waveform relative to the topline

Saber® User Guide 73D-2010.03-SP1

Page 88: Saber User Guide 2010.03

Chapter 5: Checking Time-domain Response-Process OverviewMeasuring the Analysis Results

3. Select the Signal to Measure.

You can specify the signal to measure in the Signal field. You can specify the signal by one of the following methods:

• Click on the arrow button and select a signal from the resulting list.

• Select the signal from the legend in the current active graph.

Regardless of the method you choose, you must specify a signal prior to executing the measurement.

4. Set the data range to measure.

You can control the data range that is used to perform the measurement in the Apply Measurement to: section of the Measurement dialog box. You must specify one of the following data ranges:

• Entire Waveform calculates the measurement on the entire waveform, regardless of what is viewed in the active graph.

• Visible X and Y range only calculates the measurement for the X and Y range visible on the current active graph.

5. Perform the measurement.

You perform a measurement by clicking on the Apply button. This performs the measurement on the specified signal and adds the corresponding information to the active graph.

If any existing waveform is automatically updated due to an automatic plot action (such as Append) specified in an analysis, all measurements that depend on that waveform are updated at the same time.

6. Manipulate the measurement information.

Undershoot Displays the undershoot of a waveform relative to the baseline

Settle Time Displays the settle time of the waveform with respect to a settle level and a specified settle band (% of amplitude)

Eye Diagram Displays the behavior of a waveform cycle during a specific period of time.

Measurement Definition

74 Saber® User GuideD-2010.03-SP1

Page 89: Saber User Guide 2010.03

Chapter 5: Checking Time-domain Response-Process OverviewDetermining the Next Step

During the course of data analysis within CosmosScope, you may want to manipulate which measurements can be viewed. This can be done using the Measure Results form. You can open this form either by selecting the Graph > Measure Results... pulldown menu item or by double-clicking on measurement text within an active graph. After you display this form, you can manipulate measurement information by using the following buttons:

• Delete Measurement deletes the selected measurement from the active graph.

• Delete All deletes all measurement text/graphics from the active graph.

• Show All Values shows all measurements listed in the left scroll list in the graph.

• Hide All Values retains but does not display the measurements listed in the left scroll list.

• Show/hide status bubbles allow you to change the visibility of a measurement on the active graph on a per measurement basis. A green button displays the measurement, and a black button hides the measurement.

Determining the Next Step

Using the signal viewing and measurement capabilities of CosmosScope, you determined whether your design meets your pre-determined specifications.

If it meets specification, then you can proceed with one of the following:■ Continue the transient run from the last data point using the Analyses >

Continue > Transient pulldown menu item.■ Verify the small-signal frequency response using the AC analysis.■ Examine the frequency spectrum of a time-domain waveform using Fourier

or FFT transform as described in the next section.■ Tune the design parameters by using statistical, parametric, or stress

analysis.

Saber® User Guide 75D-2010.03-SP1

Page 90: Saber User Guide 2010.03

Chapter 5: Checking Time-domain Response-Process OverviewChecking the Frequency Spectrum of a Time-Domain Signal

If the design does not meet your specifications, you can take corrective action by:■ Alter a design/instance parameter(s).

If the design change does not require you to modify the connectivity, you can modify the design parameters by using the Alter Design form available through the Edit > Alter... menu item.

■ Edit the schematic and re-analyze.

If the design change requires you to change the connectivity (e.g. different parts, different wiring connections, or any change to the topology), you must make the change in the schematic, re-netlist the design (Design > Netlist design_name), and then re-load the design into the simulator (Design > Simulate design_name).

Checking the Frequency Spectrum of a Time-Domain Signal

After you complete a transient analysis run, you can use the Fourier analyses (Fourier and FFT) to examine the spectral components of the system.

Depending on whether your time-domain signal is periodic, you will chose either Fourier or FFT Analysis to determine the frequency spectrum of your time-domain waveforms.■ Fourier Analysis transforms periodic waveforms into a frequency spectrum.

Since all periodic waveforms can be described by a set of sinusoids, this analysis produces a line spectrum showing the spectral content at the DC value, fundamental frequency, and specified number of harmonics.

■ FFT Analysis transforms non-periodic waveforms into a continuous-style output showing each point in the FFT.

The simulator also provides the IFFT Analysis to transform either frequency spectrums (produced by the FFT analyses) or frequency sweeps (produced by AC analysis) waveforms into the time-domain.

76 Saber® User GuideD-2010.03-SP1

Page 91: Saber User Guide 2010.03

Chapter 5: Checking Time-domain Response-Process OverviewPerforming Fourier Analysis

Because the Fourier, fft, and distortion analyses each provide spectral information, the following table compares these analyses.

To check the spectral components of time-domain waveforms in your design, you can perform either the Fourier or FFT analyses, view the resultant waveforms in CosmosScope, and evaluate the results to determine the next step in the design process. The following sections describe how to perform the Fourier and FFT analyses, respectively.

Performing Fourier Analysis

Fourier analysis is a post-processing command that reads one period of a signal (calculated by using a time-domain analysis) and applies a continuous Fourier transform to describe the dc component, fundamental frequency, and the specified number of harmonics of the named signal.

Fourier FFT Distortion

Nature Large Signal Large Signal Small Signal

Concept Transform time-domain data to frequency domain

Transform time-domain data to frequency domain

Small signal frequency domain analysis

Type Post-processor of time-domain data

Post-processor of time-domain data

Stand-alone analysis

Algorithm Discrete Fourier Transform of periodic signal

Approx. of continuous Fourier transform

Volterra series, based on Taylor series approximation

Results Spectral output; showing DC, fundamental frequency and nth harmonics

Continuous frequency distribution showing each point in the FFT

Distortion products (e.g. harmonic, intermodulation) of each specified signal

Application Periodic signals with strong non-linearities or large signals

Non-periodic signals with large signals or strong non-linearities

Harmonic distortion based on small signal model

Saber® User Guide 77D-2010.03-SP1

Page 92: Saber User Guide 2010.03

Chapter 5: Checking Time-domain Response-Process OverviewPerforming Fourier Analysis

Fourier analysis uses the Fourier series representation of a periodic piece-wise continuous function, f(t), as an infinite series.

For periodic function, the frequency components are all integral multiples of the fundamental frequency as shown in the following equation where Ci are the amplitudes and ji are the phases at the multiples of the fundamental frequency (w):

Fourier analysis computes the spectrum of a signal, based on the fundamental frequency of the specified waveform, by applying the Discrete Fourier Transform (DFT) to a periodic waveform generated by a transient analysis. To execute a Fourier analysis, you perform the following steps:

1. Select the Fourier Analysis form (Analyses > Fourier> Fourier...).

2. Specify the Signals to transform.

In order to execute a Fourier analysis, you must specify the following information:

• Specify the signal names to transform.

You define the signal to transform in the Signal List field (Input/Output tab). You can either type the signal names in the field, scroll and select the pre-defined signals, or browse the design hierarchically by selecting Browse Design. Although the syntax for the values in this field is identical to the signal lists used in AC and transient analysis, this field can only include system variables, such as currents through voltage sources and node voltages.

• Verify the data file name from the transient analysis.

The simulator uses the data file from a previous transient analysis run as the source for the Fourier analysis. You should verify the value in the Input Data File field to insure that the simulator uses the correct data file.

3. Set up automatic waveform plotting.

The Plot After Analysis menu field (Basic tab) allows you to specify post-analysis automatic plotting behavior.

You have the following choices:

• No causes no automatic plotting;

f(t) = C0 + C1cos(wt-j1) + C2cos(2wt-j2) + ... +

Cicos(iwt-ji)

78 Saber® User GuideD-2010.03-SP1

Page 93: Saber User Guide 2010.03

Chapter 5: Checking Time-domain Response-Process OverviewPerforming Fourier Analysis

• Yes - Open Only opens the plot file after analysis;

• Yes - Append opens the plotfile and updates previously graphed waveforms, placing new plots in addition to the current waveforms;

• Yes - Replace opens the plotfile and updates previously graphed waveforms, replacing the current waveforms.

4. Specify the fundamental frequency and time period to transform.

You use the fields in the Basic tab to define the time period(s) and fundamental frequency that the simulator should use during the Fourier analysis. It is very important that the fundamental frequency value specified in the form matches the fundamental frequency of the signal to transform. If they differ, the results will be incorrect. You determine the fundamental frequency by examining the input sources.

• If a single frequency is present at the input, use the frequency of the input source as the fundamental frequency value.

• If multiple frequencies are present at the inputs, use the greatest common divider of all input frequencies. For example, if your design is driven by a 900Hz and 1KHz sources, you should use 100Hz as the fundamental frequency.

You can use one of the following methods to specify the fundamental frequency and the time period in the Basic tab:

• Frequency and Location allows you to specify the fundamental frequency and a time data point either at the beginning or ending time of the period to transform.

• Location allows you to specify the beginning and ending time. The fundamental frequency is calculated as the inverse of the difference between the beginning and ending time.

After you specify the contents of the required fields, you should verify the contents of the optional fields as described in the next step.

5. Verify the following values.

Although optional, you should verify the contents of the following fields:

• Specify the number of harmonics to compute.

You specify the number of harmonics to compute, including the fundamental, in the Number of Harmonics field on the Basic tab. For example, if you specify the default value of 10, the simulator displays the fundamental frequency and the corresponding nine harmonics.

Saber® User Guide 79D-2010.03-SP1

Page 94: Saber User Guide 2010.03

Chapter 5: Checking Time-domain Response-Process OverviewPerforming Fourier Analysis

• Specify whether to Calculate THD.

If you specify yes in this field on the Control tab, the simulator calculates the total harmonics distortion. This value is the energy of the unwanted spectral components as a fraction of the total signal energy. This value is independent of the number of harmonics calculated. This value is displayed in the Transcript Window, after the analysis completes.

• Verify the windowing function.

You can apply different windowing functions to filter the input data prior to transformation. The Fourier analysis within the simulator contains pre-defined Rectangular, Barlett, Hann, Hamming, Blackman, and Flattop windows. You can select the appropriate window by pressing the Windowing Function arrow button on the Control tab. You can also define your own windowing function.

After you verify the values in the Fourier analysis form, you can execute the form.

6. Execute the analysis.

By default, the simulator calculates the frequency response based on Fourier transform of either a section or entire data file from a previous transient analysis run. The results for each system variable are stored on a linear scale in the data file and plot file named fou. The plot file contains a spectral-style output showing the DC component, the fundamental frequency, and the specified number of harmonics. All default values can be modified within the Fourier analysis form.

7. Plot the Fourier analysis results.

After the Fourier analysis run completes, you can view results within CosmosScope.

The following procedure outlines the process of viewing and manipulating waveform data.

If you specified the Open Only automatic plotting option in the Plot After Analysis field before the analysis, you can skip step a. If you specified the Append or Replace options, for previously graphed waveforms you can skip steps b and c as well.

a. Add the plot file created by the analysis run to the Signal Manager in CosmosScope (Results > View Plotfiles in Scope).

b. Select the signal(s) you want to view in the plot file window created in the last step.

80 Saber® User GuideD-2010.03-SP1

Page 95: Saber User Guide 2010.03

Chapter 5: Checking Time-domain Response-Process OverviewPerforming FFT Analysis

c. Display the selected signals in the graph either by pressing the Plot button in the plot file window or by pressing the middle mouse button in the active graph.

d. Use the waveform manipulation (e.g. pan/zoom) and measurement capabilities to analyze the data.

Once you view the waveforms, you can analyze the data to determine whether the design is operating according to the specification.

8. Analyzing the Fourier analysis results.

You can view the frequency spectrum of the specified input waveform in CosmosScope and analyze the results, including:

• Magnitude and phase of the spectral components

• Real and Imaginary parts of the spectral components

• Amount of harmonic distortion (displayed in the transcript window, if you informed the simulator to calculate THD)

After you analyze the Fourier analysis results, you can proceed with the design analysis process:

• If the analyzed results are as expected, proceed either to the small signal frequency sweep (AC) analysis, or to the analyses used to tune design parameters (parameter sweep, Monte Carlo, sensitivity, and stress).

• If the analyzed results are not as expected, make design changes, re-run the transient analysis, and re-generate the frequency spectrum by using Fourier analysis.

Performing FFT Analysis

The Fast Fourier Transform is a post-processing command that calculates the frequency components of a section of time. Because this analysis requires time domain data, you must run a transient analysis prior to executing this analysis. The FFT transform should be used for non-periodic functions. If the function is periodic, you use the Fourier transform as described in “Performing Fourier Analysis.”

Because non-periodic functions cannot be represented by a Fourier series, the simulator uses a Fourier integral representation. It is no longer sufficient to find

Saber® User Guide 81D-2010.03-SP1

Page 96: Saber User Guide 2010.03

Chapter 5: Checking Time-domain Response-Process OverviewPerforming FFT Analysis

the Fourier coefficients at a set of harmonic frequencies. Instead, a continuous range of frequencies is calculated showing the value of each FFT data point.

To execute a FFT analysis:

1. Display the FFT Dialog Box (Analyses > Fourier > FFT...).

2. Specify Signals to Transform.

In order to execute a FFT analysis, you must specify the following information:

• Specify the signal names to transform.

You define the signal to transform in the Signals to Transform field.

You must enter the names of the signals to transform exactly as they have been specified in the transient Plot file. You cannot use wildcards in this field. If you do not specify any signal names, all applicable signals from the transient Plot file will be transformed.

• Verify source transient plot file name.

The simulator uses the plot file from a previous transient analysis run as the source for the FFT analysis. You should verify the value in the Input Plot File field to insure that the simulator uses the correct plot file.

3. Set up automatic waveform plotting.

The Plot After Analysis menu field (Basic tab) allows you to specify post-analysis automatic plotting behavior.

You have the following choices:

• No causes no automatic plotting;

• Yes - Open Only opens the plot file after analysis;

• Yes - Append opens the plotfile and updates previously graphed waveforms, placing new plots in addition to the current waveforms;

• Yes - Replace opens the plotfile and updates previously graphed waveforms, replacing the current waveforms.

4. Verify the fields in the Data Manipulation tab.

• Verify the number of points in the FFT.

The Number of Points field specifies the number of data points used in the transform. This value must be a power of 2, such as 256, 512, or 1024.

• Verify the Time Segment to transform.

82 Saber® User GuideD-2010.03-SP1

Page 97: Saber User Guide 2010.03

Chapter 5: Checking Time-domain Response-Process OverviewPerforming FFT Analysis

The Time Data Start and Time Data Stop fields define the section of time-domain to be used in the transform. Specify begin to define the first data point in the transient plot file. Specify end to define the last data point in the transient plot file. Or you can enter a specific time in the transient plot file.

During the FFT transform, the simulator extracts data points at equally spaced linear intervals (defined by the Number of Points field) across the defined Time Segment.

• Verify the windowing function.

You can apply different windowing functions to filter the input data prior to transformation. The Fourier analysis within the simulator contains pre-defined Rectangular, Barlett, Hann, Hamming, Blackman, and Flattop windows. You can select the appropriate window by pressing the Windowing Function arrow button. You can also define your own windowing function.

5. Execute the analysis.

By default, the simulator calculates the frequency response based on a FFT transform of either a section of or the entire plot file from a previous transient analysis run. By default, the results for each system variable are stored on a linear scale in the plot file named fft. The plot file contains a continuous-style output. All default values can be modified within the FFT analysis form.

6. Plot the results in CosmosScope.

After the Fourier analysis run completes, you can view results within CosmosScope. The following procedure outlines the process of viewing and manipulating waveform data.

If you specified the Open Only automatic plotting option in the Plot After Analysis field before the analysis, you can skip step a. If you specified the Append or Replace options, for previously graphed waveforms you can skip steps b and c as well.

a. Add the plot file created by the analysis run to the Signal Manager (Results > View Plotfiles).

b. Select the signals you want to view in the plot file window created in the last step.

c. Display the selected signals in the graph either by pressing the Plot button in the plot file window or by pressing the middle mouse button in the active graph.

Saber® User Guide 83D-2010.03-SP1

Page 98: Saber User Guide 2010.03

Chapter 5: Checking Time-domain Response-Process OverviewPerforming FFT Analysis

d. Use the waveform manipulation (e.g. pan/zoom) and measurement capabilities to analyze the data.

Once you view the waveforms, you can analyze the data to determine whether the design is operating according to the specification.

After you analyze the analysis results, you can do either of the following:

• If the analyzed results are as expected, proceed either to the small signal frequency sweep (AC) analysis, or to the analyses used to tune design parameters (parameter sweep, Monte Carlo, Sensitivity, and Stress).

• If the analyzed results are not as expected, make design changes, re-run the transient analysis, and re-generate the frequency spectrum by using FFT analysis.

84 Saber® User GuideD-2010.03-SP1

Page 99: Saber User Guide 2010.03

6

6Special Topics in Transient Analysis

Discusses special considerations when a transient analysis is run on circuits such as oscillators.

■ Starting Oscillators in a Transient Analysis describes methods for starting oscillators and keeping them going in simulation circuits.

■ Eliminating Spikes in a Transient Analysis is a procedure for eliminating spikes produced by simulation that are not present in the equivalent real-world system.

Starting Oscillators in a Transient Analysis

Physical oscillators typically rely on the amplification of noise to start the oscillation. Because noise is not inherent in the simulator, you must use some method to “kick” an oscillator away from its sticking point. The method should allow the circuit, once kicked, to behave without the continuing influence of the kicking agent.

The following sections use the Example Oscillator Circuit to illustrate the methods used to start the oscillator:■ Starting Oscillators by Modifying the DC Initial Point

This method creates an initial point that is not a true DC operating point (does not satisfy Kirchhoff’s laws) but provides enough energy to start the oscillation. This does not require changing the topology of the circuit.

■ Starting Oscillators By Using Current and Voltage Sources

Saber® User Guide 85D-2010.03-SP1

Page 100: Saber User Guide 2010.03

Chapter 6: Special Topics in Transient AnalysisStarting Oscillators in a Transient Analysis

This method uses a current or voltage source in the circuit to provide a pulse of energy after the transient run begins. The only way to insert a source is by writing it into the netlist.

■ Keeping Oscillators Going

This method improves the accuracy of the transient analysis to prevent the oscillator signal from converging to zero.

Generally, these methods work by disturbing the energy storage elements, so it is important to act upon a node that can charge (or discharge) these elements. The node chosen should also have a relatively high impedance, so that the resulting current flow does not simply choose an easier path to ground.

This section covers the following topics:■ Example Oscillator Circuit■ Starting Oscillators by Modifying the DC Initial Point■ Starting Oscillators By Using Current and Voltage Sources■ Keeping Oscillators Going

Example Oscillator CircuitConsider the oscillator shown in the following figure. It is a practical Wien-bridge oscillator that uses a diode mechanism to adjust the amount of negative feedback so that the overall gain of the circuit is 1.

160k

1nF 160k

10.0k

200k

21.0k

1nF

op1 out

inp

86 Saber® User GuideD-2010.03-SP1

Page 101: Saber User Guide 2010.03

Chapter 6: Special Topics in Transient AnalysisStarting Oscillators in a Transient Analysis

The following steps would be performed to simulate and analyze an oscillator design such as the Wien-bridge displayed above:

1. Run the DC operating point analysis.

2. View the results of the DC analysis.

The Report Tool window would indicate that the DC value of all the nodes equaled 0.

3. Run a transient analysis with the End Time set to 3m and the Time Step set to 1u.

4. Plot the out signal in the Graph window.

The results would show a straight line at 0.0 volts, meaning the circuit is not oscillating.

Because the simulator results will not show the expected oscillating output signal, we must kick-start the design to start the oscillation.

Starting Oscillators by Modifying the DC Initial PointYou can edit the DC values of any initial point. Because the edited initial point no longer satisfies Kirchoff’s current law, this modified file is not considered a valid operating point.

Typically, editing the initial point is used only to “kick start” oscillator circuits for transient (time-domain) analysis. Because physical oscillators rely on the amplification of noise to start and noise is not inherent in the simulator, you may have to change the DC input value by editing the initial point to provide a “kick” to start the oscillator. Once the circuit begins oscillating, the effects of altering the initial point are no longer seen. The following steps describe how to edit an initial point:

1. Display the Edit Initial Point form. (Analyses > Operating Point > Edit Initial Point).

An Edit Initial Point dialog box appears.

2. Define the node(s) to edit.

Saber® User Guide 87D-2010.03-SP1

Page 102: Saber User Guide 2010.03

Chapter 6: Special Topics in Transient AnalysisStarting Oscillators in a Transient Analysis

After the form is displayed, you can enter a space-separated list of node value pair(s) containing the node name and the new DC value. For example, if you wanted to edit the DC values of the input node to 1.25 volts and the input_diff node to 8.75 volts, you enter the following text in the Node/Value List field:

3. Specify the initial point file to edit.

The simulator reads the DC values from the file defined in the Source Initial Point field, edits the file with the values from the Node/Value List field, and stores the result in the initial point file specified in the Result Initial Point field. If the Source Initial Point field is blank, the simulator adds the Node/Value List to the Zero IP file and puts the result into the Result Initial Point field.

4. Execute the form.

Clicking the Apply button executes the sigset command on the values defining the fields of the Edit Initial Point form. You can display the results of the edited initial point file, by using the Results > Operating Point Report pulldown menu item.

5. Run the analysis with the new edited Initial Point file.

In the Input/Output tab, verify the name in the Initial Point File field.

6. Check that the oscillation amplitude has stabilized within a reasonable amount of time.

If you are “kick-starting” an oscillator, you need to complete this step.

Different “kicks” produce different transient effects, such as ringing, a growing response, or a decaying response. It is important to run a transient analysis for many cycles to ascertain the steady-state behavior of the oscillator. The higher an oscillator's Q, the longer it takes to achieve steady-state performance.

Once you have verified the performance of an oscillator, you might find that it takes more time to get steady-state performance from it than from other parts of a system. Therefore, it is usually faster to replace the oscillator with a behavioral model, such as a voltage source, when working on other parts of the system. Then you can use the oscillator model for a check of the entire system.

input 1.25 input_diff 8.75

88 Saber® User GuideD-2010.03-SP1

Page 103: Saber User Guide 2010.03

Chapter 6: Special Topics in Transient AnalysisStarting Oscillators in a Transient Analysis

Starting Oscillators By Using Current and Voltage SourcesThe following figure shows some possible placement locations for a voltage or current pulse source that could be used to kick-start the circuit.

These added sources should affect the circuit only during the pulse, so current sources are tied to ground (a 0-value current source is an open circuit) and a voltage source is placed in line (a 0-value voltage source is a short). The current sources are more effective for this example because the energy storage devices are capacitors.

An example specification for a current source is as follows:

MAST syntax: i.istart 0 inp = tran=(pwl=[0,0,10u,0,11u,10m,12u,0]

Keeping Oscillators Going The simulator treats all signals as if they will eventually converge to a DC value. This can become a problem if you are trying to simulate an oscillator. To keep an oscillator going, the accuracy of the transient analysis has to be improved. Try each of the following steps, in sequence, to see how it affects the performance of your design:

1. Decrease the Maximum Truncation Error (terror) by a factor of ten.

160k

1nF 160k

10.0k

200k

21.0k

1nF

op1 out

inp

+–

+–

Add current source or voltagesource to kick-start.

Saber® User Guide 89D-2010.03-SP1

Page 104: Saber User Guide 2010.03

Chapter 6: Special Topics in Transient AnalysisEliminating Spikes in a Transient Analysis

2. If the first step in this list was only partially successful, set the Time Step (tstep) to be much smaller (by a factor of 100 to 1000) than the Time Step used in the previous simulation.

3. Finally, if neither of these completely stops the damping of the oscillation, decrease the Maximum Truncation Error by another factor of ten.

The above steps are a specific application of the more general procedure found in Calibrating Transient Analysis.

Eliminating Spikes in a Transient Analysis

Transient simulation of switching circuits sometimes produces spikes in the output data that are not present in the real system. Eliminating these erroneous spikes is a multi-step process.

1. Determine if the spike is real.

Many switching systems with elements such as gate turn-off (GTO) switches or diode-inductor combinations actually have large spikes in their measured response. It is worth double-checking unexpected transient analysis results against test data of prototype circuits (if available), or against the results of other analysis techniques.

2. Examine the models and schematics.

• Confirm that the models in your circuit are appropriately robust and have been applied in the ways they have been designed for.

Since spikes are usually only observed in large circuits, it may be difficult to pinpoint which of the many models used have problematic construction. One starting point is to look at the models in the immediate vicinity of the node or branch with the spike. Also consider which models are excited by the switching event that triggered the spike.

• Confirm that your schematic is wired correctly.

• Check for any unintended circuit instabilities in the design.

Look for imbalanced or unstable circuits. Many simulations with spikes still have enough information to show whether or not the circuit is unstable or has properly balanced loads.

3. Simulator simulation options.

90 Saber® User GuideD-2010.03-SP1

Page 105: Saber User Guide 2010.03

Chapter 6: Special Topics in Transient AnalysisEliminating Spikes in a Transient Analysis

The issues outlined in Steps 1 and 2 should be carefully considered before modifying the transient simulation itself. Skipping earlier steps might cause you to miss the source of the problem.

Try the following options one at a time.

a. Use the -d flat option to invoke Saber as follows:

saber -d flat designname

This forces Saber to use a flat, as opposed to a hierarchical, matrix. This command will cause the simulation to be slower.

b. Use the transient option terrt all. This is the most accurate method for calculating truncation error. This command will also cause the simulation to be slower.

c. In systems with a wide range of time constants, try the terrn 3 option.

d. Use ord 1. This limits the integration algorithm to the first order. It is less accurate than the default of allowing both first and second order; however, it will round off some short spikes at switching edges.

In general, truncation error and sample point density are critical parameters in determining the accuracy of transient analysis spiking.

4. Other techniques worth considering.

If the results are still unsatisfactory after performing Steps 1-3, try the following debugging techniques:

• Simulate only the part of your circuit that is causing the spikes. This will allow you to concentrate on the few models that remain.

• Run separate simulations on your low-voltage circuits and high-voltage circuits. Many power supplies, for example, have a low-voltage control section that can be separated from the power section.

• Use the Monitor Progress option to produce a detailed analysis transcript.

• Try different switch models.

• Increase the accuracy of your circuit by adding non-idealities like capacitance, resistance, or inductance that have not yet been accounted for.

Saber® User Guide 91D-2010.03-SP1

Page 106: Saber User Guide 2010.03

Chapter 6: Special Topics in Transient AnalysisEliminating Spikes in a Transient Analysis

92 Saber® User GuideD-2010.03-SP1

Page 107: Saber User Guide 2010.03

7

7Sweeping Independent Sources

Describes how to sweep independent DC voltage or current source using DC Transfer analysis.

The DC Transfer analysis sweeps an independent DC voltage or current source over a user-defined range of values and computes the DC operating point for each sweep value.

This analysis produces a plot file that can be viewed in CosmosScope and allows you to determine how an independent source affects the DC operating point over a range of values. DC Transfer analysis may be useful to find an approximate biasing point for your circuit.

Note: For information on sweeping parameters, refer to the Vary looping command.

This section covers the following topics:■ Executing a DC Transfer Analysis■ Viewing the DC Transfer Results■ Determining the Next Step

Executing a DC Transfer Analysis

To execute a DC Transfer Analysis, perform these steps:

1. Display the DC Transfer Dialog Box.

Within the Saber Guide user interface, you can open the DC transfer analysis form by selecting the Analyses > Operating Point > DC Transfer pulldown menu item.

Saber® User Guide 93D-2010.03-SP1

Page 108: Saber User Guide 2010.03

Chapter 7: Sweeping Independent SourcesExecuting a DC Transfer Analysis

2. Specify the independent voltage source.

In the Independent Source field, you specify the source to be swept. To select a source, browse the design by clicking the LMB on the down arrow next to the field and select Browse in Design.

3. Define the sweep range.

In the Sweep Range field, select one of the following: Step By, Linear Steps, Log Steps, or Set Values.

• Step By sweeps the source from a to b by steps of size c:

• Linear Steps sweeps the source from a to b in n linearly spaced steps:

• Log Steps sweeps the source from a to b in n logarithmically spaced steps:

• Set Values sweeps the source from a to d in user defined steps of any increment:

4. Verify the waveforms to save.

All variables used for the DC analysis forms are available for this analysis. In addition to the DC analysis fields, you should also verify the file names in the Data File and Plot File fields.

• Plot files contain waveform results for the signals defined by the Signal List field. The size of the plot file is a function of the number of data points and the number of signals in the Signal List field.

• Data Files contain simulation results of each data point in the simulation.

from a to b by c

from a to b in n lin steps

from a to b in n log steps

in a b c d

94 Saber® User GuideD-2010.03-SP1

Page 109: Saber User Guide 2010.03

Chapter 7: Sweeping Independent SourcesExecuting a DC Transfer Analysis

If you are making multiple runs of the same analysis, you should rename the data and plot file for each run. Otherwise, the simulator will overwrite the previous data and plot file results. The simulator stores analysis results in two types of files, Data Files and Plot Files. You can suppress the creation of either file by specifying “_” (underscore) as the name of the file.

By default, the simulator saves these files with the value of “dt”.

5. Set up automatic waveform plotting.

The Plot After Analysis menu field (Basic tab) allows you to specify post-analysis automatic plotting behavior.

You have the following choices:

• No causes no automatic plotting;

• Yes - Open Only opens the plot file after analysis;

• Yes - Append opens the plotfile and updates previously graphed waveforms, placing new plots in addition to the current waveforms;

• Yes - Replace opens the plotfile and updates previously graphed waveforms, replacing the current waveforms.

6. Execute the analysis.

Clicking Apply executes the DC Transfer form. During this analysis run, the simulator determines the DC operating point at each sweep value and stores the information in the data and plot files. This form executes the dtanalysis Saber command in whichever format was selected in the Sweep Range field as follows: (examples show Saber command syntax)

• Step By

• Linear Steps

• Log Steps

dt(sweep <ind_src>, swrange from <value> to <value> by <value>

dt(sweep <ind_src>, swrange from <value> to <value> lin <value>

dt(sweep <ind_src>, swrange from <value> to <value> log <value>

Saber® User Guide 95D-2010.03-SP1

Page 110: Saber User Guide 2010.03

Chapter 7: Sweeping Independent SourcesViewing the DC Transfer Results

• Set Values

• For example, to determine the effects of varying a 15 volt supply +/- 0.5 volts, you can fill out the DC transfer form by using v(v.vcc) as the independent source and Step By as the Sweep Range, with 14.5 and 15.5 as the sweep boundaries, and 0.1 as the sweep step. When you execute the form, the following command will be executed in the Transcript window:

Viewing the DC Transfer Results

After the simulator finishes the analysis run, you can view the results in CosmosScope. You can view the results of a DC Transfer analysis run by following these steps:

1. Add the plot file to the Signal Manager and open it.

Saber Guide does this automatically if you specify one of the following under the Plot After Analysis menu field (Basic tab) before starting the analysis:

• Yes - Open Only

• Yes - Append Plots

• Yes - Replace Plots

In all of the above cases, Saber Guide invokes CosmosScope (if necessary) and opens the Signal Manager and appropriate plot file.

However, if you specify No in the Plot After Analysis menu field, Saber Guide does not open the Signal Manager. You can open the last created plot file either by selecting the Results > View Plot Files in Scope pulldown menu item. (You can also click on the Last Plotfile icon in the Saber Guide icon bar.) This activates the View Plotfiles dialog box. Under the Plot File pulldown menu field, select one of the following:

• Last selects the most recent plot file generated by the analysis. This is the default.

dt(sweep <ind_src> swrange in <value> <value> <value> <value>

dt (sweep v(v.vcc), swr from 14.5 to 15.5 by .1

96 Saber® User GuideD-2010.03-SP1

Page 111: Saber User Guide 2010.03

Chapter 7: Sweeping Independent SourcesViewing the DC Transfer Results

• Plot File Names allows you to specify a list of plotfiles (separated by spaces) in the Plot File field. You can use a browser to select the plot files by clicking on the Browse button.

Under the Plot Action field, select one of the following actions:

• Yes - Open Only does the following:

Invokes CosmosScope, if necessary.Opens the Signal Manager window, if necessary.Opens the latest version of the plot file specified in the Plot File field.

• Yes - Append Plots does the following:

Invokes CosmosScope, if necessary.Opens the Signal Manager window, if necessary.Opens the latest version of the plot file specified in the Plot File field. Updates all previously graphed waveforms from the plot file, placing the new waveforms in addition to the corresponding waveforms from the previous analysis.

• Yes - Replace Plots does the following:

Invokes CosmosScope, if necessary.Opens the Signal Manager, if necessary.Opens the latest version of the plot file specified in the Plot File field. Updates all previously graphed waveforms from the plot file, replacing the corresponding waveforms from the previous analysis.

The Append and Replace options are convenient to use during design optimization, when repeatedly running analyses to see the effects of altering design parameters.

After making the settings described above, you open the Signal Manager by clicking on the OK button or the Apply button. The Signal Manager dialog box appears, along with a Plot File window for the plot file you specified.

If you click on the OK button, the View Plotfiles dialog box closes. If you click on the Apply button, the dialog box remains open. Click on the Close button to close the dialog box.

2. Select the signals.

Assuming that you did not select the Append or Replace Plot Action options in the preceding step, you need to select the signals to be plotted. In the Plot File window, select each signal by clicking on it with the left mouse button. Unselect a signal by clicking on it again (or use the Deselect button or Signal menu).

Saber® User Guide 97D-2010.03-SP1

Page 112: Saber User Guide 2010.03

Chapter 7: Sweeping Independent SourcesDetermining the Next Step

3. Plot the selected signal(s).

You can plot the selected signals by clicking on the Plot button or by moving the cursor into the graph window and pressing the middle mouse button. (You can also plot a signal simply by double clicking on its name in the Plot File window.)

This selected signals in the plot file appear as waveforms in the active Graph window.

After you plot the signals, you can analyze the results in various ways and determine the next step in the design process.

Determining the Next Step

After you have evaluated the DC transfer results, you are ready to continue the design process by proceeding to one of the following steps:■ Calibrate the DC Transfer analysis.■ Verify time-domain specifications.■ Verify small-signal frequency-domain specifications using an AC analysis.

98 Saber® User GuideD-2010.03-SP1

Page 113: Saber User Guide 2010.03

8

8Checking the Frequency Response – ProcessOverview

Provides an overview of how to check the frequency response of your design.

Small-Signal Analyses characterize non-linear systems in the frequency domain by applying a small sinusoidal signal to the input that keeps the system running in the linear region of operation around a previously-calculated stable DC bias point.

You perform an AC analysis to determine the frequency response of the system. In electrical systems, this analysis produces results similar to a Bode Plot, showing how the system responds over a user-defined frequency range at a specific bias point.

The input signal used during an AC analysis is, by definition, very small to assume linearity around the bias point, all signals are usually normalized to a unit value.

For example, if the AC input magnitude of the driving source is set to ‘1’ in the model, then the simulated value of each remaining node in the system is equal to the gain from the input node to that specific node.

If your design is either a digital circuit or a switching circuit, it does not have a linear region of operation or a single stable operating point, making small-signal frequency analyses impossible. If this is the case, you can use the MX-Scan template with the Analog Model Synthesis analysis tool on a large signal switching circuit.

To verify that your design meets the frequency response specification, you must do the following ■ Execute an AC analysis■ View the results in CosmosScope, and evaluate the results to determine the

next step.

Saber® User Guide 99D-2010.03-SP1

Page 114: Saber User Guide 2010.03

Chapter 8: Checking the Frequency Response – Process OverviewDetermining the Circuit Bias Point

Based on this decision, you can either make the appropriate adjustments to meet specifications and re-run the analysis or continue to the next step in your design analysis process.

This section covers the following topics:■ Determining the Circuit Bias Point■ Executing an AC Analysis■ Viewing the Small Signal Analysis Results■ Measuring AC Analysis Results■ Determining the Next Step■ Transforming Frequency-Domain Signals to the Time-Domain (ifft)

Determining the Circuit Bias Point

Because all small-signal analyses examine the design at a specific operating point, you must find the operating point of the design prior to running the analysis, using one of the following methods: ■ In the Small-Signal Frequency Analysis form, specify Yes in the Run DC

Analysis First field. This selection informs the simulator to execute a DC analysis to find the operating point and then run the AC analysis to calculate the frequency sweep using the previously calculated operating point. The AC form is discussed in the next step.

■ Run the DC analysis separately by selecting the Analysis > Operating Point > DC Operating Point pulldown menu item. In most cases, the simulator will find the correct operating point using the default values in the Operating Point Analysis form.

Executing an AC Analysis

To perform an AC analysis, you specify the frequency range to analyze, verify the values of optional small signal fields, and then execute the command as described in the following steps:

1. Open the Small-Signal Frequency Analysis Form. (Analysis > Frequency > Small Signal AC...).

100 Saber® User GuideD-2010.03-SP1

Page 115: Saber User Guide 2010.03

Chapter 8: Checking the Frequency Response – Process OverviewExecuting an AC Analysis

2. Specify the frequencies to sweep.

In order to execute a small-signal analysis, you must define at least one frequency point by using the Start Frequency field, which results in the simulator calculating the frequency response at a single data point. If you want to perform the analysis over a frequency range, you specify the range by using the Start Frequency and End Frequency fields. All frequency values must be positive real numbers.

3. Specify the frequency data point values.

You can control the position of the calculated data points in the defined frequency range by using the following two fields:

• Number of Points defines the number of data points calculated in the frequency range defined by the Start Frequency and End Frequency fields.

• Increment Type defines the spacing between data points, either linear (equal spacing) or the default value, logarithmic.

4. Specify the Operating Point to use.

Because small-signal analyses require an operating point that the simulator uses as the bias point to apply the small sinusoidal signal, you must specify an initial point file in the Initial Point File field.

• If you have already determined a valid operating point for the small signal analysis, verify that the simulator will use the correct file by examining the Initial Point File field in the Input/Output tab. By default, the simulator uses the default output of a DC analysis, dc, as the initial point file.

• If you have not determined a valid operating point, specify Yes in the Run DC Analysis First field. This selection informs the simulator to execute a DC analysis to find the operating point and then to run the small-signal analysis by using the resulting operating point.

In some cases it may be necessary to change the Sample Point Density setting (Basic tab) for a DC analysis in order to find a valid operating point. The AC analysis also has a sample point density parameter (Basic tab). When running an AC analysis, make sure to set the sample point density to a value equal to, or greater than, that used for the DC analysis.

5. Specify which analysis waveforms to create.

Saber® User Guide 101D-2010.03-SP1

Page 116: Saber User Guide 2010.03

Chapter 8: Checking the Frequency Response – Process OverviewExecuting an AC Analysis

The Small-Signal Frequency Analysis form provides the following two fields to specify how waveform data is to be saved for plotting and analysis:

• The Plot File field (Input/Output tab) specifies the name of the plot file, which contains simulation results for the signals listed in the Signal List field. The size of the plot file is a function of the number of data points and the number of signals in the Signal List. By default, the simulator creates plot file named “ac” for each transient run. If you do not want the simulator to create a plot file, fill in the field with a “_”.

• The Signal List field (Input/Output tab) specifies the signals for which simulation results are to be saved for plotting within CosmosScope. By default, the signal list includes only the signals at the top level of the design hierarchy. If you need to view other signals within the design hierarchy, you must add the signal names in the Signal List field.

The following table gives examples of MAST Signal List syntax. You can include a space-separated list of multiple Signal List definitions within the same Signal List field.

If you are unsure about which signals to specify, you can use the default setting (all signals in the root of the design). If you need more signals later, you can do one of the following:

MAST Signal List Examples

Definition

/*/*.* Include all components at the top level.

/.../*.* Include all instances at, and below the root level.

./ Include all signals in the current instance.

.../ Include all signals in instances below the current instance.

/.../pll.* Include all signals in all instances of any “pll” component.

pll.u12/ Include all signals in the pll.u12 instance.

sig1 sig2 Include each signal listed.

Browse Design See Specifying Signals for Analysis for more information.

102 Saber® User GuideD-2010.03-SP1

Page 117: Saber User Guide 2010.03

Chapter 8: Checking the Frequency Response – Process OverviewExecuting an AC Analysis

• For short simulation times, re-run the transient analysis with additional signals defined in the signal list.

• For long simulation run times, extract additional signals from the Data file using the Extract > Add Signals to Plot File menu item.

6. Set up automatic waveform plotting.

The Plot After Analysis menu field (Basic tab) allows you to specify post-analysis automatic plotting behavior.

You have the following choices:

• No causes no automatic plotting;

• Yes - Open Only opens the plot file after analysis;

• Yes - Append opens the plotfile and updates previously graphed waveforms, placing new plots in addition to the current waveforms;

• Yes - Replace opens the plotfile and updates previously graphed waveforms, replacing the current waveforms.

7. Specify whether to save raw simulation results.

Data Files contain simulation results of each data point in the simulation. In analysis runs with a large number of data points, data files can become quite large. You may want to consider saving disk space by not creating a data file. Because it is significantly faster to extract plot information from a data file than to re-run the analysis (especially for long simulation runs), you should carefully consider the ramifications before deciding not to create a data file.

You specify the data file name in the Data File field under the Input/Output tab. Typically, these files have identical names for a given analysis run. If you do not want the simulator to create a data file, fill in the field with a “_”. By default, the simulator creates data files named ac for each AC analysis run.

8. Execute the AC analysis.

Using the default AC analysis values, the simulator applies a small sinusoidal signal to the input at a bias point determined by the Initial Point File and calculates the frequency response over the range defined by the Start Frequency and End Frequency fields. The simulator uses the Number of Points and Increment Type fields to determine the number and values of the calculated frequency points.

Saber® User Guide 103D-2010.03-SP1

Page 118: Saber User Guide 2010.03

Chapter 8: Checking the Frequency Response – Process OverviewViewing the Small Signal Analysis Results

The simulator stores the results for each system variable in the Data file named ac. The simulator also stores all signals defined in the Signal List in a Plot File named ac, which can be viewed in CosmosScope. For reference information on AC analysis, refer to the Help Online system.

After the simulator completes the AC analysis run, you use CosmosScope to view the simulation results for the nodes defined in the Signal List.

Viewing the Small Signal Analysis Results

You use the Signal Manager within CosmosScope to manage and display signals from the various plot files that you create during the analysis process. Overall, the procedure for viewing waveforms from an AC analysis, is as follows:■ Add the plot file to the Signal Manager’s plot file list.■ Open the plot file.■ Select signals to plot.■ Plot the selected signals in a graph.

You can do this step-by-step after an analysis, or you can set up Saber Guide to perform all or part of this process automatically.

The following procedure explains in more detail how to plot waveforms after an analysis:

1. Add the plot file to the Signal Manager and open it.

Saber Guide does this automatically if you specify one of the following under the Plot After Analysis menu field (Basic tab) before starting the analysis:

• Yes - Open Only

• Yes - Append Plots

• Yes - Replace Plots

In all of the above cases, Saber Guide invokes CosmosScope (if necessary) and opens the Signal Manager and appropriate plot file. (See the descriptions of the Plot Action options below for additional information.)

However, if you specify No in the Plot After Analysis menu field, Saber Guide does not open the Signal Manager. You can open the last created plot file either by selecting the Results > View Plot Files in Scope pulldown menu

104 Saber® User GuideD-2010.03-SP1

Page 119: Saber User Guide 2010.03

Chapter 8: Checking the Frequency Response – Process OverviewViewing the Small Signal Analysis Results

item. (You can also click on the Last Plotfile icon in the Saber Guide icon bar.) This activates the View Plotfiles dialog box. Under the Plot File pulldown menu field, select one of the following:

• Last selects the most recent plot file generated by the analysis. This is the default.

• Plot File Names allows you to specify a list of plotfiles (separated by spaces) in the Plot File field. You can use a browser to select the plot files by clicking on the Browse button.

Under the Plot Action field, select one of the following actions:

• Yes - Open Only does the following:

Invokes CosmosScope, if necessary.Opens the Signal Manager window, if necessary.Opens the latest version of the plot file specified in the Plot File field.

• Yes - Append Plots does the following:

Invokes CosmosScope, if necessary.Opens the Signal Manager window, if necessary.Opens the latest version of the plot file specified in the Plot File field. Updates all previously graphed waveforms from the plot file, adding the new waveforms in addition to the corresponding waveforms from the previous analysis.

• Yes - Replace Plots does the following:

Invokes CosmosScope, if necessary.Opens the Signal Manager, if necessary.Opens the latest version of the plot file specified in the Plot File field. Updates all previously graphed waveforms from the plot file, replacing the corresponding waveforms from the previous analysis.

The Append and Replace options are convenient to use during design optimization, when repeatedly running analyses to see the effects of altering design parameters.

After making the settings described above, you open the Signal Manager by clicking on the OK button or the Apply button. The Signal Manager dialog box appears, along with a Plot File window for the plot file you specified.

If you click on the OK button, the View Plotfiles dialog box closes. If you click on the Apply button, the dialog box remains open. Click on the Close button to close the dialog box.

Saber® User Guide 105D-2010.03-SP1

Page 120: Saber User Guide 2010.03

Chapter 8: Checking the Frequency Response – Process OverviewMeasuring AC Analysis Results

2. Select the signals to plot.

Assuming that you did not select the Append or Replace Plot Action options in the preceding step, you need to select the signals to be plotted. In the Plot File window, select each signal by clicking on it with the left mouse button. Unselect a signal by clicking on it again (or use the Deselect button or Signal menu).

3. Plot the selected signal(s).

You can plot the selected signals by clicking on the Plot button or by moving the cursor into the graph window and pressing the middle mouse button. (You can also plot a signal simply by double clicking on its name in the Plot File window.)

The selected signals in the plot file appear as waveforms in the active Graph window.

After you plot the signals, you can analyze the results in various ways and determine the next step in the design process.

Measuring AC Analysis Results

CosmosScope provides numerous pre-defined automated measurements to dramatically decrease the time it takes to extract frequency-domain specification data from plotted frequency sweep waveforms.

To perform a measurement on a waveform within CosmosScope, you follow these steps:

1. Display the Measurement Tool.

Within the CosmosScope user interface, you can open the Measurement Tool by either selecting the Tools > Measurement pulldown menu item or by clicking on the Measurement icon in the Tool icon bar at the bottom of the CosmosScope user interface.

2. Select the appropriate measurement.

After you display the this tool, you can select which measurement you want to perform. In the Measurement field, you select the measurement by clicking on the downward arrow and selecting the measurement from within the various measurement categories.

106 Saber® User GuideD-2010.03-SP1

Page 121: Saber User Guide 2010.03

Chapter 8: Checking the Frequency Response – Process OverviewMeasuring AC Analysis Results

The following table lists the measures accessible in the frequency category.

3. Select the signal to measure.

You can specify the signal to measure in the Signal field. You can specify the signal by using either of the following methods:

• Click on the downward arrow, and select a signal from the resulting list.

Measurement Definition

Lowpass Displays the corner frequency of a waveform with a lowpass shape

Highpass Displays the corner frequency of a waveform with a highpass shape

Bandwidth Displays the bandwidth, the low, high, or center frequency, or the level at which the measurement is made for a bandpass-shaped waveform

Stopband Displays the stopband, the low, high, or center frequency, or the level at which the measurement is made for a stopband-shaped waveform

Gain Margin Displays the dB gain margin of a complex waveform

Phase Margin Displays the phase margin of a complex waveform in degrees or radians

Slope Displays the slope (optionally as a per-octave or per-decade value) of a waveform

Magnitude Displays the magnitude of a point on a waveform.

dB Displays the dB value of a point on a waveform.

Phase Displays the phase value of a point on a waveform.

Real Displays the real value of a point on a waveform.

Imaginary Displays the imaginary value of a point on a waveform.

Nyquist Plot Frequency

Displays the frequency at a point on a Nyquist (or Nichols) plot.

Saber® User Guide 107D-2010.03-SP1

Page 122: Saber User Guide 2010.03

Chapter 8: Checking the Frequency Response – Process OverviewMeasuring AC Analysis Results

• Select the signal in the current active graph.

Regardless of the method you chose, you must specify a signal prior to executing the measurement.

4. Set the data range to measure.

You can control the data range that is used to perform the measurement in the Apply Measurement to: section of the Measurement dialog box. You must specify one of the following data ranges:

• Entire Waveform calculates the measurement on the entire waveform, regardless of what is viewed in the active graph.

• Visible X and Y range only calculates the measurement for the X and Y range visible on the current active graph.

5. Perform the measurement.

You perform a measurement by clicking on the Apply button. This procedure performs the measurement on the specified signal and adds the corresponding information to the active graph.

6. Manipulate measurement information.

During the course of data analysis within CosmosScope, you may want to manipulate which measurements can be viewed. This task can be accomplished by using the Measure Results form. You can open this form either by selecting the Graph > Measure Results... pulldown menu item or by double-clicking on measurement text within an active graph.

After you display this form, you can manipulate measurement information by using the following buttons:

• Delete Measurement deletes the selected measurement from the active graph.

• Delete All deletes all measurement text/graphics from the active graph.

• Show All Values shows all measurements listed in the left scroll list in the graph.

• Hide All Values retains but does not display the measurements listed in the left scroll list.

• Show/hide status bubbles allow you to change the visibility of a measurement on the active graph on a per measurement basis. A green bubble displays the measurement. A black bubble hides the measurement.

108 Saber® User GuideD-2010.03-SP1

Page 123: Saber User Guide 2010.03

Chapter 8: Checking the Frequency Response – Process OverviewDetermining the Next Step

Determining the Next Step

Using the signal viewing and measurement capabilities of CosmosScope, you determine whether your design meets the pre-determined specifications. If it meets specifications, then you can proceed to one of the following options:■ Verify the functionality of the design by using another small-signal analysis.■ Transform the AC results based on the linearized small signal model into a

time-domain waveform using IFFT in the next subsection.■ Tune the design parameter by using statistical, parametric, or stress

analyses.

If the design does not meet your specifications, you can take corrective action by using either of the following methods:■ Alter a design/instance parameter(s)

If the design change does not require you to modify the connectivity, you can modify the design parameters by using the Alter Design form available through the Edit > Alter... menu item.

■ Edit the schematic and re-analyze.

If the design change requires you to change the connectivity (e.g. different parts, different wiring connections, or any change to the topology), you must make the change in the schematic, re-netlist the design, (Design > Netlist design_name), and then re-load the design into the simulator (Design > Simulate design_name).

Transforming Frequency-Domain Signals to the Time-Domain (ifft)

The inverse Fast Fourier Transfer (IFFT) is a post processing command that transforms frequency sweep data from AC or FFT analyses into time-domain waveforms. To execute a IFFT analysis, you follow these steps:

1. Display the IFFT dialog box. (Analyses > Fourier > IFFT...).

2. Specify the signals to transform.

Saber® User Guide 109D-2010.03-SP1

Page 124: Saber User Guide 2010.03

Chapter 8: Checking the Frequency Response – Process OverviewTransforming Frequency-Domain Signals to the Time-Domain (ifft)

In order to execute an IFFT analysis, you must specify the following information in the Input/Output tab:

• Specify the signal names to transform.

You define the signal to transform in the Signals to Transform field by typing the signal names in the field.

You must enter the names of the signals to transform exactly as they have been specified in the transient Plot file. You cannot use wildcards in this field. If you do not specify any signal names, all applicable signals from the transient Plot file will be transformed.

• Specify the source plot file name.

The simulator uses the plot file from a previous frequency domain analysis run as the source for the IFFT analysis. Because there is no default, you must specify the value in the Input Plot File field.

3. Set up automatic waveform plotting.

The Plot After Analysis menu field (Basic tab) allows you to specify post-analysis automatic plotting behavior.

You have the following choices:

• No causes no automatic plotting;

• Yes - Open Only opens the plot file after analysis;

• Yes - Append opens the plotfile and updates previously graphed waveforms, placing new plots in addition to the current waveforms;

• Yes - Replace opens the plotfile and updates previously graphed waveforms, replacing the current waveforms.

4. Verify the input data points.

Although optional, the following fields provide information to control the number of input data points used in the analysis.

The Number of Points field specifies the number of data points used in the transform. This value must be a power of 2, such as 256, 512 or 1024.

In order to generate the time-domain waveforms, the input frequency spectrum data must begin at 0Hz. If the input spectrum data was created by an AC analysis, you must use one of the following methods to extrapolate the frequency data back to 0 Hz:

• zero defines the frequency component at 0Hz as 0.

110 Saber® User GuideD-2010.03-SP1

Page 125: Saber User Guide 2010.03

Chapter 8: Checking the Frequency Response – Process OverviewTransforming Frequency-Domain Signals to the Time-Domain (ifft)

• constant defines the frequency component at 0Hz as equal to the value of the first frequency point in the input plot file.

• linear defines the frequency component at 0Hz by using the value of the first frequency point and the slope at that data point.

5. Execute the analysis.

By default, the simulator calculates the time domain waveforms for each signal in the Signal List field by using the IFFT transform. The results are stored in the plot file named ifft. All default values can be modified within the IFFT analysis form.

6. Plot the results.

After the analysis run completes, you can view results within CosmosScope. The following procedure outlines the process of viewing and manipulating waveform data within CosmosScope.

If you specified the Open Only automatic plotting option in the Plot After Analysis field before the analysis, you can skip step a. If you specified the Append or Replace options, for previously graphed waveforms you can skip steps b and c as well.

a. Add the plot file created by the analysis run to the Signal Manager in CosmosScope (Results > View Plotfiles in Scope).

b. Select the signal(s) you want to view in the plot file window created in the last step.

c. Display the selected signals in the graph either by pressing the Plot button in the plot file window or by pressing the middle mouse button in the active graph.

d. Use the waveform manipulation (e.g. pan/zoom) and measurement capabilities within CosmosScope to analyze the data.

Once you view the waveforms within CosmosScope, you can analyze the data to determine whether the design is operating according to the specification.

Saber® User Guide 111D-2010.03-SP1

Page 126: Saber User Guide 2010.03

Chapter 8: Checking the Frequency Response – Process OverviewTransforming Frequency-Domain Signals to the Time-Domain (ifft)

112 Saber® User GuideD-2010.03-SP1

Page 127: Saber User Guide 2010.03

9

9Calibrating Analyses

Explains the procedures to calibrate analyses to control the level of accuracy of a simulation.

Within the simulator, the basic purpose of calibration is to verify that the accuracy setting used in the simulation adequately depicts the behavior of the design to the degree desired. For example, if the sample point density is set too low during a transient analysis run, the simulator may miss a critical spike in the output waveform.

In circuit simulation, evaluating nonlinear functions is computationally expensive. In general, iterative methods are used to find an approximate solution to the original problem, or an exact solution of a problem that is close to the original problem. The Saber Simulator uses the second approach by forming a piecewise linear model using sampled nonlinear functions. The density variable controls the closeness of the piecewise-linear model to the original problem, i.e. the nonlinear functions specified by the models.

The basic process for all calibrations is as follows:

1. Set the calibration variables to the minimum acceptable values.

2. Run the analysis.

3. Tighten the value of the calibration variables.

4. Re-run the analysis.

5. Compare results of the analysis runs.

With the exception of the DC analysis, all comparisons are accomplished by viewing the results in CosmosScope. Determining acceptable results is subjectively based on your needs and experience. Because the purpose of calibration is to provide the most accurate results in the least simulation time, you should keep this in mind when calibrating analysis results.

Saber® User Guide 113D-2010.03-SP1

Page 128: Saber User Guide 2010.03

Chapter 9: Calibrating AnalysesCalibrating a DC Analysis

If you define your own units in a template and fail to set the ranges, you will get an error message similar to the following:

*** ERROR “ALG_RS_NO_UNIT” Unit aps not found in range set default_range_set

To resolve this error, insert a control section in the template that defines the range for the unit.

This section covers the following topics:■ Calibrating a DC Analysis■ Calibrating a DC Transfer Analysis■ Calibrating a Transient Analysis■ Calibrating the Small Signal Analyses■ Calibrating the Fourier, FFT, and IFFT Analyses■ Description of the Calibration Algorithm

Calibrating a DC Analysis

Calibrating a DC analysis allows you to increase the accuracy of the initial DC results in order to verify that the DC solution is sufficiently accurate. Because most analyses use the Initial Point file generated by a DC analysis, it is very important that the values in this file are accurate. The recommended practice is to increase accuracy by multiplying the density variable by a factor of two (thereby increasing the number of sample points by the same factor). The following procedure demonstrates this process:

1. Execute DC analysis with the density variable set to 1.

This command creates an Initial Point file by using the number of sample points defined in the design being simulated.

2. Increase the density setting by a factor of 2.

> dc

> den 2

114 Saber® User GuideD-2010.03-SP1

Page 129: Saber User Guide 2010.03

Chapter 9: Calibrating AnalysesCalibrating a DC Transfer Analysis

3. Re-run the DC analysis using a different value for the resulting Initial Point parameter, which defines the name of the file where simulation results are stored.

4. Display the previous dc analysis runs.

If the difference in the DC results is acceptable, you should use the lowest suitable density value.

If the difference in the DC results is unacceptable, you should repeat steps 2 through 4 until you find an acceptable density setting.

Calibrating a DC Transfer Analysis

During a DC Transfer analysis, the simulator sweeps the values of DC sources in finite steps across a user defined range. The user specifies a beginning sweep value (swbegin), an ending sweep value (swend) and the size of the sweep step (swstep). The simulation then calculates a DC operating point at each value of the swept source(s). Results of a DC Transfer analysis are stored in a plot file.

When CosmosScope displays the results of this analysis, the regions between the defined sweep values are plotted as straight line segments. Therefore, calibration of the DC Transfer analysis involves verifying that these regions are well enough approximated by the linear segments.

To calibrate the DC Transfer analysis, you should decrease the sweep step value (swstep) until you are convinced that no non-linearities exist between the sweep sample points.

> dc (dcep dc2

> di dc dc2

Saber® User Guide 115D-2010.03-SP1

Page 130: Saber User Guide 2010.03

Chapter 9: Calibrating AnalysesCalibrating a Transient Analysis

Calibrating a Transient Analysis

Transient analysis calibration involves independently adjusting the following two variables:■ Density sets the accuracies of the non-linear calculations of the design

model. By default, this value is set to 1, which informs the simulator to use the sample points defined within the design being simulated.

■ Truncation Error establishes the degree of accuracy of the numerical integration algorithm.

The best strategy for calibrating the accuracy of the transient analysis is to calibrate it separately for both density and truncation error and then use the calibrated values of both variables to execute the final transient analysis. The following procedure shows this process:

1. Calibrate the accuracy of the DC analysis as described in the previous section.

2. Calibrate the accuracy of the nonlinearities in the transient analysis by following these steps:

a. Execute the transient analysis with the density value determined in step 1.

b. Increase the density value by a factor of 2, and run the DC and TR analyses again.

Because you will be comparing multiple transient runs, you must assign different values to the plot file parameter, which defines the transient plot file name, for each transient run to avoid overwriting previous plot data.

c. Plot and compare the results of the last two transient runs in CosmosScope.

If the plotted results are within an acceptable variance, you can proceed to calibrate the numerical integration algorithm as described in step 3.

If the plotted results are outside of the acceptable variance, then repeat steps b and c until you obtain reasonable results.

3. Calibrate the accuracy of the numerical integration algorithm by following these steps:

a. Set the density value to its smallest acceptable value as determined in step 2.

116 Saber® User GuideD-2010.03-SP1

Page 131: Saber User Guide 2010.03

Chapter 9: Calibrating AnalysesCalibrating the Small Signal Analyses

b. Execute the Transient analysis with the default truncation error (terr) value.

In oscillators, specifying an excessively-large truncation error can result in an error in the simulated frequency of oscillation. In some cases, this can even result in no oscillation.

c. Decrease the Truncation error by a factor of 10, and run the Transient analysis again. Remember to rename the plot file by entering a new name in the Plot File parameter entry box.

d. Compare the results by plotting the last two transient runs.

If the two runs are within an acceptable variance, then transient analysis calibration is completed.

If the two runs are outside of acceptable variance, then repeat steps c and d.

Calibrating the Small Signal Analyses

To calibrate the accuracy of the small signal analyses (ac, noise, distortion, two-port), you must adjust the following two variables that are independent of each other:■ Density controls the “granularity” of input.■ Number of Points specifies the number of frequency values at which the

analysis is to be run. Thus, this variable controls the granularity of the output. When you set this variable, you must check that the granularity is small enough that the analysis does not “step over”, and thereby not reveal, any parts of a frequency-response that reflect radical behavior, such as a spike. Increasing the number of analysis points makes the frequency-response graphs smoother.

As with all analyses, you calibrate the accuracy by making comparisons. In calibrating the accuracy of the small signal analyses, you compare the frequency-response waveforms for any nodes of interest for successive runs of the analysis. You want to see similarities in the graphs. The significance of differences depends entirely upon your situation and its requirements. Differences that might matter are phase shifts, any differences in the shape of the curves, and any differences in magnitude.

A density value that is sufficient for any of the dc- and time-domain analyses (dc, dc transfer, and transient) is not necessarily large enough to be sufficient

Saber® User Guide 117D-2010.03-SP1

Page 132: Saber User Guide 2010.03

Chapter 9: Calibrating AnalysesCalibrating the Fourier, FFT, and IFFT Analyses

for the small-signal frequency domain analyses because the dc- and time-domain analyses use function values, while the ac analysis uses values of function derivatives.

You must ensure that the density value used on the small signal analysis is at least as large as the density value of the DC analysis. It is good practice to use the same value in both cases. If necessary, re-run the DC analysis with the density required by the small-signal analysis. If the DC analysis takes a long time to run, you can save time by using the results of a previous DC analysis as the starting point for any that follow. You can then use the new initial point file as input to the small signal analysis.

A strategy for calibrating the accuracy of the small signal analyses is to set it first for density and then for the number of frequency points. The following steps show one method to complete this task:

1. Run the small signal analysis with the same density value as that used in the final run of the DC analysis.

2. Increase the density value by a factor of 2, and run the dc and ac analyses again. Remember to rename the plot file by entering a new name in the Plot File parameter entry box.

3. Compare results of the last two small signal analysis runs.

4. If the comparison shows unacceptable differences, return to step 2.

5. Run the small signal analysis with the default value of (100) for the number of points.

6. Double the number of points value, and run the small signal analysis again.

7. Compare the results of the last two small signal analysis runs

8. If the comparison shows unacceptable differences, return to step 6. If the comparison shows acceptable differences, the simulation is calibrated for this small signal analysis.

Calibrating the Fourier, FFT, and IFFT Analyses

The fourier, fft, and ifft commands are post-processing analyses: they operate on the results of prior analyses. Typically, the fourier or fft commands are applied to the results of a transient analysis. Consequently, calibrating the Fourier commands involves both a transient analysis and a fourier or fft analysis. The transient and fourier (or fft) pair is performed repeatedly, each

118 Saber® User GuideD-2010.03-SP1

Page 133: Saber User Guide 2010.03

Chapter 9: Calibrating AnalysesCalibrating the Fourier, FFT, and IFFT Analyses

time modifying arguments to the transient command and examining the fourier (or fft) results. The DENsity value should be gradually increased and the TERRor value gradually decreased until there is little change in the values of the fourier (or fft) output with successive runs. Note that even small changes in the transient waveform can result in large changes in the fourier (or fft) output.

When using the fourier command, it is important to note that the value of the fundamental frequency, if specified, must be correct.

In addition to being affected by the accuracy of the input data, the results of the fft command may also be affected by the number and spacing of data points in the input data. In order to obtain the most accurate fft results, the input data (such as from a transient command) should be sampled so that the resulting plot file contains exactly the samples needed by the fft command. For example, if a 512-point FFT is to be calculated on a transient plot file, for best accuracy, that plot file should be sampled to contain 1025 linearly-spaced points (1024 intervals are used in calculating the 512-point FFT). This sampling may be specified either in the transient command, or in a subsequent extract command, through the use of the XSampling variable. Sampling is not required in order to perform the fft command, but is recommended in order to improve FFT accuracy.

The following example demonstrates the use of sampling with the tr command, followed by an fft command (which by default takes its input from the tr plot file).

The next example produces the same results as the previous example, but shows the sampling being done by extracting data points from the results of the tr command.

As with the fft command, sampling can affect the accuracy of the ifft command. Best results are obtained when the ifft input plot file contains the linearly-spaced samples needed by the ifft algorithm. When the input plot file is the

tr (te 3m, ts .1u, xs from 0 to 3m lin 1025

fft (np 512

tr (te 3m, ts .1u

ex (df tr, pf extr, xs from 0 to 3m lin 1025

fft (np 512, pfin extr, pfout fft_extr

Saber® User Guide 119D-2010.03-SP1

Page 134: Saber User Guide 2010.03

Chapter 9: Calibrating AnalysesDescription of the Calibration Algorithm

output of an ac analysis, some points will be extrapolated by the ifft command (so that the frequency spectrum begins at zero, as described above). In this case, it is still desirable for the ac output plot file to contain approximately the number of points needed by the ifft. Such a plot file may be created by specifying the appropriate value for the NPoints variable in the ac command. In addition, best results are obtained by performing the ac analysis with the FBegin value as close to zero as possible. If an ifft command is applied to the output of a previous fft command (perhaps modified through post-processing), in order to obtain results comparable to the original fft input, the ifft should be performed with the same number of points as the original fft, specified by NPoints, and the value of NPoints should be a power of 2.

The following example demonstrates the use of the ifft command, in conjunction with the fft and ac commands.

Although the time-domain input to the fft command requires 2n+1 points, where n is the size of the FFT to be computed, the frequency-domain input to the ifft command requires the same number of points as will be computed by the inverse-FFT. This occurs because the ifft command replicates its input data in such a fashion as to guarantee that the resulting time-domain data is real-valued.

Description of the Calibration Algorithm

In the Saber Simulator, the sample point density defines the accuracy of the simulation. When a template requires sample points, the definition is made inside the template. Since sample points are defined within a template, and the definition is often unique to the template, it is quite possible to have multiple sample point definitions in a single simulation. The global simulation parameter DENSITY allows you to modify the sample point density for the simulation. The sample point density approach allows the simulator to utilize the advantages of the Piece Wise Linear (PWL) approximation, thus speeding up the simulation.

fft (np 512

ifft (pfin fft, pfout ifft, np 512

ac (fb 10, fe 100k, np 512, inc lin

ifft (pfin ac, pfout ifft, np 512

120 Saber® User GuideD-2010.03-SP1

Page 135: Saber User Guide 2010.03

Chapter 9: Calibrating AnalysesDescription of the Calibration Algorithm

With multiple sample point definitions in a single simulation, selecting the optimum value for the density parameter can be difficult. The Saber Simulator supports a calibration utility to help in selecting the optimum density parameter setting for a simulation session.

The calibration utility facilitates the capability of choosing the appropriate sample point density for given absolute and relative tolerances. The utility compares the solution obtained by using the PWL approximation to the solution obtained using the Continuous Newton Raphson (CNR) technique (which is slower but more accurate).

If we denote sv_PWL and sv_CNR as two solutions for a system variable (sv) obtained using the PWL approximation and CNR method respectively, the algorithm calculating the optimal sample point density makes sure that

| sv_PWL - sv_CNR | < max(reltol*(max(|sv_PWL|,|sv_CNR|)),abstol)

for each system variable. If this inequity does not hold, the density is doubled. The process is stopped when the density for which the inequality is satisfied is reached. The calibration utility is also capable of relaxing the sample point density if it has been set too tight either by the user or by the model developer. In this scenario the sample point density is relaxed (dividing it by 2) until the inequality is no longer satisfied. When this occurs, the last density for which the inequality was satisfied is reported.

This section covers the following topics:■ How Tolerances Are Specified for Calibration

How Tolerances Are Specified for Calibration When Saber performs a calibration, the absolute and relative tolerances used in the calibration can come from several different places. In order of priority, Saber searches for the tolerance information it needs as follows:

1. A MAST model can have a section called control_section.

A model (template) specification for a system variable or a group of system variables can be explicitly defined in the control_section. This is done by associating a system variable or a group of system variables in a model with the range information. This specification can be done in the following way:

Saber® User Guide 121D-2010.03-SP1

Page 136: Saber User Guide 2010.03

Chapter 9: Calibrating AnalysesDescription of the Calibration Algorithm

control_section {... range_for_variable(ic, -100m, 100m, 1n, 0.01) range_for_variable(vbc, -10, 10, 1m, 0.01) range_for_variable(v, -5, 5, 1m, 0.01) ... }

where the values in parenthesis are (var, min, max, abs, rel)

• var is a system variable

• min is the minimum value that the variable can attain

• max is the maximum value that the variable can attain

• abs is the absolute tolerance

• rel is the relative tolerance

In this example the range is specified for a specific variable. This may be different from other variables of the same unit.

2. If no range is specified through the range_for_variable specification for an external connection point, it inherits its range specification from the upper level instance.

3. A unit in a model can be associated with the range information. In this case each system variable of that unit that is not listed in the range_for_variable specification is associated with a range. For example,

control_section { ... range_for_unit(v, 1, 10, 1u, 0.01) range_for_unit(i, -100m, 100m, 1u, 10m) ... }

4. A model can specify an external range set. In this case the model specifies an external range set it belongs to. The external range specification operates only on units. External range sets must be defined in one of the configuration files. A range set defined in a configuration file must be complete, meaning that it is an error if a unit whose range is sought is not found in the range set.

Separate ranges for different variables of the same unit cannot be specified through the external specification.

122 Saber® User GuideD-2010.03-SP1

Page 137: Saber User Guide 2010.03

Chapter 9: Calibrating AnalysesDescription of the Calibration Algorithm

control_section { ... range_set("User") ... }

5. If the range is not specified, pins inherit their ranges through the connection point from the parent template, while vars inherit ranges from the parent template by unit name.

6. In addition to a regular way of specifying ranges and range set (through the control_section) the top level root template can specify them through a special file. Thus, if the top level template is located in the file <filename>.sin then <filename>.scf should contain the command:

root_range_set <root_range_set>

7. The .rsfcfg file describes definitions for designs in a given directory. It is located in the current directory and is optional.

8. The user configuration file,

$HOME/.rsf_user

has user-defined ranges specified in the user home directory (specified by the $HOME environment variable). This file is optional.

9. The site configuration file

$AI_SITE_PATH/rsf.site

provides site specified ranges and is located in the directory specified by the $AI_SITE_PATH environment variable. This file is optional.

If the user has not specified the range for the root template, it takes the default range specification "default_range_set" provided by Synopsys, Inc. This specification is found in the analogy.rsf file, which is located in the Saber software installation directory as shown below. This file is required for simulation. If the Saber Simulator cannot find this file, a simulation error will result.

$SABER_HOME/config/analogy.rsf .

Saber® User Guide 123D-2010.03-SP1

Page 138: Saber User Guide 2010.03

Chapter 9: Calibrating AnalysesDescription of the Calibration Algorithm

124 Saber® User GuideD-2010.03-SP1

Page 139: Saber User Guide 2010.03

10

10Using Two-Port, Noise and Distortion Analyses

Describes how to verify the specifications of the design by using small signal frequency analysis.

After you determine the operating point, you can verify that the frequency-domain aspects of the design meet specifications. Small Signal Analyses characterize non-linear systems in the frequency domain by applying a small sinusoidal signal to the input that keeps the system running in the linear region of operation around a previously calculated DC bias point. Using the following list of small signal analyses available within the simulator, you can select the appropriate analysis based on the specification that you want to verify:■ Determine the small-signal transfer function.■ Determine the noise contributions of the various parts in the design.■ Determine distortion effects between devices in the design.

This section covers the following topics:■ Two-Port Analysis Overview■ Determining Small-Signal Transfer Function - Process Steps■ Noise Analysis Overview■ Checking Noise Specifications■ Distortion Analysis Overview■ Checking Distortion Specifications■ Viewing the Distortion Analysis Results■ Analyzing the Distortion Results

Saber® User Guide 125D-2010.03-SP1

Page 140: Saber User Guide 2010.03

Chapter 10: Using Two-Port, Noise and Distortion AnalysesTwo-Port Analysis Overview

Two-Port Analysis Overview

Two-Port Analysis is a small signal computation that determines the relationship between voltages and currents at the input and output of a design as a function of frequency. The following figure shows a block diagram for the electrical paradigm of the two port analysis.

Determining Small-Signal Transfer Function - Process Steps

To investigate the relationship between the input and output of a block in your design, you will execute a two-port analysis, view the results in CosmosScope, and evaluate the results to determine the next step. The following steps describe this process.

1. Open the Two Port dialog box (Analyses > Frequency > Two-Port...).

2. Specify the input and output ports.

• Specify the Input Source (Input Port).

This field defines an independent input source. In electrical systems, it may be either a voltage or current source, for example, v(v.1) or i(i.supply). (These sources may also be expressed as v.1 and i.supply.) This node is used as the input port.

• Specify the Output Port(s).

In this field, you can specify a list of node(s) within the design to be analyzed as output ports. If the output is a node voltage, then the two port output is assumed to be between the specified node and the reference node (ground).

OutputInputSource Port

V2V1

I2I1

126 Saber® User GuideD-2010.03-SP1

Page 141: Saber User Guide 2010.03

Chapter 10: Using Two-Port, Noise and Distortion AnalysesDetermining Small-Signal Transfer Function - Process Steps

3. Set up automatic waveform plotting.

The Plot After Analysis menu field (Basic tab) allows you to specify post-analysis automatic plotting behavior.

You have the following choices:

• No causes no automatic plotting;

• Yes - Open Only opens the plot file after analysis;

• Yes - Append opens the plotfile and updates previously graphed waveforms, placing new plots in addition to the current waveforms;

• Yes - Replace opens the plotfile and updates previously graphed waveforms, replacing the current waveforms.

4. Specify the Frequency Range.

In order to execute a small signal analysis, you must define at least one frequency point by using the Start Frequency field, which results in the simulator calculating the frequency response at a single data point. If you want to perform the analysis over a frequency range, you specify the range by using the Start Frequency and End Frequency fields. All frequency values must be non-negative real numbers.

5. Verify the type of parameters to calculate for the list in the following table.

Function Parameter Type

Transfer Function zin, zout, gain

Short-circuit admittance Y-parameter

Open-circuit impedance Z-parameters

Hybrid H-parameters

Reverse Hybrid G-parameters

Chain ABCD A-parameters

Reverse Chain ABCD B-parameters

Scattering S-parameters

Transfer Scattering T-parameters

Saber® User Guide 127D-2010.03-SP1

Page 142: Saber User Guide 2010.03

Chapter 10: Using Two-Port, Noise and Distortion AnalysesNoise Analysis Overview

6. Verify the optional small signal analysis field values.

Although optional, you should verify the contents of the fields in the Input/Output tab. This step helps prevent accidentally overwriting previously created plot and data files when you execute the analysis repeatedly.

7. Execute the Analysis.

After you have completed the necessary forms, you can execute the analysis by clicking the OK or the Apply button. By default, the simulator calculates the specified parameter and creates a waveform of the signal on the output port in a Plot File named tp.

8. View the Results in CosmosScope.

After the analysis run completes, you can view results within CosmosScope. The following procedure outlines the process of viewing and manipulating waveform data within CosmosScope.

If you specified the Open Only automatic plotting option in the Plot After Analysis field before the analysis, you can skip step a. If you specified the Append or Replace options, for previously graphed waveforms you can skip steps b and c as well.

a. Add the plot file created by the analysis run to the Signal Manager (Results > View Plotfiles).

b. Select the signals you want to view in the plot file window created in the last step.

c. Display the selected signals in the graph either by pressing the Plot button in the plot file window or by pressing the middle mouse button in the active graph.

Once you view the waveforms within CosmosScope, you can analyze the data to determine whether the design is operating according to the specification.

Noise Analysis Overview

Noise consists of small current and voltage fluctuations and exists in every electrical circuit. Noise analysis is a small-signal analysis that calculates the

128 Saber® User GuideD-2010.03-SP1

Page 143: Saber User Guide 2010.03

Chapter 10: Using Two-Port, Noise and Distortion AnalysesChecking Noise Specifications

noise spectrum, to the extent that it can be modeled, from the following sources:■ Thermal noise is generated by the random movement of electrons in

resistors and resistive material. This source of white noise is directly proportional to the temperature of the device.

■ Shot noise is generated by the random movement of electrons crossing a potential barrier, such as a diode or the pn junction in a transistor. Shot Noise is always associated with direct-current flow and is independent of temperature.

■ Flicker noise is caused by impurities or irregularities in the surface material of semiconductors.

The equations for modeling these three types of noise generators are modeled in all MAST templates supplied by Synopsys. You can control the noise generators within each model by changing the properties values on the symbol. For complete information on how noise effects are modeled in MAST templates, refer to Model Fundamentals manual.

Another source for issues related to noise analysis can be found in the book titled Analysis and Design of Analog Integrated Circuits, Third Edition, Paul R. Grey and Robert G. Meyer, Chapter 11 pp.715-778.

Checking Noise Specifications

To investigate the noise contributions of various parts within your design, you execute a noise analysis, view the results in CosmosScope, and evaluate the results to determine the next step. Based on this decision, you can either make the appropriate design adjustments to meet specifications and re-run the analysis or continue to the next step in your design analysis process.

The following steps describe the process of checking the noise specifications:

1. Display the noise analysis form (Analyses > Frequency > Noise).

2. Specify frequency range to analyze.

In order to execute a small signal analysis, you must define at least one frequency point by using the Start Frequency field. This action results in the simulator calculating the noise spectrum at a single data point. To perform

Saber® User Guide 129D-2010.03-SP1

Page 144: Saber User Guide 2010.03

Chapter 10: Using Two-Port, Noise and Distortion AnalysesChecking Noise Specifications

the analysis over a frequency range, you specify the range by using the Start Frequency and End Frequency fields. By default, the end frequency is equal to the start frequency. All frequency values must be positive real numbers.

3. List of nodes at which to calculate noise.

Using the Output Signal List field, you can specify the nodes at which you want to examine the noise contribution. Although the syntax for the values in this list is identical to Signal List used in the AC and transient analysis, this field can include only system variables, such as currents through voltage sources and node voltages.

After you specify values for these required fields, you should verify the contents of the remaining fields in the noise analysis form.

4. Set up automatic waveform plotting.

The Plot After Analysis menu field (Basic tab) allows you to specify post-analysis automatic plotting behavior.

You have the following choices:

• No causes no automatic plotting;

• Yes - Open Only opens the plot file after analysis;

• Yes - Append opens the plotfile and updates previously graphed waveforms, placing new plots in addition to the current waveforms;

• Yes - Replace opens the plotfile and updates previously graphed waveforms, replacing the current waveforms.

5. Verify Noise Generators.

You use the Noise Generators field to control your ability to view where the noise in your design is originating. By default, the simulator saves the noise generated by each part in the root of the design in noise analysis calculations.

6. Optionally, turn noise sources within your design off.

If you want all of the parts in your design to be included in the noise analysis, no action is required. However, if you would like to eliminate a particular part as a noise source, you can set the nons symbol property of that instance to 1. By default, nons is set to 0, which includes the instance in the noise analysis.

If you do change nons, you will need to re-netlist your design before running the noise analysis.

130 Saber® User GuideD-2010.03-SP1

Page 145: Saber User Guide 2010.03

Chapter 10: Using Two-Port, Noise and Distortion AnalysesChecking Noise Specifications

This field uses the same syntax as the Signal List field. The following table shows some examples of the Noise Generators field:

7. Verify the contents of the optional noise analysis fields.

Although optional, you should verify the contents of the fields in the Input/Output tab. This step helps prevent accidentally overwriting previously created plot and data files when you execute the analysis repeatedly.

8. Execute the noise analysis.

By default, the simulator calculates the noise at the nodes listed in the Output Signal List using the sources listed in the Noise Contributors field over the range defined by Start and End Frequency fields. The results for each system variable are stored on a logarithmic scale in the data file and plot file named ns. All default values can be modified within the noise analysis form.

9. View the Noise Analysis Results.

After the noise analysis run completes, you can view results within CosmosScope. The following procedure outlines the process of viewing and manipulating waveform data within CosmosScope.

Example Gives noise totals for:

/ /*.* all noise generators and component instances in root of the design (default)

/.../*.* all noise generators in the design, by component

/.../*.*/* all noise generators in the design, by noise source

/opamp.* all noise generators from opamps referenced in the root of the design

q.*/nsf -OR-nsf(q.*)

flicker noise generators for each bipolar transistors in the current block

q.1/* -OR-*(q.1)

all noise generators in the q.1 instance

Saber® User Guide 131D-2010.03-SP1

Page 146: Saber User Guide 2010.03

Chapter 10: Using Two-Port, Noise and Distortion AnalysesChecking Noise Specifications

If you specified the Open Only automatic plotting option in the Plot After Analysis field before the analysis, you can skip step a. If you specified the Append or Replace options, for previously graphed waveforms you can skip steps b and c as well.

a. Add the plot file created by the analysis run to the Signal Manager (Results > View Plotfiles).

b. Select the signals you want to view in the plot file window created in the last step.

c. Display the selected signals in the graph either by pressing the Plot button in the plot file window or by pressing the middle mouse button in the active graph.

d. Use the waveform manipulation (e.g. pan/zoom) and measurement capabilities within CosmosScope to analyze the data.

Once you view the waveforms within CosmosScope, you can analyze the data to determine whether the design is operating according to the specification. The following section describes general guidelines for analyzing noise results.

10. Analyze the Noise Results.

The Noise analysis can provide you with the following information:

• Part contributing the greatest amount of noise to system

• noise contribution across frequency spectrum

• amount of noise generated at specified frequency of interest

After you analyze the noise results to determine whether the design meets the specifications, you can proceed with one of two options.

If it met specification, then you can:

• Analyze the design by using another small-signal analysis described in this chapter.

• Tune the design parameter by using statistical, parameter sweep, sensitivity, or stress analyses.

If the design did not meet your specifications, you can take corrective action by using either of these methods:

• Alter design/instance parameter(s).

If the design change does not require you to modify the connectivity, you can modify the design parameters using the Alter Design form available through the Edit > Alter... menu item.

132 Saber® User GuideD-2010.03-SP1

Page 147: Saber User Guide 2010.03

Chapter 10: Using Two-Port, Noise and Distortion AnalysesDistortion Analysis Overview

• Edit the schematic and re-netlist.

If the design change requires you to change in connectivity (e.g. different parts, different wiring connections, or any change to the topology), you must make the change in the schematic, re-netlist the design (Design > Netlist design_name), and then re-load the design in the simulator (Design > Simulate design_name).

Distortion Analysis Overview

Distortion is the effect of unwanted spectral components at the output that are not present at the input. In linear systems, each output has the same spectral components as the superposition of all independent sources. In non-linear systems, additional spectral components appear at the outputs due to non-linearities. These additional spectral components are usually unwanted and are, therefore, called distortion products.

Distortion analysis is a small signal analysis that computes the following distortion products at specified outputs as a fraction of the AC value: ■ Harmonic distortion determines the second (HD2) and third order (HD3)

harmonic distortions.■ Compression indicates by how much the operating point (CMP2) or the

frequency response (CMP3) change due to the non-linearities in the system, when a signal is applied to the circuit. These values are usually negative, hence, compression.

■ Desensitization (DSE3) determines by how much the frequency response changes due to the non-linearities in the system, when signals with two different fundamental frequencies (f1 and f2) are applied to the circuit. Desensitization specifically reports the impact of the signal at frequency f2 on the spectrum of f1.

■ Intermodulation determines the spectral components at the beat frequencies if signals with two different fundamental frequencies (f1 and f2) are applied to the circuit. IM2D is the spectral component at f1-f2, IM2S is at f1+f2, and IM3D is the component at 2f1-f2.

Saber® User Guide 133D-2010.03-SP1

Page 148: Saber User Guide 2010.03

Chapter 10: Using Two-Port, Noise and Distortion AnalysesChecking Distortion Specifications

Checking Distortion Specifications

Although Distortion analysis is a small-signal analysis, it explores the non-linearities that are present in the design. Therefore, the amplitude of the AC sources in the design must be selected to reflect the planned operating conditions of the system.

To investigate the distortion contributions of various parts within your design, you will execute the Distortion analysis, view the results within CosmosScope and then analyze the distortion products to determine the next step as described in the following steps:

1. Select the distortion analysis form.

Within the Saber Guide user interface, you can open the AC analysis form by selecting the Analyses > Frequency > Distortion... pulldown menu item.

2. Specify frequency range to analyze.

In order to execute any small signal analysis, you must define at least one frequency point by using the Start Frequency field which results in the simulator calculating the distortion products at a single data point. If you want to perform the analysis over a frequency range, you specify the range by using the Start Frequency and End Frequency fields. By default, the end frequency is equal to the start frequency. All frequency values must be positive real numbers.

3. Verify nodes at which to calculate distortion products.

Using the Output Signal List field, you can specify the nodes at which you want to examine the distortion factors. Although the syntax for the values is identical to Signal List used in AC and transient analysis, this field can only include system variables, such as currents through voltage sources and node voltages.

4. Set up automatic waveform plotting.

The Plot After Analysis menu field (Basic tab) allows you to specify post-analysis automatic plotting behavior.

You have the following choices:

• No causes no automatic plotting;

• Yes - Open Only opens the plot file after analysis;

• Yes - Append opens the plotfile and updates previously graphed waveforms, placing new plots in addition to the current waveforms;

134 Saber® User GuideD-2010.03-SP1

Page 149: Saber User Guide 2010.03

Chapter 10: Using Two-Port, Noise and Distortion AnalysesChecking Distortion Specifications

• Yes - Replace opens the plotfile and updates previously graphed waveforms, replacing the current waveforms.

5. Verify the values in the optional fields.

By default, distortion analysis calculates only harmonic distortion. If you want to compute intermodulation distortion, compression, or desensitization, you must specify additional fields in the distortion analysis form.

• Compute intermodulation distortion.

To inform the simulator to calculate this type of distortion, you must specify the values used to calculate the f2 waveform as described by the following equation:

where:

• Compute desensitization and compression.

To inform the simulator to calculate these types of distortion products, you click on the Yes button in the Compute Desensitization field. The simulator uses compression only if you also specify intermodulation.

• Verify distortion contribution.

You use the Distortion Contributor field to control your ability to view which devices within the design contribute to distortion. By default, the simulator saves the distortion generated by each part in the root of the

f2 = ARATIO*MAG*(sin(2Pf1t*FRATIO+PHI)

MAG specifies the AC amplitude as defined on the part.

PHI specifies the phase offset as defined on the part.

Amplitude Ratio

(ARATIO)

specifies the amplitude ratio of the input signals of f1 and f2 as defined in the Amplitude Ratio field.

Frequency Ratio

(FRATIO)

specifies the frequency ratio between f1 and f2 as defined in the Frequency Ratio field.

Saber® User Guide 135D-2010.03-SP1

Page 150: Saber User Guide 2010.03

Chapter 10: Using Two-Port, Noise and Distortion AnalysesChecking Distortion Specifications

design in distortion analysis calculations. This field uses the same syntax as the Signal List field. The following table shows some examples of how to specify distortion contributors (default value is / /*.*):

• Verify the sample point density.

Because small signal analyses linearize the models around the operating point, you should set the Sample Point Density in this analysis to a value larger than or equal to the value used when calculating the operating point.

6. Verify the input and output file names.

Although optional, you should verify the contents of the fields in the Input/Output tab. This step helps prevent accidentally overwriting previously created plot and data files when you execute the analysis repeatedly.

7. Execute the distortion analysis form.

By default, the simulator calculates the distortion factors by using the Volterra series approach on the first three terms of a Taylor series expansion of any non-linearity around the operating point. Distortion is calculated over the range defined by the Starting Frequency and Ending Frequency fields. The distortion product results are stored on a logarithmic scale in the data and plot file named ds. All default values can be modified within the distortion analysis form.

Example Syntax Include Distortion Contribution of:

/ /*.* root of the design and all parts in root of the design

/.../*.* all parts in the design

/.../*.*/* all nonlinearities in all parts of the design

/opamp.* all opamps referenced in the root of the design

q.1/* -OR-*(q.1)

all nonlinearities in the q.1 instance

136 Saber® User GuideD-2010.03-SP1

Page 151: Saber User Guide 2010.03

Chapter 10: Using Two-Port, Noise and Distortion AnalysesViewing the Distortion Analysis Results

Viewing the Distortion Analysis Results

After the simulator completes the distortion analysis run, you can view the results in CosmosScope. You can view the distortion products shown in the following table:

The following procedure outlines the process of viewing and manipulating waveform data within CosmosScope.

If you specified the Open Only automatic plotting option in the Plot After Analysis field before the analysis, you can skip step 1. If you specified the Append or Replace options, for previously graphed waveforms you can skip steps 2 and 3 as well.

1. Add the plot file created by the analysis run to the Signal Manager (Results > View Plotfiles).

2. Select the signals you want to view in the plot file window created in the last step.

Distortion Type Signal Name

Define spectral components at:

Notes

Harmonic Distortion HD2 2*f1

HD3 3*f1

Intermodulation Distortion

IM2S f1 + f2 f2 is derived form f1 based on user-defined amplitude and phase ratiosIM2D f1 - f2

IM3D 2*f1 -f2

Compression CMP2 f1-f1 Ratio of Operating Point to average DC level

CMP3 2*f1-f1 Ratio of output signal change due to non-linearities

Desensitization DSE3 f1 + f2 - f2

Saber® User Guide 137D-2010.03-SP1

Page 152: Saber User Guide 2010.03

Chapter 10: Using Two-Port, Noise and Distortion AnalysesAnalyzing the Distortion Results

3. Display the selected signals in the graph either by pressing the Plot button in the plot file window or by pressing the middle mouse button in the active graph.

Once you view the waveforms within CosmosScope, you can analyze the data to determine whether the design is operating according to the specification. The following step describes general guidelines for analyzing noise results.

Analyzing the Distortion Results

After you analyze the distortion products to determine whether the design meets the specifications, you can proceed with one of two options.

If it met specification, then continue the design analysis process by doing one of the following:■ Analyze the design by using another small-signal analysis described in this

chapter■ Tune the design parameter by using statistical, parameter sweep, sensitivity,

or stress analysis.

If the design did not meet your specifications, you can take corrective action by using one of the following methods:■ Alter design/instance parameter(s)

If the design change does not require you to modify the connectivity, you can modify the design parameters by using the Alter Design form available through the Edit > Alter... menu item.

■ Edit the schematic and re-netlist.

If the design change requires you to change in connectivity (e.g. different parts, different wiring connections, or any change to the topology), you must make the change in the schematic, re-netlist the design (Design > Netlist design_name), and then re-load the design in the simulator (Design > Simulate design_name).

138 Saber® User GuideD-2010.03-SP1

Page 153: Saber User Guide 2010.03

11

11Determining Parameter Sensitivity

Describes how to vary the parameter values in your design.

After you have verified the functionality of your design using the transient and small signal analyses, you examine how varying the ideal parameter values affect the performance of the design. The simulator provides two methods to examine this important design question:■ Performing a Parameter Sweep: Sweeps the specified part parameter(s)

through an user-defined range of values and executes the specified simulator analysis at each parameter value. You can view the results of this analysis in CosmosScope. The resulting waveform is actually a set waveforms, one for each swept parameter value. This analysis is a standard feature of the simulator.

■ Determining Component Sensitivity: Determines the percentage change in a performance measurement based on user-defined change in a part parameter during an analysis run. The results of this analysis can be viewed in a Sensitivity Report. This analysis requires the optional InSpecs Parametric Analysis license.

Performing a Parameter Sweep

To perform a parameter sweep:

1. Display the Looping form.

Within the Saber Guide user interface, you can open the Looping Commands form by selecting the Analyses > Parametric > Vary... pulldown menu item.

Saber® User Guide 139D-2010.03-SP1

Page 154: Saber User Guide 2010.03

Chapter 11: Determining Parameter SensitivityPerforming a Parameter Sweep

After the Looping Commands form is displayed, you can specify the parameters to sweep and the sweep values either by clicking on the vary button or by selecting edit from the arrow button next to the Vary command. This opens the Parameter Sweep form.

2. Specify the parameters to sweep.

You specify the name of the swept parameter in the Parameter Name field. The name must include both the parameter and the instance name.

For example, to vary the resistance value of an instance named r.rload, you would specify rnom(r.rload) in this field. By default, the simulator uses the first argument in the template as the parameter to sweep. Because rnom is the first argument of the resistor template (r), you could have specified r.rload in the Parameter Name field to yield the same result.

Using the arrow button in the Variation Type field, you can select one of the following methods to sweep the parameter defined in the Parameter Name field:

• Step By sweeps the defined range by using a specified increment.

• Linear Steps sweeps the defined range by a specified number of equally spaced steps.

• Log Steps sweeps the defined range by a specified number of logarithmic steps.

• Set Values sweeps the parameter by using values specified in a space separated list. (e.g. 3 5 7 10 15 20)

After you entered the fields in the Parameter Sweep dialog box, you can add this vary command to the main loop by clicking on the Accept button. This action adds the command line syntax of the Vary command to the field at the right of the vary button.

3. Optionally, add additional Vary and Monte Carlo loops.

Using the AddLoop menu item in the Looping Commands dialog box, you can add multiple Vary and Monte Carlo loops. “Nesting” these commands has the effect of sweeping several parameters in a controlled manner. The only restriction is that you cannot nest a Monte Carlo loop within another Monte Carlo loop.

4. Add analyses inside the loop.

After you define the nesting structure of the parameter sweep by using the Vary and Monte Carlo looping commands, you can add the analyses to execute within the loop.

140 Saber® User GuideD-2010.03-SP1

Page 155: Saber User Guide 2010.03

Chapter 11: Determining Parameter SensitivityPerforming a Parameter Sweep

You can add any analysis listed in the AddAnalysis > Within Loop(s) pulldown menu to the inner loop. Once you select an analysis from the pulldown menu, Saber Guide adds a button, denoted by the command name, to the inner loop. You can specify the arguments of the analysis either by clicking on the analysis button or by selecting the Edit item from the arrow pulldown menu.

Because sweeping parameters usually affects the operating point of the design, the first analysis inside the loop is typically a DC analysis. Placing this analysis first allows the remaining analyses to use an accurate operating point, given the current values of the swept parameters.

5. Add post-processing functions outside of the loop.

The final addition that you make to the Looping Commands dialog box is to add any post-processing functions. The simulator executes these functions after it completes the final looping command. Post-processing functions are listed under the AddAnalysis > After Loop(s) pulldown menu. The process of adding and editing post-processing functions after the loop is identical to the process of adding analyses within the loop.

6. Verify the structure of the loop.

Before you execute the Looping Commands dialog box, you should verify that both the ordering of the Vary and Monte Carlo loops and the analyses defined within the loop are as expected.

Using the arrow button of the corresponding loop or analysis, you can manipulate the ordering of commands within this form by using any of the following functions:

• Edit displays the corresponding form for editing.

• Delete removes the command from the loop.

• Move Up moves the command up one level in the loop or analysis section.

• Move Down moves the command down one level in the loop or analysis section.

After you verify the structure of the Loop Commands dialog box, you can execute the Parameter Sweep.

7. Execute the Parameter Sweep.

You can execute the form by pressing either of the following buttons:

• Apply executes the commands but leaves the form up.

Saber® User Guide 141D-2010.03-SP1

Page 156: Saber User Guide 2010.03

Chapter 11: Determining Parameter SensitivityPerforming a Parameter Sweep

• OK executes the commands and closes the form.

The innermost loop command is executed first, with the parameters of the outer loops set to their first value. Once the innermost loop terminates, the parameter of the second loop command from the inside is given the next value and the innermost loop command is re-executed in its entirety. This process is repeated until the value list of the second loop command is exhausted. Then the parameter of the next loop receives its next value, and the inner loops are repeated, as just described.

The whole process repeats until the values of the outermost loop are exhausted, at which time the execution ends. As a result, the commands within the loop have been executed with all possible value combinations for the parameters of the loop commands.

The simulator creates a waveform segment for each combination of parameters defined in the Looping Commands form. Thus, when you view the signal in CosmosScope, it will have multiple waveform segments.

8. View the Sweep Results.

After the parameter sweep completes, you can view results within CosmosScope. The following procedure reviews the process of viewing and manipulating waveform data.

If you set up plot file viewing as a post-analysis step and specified the Open Only automatic plotting option, you can skip step a. If you specified the Append or Replace options, for previously graphed waveforms you can skip steps b and c as well.

a. Add the plot file created by the analysis run to the Signal Manager in CosmosScope (Results > View Plotfiles in Scope).

b. Select the signal(s) you want to view in the plot file window created in the last step.

c. Display the selected signals in the graph, either by pressing the Plot button in the plot file window or by pressing the middle mouse button in the active graph.

d. Use the waveform manipulation (e.g., pan/zoom) and measurement capabilities within CosmosScope to analyze the data.

e. Use the Graph > Members menu item to manipulate the various members associated with the signal.

Once you view the waveforms within CosmosScope, you can analyze the data to determine whether the design is operating according to the specification.

142 Saber® User GuideD-2010.03-SP1

Page 157: Saber User Guide 2010.03

Chapter 11: Determining Parameter SensitivityPerforming a Parameter Sweep

This section covers the following topics:■ Sweeping Parameters Example – Analyzing a Design over a Temperature

Range

Sweeping Parameters Example – Analyzing a Design over a Temperature Range In order to simulate a design over a temperature range:

1. Set up the schematic for sweeping temperature as a parameter.

• Place a SaberInclude symbol on the schematic.

This symbol allows you to globally set, and vary, temperature on the design.

• Define the temperature coefficients of the circuit elements.

For resistors and capacitors, give a value to the tc symbol property.

Some capacitors have a nonlinear temperature dependence. For example, capacitors with an NP0 dielectric can have a temperature dependence of either plus or minus 30 ppm/degrees Celsius. This might require you to run several vary analyses, each one with the capacitor at a different tc.

Capacitors with an X7R dielectric have a nonlinear temperature dependence that can be approximated by a quadratic equation. The template cap has the capability to model temperature dependence quadratically.

Elements which do not have discrete temperature coefficients, such as inductors, can have the temperature expression added to the element value.

For inductors, the temperature dependence is often specified for the magnetic core material. For example, the template splp has two temperature coefficients, one linearly dependent, one nonlinearly dependent. The template corenl has an argument, matl, that specifies a core material with temperature dependence built into the model.

Some parts, such as transistors, have intrinsic temperature dependent behavior embedded in their model equations.

Saber® User Guide 143D-2010.03-SP1

Page 158: Saber User Guide 2010.03

Chapter 11: Determining Parameter SensitivityDetermining Component Sensitivity

• If you want these changes to be a permanent part of your design, run the netlister. If you intend these changes to be in effect only for this analysis, no further action is required.

2. Set up the Vary analysis.

• On the Parameter Sweep form, use the scroll down button next to the Parameter Name field, and choose the Browse Design... menu choice.

• On the Set Parameter List form, double click on the + next to Global Parameters in the Design Instance/Node List field.

• Under Global Parameters, double click on temp.

This places temp in the Parameter Name field of the Parameter Sweep form.

• Set the Sweep Type field to the temperature range you want your design to be simulated over.

• Click Accept.

• Set up the rest of the Looping Commands form by adding the analyses and post-processing operations you want to be a part of the temperature parameter sweep.

• Click OK to run the Vary analysis.

3. View the results.

After Vary has been run, each analysis within the loop will produce a multimember plot file. Use CosmosScope to view the waveforms.

These plot files might be quite large. You can limit the plot file to only the signals you are interested in by inserting the pfextract command into the Vary analysis and setting it up to manipulate your plot file.

To do this you need to go back to the Looping Commands form and select AddAnalysis > After Loop(s) > Transform Plotfile. Fill out the Transform Plot File form and rerun the Vary analysis.

Determining Component Sensitivity

You can determine how sensitive a specified performance measure is to variations in component values or other system parameters in the design by using Sensitivity Analysis.

144 Saber® User GuideD-2010.03-SP1

Page 159: Saber User Guide 2010.03

Chapter 11: Determining Parameter SensitivityDetermining Component Sensitivity

Sensitivity Analysis is used to asses the impact of changes on a major operating characteristic of a circuit, and to determine which components have the greatest effect on overall design performance. This automatic analysis changes parameters one at a time, measures resulting changes in operation, and provides a ranked ordering of parts and their effects on design features.

You can use the information generated by a Sensitivity analysis to: ■ Identify the parts in the design that have the greatest impact on the

performance of the circuit using a performance measure.

A performance measure is a single numeric characteristic of a circuit such as a node voltage, frequency, or rise time of a waveform. The simulator determines the performance measure value by using a measure operation on a waveform resulting from an analysis, such as transient or AC. Some examples of performance measures are frequency, duty cycle, and rise time. For example, the frequency measure can be used to extract the frequency of a periodic waveform that results from a transient analysis.

■ Select appropriate component tolerance values for the design.

Note: This analysis requires a InSpecs Parametric license.

This section covers the following topics:■ Performing Nominal Simulations■ Performing Sensitivity Analysis■ Generating the Sensitivity Report■ Evaluating the Sensitivity Report

Performing Nominal SimulationsIn order to verify that you are supplying the expected information to sensitivity analysis, you may want to perform the analysis that you will use in the sensitivity analysis to verify that waveform and performance measure are within the expected range.

Although you will not use this specific nominal simulation as part of the sensitivity analysis, running it now may help avoid problems later.

After you verify the functionality of the design by running some nominal simulation, you can perform sensitivity analysis.

Saber® User Guide 145D-2010.03-SP1

Page 160: Saber User Guide 2010.03

Chapter 11: Determining Parameter SensitivityDetermining Component Sensitivity

Performing Sensitivity AnalysisTo perform a sensitivity analysis, follow these steps:

1. Display the Sensitivity Form.

Within the Saber Guide user interface, you can open the Sensitivity analysis form either by selecting the Analyses > Parametric > Sensitivity... pulldown menu item or by clicking on the Sensitivity icon in the icon bar.

2. Specify sensitivity parameters.

After the Sensitivity Analysis form is displayed, you can specify the sensitivity controls. In the next step, you will add analyses and performance measures to the scroll-able listbox at the bottom of the form.

• Specify the parameters to Vary command

Enter the list of circuit parameters that are to be varied (perturbed) for the sensitivity calculation to the Parameter List field. This field uses the same syntax as the Signal List field uses in transient analysis. The following table provides examples of the Parameter List syntax to define additional signals. You can include a space-separated list of multiple Parameter List definitions within the same Parameter List field.

Parameter List Examples

Definition

./ Include all signals in the current instance.

/.../ Include all signals within or below the top-level design (root of the design).

/.../pll.* Include all signals in all instances of any “pll” component.

.../ Include all signals in instances below the current instance.

pll.u12/ Include all signals in the pll.u12 instance.

sig1 sig2 Include each signal listed, separated by spaces

Browse Design See Specifying Signals for Analysis for more information.

146 Saber® User GuideD-2010.03-SP1

Page 161: Saber User Guide 2010.03

Chapter 11: Determining Parameter SensitivityDetermining Component Sensitivity

For example, to evaluate the design sensitivity of the resistance value of an instance named r.rload, you would specify rnom(r.rload) in this field. By default, the simulator uses the first argument in the template as the parameter to vary. Because rnom is the first argument of the resistor template (r), you could have specified r.rload in the Parameter Name field to yield the same result as rnom(r.rload).

In addition to a nominal analysis, an additional analysis will be run for each parameter listed in this field. Therefore, you may want to limit the number of parameters specified in this field to minimize the simulation time required.

• Verify the percentage to increase the parameter

You specify the percentage to increase the parameter in the Perturbation field. During sensitivity analysis, each parameter in the Parameter List field will be increased by the percentage defined in this field. For example entering 0.01 in this field would vary the parameter by 1%. Sensitivity analysis compares the performance measure (defined in the next step) at the perturbed and nominal value to determine the sensitivity of the parameter.

• Specify how to generate the Sensitivity Report

The simulator saves the results of a sensitivity analysis to the file named in the Intermediate File field. To generate a Sensitivity Report, you can either use the Results > Sensitivity Report menu item after the sensitivity analysis completes or select Yes in the Report after Analysis field. In either case, the simulator reads the data in the file in the Intermediate File field to generate the Sensitivity Report.

After you specify the sensitivity controls in the upper half of the Sensitivity Analysis dialog box, you can define the analyses to run during sensitivity analysis and the measures to perform in the scrollable listbox in the bottom half of the form, as described in the next step.

3. Specify the analyses and performance measures.

You can use the AddAnalysis menu item, in the bottom half of the form, to add analyses and performance measures to the Sensitivity Analysis form. Selecting a command from this pulldown menu adds a button (denoted by the command name) to the listbox in the bottom of the form. You can specify the arguments of the command either by clicking on the specified command button or by selecting the Edit item from the arrow button next to the specified command.

Saber® User Guide 147D-2010.03-SP1

Page 162: Saber User Guide 2010.03

Chapter 11: Determining Parameter SensitivityDetermining Component Sensitivity

The commands displayed in this list will be executed, in order, N+1 times where N is the number of parameters listed in the Parameter List field. Because the simulator executes the commands in the order defined in the list, you should verify that the simulator generates the necessary information prior to executing a command.

For example, because this analysis changes the parameter values, you should define a DC Analysis as the first analysis to run. You should also specify the measurement of a signal after the corresponding analysis (e.g. define the period measurement after the transient analysis).

After you define the necessary fields in the dialog box, you can execute the sensitivity analysis.

4. Execute the sensitivity analysis by pressing the Apply button.

After the simulator completes the sensitivity analysis, you can generate the Sensitivity Report as described in the following section.

Generating the Sensitivity ReportYou can generate a sensitivity report as part of the sensitivity analysis as described in the previous section, or you can invoke the Sensitivity Report form and generate a report directly from that form. If you already generated the Sensitivity Report, you can skip to the next section.

You can display the Sensitivity Report form by selecting the Results > Sensitivity Report menu item from the Saber Guide user interface. After you display the form, you can verify the fields in the following tabs to define the information to place in the Sensitivity Report:■ In the fields in the Basic tab, you can control calculations displayed in the

Sensitivity Report■ In the fields in the Columns to Include tab, you can specify the types of

information that you want the simulator to specify in the Sensitivity Report

Part Type and Part Class are controlled by template symbol properties:

• part_type is used to identify parts by type (for example, bjt, diode, mosfet).

• part_class is used to identify parts by classification (for example, diodes could have two classifications, hi-pwr and lo-pwr).

148 Saber® User GuideD-2010.03-SP1

Page 163: Saber User Guide 2010.03

Chapter 11: Determining Parameter SensitivityDetermining Component Sensitivity

Changing these properties is not required. These properties are strings that specify the inclusion of a device in a report based on the device type or class (sometimes called report filtering).

■ In the fields in the Output Control tab, you can specify the layout of the Sensitivity Report.

After you verify the fields in the Sensitivity Report form, you can click on the OK button to execute and close the form.

Evaluating the Sensitivity ReportIn the Sensitivity Report, you can examine either the Sensitivity or Bar-chart columns to determine the sensitivity of the specified parameters to a defined performance measure.

You can use the information in this report to determine the tolerance values of the parts in your design based on the conditions presented by the analyses executed within the lower portion of the Sensitivity form.

Saber® User Guide 149D-2010.03-SP1

Page 164: Saber User Guide 2010.03

Chapter 11: Determining Parameter SensitivityDetermining Component Sensitivity

150 Saber® User GuideD-2010.03-SP1

Page 165: Saber User Guide 2010.03

12

12Tuning Design Parameters with StatisticalAnalysis

Discusses how to tune design parameters using statistical analysis.

After you have verified the functionality of your design using the transient and small signal analyses, you can examine how varying parameter values with Monte Carlo analysis can affect the performance of the design.

To tune design parameters by using statistical analysis, you use the following process:■ Specify the parameter tolerance ranges■ Execute the Monte Carlo analysis■ View the Monte Carlo results

Note: In order to use this analysis, you must obtain an InSpecs Statistical Analysis option license.

Monte Carlo analysis randomly varies the parameters, within user-defined tolerance ranges, and executes the specified Saber analysis at each parameter value.

This technique allows you to simulate the manufacturing environment. By specifying the tolerance ranges on the parts in the design, Saber can randomly vary specified parts allowing you to evaluate the variance of part values, in the production environment, affect the performance of the design.

This section covers the following topics:■ Specifying the Parameter Tolerance Ranges■ Executing the Monte Carlo Analysis

Saber® User Guide 151D-2010.03-SP1

Page 166: Saber User Guide 2010.03

Chapter 12: Tuning Design Parameters with Statistical AnalysisSpecifying the Parameter Tolerance Ranges

■ Viewing the Monte Carlo Results■ Determining the Next Step after a Monte Carlo Analysis

Specifying the Parameter Tolerance Ranges

Before you can perform the Monte Carlo analysis, you must specify the tolerance ranges for the part parameters that you want to randomly vary. Saber provides the following types of distributions to specify tolerance ranges:■ uniform distribution specifies an equal probability of occurrence across the

interval. ■ normal (gaussian) distribution specifies a bell-shaped curve. This is the

most used distribution because it describes most physical events in nature.■ piecewise linear specifies a custom distribution curve.

For more information on the preceding methods of specifying tolerance ranges and modifications that you can make to the default curves, refer to Book 2 of the Guide to Writing MAST Templates manual.

You can specify the nominal value and tolerance ranges on a resistor, capacitor, or inductor template, using one of the following techniques: ■ Specify the type of statistical distribution (such as normal) about a nominal

value using the resistance, capacitance, or inductance argument of the template. For example, if you specify a distribution using the nominal argument (rnom) of the resistor template, r:

You would then specify rnom(r.1) in the Parameter List field described in the Step 2 of the next section.

■ Specify a value for the nominal argument and for the tolerance of the external variable provided in the resistor, capacitor, or inductor template (r_tol, c_tol, l_tol, respectively). For example, the parameter r is the internal

r.1 = rnom = normal(1k, 0.1)

152 Saber® User GuideD-2010.03-SP1

Page 167: Saber User Guide 2010.03

Chapter 12: Tuning Design Parameters with Statistical AnalysisExecuting the Monte Carlo Analysis

parameter used by the resistor template that holds the final calculated value of resistance. In the following netlist example, the r.1 instance is a 1K ohm resistor with 10% tolerance.

Thus, to observe the variation of multiple Monte Carlo runs on a given resistor, you would specify r in a parameter list for the analysis, not rnom. The same holds true for internal parameters cap in the capacitor template and lcalc in the inductor template.

After you specify the tolerance ranges for the parts that you want to vary, you can proceed to execute the Monte Carlo analysis, as described in the next topic.

Executing the Monte Carlo Analysis

To perform a Monte Carlo analysis, follow these steps:

1. Display the Looping form.

Within the Saber Guide user interface, you can open the Looping Commands form by selecting the Analyses > Statistical > Monte Carlo... pulldown menu item.

2. Specify the Monte Carlo parameters.

After the Looping Commands form is displayed, you can specify the parameters to sweep and the sweep values by either clicking on the mc button or selecting edit from the arrow button next to the mc command. This opens the Monte Carlo Analysis form. The following list provides information on the fields within this form:

• Specify number of runs

Specify the number of times to execute the commands in the loop body in the Runs field.

• Specify the seed of the random number generator

When Saber is started, it initializes a seed based upon the state of the CPU clock.

r.1 = rnom=1k, r_tol=0.1

Saber® User Guide 153D-2010.03-SP1

Page 168: Saber User Guide 2010.03

Chapter 12: Tuning Design Parameters with Statistical AnalysisExecuting the Monte Carlo Analysis

The following values define the seed used during Monte Carlo analysis:

You can replicate the Monte Carlo results if you specify either Constant or Specified as the seed value.

• Optionally, specify the plot file containing the parameter values.

You can use the following fields to store specified part parameter values during the Monte Carlo analysis run (if you do not specify values for both fields, then Saber does not create the plot file):

Field Definition

Current Specifies, without modification, the seed initialized when Saber is started.

This value stays the same for a given invocation of Saber, but is different at every invocation.

Constant Specifies a value that is hard-coded in Saber.

This value stays the same from invocation to invocation.

Random Specifies a value derived from the current state of the CPU clock.

This value is re-calculated each time the seed is used. If you change the seed from random to current, the last seed calculated by random will be used.

Specified Specifies the seed value as being derived from the two values (0 or a positive integer) entered in the Seed field. If you enter two integers you must separate them with a space.

Field Definition

Parameter File Defines the name of the plot file that contains the parameter values for each Monte Carlo run. The Parameter File is used when generating a graph of measured results versus parameter value.

154 Saber® User GuideD-2010.03-SP1

Page 169: Saber User Guide 2010.03

Chapter 12: Tuning Design Parameters with Statistical AnalysisExecuting the Monte Carlo Analysis

After you entered the fields in the Parameter Sweep dialog box, you can add this mc command to the main loop by clicking on the Accept button. This action adds the command line syntax of the Monte Carlo command to the field at the right of the mc button.

3. Optionally, add additional Vary and Monte Carlo loops.

Using the AddLoop menu item in the Looping Commands dialog box, you can add multiple Vary and Monte Carlo loops. “Nesting” these commands has the effect of sweeping several parameters in a controlled manner. The only restriction is you can not nest a Monte Carlo loop within another Monte Carlo loop.

4. Add analyses inside the loop.

After you define the nesting structure of the parameter sweep using the vary and Monte Carlo looping commands, you can add the analyses to execute within the loop. Saber executes these analyses for each combination of parameters defined by the Monte Carlo and Vary (if present) loops.

You can add any analysis listed in the AddAnalysis > Within Loop(s) pulldown menu to the inner loop. Once you select an analysis from the pulldown menu, Saber Guide adds a button, denoted by the command name, to the inner loop. You can specify the arguments of the analysis by either clicking on the analysis button or selecting the Edit item from the arrow pulldown menu. Refer to the corresponding sections within this manual for information of the forms for these analyses.

Because sweeping parameters usually affects the operating point of the design, the first analysis inside the loop is typically a DC analysis. Placing this analysis first allows the remaining analyses to use an accurate operating point, given the current values of the swept parameters.

5. Add post-processing functions outside of the loop.

Parameter List Defines the part parameters to store in the Plot File. If you only specify the instance name, Saber stores all part parameters in the Plot File.

For example, if you specified r.load in this field, all the parameters of the resistor would be stored in the Plot File. If you specified rnom(r.load) in this field, then rnom parameter values at each Monte Carlo run are stored in Plot File.

Field Definition

Saber® User Guide 155D-2010.03-SP1

Page 170: Saber User Guide 2010.03

Chapter 12: Tuning Design Parameters with Statistical AnalysisExecuting the Monte Carlo Analysis

The final addition that you make to the Looping Commands dialog box is to add any post-processing functions. Saber executes these functions after it completes the final looping command. You can add any function listed in the AddAnalysis > After Loop(s) pulldown menu. The process of adding and editing post-processing functions after the loop is identical to the process of adding analyses within the loop.

6. Verify the structure of the loop.

Before you execute the Looping Commands dialog box, you should verify that both the ordering of the vary and Monte Carlo loops and the analyses defined within the loop are as expected. Using the arrow button of the corresponding loop or analysis, you can manipulate the ordering of commands within this form using any of the following functions:

• Edit displays the corresponding form for editing.

• Delete removes the command from the loop.

• Move Up moves the command up one level in the loop or analysis section.

• Move Down moves the command down one level in the loop or analysis section.

After you verify the structure of the Loop Commands dialog box, you can execute the Monte Carlo analysis.

7. Execute the Monte Carlo analysis.

You can execute the form by pressing either of the following buttons:

• Apply executes the commands but leaves the form up.

• OK executes the commands and closes the form.

The innermost loop command is executed first, with the parameters of the outer loops set to their first value. Once the innermost loop terminates, the parameter of the second loop command from the inside is given the next value and the innermost loop command is re-executed in its entirety.

This process is repeated until the value list of the second loop command is exhausted. Then the parameter of the next loop receives its next value, and the inner loops are repeated, as just described. The whole process repeats until the values of the outermost loop are exhausted, at which time the execution ends. As a results, the commands within the loop have been executed with all possible value combinations for the parameters of the loop commands.

156 Saber® User GuideD-2010.03-SP1

Page 171: Saber User Guide 2010.03

Chapter 12: Tuning Design Parameters with Statistical AnalysisViewing the Monte Carlo Results

Saber creates a waveform segment for each combination of parameters defined in the Looping Commands form. Thus, when you view the signal in CosmosScope, it will have multiple waveform segments.

Viewing the Monte Carlo Results

The following procedure reviews the process of viewing and manipulating waveform data generated by Monte Carlo runs.

If you set up plot file viewing as a post-analysis step and specified the Open Only automatic plotting option, you can skip step 1. If you specified the Append or Replace options, for previously graphed waveforms you can skip steps 2 and 3 as well.

1. Add the plot file created by the analysis run to the Signal Manager in CosmosScope (Results > View Plotfiles in Scope).

2. Select the signal(s) you want to view in the plot file window created in the last step.

3. Display the selected signals in the graph, either by pressing the Plot button in the plot file window or by pressing the middle mouse button in the active graph.

The signals will have multiple members (one for each specified run). The Signal Manager places a number in brackets next to the plot file name to indicate the number of members.

4. Use the waveform manipulation (e.g. pan/zoom) and measurement capabilities within CosmosScope to analyze the data

5. Use the Graph > Members menu item to manipulate the various members associated with the signal.

6. For detailed information on measuring and manipulating multi-member waveform produced by Monte Carlo Analysis, refer to the Measurement tool.

To generate a graph of measured results versus a parameter value:

1. Display the Calculator (Tools>Calculator) in CosmosScope.

2. Display the Output Plot File that you specified in the post-processing Batch Measure form.

3. From the Output Plot File, select the signal of discrete, measured values you want on the y-axis of your graph.

Saber® User Guide 157D-2010.03-SP1

Page 172: Saber User Guide 2010.03

Chapter 12: Tuning Design Parameters with Statistical AnalysisDetermining the Next Step after a Monte Carlo Analysis

4. With the signal selected, move the mouse cursor to the X-register of the Calculator and press the middle mouse button. This signal is now loaded into the Calculator.

5. Display the Parameter File plot file.

6. Select the parameter you want on the x-axis of your graph.

7. Place the selected signal into the X-register of the Calculator.

8. Select the Wave>f(x) menu item from the Calculator.

9. Click on the Graph X button on the Calculator to display your graph.

Determining the Next Step after a Monte Carlo Analysis

After it has completed, you can view the results in CosmosScope and use the pre-defined measurements to determine statistical information about the simulated manufacturing run created using Monte Carlo analysis.

Alternatively, you can use Saber commands to create histograms and plots showing statistical information about the Monte Carlo analysis run. Although you can get similar information by using the Measurement Tool within CosmosScope, these commands allow you to create separate plot files containing the statistical information directly from the analysis plot file.

Using the Histogram form (Analyses > Statistical > Histogram), you can inform Saber to create a new plot file containing a histogram for the specified signals (curve name) in a plot file (usually generated by a Monte Carlo analysis).

Using the Plot File Statistics form (Analyses > Statistical > Statistical Summary), you can inform Saber to create a new plot file containing the following statistical information for the specified signals (curve names) in a plot file (usually generated by a Monte Carlo analysis):■ Mean informs Saber to create the mean (average) waveform for each

specified signal to the plot file.■ Standard Deviation informs Saber to create a waveform defining how much

the values of the specified signal(s) vary.■ Median informs Saber to create the middle (50%) waveform for each

specified signal.

158 Saber® User GuideD-2010.03-SP1

Page 173: Saber User Guide 2010.03

Chapter 12: Tuning Design Parameters with Statistical AnalysisDetermining the Next Step after a Monte Carlo Analysis

■ Envelopes informs Saber to create the maximum and minimum value waveforms for each specified signal.

■ Percentile informs Saber to create a waveform for the signals percentile values (defined in the spaced separated list). For example, “0 50 100” would create a minimum, median and maximum waveform for each specified signal.

During your evaluation of the Monte Carlo results, if you require more data points you can continue the Monte Carlo analysis by selecting the Analysis > Continue > Monte Carlo... pulldown menu item. This action displays the Continue Monte Carlo Analysis dialog box. Within this dialog box, you can specify the number of additional runs and change the seed value, if necessary. Clicking on the Apply button executes the additional Monte Carlo runs.

Saber® User Guide 159D-2010.03-SP1

Page 174: Saber User Guide 2010.03

Chapter 12: Tuning Design Parameters with Statistical AnalysisDetermining the Next Step after a Monte Carlo Analysis

160 Saber® User GuideD-2010.03-SP1

Page 175: Saber User Guide 2010.03

13

13Determining Component Stress Levels

Describes how to determine the stress levels of parts of your design.

After you verify the functionality of your design, you can use stress analysis to determine the stress levels of parts in a design. With stress analysis you are able to produce a report listing stress ratios for parameters of all parts in the design. This report will show when a part is being used outside of its intended region of operation.

Note: In order to use this analysis, you must obtain an InSpecs Stress Analysis option license.

This section covers the following topics:■ Collecting Part Data■ Specifying Stress Ratings on Components■ Specifying Derating Values■ Performing a Nominal Simulation■ Performing the Stress Analysis■ Viewing the Stress Report■ Analyzing the Stress Report

Collecting Part Data

Saber uses stress measures to determine the stress level of parts in the design. A stress measure is an operating condition for which a rating (operating limit) can be specified, for example, power dissipation of a resistor or the junction temperature of a bipolar transistor).

Saber® User Guide 161D-2010.03-SP1

Page 176: Saber User Guide 2010.03

Chapter 13: Determining Component Stress LevelsSpecifying Stress Ratings on Components

Stress measures are typically defined with parameters on the individual parts. You will need to supply parts ratings and thermal resistance data for the following types of parts in your design:■ Passive components such as resistors, capacitors, and inductors■ Any generic part that doesn’t have a manufacturer’s part number associated

with it■ Any component in the Component Library for which stress ratings have

been implemented but for which values have not been provided

The values of the stress measures should not be derated. Later in the process, you will determine whether you need a Derating File containing the derating factors and create one, if necessary.

In the next step, you will add the part data to the stress measure properties on the necessary parts in the design.

Specifying Stress Ratings on Components

After you collect the necessary stress data for the parts without pre-defined stress measures, you can use one or more of the following methods to specify stress ratings on the parts in your design:■ Specify ratings globally by using the Saber Include symbol.

You can place a Saber Include File symbol at the top level of a design and set the property values on this symbol to specify a global value for all parts at that level or below this level in the schematic.

If individual parts in your design require stress ratings that differ from the global setting, you can override the global setting either by specifying the ratings on the individual parts or by altering the ratings using the Edit > Alter... menu item.

You can prevent stress ratios from being calculated on the entire design by setting the global variable include_stress to 0.

■ Specify ratings on individual parts.

Parts from the Component Library already contain the appropriate stress rating properties.

162 Saber® User GuideD-2010.03-SP1

Page 177: Saber User Guide 2010.03

Chapter 13: Determining Component Stress LevelsSpecifying Derating Values

If you are using a part from the Template Libraries:

1. Identify which ratings you want to specify by using the Stress Arguments section of the template description, and determine what values you would like each of these ratings to have.

2. Using the Property Editor, display the structured arguments of the ratings symbol property and enter values for the ratings arguments you want to define.

If you want to add stress measures to a user-defined template, refer to Book 2 of the Guide to Writing MAST Templates.

You can prevent stress ratios from being calculated on a particular part by setting the include_stress symbol property to 0.

■ Override stress ratings within Saber.

You can specify or override a value for a rating by using an Edit > Alter... menu item within Saber Guide. This method allows you to change stress measures on a specific part or on the entire design. This command is valid only for the current simulation session and does not affect the values on the schematic. In addition to changing stress rating values, this method is also useful to enable/disable stress measures for specific parts in the design.

Because you can define stress rating values in multiple locations, Saber applies the following order of precedence to determine which value to use during stress analysis:

1. A value provided as a rating in a ratings property for a part (e.g., the pdmax_ja rating for a resistor)

2. A value provided to a symbol property to override a global value for that part (e.g., the r_pdmax property on a resistor)

3. A value provided globally to all parts in the design (e.g., the r_pdmax property on a Saber Include File symbol)

After you specify the necessary stress ratings, you can determine whether you need to create a Derating File as discussed in the following section.

Specifying Derating Values

Designers often reduce the ratings provided by the manufacturer for a part by some derating factor. This value allows for such factors as drift in a component value or a change in the ambient temperature that can cause the operating

Saber® User Guide 163D-2010.03-SP1

Page 178: Saber User Guide 2010.03

Chapter 13: Determining Component Stress LevelsSpecifying Derating Values

conditions for the part to move out of the Safe Operating Area (SOA) curve. The derating factor selected is often determined by the environment in which the design will be used (military, industrial, commercial). For more information on SOA curves, refer to page D-1.

A derating factor is typically a percentage that is multiplied by the rated value defined by the stress measure. For example, the maximum power dissipation of a resistor could be derated by 50% by using a derating factor of 0.5. The following figure shows the resulting derated curve for the resistor.

Each stress measure rating for a part can also be derated independently.

For example, the following figure shows a derating curve for a transistor in which Icmax and pdmax have been derated by using a derating factor of 0.35 and in which sb and Vcemax have not been derated.

For a stress analysis, you can specify derating factors for parts and groups of parts in a text file called a derating file. The derating file provides the derating factors to be applied to the ratings defining the SOA curve for the part. You specify the name of the derating file when you run a stress analysis.

0Tc

50% derating curve

Power

PDmax

50%PDmax

Tjmax AmbientTemperature

log(Vce)

sb[x1,y1,x2,y2]x1,y1

x2,y2derating curve

2

0.1

log(Ic) Icmax

Icmax = 10

pdmax

Vcemax

Vcemax

164 Saber® User GuideD-2010.03-SP1

Page 179: Saber User Guide 2010.03

Chapter 13: Determining Component Stress LevelsPerforming a Nominal Simulation

Performing a Nominal Simulation

During Stress analysis, Saber calculates the stress ratios for each stress measure over the conditions of a nominal simulation. You must create one of the following types of files, by running the corresponding analysis, to serve as input to the Stress analysis:■ Initial Point File usually from a DC Analysis■ Data File from a DC Transfer Analysis■ Data File from a Transient Analysis

After you complete the nominal simulation run, you can run the stress analysis as described in the following section.

Performing the Stress Analysis

After you specify the necessary stress ratings on the parts in the design, optionally create a derating file, and perform a nominal simulation, you are ready to perform Stress Analysis. This analysis uses both the data from a previous analysis run and the part stress ratings to determine the stress ratios for each specified part in the design. To perform a stress analysis, follow these steps:

1. Open the Stress Analysis Form.

Within the Saber Guide user interface, you can open the Stress form by selecting the Analyses > Stress pulldown menu item.

2. Specify the nominal simulation to use.

Using the arrow button in the Use Input From field, you can select the analysis source of the nominal simulation data. You can also enter the file name containing the nominal simulation data in the following field. The name of this field varies depending on the type of analysis that you use in the nominal simulation

You can also restrict the amount of information to use from the DC Transfer or Transient data file by using the X Range field in the Transforms Filtering tab.

3. Specify how to store the output report.

Saber® User Guide 165D-2010.03-SP1

Page 180: Saber User Guide 2010.03

Chapter 13: Determining Component Stress LevelsViewing the Stress Report

By default, you generate the Stress Report after the stress analysis is complete by using the information stored in the Output File field. This process of generating the Stress Report by using this method is described in the next section.

Alternatively, you can inform Saber to generate the Stress Report immediately after the analysis finishes by selecting Yes in the Report after Analysis field.

4. List the stress measures for which a stress ratio is to be calculated.

You can specify which stress measures to consider when calculating stress ratios in the Stress Measure List field in the Transforms Filtering tab. This field accepts the same syntax as the Signal List field in the transient analysis form. By default, Saber calculates stress ratios for all stress measures defined in the design.

5. Specify the name of the derating file to be used.

If you created a Derating File, you can specify the name of the file in the Derating File field in the Transforms Filtering tab. Saber uses the same search procedure to locate the derating file as it does to locate templates. Typically, you place the derating file at the same directory level as the design.sin netlist file.

6. Execute stress analysis by clicking on the OK button.

If you have enabled the Report After Analysis option by clicking on the Yes button on the Stress Analysis form, a formatted stress report will be generated at the end of the analysis. The format used will be determined by the current settings of the Stress Report form.

Viewing the Stress Report

After Saber completes the Stress analysis, you can generate the Stress Report as described in the following steps:

1. Display the Stress Report form.

You can generate a stress report as part of the stress analysis as described above, or you can invoke the Stress Report form and generate a report directly from this form. You can invoke the Stress Report form by selecting Results > Stress Report.

2. Verify data to display in the Stress Report.

166 Saber® User GuideD-2010.03-SP1

Page 181: Saber User Guide 2010.03

Chapter 13: Determining Component Stress LevelsAnalyzing the Stress Report

You can use the fields in the Basic tab to limit the amount of information listed in the Stress Report. Refer to the help messages at the bottom of the form for a description of each field.

3. Verify the type of information to include in the report.

The Columns to Include tab contains a list of the types of information that you can include in the Stress Report. You can select the appropriate columns based on the information that you are trying to derive from the Stress Report.

Part Type and Part Class are controlled by template symbol properties:

• part_type is used to identify parts by type (for example, bjt, diode, mosfet).

• part_class is used to identify parts by classification (for example, diodes could have two classifications, hi-pwr and lo-pwr).

Changing these properties is not required. These properties are strings that specify the inclusion of a device in a report based on the device type or class (sometimes called report filtering).

4. Verify page layout.

In the Output Control tab, you can control the layout of the Stress Report. Refer to the help messages at the bottom of the form for a description of each field.

5. Generate the Stress Report.

6. You can generate the Stress Report by pressing the OK button.

Analyzing the Stress Report

You can examine either the Stress Ratio (%) or Bar-chart columns in the Stress Report to determine whether a part in the design was over-stressed for the conditions presented in the nominal simulation. If the Stress Ratio is over 100(%) or if the Bar-chart contains “XXXXXXX”, then the part is overstressed.

Saber® User Guide 167D-2010.03-SP1

Page 182: Saber User Guide 2010.03

Chapter 13: Determining Component Stress LevelsAnalyzing the Stress Report

If the design did not meet your specifications, you can take corrective action by one of the following methods:■ Altering a design/instance parameter(s)

If the design change does not require you to modify the connectivity, you can modify the design parameters by using the Alter Design form available through the Edit > Alter... menu item.

■ Edit the schematic and re-netlist.

If the design change requires you to change in connectivity (e.g. different parts, different wiring connections, or any change to the topology), you must make the change in the schematic, re-netlist the design (Design > Netlist design_name), and then re-load the design in Saber (Design > Simulate design_name).

168 Saber® User GuideD-2010.03-SP1

Page 183: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis Overview

14

14Saber Worst-Case Analysis Tool

Provides information on how to use the Worst-Case Analysis (WCA) Tool to create, execute, automate, and report on suites of tests for validating the performance of a design within the Saber simulation environment.

This section covers the following topics:■ Worst-Case Analysis Overview■ Worst-Case Analysis Approaches■ Worst-Case Analysis tool Invocation■ Worst-Case Analysis tool Use Model■ Worst-Case Analysis tool - Test Definition and Procedures■ Worst-Case Analysis - Search Algorithms■ Worst-Case Analysis - Application Programming Interface

Worst-Case Analysis Overview

The Saber Worst-Case Analysis tool is used to predict system reliability by determining the combination of allowable operating conditions under which an electronic or a mechtronic design will reach its worst-case limits of performance. The tool provides the user the ability to interactively set up, execute, and monitor tests that search for worst-case extremes, visualize results, annotate results back to the design, and output analysis data suitable for reporting and documentation.

Saber® User Guide 169D-2010.03-SP1

Page 184: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis Approaches

The Worst-Case Analysis tool is a framework providing functions to analyze the effects of design parameters defined over a permissible domain. These functions are useful to:■ Validate the performance of a design.■ Identify the range attained by design performances of interest when

stochastic parameters are varied within their tolerance range (worst-case analysis).

■ Identify combinations of design parameters leading to best design performance (design optimization).

■ Characterize parameters in order to best fit measured system component behavior (model characterization)

The Saber Worst-Case Analysis (WCA) Tool is fully integrated with the Saber design and verification environment and supports both Saber simulator and Saber HDL simulator.

Interactive tutorials, available by clicking Help > Tutorials, are a good way to get started. They provide an overview of the tool functionality and flow while the present documentation serves as a resource for more detailed and advanced information on the tool.

Worst-Case Analysis Approaches

Many sources of variability typically affect the performance of a design, including:■ Initial manufacturing tolerances■ Environmental changes such as temperature, humidity, pressure, and

radiation■ Aging drifts

If the sources of variability such as parameter ranges or distributions are known:■ What is the range attained by a design performance measure of interest

such as voltage, gain, rise-time, and power dissipation?■ Which combination of parameter values leads to the most extreme

performance behavior?■ Will 99.7% of design realizations be within specifications?

170 Saber® User GuideD-2010.03-SP1

Page 185: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis Approaches

Having the right answers to these questions would help improve design robustness, provide adequate margins against drift of parts without costly overdesign.

Figure 1 Design Variability

There are two general approaches to overcome such situations:■ Statistical Worst-Case Analysis

The Statistical Worst-Case Analysis approach gives an estimate of the worst-case defined at an agreed-upon percentage of non-conforming realizations.

For example, 99.7% for 3-sigma worst-case.■ Extreme Value Analysis (EVA)

The Extreme Value Analysis (EVA) helps in identifying the absolute worst-case defined as the combination of parameter values leading to the most extreme performance realization (even if the likelihood of this realization is zero).

Figure 2 illustrates that the EVA result is less indicative when compared to the statistical worst-case result. Although, both EVA and statistical worst-case are within specification (smaller than Yspec), the margin between Yspec and the EVA worst-case is smaller than between Yspec and the statistical worst-case.

Saber® User Guide 171D-2010.03-SP1

Page 186: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis Approaches

Figure 2 Statistical versus EVA worst-case

This section covers the following topics:■ Statistical Worst-Case Analysis■ Extreme Value Analysis (EVA)

Statistical Worst-Case AnalysisStatistical Worst-Case Analysis approach gives an estimate of the worst-case defined at an agreed-upon percentage of non-conforming realizations.

This section covers the following topics:■ Monte-Carlo Analysis■ Root-Sum Square (RSS) Tolerance Calculation

Monte-Carlo AnalysisMonte Carlo analysis is the most accurate way of obtaining the statistical worst-case. Given the Probability Density Function (PDF) of the design parameters Xi, Monte-Carlo produces an estimate of the PDF of the design performance Y. From the PDF of Y, the statistical worst-case values are found at the prescribed number of standard deviations around the mean.

172 Saber® User GuideD-2010.03-SP1

Page 187: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis Approaches

Figure 3 Monte-Carlo Analysis

Note: This method works with PDFs of any shape (the MAST and VHDL-AMS modeling languages provide many functions to define statistical distributions).

This method requires a large number of simulation runs and the PDF of all parameters with variability must be known.

See also■ Worst-Case Analysis tool - Test Definition and Procedures■ Worst-Case Analysis - Search Algorithms

Root-Sum Square (RSS) Tolerance CalculationRoot-Sum-Square (RSS) tolerance calculation allow a quick estimation of the statistical worst-case provided, the following assumptions are verified:■ The standard deviations of the design parameters Xi are known.

■ The sensitivities of the design attribute Y with respect to the design parameters are known.

■ The performance Y is monotonic and approximately linear with the design parameters Xi.

■ The design parameters Xi are independent (covariances = 0)

Under these assumptions, the PDF of the performance attribute Y can be assumed normally distributed, with a standard deviation given by the formula in Figure 4. From , the upper and lower worst-case values at a prescribed number of sigma around the mean are easily determined.

Saber® User Guide 173D-2010.03-SP1

Page 188: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis Approaches

Figure 4 RSS Calculation

Note: An RSS calculation requires (N+1) evaluations of Y to calculate the sensitivities of the N parameters.

RSS can be more effective when parameters have tight tolerances. The assumption of linearity is more likely to be wrong when parameters are defined over wide ranges.

See also■ Worst-Case Analysis tool - Test Definition and Procedures■ Worst-Case Analysis - Search Algorithms

Extreme Value Analysis (EVA)Extreme Value Analysis (EVA) looks for the combination of parameter values leading to the most extreme performance realization (even if the likelihood of this realization is zero).

An EVA typically produces most pessimistic worst-case results:■ It does not require statistical information about the design parameters, only

their range [min, max] must be known.■ Within their range, the EVA looks for the combinations of parameter values

resulting in the minimum and maximum values of the design performance of interest Y.

■ An EVA does not say anything about the statistical distribution of Y other than its interval of realization

174 Saber® User GuideD-2010.03-SP1

Page 189: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis tool Invocation

Figure 5 EVA intervals

See also■ Performing EVA in the Worst-Case Analysis tool■ Worst-Case Analysis tool - Test Definition and Procedures■ Worst-Case Analysis - Search Algorithms

Worst-Case Analysis tool Invocation

To invoke the Worst-Case Analysis tool:

From the Saber Guide, click WCA Tool button. The Worst-Case Analysis Tool WCA Tool appears.

Saber® User Guide 175D-2010.03-SP1

Page 190: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis tool Use Model

Worst-Case Analysis tool Use Model

The following diagram depicts the typical process flow for using the Worst-Case Analysis tool.

Worst-Case Analysis tool - Test Definition and Procedures

The Worst-Case Analysis tool allows you to open, edit and save test suites.

Test Suite

A test suite is a container with the extension .ai_wca that holds a set of tests that are formulated to validate specific aspects of a design performance.

Test

A test defines the most basic search or optimization task performed by Worst-Case Analysis.

Individual test workflows in the Worst-Case Analysis tool are based on different types of test objectives, categorized by what is known about the parameters and conditions that influence a design prior to running the test.

This section covers the following topics:

176 Saber® User GuideD-2010.03-SP1

Page 191: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis tool - Test Definition and Procedures

■ Defining a Test■ Specifying a Sequence of Simulation Analyses■ Specifying Performance Measures■ Specifying Optimization Objectives■ Specifying Search Algorithms■ Executing the Test■ Viewing Parameters, Progress, and Results■ Exporting the Results■ Saving the Test Suite■ Additional Tools for Understanding Design Behavior

Defining a TestThe Worst-Case Analysis tool allows you to define a test for validating specific aspects of a design performance.

To define a test:

1. Click and select New from the Worst-Case Analysis tool. A new test is added to the test suite.

Note: By default, a test by name test1 is provided by the Worst-Case Analysis tool.

Repeat step 1 to add additional tests to the test suite.

2. (Optional) To rename a test, either double-click the test name and enter the test name or right-click the test name, choose rename and enter the test name.

3. (Optional) To enable or disable a test in the test suite, either click the check box adjacent to the test name or right-click the test name and choose enabled.

Note: All tests added to the test suite are enabled by default.

4. (Optional) To copy a test specification to another test in the test suite, right-click the newly created empty test, choose Copy from and select the test whose specifications you want to copy.

Saber® User Guide 177D-2010.03-SP1

Page 192: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis tool - Test Definition and Procedures

5. (Optional) To reorder the sequence of tests in a test suite, drag and drop the test name.

This section covers the following topics:■ Specifying Design Parameters■ Automatic Extraction of Stochastic Parameters

Specifying Design ParametersThe Worst-Case Analysis tool provides the ability to define a list of design parameters which ranges of variability or sets of permissible values represent the domain of the search.

More specifically, the Worst-Case Analysis tool provides the ability to define parameter domain as a continuous range or a set of discrete values

At each iteration of the search, the design objectives get evaluated for a certain combination of parameter values, referred to as an evaluation point.

178 Saber® User GuideD-2010.03-SP1

Page 193: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis tool - Test Definition and Procedures

To add a design parameters to be considered in the test:

1. Either choose Edit > Parameters from the Worst-Case Analysis menu or

click Edit Parameters icon from the Worst-Case Analysis tool. The Edit Parameters dialog box appears:

2. Enter the specifications for the design parameter:

Field Description

Name Name of the parameter.

Alias Short name to reference the parameter in an objective expression.

Current Value Current value of the parameter. The current value gets modified by the search algorithms as the optimization progresses.

Saber® User Guide 179D-2010.03-SP1

Page 194: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis tool - Test Definition and Procedures

Nominal Starting value of the search algorithm. The current value is set to the nominal value whenever the user clicks the nominal reset button on the graphical user interface.

The nominal value is also used to define the domain of the corner searches as the permutations of minimum, maximum and nominal values (3p corners, p being the number of parameters).

Domain ■ Range - The parameter is defined over a continuous numerical range [min, max].

■ Set - The parameter is defined over a set of discrete values of the type numerical or enumerated.

To handle parameters defined over a wide dynamic range, the domain is mapped into the unit interval [0, 1] where the search is performed. A logarithmic scale is used to avoid ignoring regions close to zero, allowing more efficient searches.

Fixed A parameter marked as "Fixed" is not considered in the search.

Lower Limit Lower Limit of the parameter.

Note: The Lower Limit value should be less than the Current Nominal and Max Value.

Upper Limit Upper Limit of the parameter.

Note: The Upper Limit value should be greater than the Nominal and Min value.

Values The field is enabled when Domain is selected as Set. This field takes space or coma separated list of values that the parameter can take when defined over a set.

Search Allows you to specify the parameter that you want to search in the design hierarchy for selection.

The Worst-Case Analysis tool provides three options for performing a search:■ Match All—Searches for the specified search text in the model instance

names and parameters. Use this option if you want to search in both the model instance names and the parameters.

■ Match Model Instance Names—Searches for the specified search text in the model instance names. Use this option if you only want to search the model instance name.

■ Match in Selected Model Instances—Searches for the specified parameter in the parts that are selected in Saber. Use this option if you want to search for parameters in symbols that are selected in the active schematic.

Field Description

180 Saber® User GuideD-2010.03-SP1

Page 195: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis tool - Test Definition and Procedures

3. Click OK.

Multiple parameters can be added with one session of this form

4. (Optional) To edit parameters, proceed with Step 1.

5. (Optional) To consider multiple parameters as a constant in the test, click the check box adjacent to the parameters in the Worst-Case Analysis tool.

6. (Optional) To reorder the sequence of evaluation of the design parameters in a test, drag and drop the parameter.

Automatic Extraction of Stochastic ParametersIn many situations, it is desired to duplicate in a consistent manner the parameter variability already defined in the design into the Worst-Case Analysis tool. An automatic procedure is provided that identifies the independent stochastic parameters in the design as well as their range. Without such a procedure, the user would be left with the tedious and error-prone task of manually browsing through the design parameters, recognizing the ones with a statistical distribution, selecting them in the WCA tool and setting their ranges according to the distribution tolerances (defined at +/- 3 sigma around the mean for normal distributions).

This section covers the following topics:■ Identifying the Independent Stochastic Parameters■ Alterable Versus Non-Alterable MAST Parameters■ Extraction Rules■ Compatibility Guidelines■ Extracting Stochastic Parameters Automatically

Available Displays all the model instance names and their parameters. You can use the pop-up menu that appears on right-click to select or collapse the parameters.

Use the to add parameters to the Selected list.

Selected Displays parameters which have been selected to participate in a WCA search or optimization. You can use the pop-up menu that appears on right click to sort, select, or clear the parameters.

Use the to remove parameters from the Selected list.

Field Description

Saber® User Guide 181D-2010.03-SP1

Page 196: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis tool - Test Definition and Procedures

Identifying the Independent Stochastic Parameters

The stochastic parameters are assigned statistical distributions with built-in functions or foreign routines including normal, uniform, pwl, cdf, pdf and distfunc for MAST templates, and ai_normal and ai_uniform for VHDL-AMS models. The assignments are done within the models or when assigning argument values to the model instances. To identify the independent stochastic parameters, the procedure starts with a Monte Carlo analysis (30 runs and worst-case mode enabled). The values taken by all the parameters in the design over the 30 MC runs are stored in a parameter plot file (it can be shown that 30 runs are sufficient to find all corners with a very high probability). The min and max of every parameter are then measured. When min and max are identical, the parameter is static and can be discarded. It is not a stochastic parameter. The remaining parameters "wiggle". But many are dependent parameters derived from independent ones. In the following example, parameter b is a dependent parameter:

a=normal(1,0.1)

b=2*a

Dependent parameters are identified and discarded by altering each "wiggling" parameter to its min and max values (and an additional random value in between) and by observing variations caused to other parameters.

In the example below, even though it depends on c, d is not discarded because altering c to 0.9 and 1.1 results in a range for d of [1.8, 2.2], whereas the initial MC runs showed a range for d of [1.62, 2.42]. There is additional "randomness" in d. That is why it is not 100% dependent and cannot be discarded.

c=normal(1,0.1)

d=2*normal(c,0.1)

Recursive procedures operating on the parameter tree identify and discard the static and the truly dependent parameters. As outlined in the next paragraph, some rules to identify the independent stochastic parameters defined in the parameter section of a MAST template are needed.

See also■ Extracting Stochastic Parameters Automatically■ Automatic Extraction of Stochastic Parameters

182 Saber® User GuideD-2010.03-SP1

Page 197: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis tool - Test Definition and Procedures

Alterable Versus Non-Alterable MAST Parameters

While Monte Carlo randomly evaluates the design within the parameter distribution space, the WCA tool performs a guided walk. This walk, steered toward the optimal (or worst) solution, is conducted with the alter command.

When dealing with MAST models, a couple of important points need to be remembered:■ Not all MAST parameters are alterable■ Only alterable parameters can participate in a WCA search

This is not an issue for VHDL-AMS models which parameters are all alterable. While the alter command works with MAST model arguments and MAST local parameters that are not assigned a value in the parameter section, alter does not work with local parameters defined in the parameter section of a MAST template. For example, template example1 below has a local stochastic parameter r1 that is not alterable:

template example1 p m = rnom, tol

electrical p, m

number rnom, tol

{

number r1 = 1, r2 = 1

parameters {

r1=normal(rnom, tol)

}

}

example1.1 1 0 = rnom = 1, tol = 0.1

The Saber command "alter example1.1/r1 = 2" would attempt to set the value of r1 to 2. But this triggers the re-evaluation of the parameter section, which sets it back to 1 (normal(rnom,tol) equals rnom outside statistical mode). In other words, the parameter section overwrites "alter" and there is no way of altering r1 directly. Therefore only model arguments (like rnom) and local parameters that are not assigned a value in the parameter section (like r2) can

Saber® User Guide 183D-2010.03-SP1

Page 198: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis tool - Test Definition and Procedures

be optimized or searched for, not local parameters assigned a value in the parameter section (like r1). However r1 is the parameter that appears with a range in the Monte Carlo parameter file. One needs to recognize that r1 can be set to its min or max or any value in between by altering rnom. That knowledge has been collected for the models in the Saber library (about a dozen of such templates have been identified, including r, l and c). For custom models, the user must declare rules to realize a specific value of the local parameter by altering a model argument or an alterable local parameter.

See also■ Extracting Stochastic Parameters Automatically■ Automatic Extraction of Stochastic Parameters

Extraction Rules

To work with the extraction procedure, models need extraction rules for every stochastic component they include (a stochastic component is a call to distfunc, normal, uniform, pwl, pdf, etc).

A rule contains the following information:■ The name of the model.■ The model argument or alterable local parameter to alter in order to realize

a specific value of the local stochastic parameter. This model argument or alterable local parameter controls the nominal value of the stochastic component. It is referred to as the "nominal parameter".

■ The expression of the stochastic component as a function of the local parameter (and possibly other parameters).

In the case of the example1 template, the rule is simple: to assign a value to r1 outside the statistical mode (Monte Carlo), one must assign that value to rnom. The nominal parameter is rnom and the stochastic component is simply r1.

Rules can be more complex, like in the example2 template below:

element template example2 p m = rnom, tol, temp0, kth

electrical p, m

number rnom = undef, tol = 0, kth = 0, temp0 = 25

external number temp

{

184 Saber® User GuideD-2010.03-SP1

Page 199: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis tool - Test Definition and Procedures

number r

parameters {

r = uniform(rnom, tol) * (1 + kth * (temp - temp0))

}

}

In this case, the nominal parameter is still rnom and the stochastic component is:

r / (1 + kth * (temp - temp0))

With such a rule, given the range [min, max] attained by parameter r in a worst-case Monte Carlo analysis, one can derive the range [min*, max*] of parameter rnom to use for WCA.

Note that rules do not make any assumption about the type of distribution function of the stochastic component. The extraction procedure should work with user-defined/custom distribution functions too. The only requirement is that user-defined distribution functions must work in worst-case/corner statistical mode just like the Saber built-in distribution functions: they must return "min" and "max" values with equal probability when running Monte-Carlo worst-case.

Establishing the expression of the stochastic component is not always straightforward or simply possible. That would be the case if there is not a one-to-one mapping or "if-else" clauses are used. The model may then have to be reformulated to introduce a stochastic parameter directly tied to a nominal parameter. Template example3 below is a modified version of example2 with direct mapping between xr (an intermediate local parameter with a distribution) and rnom:

template example3 p m = rnom, tol ,kth, temp, temp0

electrical p,m

number rnom, tol, kth, temp, temp0

{

number xr, r

Saber® User Guide 185D-2010.03-SP1

Page 200: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis tool - Test Definition and Procedures

parameters {

xr = normal(rnom, tol)

r = xr * (1 + kth * (temp - temp0))

}

}

In this case, the nominal parameter is rnom and the stochastic component is xr.

When the extraction procedure identifies a model containing local parameters with a stochastic component, it looks whether extraction rules exist for that model. If none are defined, the user is prompted to specify them.

Figure 6 shows examples of extraction rules defined in the WCA tool. Rules are saved as user preferences and can be exchanged between users by using the Import/Export functions.

186 Saber® User GuideD-2010.03-SP1

Page 201: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis tool - Test Definition and Procedures

Figure 6 Examples of Extraction Rules

See also■ Extracting Stochastic Parameters Automatically■ Automatic Extraction of Stochastic Parameters

Saber® User Guide 187D-2010.03-SP1

Page 202: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis tool - Test Definition and Procedures

Compatibility Guidelines

In order to work with the extraction procedure, user-defined models may need to be reformulated in order to satisfy the following guidelines:

1. Use local parameters instead of hard-coded nominal values. For example, replace:

G2 = G1 * normal(1, 0.01)

with

G2 = G1 * normal(gnom, 0.01)

Where gnom is a model argument of default value 1. This guideline does not apply to VHDL-AMS models.

2. Split parameter expressions involving multiple stochastic components. For example, replace:

G1 = normal(rnom, rtol) * \

(1 + (temp - 25) * normal(tcrnom, tcrtol))

with

tc = normal(tcrnom, tcrtol)

G1 = normal(rnom, rtol) * (1 + (temp - 25) * tc)

This guideline applies to MAST templates as well as VHDL-AMS models.

3. Avoid the use of "if/else" statements when defining stochastic parameters. This guideline applies to MAST templates as well as VHDL-AMS models.

See also■ Extracting Stochastic Parameters Automatically■ Automatic Extraction of Stochastic Parameters

188 Saber® User GuideD-2010.03-SP1

Page 203: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis tool - Test Definition and Procedures

Extracting Stochastic Parameters Automatically

To extract stochastic parameters automatically:

1. Click Extract Stochastic Parameters icon from the Worst-Case Analysis tool. The Extract Stochastic Parameters dialog box appears:

2. (Optional) To specify a custom rule for extraction click Rules button. The Edit Extraction Rules dialog box appears:

Saber® User Guide 189D-2010.03-SP1

Page 204: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis tool - Test Definition and Procedures

3. Perform the necessary action as per the table below:

4. (Optional) After performing the necessary action, click OK to accept the changes made to the extraction rules list and close the Edit Extraction Rules dialog box.

5. Click Extract button from the Extract Stochastic Parameters dialog box. The tool automatically searches the design for any independent stochastic parameters and displays them:

6. Select the desired stochastic parameters and do any of the following:

Button Action

Add Adds a custom rule to rules list

Delete Deletes a custom rule from the rules list

Import Imports a rules list from a previously saved extraction rule (.ai_extrules) file

Export Exports the rules list to an extraction rule (.ai_extrules) file

Click... to...

Replace make the selected parameters as the new search list.

Append add the selected parameters to the search list.

190 Saber® User GuideD-2010.03-SP1

Page 205: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis tool - Test Definition and Procedures

See also■ Automatic Extraction of Stochastic Parameters

Specifying a Sequence of Simulation Analyses The Worst-Case Analysis tool provides the ability to add simulation tasks in the definition of a test and the sequence in which they are executed.

The Worst-Case Analysis tool supports the following analyses:■ DC Operating Point■ Transient■ Small-Signal AC■ DC Transfer■ Alter - Alter commands can be inserted between analyses, allowing design

configurations such as temperature or position of switches to be set for different analyses. This allows objectives tied to different design configurations to be optimized concurrently.

Note: Parameters being altered are not be considered in the optimization search.

To add a simulation to a test:

1. Click and select an analysis from the Worst-Case Analysis tool. An options configuration dialog box appears.

Saber® User Guide 191D-2010.03-SP1

Page 206: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis tool - Test Definition and Procedures

For example, if you choose DC Operating Point analysis, the following options configuration dialog box appears:

Refer to the Saber and Saber HDL Reference Manual for more information on specifying the configuration options for each of the analysis.

2. Enter the analysis options and click OK to accept the analysis configuration details.

Repeat steps 1 through 2 to specify additional analysis.

3. (Optional) To reorder the sequence of execution of analyses in a test, drag and drop the analysis.

4. (Optional) To edit an analysis, either click the analysis and edit its options or right-click the analysis, choose Edit and then edit its options.

Specifying Performance MeasuresThe Worst-Case Analysis tool provides the ability to add performance measures in the test definition that consume the results of the analyses (signals) and produce measurement values used in the objectives.

A measure is applied on a waveform which expression is an algebraic combination of signals. An example of valid waveform expression is:

v(r.r1)*i(r.r2)+power(r.r3)where v(v.r1), i(r.r2) and power(r.r3) are simulation signals.

192 Saber® User GuideD-2010.03-SP1

Page 207: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis tool - Test Definition and Procedures

In its simplest form, a waveform expression references a single signal. When creating a waveform expression, the signals must be inserted in the expression by browsing the signal hierarchy (using the "Signals…" pull-down menu item) so the signals get properly recognized by the expression parser.

If the simulation analysis produces complex signals, the Y transformation option of the measure (if different from "None") is applied to the waveform expression, not its constitutive signals. For additional flexibility, the functions "real" and "imag" can be used in the waveform expression. For example, the waveform expression "real(a)" with no Y transformation is equivalent to the expression "a" with Y transformation set to "Real".

Math functions allowed in waveform expressions:

Function Description

abs(x) Absolute value of x (or module if x is complex).

acos(x) Arc-cosine of x.

asin(x) Arc-sine of x

atan(x) Arc-tangent of x.

cos(x) Cosine of x.

cosh(x) Hyperbolic cosine of x.

exp(x) Exponential, ex.

imag(x) Imaginary part of x.

log(x) Natural log of x.

log10(x) Log base 10 of x.

pow(x,y) x to the y power, xy.

real(x) Real part of x.

sin(x) Sine of x.

sinh(x) Hyperbolic sine of x.

sqrt(x) Square root of x.

tan(x) Tangent of x.

Saber® User Guide 193D-2010.03-SP1

Page 208: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis tool - Test Definition and Procedures

This section covers the following topics:■ Measuring Waveform Difference■ Adding a Performance Measure

Measuring Waveform DifferenceA measure of "waveform difference" is also available, allowing a simulated waveform obtained from an analysis to be compared with a target waveform in a designated plotfile. Useful for model characterization, the waveform difference is obtained by summing the "point difference" terms between the yt values of the target waveform and the corresponding y values of the simulated waveform measured at the xt values. The sum comprises as many terms as there are points in the target waveform.

Error Functions for Waveform Difference:

The logarithmic forms are useful when the y values of waveforms have a large dynamic range. Large relative errors for small y values are indeed ignored by the linear difference. When using logarithmic difference, please make sure that the y values of simulated and target waveforms are always of same sign (otherwise the measure returns Inf).

An exponent is applied to each "point difference" term. The exponent value can be 1, 2, 3 or Inf. Exponent 2 corresponds to the "least square" difference and Inf to the "minimax" difference. The "minimax" error function should be used to minimize the maximum point difference among all points.

tanh(x) Hyperbolic tangent of x.

Function Description

194 Saber® User GuideD-2010.03-SP1

Page 209: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis tool - Test Definition and Procedures

It is currently not possible to assign weights to individual points. But if a certain region of the target characteristic is of most importance, providing a higher density of points in that region will give it more weight.

The measure of waveform difference also applies to complex waveforms. By default, a real valued waveform is formed by evaluating the module of either the difference or the ratio between the y values of simulated and target waveforms.

The waveforms can also be transformed before being compared.

Transformations are applied separately to simulated and target waveforms, giving the user the flexibility to specify the target as a real valued waveform which y values represent the phase, real part, imaginary part or amplitude (dB or linear scale) of a signal. Transformations are performed before the waveform difference is computed. If the user chooses no transformation, then the difference is computed on the raw complex waveforms. If the user applies the dB transform to the simulated waveform and none to the target, then the dB plot of the simulated waveform is compared to the raw target waveform (expected to be a real valued waveform which y values are obtained as 20*log10(|a+bj|)).

If the set of provided measures is not sufficient, custom measures written as Tcl/AIM procedures can also be defined. You will need to choose the measure function as "User Procedure" and provide the name of a procedure. The procedure is expected to take the waveform handle of the simulated signal as argument and return a real number value.

See also■ Adding a Performance Measure■ AIM User Guide■ Worst-Case Analysis tool - Test Definition and Procedures

Saber® User Guide 195D-2010.03-SP1

Page 210: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis tool - Test Definition and Procedures

Adding a Performance MeasureTo add a performance measure to a test:

1. Click and select New from the Worst-Case Analysis tool. The New Measure dialog box appears:

2. Enter the measure specification:

3. Click OK to add the performance measure to the test.

Repeat steps 1 through 3 to specify additional performance measures.

GUI Tab Field Description

Required Name Specify a name for the measure.

Analysis Choose an analysis for the measure.

Waveform Choose a signal from the Signal Hierarchy browser and click OK.

Function Choose a function that you want use to measure. Refer to the Saber and Saber HDL Reference Manual for more information on the various measurement options.

Dynamic Field This field changes depending upon the type of function you select

Optional Dynamic Field The fields in the optional tab changes depending upon the type of function you select.

196 Saber® User GuideD-2010.03-SP1

Page 211: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis tool - Test Definition and Procedures

4. (Optional) To edit a measure, either click the measure and edit its options or right-click the measure, choose Edit and then edit its options.

5. (Optional) To add an optimization objective related to the measure, right-click the measure, choose Add Objective and select the objective.

For more information on specifying the objectives, see Specifying Optimization Objectives.

Specifying Optimization ObjectivesThe Worst-Case Analysis tool provides the ability to add optimization objectives to a test to characterize the optimization goals and constraints of the input design.

The Worst-Case Analysis tool supports the following objective function expressions:■ min(expr1)

■ max(expr1)

■ expr1=expr2

■ expr1<expr2

■ expr1>expr2

Where expr1 and expr2 are algebraic expressions of measures and parameter aliases. The mathematical functions allowed in an objective expression are:

Function Description

abs(x) Absolute value of x

acos(x) Arc-cosine of x.

asin(x) Arc-sine of x.

atan(x) Arc-tangent of x.

cos(x) Cosine of x.

cosh(x) Hyperbolic cosine of x.

exp(x) Exponential, ex.

Saber® User Guide 197D-2010.03-SP1

Page 212: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis tool - Test Definition and Procedures

It is important to distinguish minimization and maximization directives from minimum and maximum functions. For example, the objective below is seeking to minimize the minimum between "a" and "b".

min(min(a,b))

The first occurrence of "min" is the minimization directive that takes one argument; the second occurrence is the minimum function that takes two arguments.

log(x) Natural log of x.

log10(x) Log base 10 of x.

max(x,y) Maximum of x and y.

min(x,y) Minimum of x and y.

pow(x,y) x to the y power, xy.

sign(x) 1 if x is positive, -1 if x is negative, 0 if x is zero.

sin(x) Sine of x.

sinh(x) Hyperbolic sine of x.

sqrt(x) Square root of x.

tan(x) Tangent of x.

tanh(x) Hyperbolic tangent of x.

Function Description

198 Saber® User GuideD-2010.03-SP1

Page 213: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis tool - Test Definition and Procedures

The objectives are assigned weights and are evaluated concurrently as part of a sum to minimize. The terms of this sum have a form that depends on the objective type:

This section covers the following topics:■ Performing EVA in the Worst-Case Analysis tool■ Adding an Optimization Objective

Performing EVA in the Worst-Case Analysis toolThe optimization algorithms available in the Worst-Case Analysis tool are used to find the minimum and maximum values of a design performance measure Y.

A pair of tests must be associated with the EVA of the design performance: ■ one test with an objective min(Y)■ another with an objective max(Y). Where Y is the measure of the design

performance of interest.

Since both tests share the same parameter, analysis, measure and algorithm definitions, the second test can be produced by duplicating the first one and modifying its objective.

Saber® User Guide 199D-2010.03-SP1

Page 214: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis tool - Test Definition and Procedures

Adding an Optimization ObjectiveTo add an optimization objective to a test:

1. Click and select New from the Worst-Case Analysis tool. The New Objective dialog box appears:

2. Enter the objective expression as per the below table:

3. Click OK to add the optimization objective to the test.

Repeat steps 1 through 3 to specify additional optimization objectives.

4. (Optional) To edit an objective expression, either click the objective and edit the expression and weight or right-click the objective, choose Edit and edit the expression and weight.

5. (Optional) To enable or disable an objective in a test, either click the check box adjacent to the objective or right-click the objective and choose enabled.

Note: All objectives added to the test are enabled by default.

Field Description

Objective Specify an objective expression for evaluation.

Weight Assign weight to an objective. The weight is a positive real number.

200 Saber® User GuideD-2010.03-SP1

Page 215: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis tool - Test Definition and Procedures

Specifying Search AlgorithmsA general characterization of the algorithms is the distinction between range and corner search. An algorithm that performs a corner search limits the domain of the search to the corners, the corners being the combinations of minimum, maximum and nominal parameter values (if defined over a range) or discrete values (if defined over a set). The number of corners is the factorial product:

Np is the number of corner values of parameter p (3 if p is defined over a range). While finite, the number of corners grows exponentially with the number of parameters. An exhaustive corner search is only practical for small number of parameters and algorithmic techniques are required to efficiently cope with large corner spaces.

The "Sensitivity Corner" and "Exhaustive Corner" methods are intrinsically corner algorithms. "Variable Neighborhood Search" (VNS), "Simulated Annealing", "Greedy Randomized Adaptive Search Procedures" (GRASP) and "Genetic Algorithm" have an option to perform either corner or range search.

Range search algorithms are looking for solutions within the continuous range of the parameters, including the corners. With the exception of the Steepest Descent algorithm that only works with continuous range parameters, the range algorithms are able to perform hybrid searches, allowing certain parameters to be defined over a discrete set while others are defined over a continuous range. While the domain of a range search is infinite, the range algorithms are able to exploit dichotomy and neighborhood properties like gradient to find solutions.

As multiple algorithms can be stacked and evaluated in sequence, there is merit in performing a corner search before a range search. The corner search is quicker and should already position many of the parameters to their optimal value. That is particularly the case for parameters defined over a tight range, with little interaction with other parameters and which influence over the performance characteristics is monotonic. The range search can then more efficiently focus on the parameters with non-monotonic and/or interactive influence.

Saber® User Guide 201D-2010.03-SP1

Page 216: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis tool - Test Definition and Procedures

The user also has the ability to run the search algorithm sequence a number of times ("Number of Loops"). This increases the chance that the global solution be found.

The Worst-Case Analysis tool supports the following search algorithms: ■ Exhaustive Corner Search■ Sensitivity Corner Method■ Variable Neighborhood Search (VNS)■ Simulated Annealing■ Greedy Randomized Adaptive Search Procedures (GRASP)■ Genetic Algorithm■ Random Search with Interval Shrinkage■ Steepest Descent■ Downhill Simplex

See also

202 Saber® User GuideD-2010.03-SP1

Page 217: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis tool - Test Definition and Procedures

■ Adding an Algorithm to a Test

Adding an Algorithm to a TestTo add an algorithm to a test:

1. Click and choose an algorithm from the Worst-Case Analysis tool. The New Algorithm dialog box appears:

2. Enter the algorithm specifications.

3. Click OK to add the algorithm to the test.

Repeat steps 1 through 3 to specify additional search algorithms.

4. (Optional) To edit an algorithm, either click the algorithm name and edit the values or right-click the algorithm name, choose Edit and edit the values.

5. (Optional) To enable or disable an algorithm in a test, either click the check box adjacent to the algorithm or right-click the algorithm name and choose enabled.

Note: All algorithms added to the test are enabled by default.

6. (Optional) To reorder the sequence of evaluation of the algorithms in a test, drag and drop the algorithm.

Saber® User Guide 203D-2010.03-SP1

Page 218: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis tool - Test Definition and Procedures

See also■ Worst-Case Analysis - Search Algorithms

Executing the TestThe Worst-Case Analysis tool provides the ability to:■ control the execution (start/stop) of a specific test or all tests in a test suite.■ support parallel/distributed search iterations across multiple compute

resources

To execute a test, click Run Test button from the Worst-Case Analysis tool bar. The Worst-Case Analysis with the specified test conditions are executed and the result is displayed in the result region:

See also■ Viewing Parameters, Progress, and Results■ Boosting Search Performance with Parallel Evaluations

204 Saber® User GuideD-2010.03-SP1

Page 219: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis tool - Test Definition and Procedures

Boosting Search Performance with Parallel EvaluationsThe performance of a search can be improved by using parallel evaluations on multiple computing resources. The performance gains are particularly noticeable when simulation analyses take long times (e.g. transient analyses). For quick simulation runs, parallel evaluations on a grid may deteriorate performance.

The search algorithms have been written to take advantage of multiple computing resources. These computing resources are either remote computers on a compute grid or the processors of a local multi-core computer (local queue). The number of available computing resources is the number of parallel runs specified in the Edit > Evaluation Configuration dialog box. The default value "None" corresponds to a serial evaluation scheme on the local computer. Parallel evaluations only occur when the number of parallel runs is strictly greater than one.

A timeout setting allows you to define the maximum time an evaluation can take before it gets aborted. This prevents computing resources from being hampered by excessively slow simulations. Aborted evaluations are treated as erroneous points.

Parallel evaluations are executed in transient sub-directories where the simulation files needed by the analyses and measurements are copied. You need to declare the list of such files, which includes the design netlist and the local model files that it consumes.

Saber® User Guide 205D-2010.03-SP1

Page 220: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis tool - Test Definition and Procedures

Viewing Parameters, Progress, and ResultsThe Worst-Case Analysis tool allows you to view the parameters under test, progress of the test, and results of the analysis:

This section covers the following topics:■ Parameter View Pane■ Progress and Signal View Pane

Parameter View PaneFollowing options are available in the parameter view pane:

Icon / Field Description

Allows you to edit a parameters being searched or optimized.

Alternately, double-click the parameter to be able to make changes to the parameter.

See Specifying Design Parameters for more information on editing a design parameter.

206 Saber® User GuideD-2010.03-SP1

Page 221: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis tool - Test Definition and Procedures

Progress and Signal View PaneFollowing options are available in the Progress and Signal view pane:

Allows you to extract stochastic parameters. See Automatic Extraction of Stochastic Parameters for more information on extracting stochastic parameters automatically.

Allows you to reset the "Current" value of a parameter to its defined nominal value.

Allows you to alter the values of parameters in the active design to the current values of the parameters in the Worst-Case Analysis tool.

Parameter Displays the name of the parameter.

Current Displays and allows you to change the current value of the parameter. The current value gets modified by the search algorithms as the optimization progresses.

Domain Displays the current domain of the parameter.■ [min, max] if the parameter is defined over a numerical continuous range.■ List of discrete values if the parameter is defined over a set.

To handle parameters defined over a wide dynamic range, the domain is internally mapped into the unit interval [0, 1] where the search is performed. A logarithmic scale is used to avoid ignoring regions close to zero, allowing more efficient searches.

Fixed If a parameter is marked as "Fixed", it is not considered in the search.

Tab Icon / Field Description

Progress and Signal

Clears the graph.

Zoom-in the graph.

Zoom graph to fit the pane.

Zoom-out the graph

Icon / Field Description

Saber® User Guide 207D-2010.03-SP1

Page 222: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis tool - Test Definition and Procedures

Exporting the ResultsTo export the results:

1. Click File > Export > Parameters from the Worst-Case Analysis menu bar. The Export Parameters dialog box appears:

2. Choose any one of the following export option:

3. Click OK to export the parameters.

Progress Only Parameter / Measure dropdown

Click the dropdown list box and select the parameter / measure you want to view.

Signal Only Signal dropdown Click the dropdown list box and select the signal you want to view.

Option Description

New Schematic Exports the parameters to a new Saber Sketch schematic (.ai_sch).

Alter Command Exports the parameters to either a Saber command script file (.scs) or Saber HDL command script file (.ai_scs) depending upon the simulator selection.

Active Simulation Session Exports the parameters to the active simulator session.

Tab Separated Text File Exports the parameters to a text file (.txt).

Tab Icon / Field Description

208 Saber® User GuideD-2010.03-SP1

Page 223: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis tool - Test Definition and Procedures

Saving the Test SuiteTo save a test suite:

1. Either click Save Worksheet button or choose File > Save As from the Worst-Case Analysis menu bar. A traditional Windows Save As dialog box appears.

2. Navigate to the location where you wish to save the test suite, enter a name for the test suite, and click OK.

Result: The test suite is saved in the specified name and location.

Additional Tools for Understanding Design BehaviorThis section covers the following topics:■ Using the RSS Calculator Utility■ Using the Parameter Sweep Utility

Saber® User Guide 209D-2010.03-SP1

Page 224: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis tool - Test Definition and Procedures

Using the RSS Calculator UtilityTo calculate the RSS tolerance:

1. Click RSS Tolerance button from the Worst-Case Analysis toolbar. The Root-Sum-Square Tolerance Calculator dialog box appears:

2. Enter the objective expression as per the below table:

3. Click Calculate button to calculate the RSS tolerance. The result is displayed in the Root-Sum-Square Tolerance Calculator dialog box.

The results are displayed in either one of the two formats:

Field Description

Expression Input algebraic expression of measure or parameter to evaluate.

Perturbation Specify the fraction of a parameter range to be used as delta to evaluate the partial derivatives of the objective function.

Typical Point Specify the biasing point at which the expression should be evaluated.

Parameter Displays the parameters that are being evaluated.

Tolerance Displays the tolerance of the parameter.

Sensitivity dE/dp

Displays the sensitivity of the parameter. Where dE/dp is the rate of change of E with respect to the parameter variation.

210 Saber® User GuideD-2010.03-SP1

Page 225: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis tool - Test Definition and Procedures

• nominal, min, max

• nominal +/- tolerance

4. (Optional) To export the RSS results, click Export button. The Export RSS Results dialog box appears.

5. Navigate to the location where you wish to save the RSS result, enter a name for the result, and click OK.

Result: The RSS result is saved in the specified name and location.

Using the Parameter Sweep UtilityThe Worst-Case Analysis tool provides the ability to sweep objective functions over a range of design parameter values taken at each iteration of the search.

This section covers the following topics:■ One-Dimensional Parameter Sweep (1-D Graph)■ Two-Dimensional Parameter Sweep (2-D Surface View)

Saber® User Guide 211D-2010.03-SP1

Page 226: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis tool - Test Definition and Procedures

One-Dimensional Parameter Sweep (1-D Graph)

To sweep a single parameter:

1. Click Sweep 1 Parameter button from the Worst-Case Analysis toolbar. The One-Dimensional Parameter Sweep dialog box appears:

2. Write a performance characteristic of interest as an algebraic expression of measures and/or parameters.

3. Select an input parameter to sweep by clicking the Parameter dropdown list box.

4. Specify the sweep range by clicking the dropdown list box adjacent to the variable and choose Edit. The Sweep Range dialog box appears:

212 Saber® User GuideD-2010.03-SP1

Page 227: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis tool - Test Definition and Procedures

5. Click the box besides Sweep Type and choose the desired sweep type as per the table below. The default is Step By.

6. Enter the sweep range values and click OK.

7. Either click the Plot button or click the Plot Graph icon from the One-Dimensional Parameter Sweep vertical icon bar. A 1-D graph is generated.

8. Click the Close button to close the One-Dimensional Parameter Sweep dialog box and return to the Worst-Case Analysis dialog box.

Sweep Type Description

Step By Specifies that the characteristic is going to be evaluated at a specified number of points equally spaced between the minimum and maximum values of the sweep range. For example, Step By 0.2 implies that points 0, 0.2, 0.4, 0.6... are going to be evaluated.

Linear Steps Specifies that the characteristic is going to be evaluated at a specified number of points equally spaced between the minimum and maximum values of the sweep range.

Log Steps Specifies that the characteristic is going to be evaluated at a specified number of points logarithmically spaced between the minimum and maximum values of the sweep range.

Set Values Specifies a list of values at which the performance characteristic is going to be evaluated.

Saber® User Guide 213D-2010.03-SP1

Page 228: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis tool - Test Definition and Procedures

Two-Dimensional Parameter Sweep (2-D Surface View)

To sweep two parameters:

1. Click Sweep 2 Parameter button from the Worst-Case Analysis toolbar. The Two-Dimensional Parameter Sweep dialog box appears:

Note: For the 2-D surface view, two sweep variables need to be specified.

2. Write a performance characteristic of interest as an algebraic expression of measures and/or parameters.

3. Select an input parameter to sweep by clicking the Variable dropdown list box.

214 Saber® User GuideD-2010.03-SP1

Page 229: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis tool - Test Definition and Procedures

4. Specify the sweep range by clicking the parameter dropdown list box and choosing Edit. The Sweep Range dialog box appears:

5. Click the box besides Sweep Type and choose the desired sweep type as per the table below. The default is Step By.

6. Enter the sweep range values and click OK.

7. Repeat Step 3 through Step 6 to specify the second sweep parameter and range.

8. Either click the Plot button or click the Plot Graph icon from the Two-Dimensional Parameter Sweep vertical icon bar. A 2-D graph is generated.

9. Click the Close button to close the Two-Dimensional Parameter Sweep dialog box and return to the Worst-Case Analysis dialog box.

Sweep Type Description

Step By Specifies that the characteristic is going to be evaluated at a specified number of points equally spaced between the minimum and maximum values of the sweep range. For example, Step By 0.2 implies that points 0, 0.2, 0.4, 0.6... are going to be evaluated.

Linear Steps Specifies that the characteristic is going to be evaluated at a specified number of points equally spaced between the minimum and maximum values of the sweep range.

Log Steps Specifies that the characteristic is going to be evaluated at a specified number of points logarithmically spaced between the minimum and maximum values of the sweep range.

Set Values Specifies a list of values at which the performance characteristic is going to be evaluated.

Saber® User Guide 215D-2010.03-SP1

Page 230: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis - Search Algorithms

Worst-Case Analysis - Search Algorithms

This section covers the following topics:■ Corner Versus Range Search■ Exhaustive Corner Search■ Sensitivity Corner Method■ Variable Neighborhood Search (VNS)■ Simulated Annealing■ Greedy Randomized Adaptive Search Procedures (GRASP)■ Genetic Algorithm■ Random Search with Interval Shrinkage■ Steepest Descent■ Downhill Simplex

Corner Versus Range Search A corner search limits the domain being searched to the combinations of minimum, maximum and nominal values of the parameters. This reduction of the search domain to 3N points allows faster convergence but does not necessarily lead to the absolute worst-case if it lies within the range of a parameter.

However a sequence of a corner search followed by a range search can significantly speed up the optimization process. In other words, the quick solution obtained with a corner search, fed to a range search, may speed up the convergence of the range search. Indeed a parameter with a tight tolerance tends to have a monotonic influence over the performance characteristic and its minimum and maximum values are where the performance characteristic reaches its extrema. Such parameters would have already been appropriately positioned by the corner search, allowing the range search to focus on the parameters which most extreme contribution is found within their range

It is also a good idea to include more than one range algorithms in the algorithm sequence in order to reduce the risk of finding a local minimum / maximum.

216 Saber® User GuideD-2010.03-SP1

Page 231: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis - Search Algorithms

See also■ Adding an Algorithm to a Test■ Worst-Case Analysis - Search Algorithms

Exhaustive Corner SearchThe search terminates when all corners have been evaluated or the budgeted number of evaluations has been reached (a corner is defined as a combination of minimum, maximum or nominal values). The method is only practical for a relatively small number of parameters. 10 parameters defined over a range already require 310 = 59 049 evaluations.

The method has only one setting: the maximum number of evaluations.

See also■ Adding an Algorithm to a Test■ Worst-Case Analysis - Search Algorithms

Sensitivity Corner MethodThe Sensitivity Method evaluates the gradient of the objective function at the current point and determines the most promising corner based on the slope along each parameter axis. The search terminates after only N+2 evaluations, N being the number of parameters: one initial evaluation at the current point, N evaluations at perturbed points around the current point along each parameter direction, and one final evaluation at the corner where the worst-case is expected to be found.

The method is only guaranteed to lead to the absolute worst-case if the objective function is monotonic with respect to all parameters. If not, the result depends on the current bias point.

It is a very efficient method if parameters have a tight tolerance range and have a monotonic influence over the performance characteristic. The method is not a recommended if the parameters exhibit strong interaction and have a highly non-linear influence.

The perturbation setting specifies the delta used to evaluate the gradient. It is expected to be a positive and small real number between 0 and 1. If x is the

Saber® User Guide 217D-2010.03-SP1

Page 232: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis - Search Algorithms

current value of a parameter defined over the range [a, b], the perturbed point is evaluated at:

x* = x + perturbation.(b-a)

See also■ Adding an Algorithm to a Test■ Worst-Case Analysis - Search Algorithms

Variable Neighborhood Search (VNS)Variable neighborhood search is a metaheuristic for solving combinatorial and global optimization problems which basic idea is a systematic change of neighborhood size or structure within a local search.

The pseudo code below describes the main structure of the VNS algorithm.

The outer loop iterates through a number of random restarts. Except the first iteration that uses the current parameter values, the iterations of the outer loop use random points as starting points for neighborhood searches. The random restarts are intended to help the search escape from local minima.

The inner loop iterates through a list of neighborhood sizes. For each neighborhood size, a local search centered on the current point is performed. If the local search finds an improved solution, a new local search is performed in the neighborhood of same size centered on the improved solution. If the local search does not bring any improvement, the next neighborhood size in the list is used for a new local search in the neighborhood of the incumbent solution. The inner loop exits when all neighborhood sizes have been evaluated or the global budget of evaluations is reached.

218 Saber® User GuideD-2010.03-SP1

Page 233: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis - Search Algorithms

procedure VNS (point, random restarts, neighborhood size list, stalled local evaluations)

k <- 0repeat

if (k > 0)point <- randomPoint

end ifOF <- getOF(point)size <- first size in neighborhood size listrepeat

point <- localSearch (point, size, stalled local evaluations)

if (getOF(point) < OF) thenOF <- getOF (point)

elsesize <- next size in neighborhood size

listend ifuntil all neighborhood sizes have been

evaluated or stop criteria are met

k + 1

until k = random restarts

return point

end

The neighborhood sizes are real numbers between zero and one. Small neighborhood sizes allow intensification of the search while large sizes allow diversification and tend to act as random restarts. Best results are typically obtained with two to three neighborhood sizes, for example 0.2 and 0.05.

The local search procedure (which pseudo code is shown below) evaluates random neighbors of the incumbent solution and exits after a number of consecutive stalled evaluations.

The distinction between range and corner search lies in the randomNeighbor procedure. A special metric that applies to parameter spaces of both discrete and continuous values is used to select random points within a certain distance of an incumbent solution.

procedure localSearch (point, size, stalled local evaluations)bestPoint <- pointbestOF <- getOF(point)count <- 0

Saber® User Guide 219D-2010.03-SP1

Page 234: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis - Search Algorithms

repeat point <- randomNeighbor (point , size)count <- count + 1if (getOF(point) < bestOF) then

bestPoint <- pointbestOF <- getOF(point)count <- 0

end ifuntil stop criteria are met or count = stalled local

evaluations

return bestPoint

end

See also■ Adding an Algorithm to a Test■ Worst-Case Analysis - Search Algorithms

Simulated AnnealingMuch of the description of the VNS algorithm applies to Simulated Annealing. The specificity of Simulated Annealing lies in its acceptance criterion. In order to avoid local minima and foster a broader exploration, Simulated Annealing occasionally accepts points that degrade the incumbent solution. The probability that a point be accepted is defined as follows:

p = min (1,e(OF(incumbent)-OF(candidate))/T)

If the candidate point improves the incumbent solution, the exponential term is greater than 1 and the candidate point is always accepted (p = 1). If it degrades the incumbent solution, its probability of being accepted quickly tends toward zero when the temperature parameter T decreases or when the degradation increases. In order words, degradations are more likely to be tolerated at high temperatures and if they are small.

The temperature coefficient is changed according to a cooling schedule illustrated in Figure 7. The process of minimizing the objective function is analogous to bringing a piece of metal to its lowest state of thermo-dynamic energy by cooling it down in a controlled fashion. The cooling schedule is characterized by an initial temperature and a rate of decay. The value of these settings is a trade-off between exploration and speed of convergence. A fast cooling schedule (decay close to 0) and a low initial temperature will allow for

220 Saber® User GuideD-2010.03-SP1

Page 235: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis - Search Algorithms

little exploration but faster convergence (possibly to a local minimum). Optimal values for these settings generally depend on the objective function and may require some experimentation by the user.

Figure 7 Simulated annealing cooling schedule.

The pseudo code of the Simulated Annealing local search is shown below (the procedure rand returns a random number between 0 and 1 with a uniform distribution).

procedure localSearch (point, size, stalled local evaluations, temp0, alpha)

bestPoint <- point

bestOF <- getOF(point)

temp <- temp0

count <- 0

repeat

point <- randomNeighbor (point , size)

count <- count + 1

if (exp((bestOF-getOF(point))/temp > rand()) then

bestPoint <- point

bestOF <- getOF(point)

Saber® User Guide 221D-2010.03-SP1

Page 236: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis - Search Algorithms

temp <- temp · alpha

count <- 0

end if

until stop criteria are met or count = stalled local evaluations

return bestPoint

end

See also■ Adding an Algorithm to a Test■ Worst-Case Analysis - Search Algorithms

Greedy Randomized Adaptive Search Procedures (GRASP)The working of the GRASP algorithm is identical to VNS except that it includes an additional step: the construction of an improved solution in the neighborhood of the incumbent one. As shown in the pseudo code below, the construction phase happens within the main loop of the algorithm and before the local search.

procedure GRASP (point, random restarts, neighborhood size list, stalled local evaluations)

k <- 0

repeat

if (k > 0)

point <- randomPoint

end if

OF <- getOF(point)

size <- first size in neighborhood size list

repeat

222 Saber® User GuideD-2010.03-SP1

Page 237: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis - Search Algorithms

point <- construct (point)

point <- localSearch (point, size, stalledlocal evaluations)

if (getOF(point) < OF) then

OF <- getOF (point)

else

size <- next size in neighborhood size list

end if

until all neighborhood sizes have been evaluated or stop criteria are met

k <- k + 1

until k = random restarts

return point

end

The construct procedure shown below takes as input a solution x. It starts by allowing all coordinates of x to change (i.e. they are unfixed). In turn, a line search is performed in each unfixed coordinate direction i of x with the other n-1 coordinates of x held at their current values. The value zi for the ith coordinate that minimizes the objective function is saved, as well as the objective function value gi. After the line search is performed for each of the unfixed coordinates, a restricted candidate list (RCL) is formed that contains the unfixed coordinates i whose gi values are less than or equal to (1 - a) * min + a · max, where max and min are, respectively, the maximum and minimum gi values over all unfixed coordinates of x, and a a random number in [0,1]. From the RCL, a coordinate is chosen at random, say j Œ RCL, and the coordinate xj is set equal to zj. From now on, the coordinate j of x is fixed. Choosing a coordinate in this way ensures randomness in the construction phase. The above procedure is repeated until all of the n coordinates of x have been fixed. At that stage, x is returned from the construction phase.

procedure construct (x)

n <- number of coordinates in point x

Saber® User Guide 223D-2010.03-SP1

Page 238: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis - Search Algorithms

S <- {1, 2, …, n}

a <- rand( )

while S ¼ Ø do

min <- + •

max <- - •

for i = 1, …, n do

if i ΠS then

z <- lineSearch(x, i)

gi <- getOF(z)

if min > gi then min <- giif max < gi then max <- gi

end if

end for

RCL <- Ø

for i = 1, …, n do

if i Œ S and gi £ (1 - a)·min + a · max then

RCL <- RCL U { i }

end if

end for

j <- randomySelectElement(RCL)

xi <- zi; S <- S \ { j }

end while

return x

end

224 Saber® User GuideD-2010.03-SP1

Page 239: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis - Search Algorithms

See also■ Adding an Algorithm to a Test■ Worst-Case Analysis - Search Algorithms

Genetic AlgorithmA population of points, encoded as binary streams of 0 and 1, is evolved through random mutations and crossovers. The fittest points are retained from one generation to the next.

The following are the algorithms settings:■ Population size: a large population allows more diversification but requires

more evaluations.■ Coding bits: this integer number defines the resolution of the continuous

domain. The search domain of a parameter defined over a range is handled as a set of 2bits values. If zero is not included in the range of the parameter, the spacing is logarithmic. It is linear otherwise. Since the genetic algorithm performs combinatorial search over discrete domains, this setting is only used for parameters defined over continuous ranges, not for parameters defined over a set of discrete values

■ Crossover rate: real number between 0 and 1 defining the probability of crossover. A crossover happens when two solution points exchange a portion of their coordinate values to generate two new points.

■ Mutation rate: real number between 0 and 1 defining the probability that a binary symbol in the encoded stream of a solution point gets distorted from one generation to the next. The mutation rate should be chosen close to zero.

■ Number of generations: the algorithm terminates after the specified number of generations is achieved.

See also■ Adding an Algorithm to a Test■ Worst-Case Analysis - Search Algorithms

Saber® User Guide 225D-2010.03-SP1

Page 240: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis - Search Algorithms

Random Search with Interval ShrinkageGiven an objective function to minimize and an initial range for each parameter, a series of Nt tests is performed, a test being a random evaluation of the Objective Function within the parameter range. At the end of the Nt tests, the parameter values that yielded to the best Nb results define the search range used for the next step (Nb < Nt). The process is iterated Ns times (number of steps), each step leading to a reduced parameter range.

Figure 8 shows three successive steps of the algorithm for a search space of one parameter.

Figure 8 Successive Shrinking of Intervals

See also■ Adding an Algorithm to a Test■ Worst-Case Analysis - Search Algorithms

Steepest DescentThe Steepest Descent algorithm evaluates the gradient of the objective function at the current point and performs a line search in the direction of steepest gradient. The minimum point obtained along this line serves as new

226 Saber® User GuideD-2010.03-SP1

Page 241: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis - Search Algorithms

location for gradient evaluation and the procedure is repeated until no further improvement is obtained.

Parameters defined over discrete domains (where gradients are not defined) do not participate in the search and are held fixed to their current values.

The convergence is generally fast and the line search can be further accelerated by using distributed computing. However the method is sensitive to the starting point and is prone to converge toward local minima. This can be alleviated by choosing a number of global random restarts to allow more exploration.

The perturbation setting defines the fraction of parameter range used as delta to evaluate the partial derivatives of the objective function. This setting is similar to the one in the Sensitivity Corner Method.

The resolution setting, also defined as a fraction of parameter range, is used as stop criterion by the line search.

Figure 9 Steepest Descent Search

See also■ Adding an Algorithm to a Test■ Worst-Case Analysis - Search Algorithms

Saber® User Guide 227D-2010.03-SP1

Page 242: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis - Application Programming Interface

Downhill SimplexThe downhill simplex (also known as amoeba) algorithm is an attractive alternative to steepest descent in that it can better overcome local minima. A set of (N+1) points (N being the number of parameters) forms a tetrahedron (or amoeba) that gets transformed through reflection, contraction and expansion operations based on the values of the objective function at these points. Without computationally expensive gradient evaluations, the amoeba gets a sense of the terrain and often crawls toward the global minimum of the objective function in a reasonably small number of evaluations.

Like VNS, the downhill simplex algorithm includes a local search loop where successive neighborhood sizes are evaluated. Here, the neighborhood size defines the size of the initial amoeba.

Because the geometrical transformations of the amoeba are continuous in nature, the parameters defined over sets of discrete values do not participate in the search.

The method results can be sensitive to the initial points of the amoeba. A global restart option is therefore available to run different initial amoebas sequentially and increase the odds of finding a globally optimal solution.

The search can be accelerated by using distributed computing, allowing multiple amoebas to be stepped in parallel.

See also■ Adding an Algorithm to a Test■ Worst-Case Analysis - Search Algorithms

Worst-Case Analysis - Application Programming Interface

The Worst-Case Analysis - Application Programming Interface (API) provides you the ability to specify, execute, and extract results from test suites and individual test from a command line interface.

This section covers the following topics:

228 Saber® User GuideD-2010.03-SP1

Page 243: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis - Application Programming Interface

■ WCA API Command Reference■ Optimizer API Command Reference■ Exporting an AIM Script

WCA API Command ReferenceThe API allows most operations available through the Graphical User Interface (GUI) to be executed in a Tcl/AIM script without the GUI up.

This section covers the following commands:■ wca:open■ wca:save■ wca:close■ wca:add■ wca:config■ wca:delete■ wca:run■ wca:stop■ wca:list■ wca:info■ wca:eval■ wca:clear■ wca:help

wca:openCreates a container with the specified name for a suite of tests. If a container of the specified name already exists, then the container is opened and used.

Syntaxwca:open -design containerName ?options?

ReturnsReturns the handle of the created / opened container.

Saber® User Guide 229D-2010.03-SP1

Page 244: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis - Application Programming Interface

Arguments

Examplewca:open -design voltage_divider

wca:saveSaves the test suite in the active container.

Syntaxwca:save containerHandle ?filename?

ReturnsNone

Argument Description

-design containerName Creates a container with the specified name for a suite of tests. If a container of the specified name already exists, then the container is opened and used.

-simulator saber|saberhdl

This option specifies the simulator to use when executing the analyses.

Allowed Values: saber | saberhdl

-parallel number This option specifies the number of parallel evaluations.

Default value: 1

-timeout number This option specifies the maximum number of seconds the evaluation of a point can take before being aborted.

-queue name This option specifies the grid queue to use for parallel evaluation.

Default: None

-files files List of simulation files needed to execute the analyses and measurements. This list includes the design netlist and simulation models consumed by it.

The -files option is used when the -parallel option is strictly greater than 1.

230 Saber® User GuideD-2010.03-SP1

Page 245: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis - Application Programming Interface

Arguments

Examplewca:save $handle

wca:closeCloses the active container.

Syntaxwca:close containerHandle

ReturnsNone

Arguments

Examplewca:close $handle

wca:addAdds an object to the specified handle and provides various options for calibrating the object:■ wca:add...test■ wca:add...analysis■ wca:add...measure■ wca:add...objective■ wca:add...algorithm■ wca:add...parameter

Argument Description

save containerHandle Save the test suite in the file containerName.ai_wca.

The test suite can subsequently be loaded in the tool with the File > Open command.

Argument Description

close containerHandle Close the container of the specified handle.

Saber® User Guide 231D-2010.03-SP1

Page 246: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis - Application Programming Interface

wca:add...test

Adds a test to the container of specified handle and returns the handle of the new test.

Syntaxwca:add containerHandle test ?-name testName? ?-loops

number? ?-disabled 0 | 1?

ReturnsReturns the handle of the new test.

Arguments

Examplewca:add $container test -name "diff upper limit”

wca:add...analysis

Adds an analysis to the test of specified handle and returns the handle of the new analysis. Four types of analyses are supported in the WCA Tool: dc, ac, dt and tr. The analyses are evaluated sequentially for the same combination of searched parameters.

Alter commands can be inserted between analysis, allowing design configurations such as temperature, position of switches, and so on to be set for different analysis. This allows objectives tied to different design configurations to be optimized concurrently.

Note: Parameters being altered cannot participate in the optimization search.

Syntaxwca:add testHandle analysis –type dc | ac | tr | dt | alter

?options?

Argument Description

-name testName Name of the test

-disabled 0|1 Specify if the test is run with wca:run

-loops The number of loops defines the number of iterations over the search algorithm sequence.

The default is 1.

232 Saber® User GuideD-2010.03-SP1

Page 247: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis - Application Programming Interface

ReturnsReturns the handle of the new analysis.

Arguments

Refer to the Saber and Saber HDL Reference Manual for more information on specifying the analysis options.

Examplewca:add $test analysis -type dc

wca:add...measure

Adds a measure to the test of specified handle.

Argument Description

-type dc DC operating point analysis (dc)

Allowed options: density, holdnodes, calibrate, tresolution, aditer, eviter, deps, feps, algstepping, algstart, fniter, akiter, nslimit, and nsdensity

-type tr Transient analysis (tr)

Allowed options: tend, tstep, terror, terrtype, terrnorm, density, tresolution, aditer, zditer, deps, feps, stepsize, samestep, tsmax, tsmin, method, order, algorithm, tniter, fniter, fkiter, nslimit, and nsdensity

-type ac Small signal analysis (ac)

Allowed options: fbegin, fend, npoints, increment, and density

-type dt DC transfer analysis (dt).

Allowed options: sweep, swrange, density, tresolution, aditer, eviter, deps, feps, algstepping, algstart, and fniter, akiter, and nslimit

-type alter Alter command (alter) - The alter command allows design parameters to be altered within a sequence of analyses. This is useful when objectives are tied to different operating conditions controlled by a parameter that is itself not part of the search such as temperature.

Allowed options: parameter and value.

-disabled 0|1 Specify if the test is run with wca:run

Saber® User Guide 233D-2010.03-SP1

Page 248: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis - Application Programming Interface

A measure is an intermediate object that consumes the results of the analyses (signals) and produces measurement values used in the objectives. The standard Saber Guide measures are supported in the WCA Tool (e.g. y value at x, rise time, slope, overshoot, phase margin, amplitude, etc).

A measure of "waveform difference" is also available, allowing a simulated waveform obtained from an analysis to be compared with a target waveform found in a designated plotfile. Useful for model characterization, the waveform difference is obtained by summing the "point difference" terms between the y values of the target waveform and the corresponding y values of the simulated one measured at the same x values.

Therefore there are as many "point difference" terms as there are points in the target waveform. An exponent is applied to each "point difference" term which value can be 1, 2, 3 or Inf. Exponent 2 corresponds to the "least square" difference and Inf to the "minimax" difference (to use in order to minimize the maximum point difference among all points). Please note that it is currently not possible to assign weights to individual points. But if a certain region of the target characteristic is of most importance, providing a higher density of points in that region will give it more weight.

If the set of provided measures is not sufficient, custom measures written as Tcl/AIM procedures can also be defined. You will need to choose the measure function as "User Procedure" and provide the name of a procedure. The procedure is expected to take the waveform handle of the simulated signal as argument and return a real number value.

Syntaxwca:add testHandle measure options ?options?

ReturnsReturns the handle of the new measure.

234 Saber® User GuideD-2010.03-SP1

Page 249: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis - Application Programming Interface

Arguments

Examplewca:add $test measure -name diff -analysis $analysis -signal diff -type at -xval end

Argument Description

-name measureName This option specifies a name that can be used in an objective expression to reference the measure.

-analysis analysisHandle

This option specifies the analysis that produces the signals used by the measure.

-signals signalName This option lists the signals appearing in waveform expression.

-wfexpr expression This option specifies the waveform on which the measure is applied. The waveform expression algebraically combines the signals specified with the option –signals.

For example, a valid expression is cos(a)*10+real(b)+10 with a and b signals.

-type

amplitude | at | average | bandpass | baseline | dc | dutycycle | falltime | frequency | gainmargin | highpass | locmaximum | locminimum | lower | lowpass | maximum | middle | minimum | overshoot | peaktopeak | period | phasemargin | procedure | pulsewidth | risetime | rms | settle | slewrate | slope | slope | std_deviation | stopband | threshold | topline | undershoot | upper | variance | wfdiff | yield

The list of optional options depends on the -type option.

Saber® User Guide 235D-2010.03-SP1

Page 250: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis - Application Programming Interface

wca:add...objective

Adds an objective to the test of specified handle.

Syntaxwca:add testHandle objective –expression expression ?-weight

weight?

ReturnsReturns the handle of the new objective.

Arguments

Examplewca:add $test objective -expression max(diff)-weight 1

wca:add...algorithm

Adds an algorithm to the test of specified handle.

Syntaxwca:add testHandle algorithm –type type ?options?

ReturnsReturns the handle of the new algorithm.

Argument Description

-expression expression The objective expression is in the form min(expr1), max(expr1), expr1 > expr2, expr1 < expr2 and expr1 = expr2.

Where expr1 and expr2 algebraic expressions of measures and parameters.

-weight weight The weight is optional and defaults to 1.

236 Saber® User GuideD-2010.03-SP1

Page 251: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis - Application Programming Interface

Arguments

Examplewca:add $test algorithm -type vnr -prox_mode 0.2 -max_settled 1000

wca:add...parameter

Adds a parameter to the test of specified handle.

Syntaxwca:add testHandle parameter options ?options?

ReturnsReturns the handle of the new parameter.

Argument Description

-type type

Following is the list of algorithms:■ ec - Exhaustive Corner Search■ ga - Genetic Algorithm■ rswis - Random Search with Interval Shrinkage■ steepdesc - Steepest Descent■ vnr - Variable Neighborhood Search (VNS)■ annealing - Simulated Annealing■ grasp - Greedy Randomized Adaptive Search Procedures (GRASP)■ simplex - Ameoba/Downhill Simplex■ sc - Sensitivity Corner Method

Saber® User Guide 237D-2010.03-SP1

Page 252: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis - Application Programming Interface

Arguments

Exampleset p0 [wca:add $test parameter -name dc(v.ub) -domain range -current 13.5 -min 8 -max 18]

set p1 [wca:add $test parameter -name dc(v.vref) -domain range -current 3.3 -min 3.1515 -max 3.4485]

Argument Description

-name parameterName Specifies the full name of the parameter in the design.

-domain range | set Defines the permissible values that the parameter can take. It is either a range [min, max] or a set of discrete values.

-current value Specifies the current value of the parameter. The current value is used at the beginning of a search and gets modified as the optimization progresses.

-nominal value The nominal value is applied to the current value when resetting the parameters to their nominal values. The nominal value (along with the minimum and maximum values) is used to define the constellation of corner points.

?-min value? Specifies the lower limit of the range when the domain option is set to range.

?-max value? Specifies the upper limit of the range when the domain option is set to range.

?-values list? Specifies the list of parameter values when the domain option is set to set.

?-alias alias? Allows you to assign a short name to the parameter that can be used in objective expressions. Allowed alias values are alpha numerical strings starting with a letter.

?-fixed 0|1? Specifies whether the parameter participates in the search. The default value is 0.

238 Saber® User GuideD-2010.03-SP1

Page 253: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis - Application Programming Interface

set p3 [wca:add $test parameter -name ileak(leakagecomp.leakage) -domain range -current 0 -min -1u -max 1u]

wca:configQuery or alter the option(s) of the object of specified handle. All options except -type and -design are reconfigurable

Syntaxwca:handle ?option? ?-option value?

ReturnsReturns the value of the specified handle obtained at the end of the search.

Exampleset r1 [wca:config $parameter1 -current]

wca:deleteDeletes the object of specified handle. The command applies to all objects except containers (use wca:close for containers).

Syntaxwca:delete handle

ReturnsNone

Examplewca:delete $handle

wca:runExecute the search for the test of specified handle. The current values of the test parameters are altered as the search progresses.

Syntaxwca:run testHandle

ReturnsNone

Examplewca:run $test

Saber® User Guide 239D-2010.03-SP1

Page 254: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis - Application Programming Interface

wca:stopInterrupt the on-going search of the test of specified handle.

Syntaxwca:stop testHandle

ReturnsNone

Examplewca:stop $test

wca:listReturns the list of handles of the objects of specified type that are part of the object of specified handle.■ The specified handle is either the handle of a container or a test.■ For a container handle, type must be test.■ For a test handle, type must be analysis, measure, objective, algorithm or

parameter.

Syntaxwca:list handle type

ReturnsReturns the list of handles of the objects of specified type that are part of the object of specified handle.

wca:infoReturn information about the object of specified handle. If no options are provided, the command returns all information available for the object.

Syntaxwca:info handle ?options?

ReturnsReturns information about the object of specified handle.

240 Saber® User GuideD-2010.03-SP1

Page 255: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis - Application Programming Interface

Arguments

wca:evalEvaluate the measure of specified handle for the current values of parameters in the test.

Syntaxwca:eval measureHandle

ReturnsReturns the value of the measure.

Examplewca:eval $measure

wca:clearDelete all tests in the container of specified handle.

Syntaxwca:clear containerHandle

ReturnsNone

Examplewca:clear $handle

Argument Description

-type Return the type of the object. For example, test, analysis, measure,...

-algorithm Return the currently active algorithm. This option applies to a test that is being run and is used to get the status of an on-going search.

-eval Return the evaluation count of the active algorithm. This option applies to a test that is being run and is used to get the status of an on-going search.

-sabercommand The option applies to analysis objects and returns the simulator command associated with an analysis object.

Saber® User Guide 241D-2010.03-SP1

Page 256: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis - Application Programming Interface

wca:helpReturn the list of commands available in the WCA API along with their synopsis.

Syntaxwca:help

ReturnsReturn the list of commands available in the WCA API along with their synopsis.

Examplewca:help

Optimizer API Command ReferenceThe WCA tool operates on a Saber design: the parameters being searched or optimized belong to a design and the evaluation of the objective function relies on analyses to be performed by the simulator followed by the measurement of plotfile results.

However there are situations where an optimization task is to be performed outside the context of a design, the objective function being defined directly through a Tcl/Tk procedure. This is for example the case when characterizing the parameters of a model which response is computed by a Tcl/Tk procedure (possibly calling a C routine).

An optimizer function is available to accommodate this need. This function supports all the search algorithms available in the WCA tool without requiring any license. The function however does not allow parallel evaluations on a compute grid or a multi core processor.

It is accessible through both a graphical user interface and an API. The graphical user interface allows you to add, delete or edit the sequence of algorithms used by the optimization task as well as their settings. The GUI also allows you to start, stop or monitor the search. Defining the parameters to optimize can only be done through the API.

This section covers the following commands:■ opt:create■ opt:gui■ opt:add

242 Saber® User GuideD-2010.03-SP1

Page 257: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis - Application Programming Interface

■ opt:config■ opt:delete■ opt:run■ opt:stop■ opt:list■ opt:clear■ opt:help■ Optimization Example

opt:createCreates an optimization task.

Syntaxopt:create -ofcmd cmd ?options?

ReturnsReturns the handle of the created optimization task.

Saber® User Guide 243D-2010.03-SP1

Page 258: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis - Application Programming Interface

Arguments

opt:guiQuery or set the visibility of the window associated with the optimization task of specified handle.

Argument Description

-ofcmd cmd This option is required and specifies the objective function as a Tcl command. The command must have as many arguments as parameters being searched and must return a numerical value (to be minimized by the search algorithms).

-initcmd cmd If defined, this option specifies a Tcl command being evaluated once at the beginning of the search. The command is intended to perform some initialization. It expects no argument and returns the empty string.

-updatecmd cmd If defined, this option specifies a Tcl command being called at each evaluation of the objective function. The command receives as arguments the parameter values of the best solution found so far (which are not necessarily the parameter values of the current evaluation). The command returns the empty string.

-editcmd cmd If defined, this option specifies a Tcl command called when a change to the algorithm settings is made through the graphical user interface. This callback command can for example be used to save the algorithm information.

-win path If defined, this option specifies the window root path of the graphical user interface (GUI) associated with the optimization task.

-wintitle title If defined, this option specifies the title of the window associated with the optimization task. The option defaults to “Optimizer”.

-ofname name If defined, this option specifies the label shown in the GUI progress view. The option defaults to “Error”.

244 Saber® User GuideD-2010.03-SP1

Page 259: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis - Application Programming Interface

Syntaxopt:gui optHandle ?0|1?

ReturnsNone

opt:addAdds an object to the specified handle and provides various options for calibrating the object:■ opt:add...algorithm■ opt:add...parameter

opt:add...algorithm

Adds an algorithm to the optimization task of specified handle.

Syntaxopt:add optHandle algorithm –type type ?options?

ReturnsReturns the handle of the new algorithm.

Arguments

opt:add...parameter

Add a parameter to the optimization task of specified handle.

Argument Description

-type type Following is the list of algorithms:■ ec - Exhaustive Corner Search■ ga - Genetic Algorithm■ rswis - Random Search with Interval Shrinkage■ steepdesc - Steepest Descent■ vnr - Variable Neighborhood Search (VNS)■ annealing - Simulated Annealing■ grasp - Greedy Randomized Adaptive Search Procedures (GRASP)■ simplex - Ameoba/Downhill Simplex■ sc - Sensitivity Corner Method

Saber® User Guide 245D-2010.03-SP1

Page 260: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis - Application Programming Interface

Syntaxopt:add optHandle parameter options ?options?

ReturnsReturns the handle of the new parameter.

Arguments

opt:configQuery or alter the option(s) of the object of specified handle. All options except -type are reconfigurable

Syntaxopt:config Handle ?option? ?-option value?

ReturnsReturns the value of the specified handle obtained at the end of the search.

opt:deleteDeletes the object of specified handle. If the handle is the handle of an optimization task with a window, the window is destroyed.

Argument Description

-name parameterName Specifies the full name of the parameter in the design.

-domain range | set Defines the permissible values that the parameter can take. It is either a range [min, max] or a set of discrete values.

-current value Specifies the current value of the parameter. The current value is used at the beginning of a search and gets modified as the optimization progresses.

?-min value? Specifies the lower limit of the range when the domain option is set to Range.

?-max value? Specifies the upper limit of the range when the domain option is set to Range.

?-values list? Specifies the list of parameter values when the domain option is set to set.

246 Saber® User GuideD-2010.03-SP1

Page 261: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis - Application Programming Interface

Syntaxopt:delete handle

ReturnsNone

opt:runExecute the search for the optimization task of specified handle. The current values of the task parameters are altered as the search progresses. The search seeks the combination of parameter values that minimizes the objective function.

Syntaxopt:run optHandle

ReturnsNone

opt:stopInterrupt the on-going search of the optimization task of specified handle.

Syntaxopt:stop optHandle

ReturnsNone

opt:listReturns the list of handles of the objects of specified type that are part of the optimization task of specified handle.

The option type is either algorithm or parameter.

Syntaxopt:list optHandle type

ReturnsReturn the list of handles of the objects of specified type that are part of the optimization task of specified handle.

Saber® User Guide 247D-2010.03-SP1

Page 262: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis - Application Programming Interface

opt:clearClear the results obtained during prior runs of the optimization task of specified handle.

Syntaxopt:clear optHandle

ReturnsNone

opt:helpReturn the list of commands available in the Optimizer API along with their synopsis.

Syntaxopt:help

ReturnsReturn the list of commands available in the Optimizer API along with their synopsis.

248 Saber® User GuideD-2010.03-SP1

Page 263: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis - Application Programming Interface

Optimization ExampleThe following example is a script that looks for the value of x minimizing a parabolic function:

# Objective Function to minimize

proc OF {x} {

return [calc ($x-50)*($x-50)]

}

# Update command

proc Update {args} {

# Show value of x found so far that minimizes OF

AimMessage "x = $args"

}

set hdl [opt:create -ofcmd OF -updatecmd Update]

opt:add $hdl parameter -name x -current 1 -min 0 -max 100

opt:add $hdl algorithm -type vns

opt:run $hdl

opt:config $hdl -win .optimizer -wintitle "Optimizer Example"

opt:gui $hdl 1

Exporting an AIM ScriptThe GUI is useful to set up the tests, calibrate the algorithm settings and choose the parameter initial values. The tests can then be exported as Tcl/AIM script and run in batch mode.

To export the AIM script:

1. Click File > Export > AIM Script from the Worst-Case Analysis menu bar. The Export AIM Script dialog box appears.

2. Navigate to the location where you wish to save the AIM script, enter a name for the script, and click OK.

Saber® User Guide 249D-2010.03-SP1

Page 264: Saber User Guide 2010.03

Chapter 14: Saber Worst-Case Analysis ToolWorst-Case Analysis - Application Programming Interface

Result: The test suite is exported to an AIM script with the specified name and location.

250 Saber® User GuideD-2010.03-SP1

Page 265: Saber User Guide 2010.03

15

15Distributed Processing

Describes how to use distributed processing in Saber and Saber HDL simulations.

Distributed processing significantly improves the run time for Saber or Saber HDL statistical and loop analyses by using a computational grid. In a Compute Grid, multiple computers and processors on the same network work in parallel

This section covers the following topics:■ Distributed Iterative Analysis (DIA)■ Experiment Editor - Submit to Grid■ Grid Status

Distributed Iterative Analysis (DIA)

Allows you to distribute iterative simulation jobs such as Monte Carlo, Vary or Sensitivity analysis on a remote machine using the Compute Grid. This allows simulation runs that would otherwise run in series on a single machine to run in parallel across a Compute Grid.

Note: When using DIA, Saber runtime licences can also be used.

This section covers the following topics:■ Analyses Supported in DIA■ Submitting DIA Jobs to Compute Grid

Saber® User Guide 251D-2010.03-SP1

Page 266: Saber User Guide 2010.03

Chapter 15: Distributed ProcessingDistributed Iterative Analysis (DIA)

Analyses Supported in DIAFollowing analyses are supported in the distributed processing environment:

Note: Parameters used in Monte Carlo and Vary analysis in Saber differs from the parameters used in Saber HDL.

Submitting DIA Jobs to Compute GridYou can submit any of the following individual analysis to the Compute Grid:■ Monte Carlo■ Vary■ Sensitivity (Available only with Saber HDL Simulator)

Perform the following steps to submit a DIA job to the Compute Grid.

1. From Saber Sketch or Saber Harness, launch any of the above analysis forms and define the following parameters for submitting the analysis to the Compute Grid:

2. Click OK to submit the job to the Compute GridCompute Grid.

Simulator Supported Analyses

Saber ■ Monte Carlo■ Vary

Saber HDL ■ Monte Carlo■ Vary■ Sensitivity

Parameter Description

Parallel Runs Specify the number of parallel processes to be run on the Compute Grid.

Grid Queue Specify the queue to be used to submit the runs. See Grid Queue for more information on specifying grid queues.

252 Saber® User GuideD-2010.03-SP1

Page 267: Saber User Guide 2010.03

Chapter 15: Distributed ProcessingExperiment Editor - Submit to Grid

3. To view the status of the submitted job click the Grid Status button from

the toolbar. The Grid Status dialog box is displayed.

See Grid Status for more information on the Grid Status dialog box.

Experiment Editor - Submit to Grid

The Saber Experiment Editor provides a Submit to Grid option for executing Saber analyses as a batch job on the Compute Grid. The Experiment Editor also allows you to check the job status and load resulting plotfiles into CosmosScope.

Saber® User Guide 253D-2010.03-SP1

Page 268: Saber User Guide 2010.03

Chapter 15: Distributed ProcessingExperiment Editor - Submit to Grid

To submit an experiment to the Compute Grid.

1. From Saber Sketch or Saber Harness, choose Edit > Experiment or click the

Experiment Editor button. The Experiment dialog box is displayed:

Note: You can define an experiment as desired and choose one of the following options:

If you choose... then...

OK the experiment is run in series on the local machine.

File > Submit to Grid the experiment is run on a machine specified by the Grid Queue.

254 Saber® User GuideD-2010.03-SP1

Page 269: Saber User Guide 2010.03

Chapter 15: Distributed ProcessingExperiment Editor - Submit to Grid

2. Define an experiment as desired and choose File > Submit to Grid. The Grid Submit dialog box is displayed:

Label Description

Design Netlist Specifies the design file to be run by the simulator, either a .sin or .ai_vhddsn file. A design file is automatically detected if a design is already opened in Saber Sketch or Saber Harness.

Design Workspace Specifies the directory where the design was found, and where any files will be copied from.

Job Workspace Creates a new working directory for the job. The new working directory is created inside your current working directory.

By default, Saber creates the new directory in the format <Name of the Netlist File>_GRID<#>, where (#) is the number of times the job has been submitted to the grid.

Grid Queue Allows you to select the queue the job will be run on. See Grid Queue for more information on specifying grid queues.

Saber® User Guide 255D-2010.03-SP1

Page 270: Saber User Guide 2010.03

Chapter 15: Distributed ProcessingExperiment Editor - Submit to Grid

3. Click OK to submit the job to the Compute Grid. The job is submitted to the Compute Grid and the Grid Status dialog box is automatically displayed:

See Grid Status for more information on the Grid Status dialog box.

4. (Optional) You can view the status of the submitted jobs at a later point in time in one of the two ways:

Available Files / Files to Copy

Lists the files available for copying into the new workspace. Some extensions are selected by default. The selections in Files to Copy are saved to a .ai_dsncfg file by the same name as the design to reload the files automatically when the design is used again.

If you want to view the job status from... then...

the Experiment Editor Choose File > Check Grid Status

Saber Sketch or Saber Harness toolbarClick the Grid Status button from the toolbar

Label Description

256 Saber® User GuideD-2010.03-SP1

Page 271: Saber User Guide 2010.03

Chapter 15: Distributed ProcessingGrid Status

Grid Status

The Grid Status dialog box allows you to view the status of all submitted jobs. By default, the Grid Status dialog box shows all jobs started during the current session, plus any others jobs that you may have started that are still running.

Note: Jobs started by another job are shown as a child of the main job.

This section covers the following topics:■ Grid Status Tabs■ Job Categories■ Grid Status Operations

Saber® User Guide 257D-2010.03-SP1

Page 272: Saber User Guide 2010.03

Chapter 15: Distributed ProcessingGrid Status

Grid Status Tabs

Job Categories

Grid Status Operations

Tab Description

Time Started Displays the time the job was started, using the time zone it was started in.

Grid Displays the type of grid the job started on.

Hostname Displays the name of the host machine the job is running on.

Handle Displays the job handle given to the job by the grid manager.

Report Displays any error messages reported by the job.

Category Description

Local Jobs running as part of a command in the current application on your local machine. Closing the application would result in a failed run.

Remote Jobs running apart from the current application. Closing the application or switching off the local machine does not impact the job unless the local machine is also a host for the job.

Finished Jobs that have finished execution

Operation Icon Description

Open Job Workspace On Windows platform, opens an Explorer window to the job's workspace

On other platforms, displays the path to the job's workspace.

Kill Jobs Stops execution of the selected jobs.

Delete Jobs Stops the selected job if it is still running, and deletes all files associated with the job.

258 Saber® User GuideD-2010.03-SP1

Page 273: Saber User Guide 2010.03

Chapter 15: Distributed ProcessingGrid Status

Load Job Results Prompts you for a job log file and loads it into the status window. This allows you to view the status of previously finished jobs; when they were run.

Unload Job Results Unloads the selected jobs from the Grid Status dialog box but are not physically deleted.

Refresh Rate (in Seconds) - Specify the frequency at which the contents of the Grid Status should be refreshed.

Operation Icon Description

Saber® User Guide 259D-2010.03-SP1

Page 274: Saber User Guide 2010.03

Chapter 15: Distributed ProcessingGrid Status

260 Saber® User GuideD-2010.03-SP1

Page 275: Saber User Guide 2010.03

16

16Checking Linear Systems AnalysisSpecifications

Discusses how to characterize systems using Linear Systems Analysis (LSA).

Linear Systems Analysis (LSA) characterizes systems utilizing pole-zero analysis. This allows you to fine tune your design, and keep track of your pole-zero specifications.The following are three analyses related to Linear Systems Analysis:■ Pole-zero analysis determines the poles and zeros of a system.■ Linear Time Domain Response analysis determines the time domain

response of a system using pole-zero data.■ Frequency Response analysis determines the frequency response of a

system using pole-zero data.

Pole-zero analysis can be included within a Vary loop to perform a pole-zero sweep, or within a Monte Carlo loop to examine the effects of component tolerances on stability.

This section covers the following topics:■ Matrix Representation■ Determining the Poles and Zeros of a System■ Determining Time Domain Response Using Pole-Zero Data■ Determining Poles and Zeros - Frequency Response

Saber® User Guide 261D-2010.03-SP1

Page 276: Saber User Guide 2010.03

Chapter 16: Checking Linear Systems Analysis SpecificationsMatrix Representation

Matrix Representation

Most analyses in the Saber Simulator work with a sparse matrix representation that does not store matrix elements that are known to be zero. By default, it consists of a hierarchy of matrix instances that reflects the instance hierarchy except for instances of element templates which flatten the matrix hierarchy locally.

The exception is the pole/zero analysis (pzanalysis), which works from a full matrix representation where the matrix elements with zero value are also stored. This is because there is no robust algorithm to compute poles and zeros from a sparse matrix. Incorrect results can result if the full matrix is constructed from the sparse representation when it is not flat.

When you specify the -d flat invocation option when you start the simulator, each template is considered to be an element template which has the effect that the matrix representation loses the hierarchy and becomes a flat matrix (hence the name).

This is the preferred method of starting the simulator if the design is hierarchical or contains hierarchical templates. It ensures that correct results are produced.

Determining the Poles and Zeros of a System

You perform pole-zero analysis to determine the poles, zeros and gains of a system. In electrical systems, this analysis produces results in an s domain plot, showing how the system responds at a specific bias point.

To verify that your design meets pole/zero specifications, you execute a pole/zero analysis, view the results in CosmosScope, and evaluate the results to determine the next step. Based on this decision, you can either make the appropriate adjustments to meet specifications and re-run the analysis or continue to the next step in your design analysis process.

This section covers the following topics:■ Determining the Circuit Operating Point■ Executing Pole-Zero Analysis■ Viewing Pole-Zero Analysis Results

262 Saber® User GuideD-2010.03-SP1

Page 277: Saber User Guide 2010.03

Chapter 16: Checking Linear Systems Analysis SpecificationsDetermining the Poles and Zeros of a System

■ Measuring Pole-Zero Analysis Results■ Determining the Next Step

Determining the Circuit Operating PointPole-zero analysis examines the design at a specific operating point. You must find the operating point of the design prior to running the analysis, using one of the following methods: ■ In the Pole-Zero Analysis form, specify Yes in the Run DC analysis First

field. This selection informs Saber to execute DC analysis to find the operating point and then run the pole-zero analysis to calculate the poles and zeros using the previously calculated operating point. The Pole-Zero form is discussed in the next step.

■ Run the DC analysis separately by selecting the Analysis > Operating Point > DC Operating Point pulldown menu item. In most cases, Saber will find the correct operating point using the default values in the DC Operating Point form. For information of running and examining the DC analysis, refer to “Chapter 2: Finding and Debugging DC Operating Points.”

Executing Pole-Zero AnalysisTo perform a pole-zero analysis, you specify whether poles, zeros, or both poles and zeros need to be determined, and then execute the command as described in the following steps:

1. Open the Pole-Zero Analysis Form. (Analysis > Linear Systems Analysis > Pole-Zero).

2. (Optional) Use the -d flat Option.

The Linear Systems Analysis tool requires the use of the -d flat option if the design is hierarchical or contains hierarchical templates.

To use the -d flat option, perform the following steps:

a. Load a design.

b. Select Edit > Saber Settings.

c. Select Additional options > Specified

d. type -d flat

e. Click Save

Saber® User Guide 263D-2010.03-SP1

Page 278: Saber User Guide 2010.03

Chapter 16: Checking Linear Systems Analysis SpecificationsDetermining the Poles and Zeros of a System

f. Reload your design and run a DC analysis.

3. Specify whether to calculate Poles, Zeros, or Both.

In order to execute a pole-zero analysis you must specify whether you want Saber to calculate pole data, zero data, or both.

Pole data is the default setting. There is only one set of poles for the entire design.

If you select zeros data, you must also enter an Input Source, and an Output List.

The Input Source is a variable, which must be a val and be independent of system variables. Examples are v(v.vin) or i(i.iin). You may also type in just the instance path (for example, v.vin or i.in).

The Output List is a signal list containing only system variables. For each signal in this list, the analysis computes zeros.

4. Specify the Operating Point.

Because pole-zero analysis requires an operating point that Saber uses as the bias point, you must specify an initial point file in the Initial Point File field.

• If you have already determined a valid operating point for the analysis, verify that Saber will use the correct file by examining the Initial Point File field in the Input/Output tab. By default, Saber uses the default output of DC analysis, dc, as the initial point file.

• If you have not determined a valid operating point, specify Yes in the Run DC Analysis First field. This selection informs Saber to execute DC analysis to find the operating point and then to run the pole-zero analysis by using the resulting operating point.

5. Verify the analysis waveforms to create.

Saber uses the Plot File field to define the file that contains the waveforms representing system poles and zeros.

• Plot files contain waveform results. The size of the plot file is a function of the number of data points.

• Pole-zero plot files may contain infinite values.

6. Select Post Analysis View.

You can have the pole-zero data displayed as ASCII text in the Report tool by selecting Report After Analysis (Input/Output tab).

264 Saber® User GuideD-2010.03-SP1

Page 279: Saber User Guide 2010.03

Chapter 16: Checking Linear Systems Analysis SpecificationsDetermining the Poles and Zeros of a System

You can also have pole-zero data plotted graphically in CosmosScope. The Plot After Analysis menu field (Basic tab) allows you to specify post-analysis automatic plotting behavior.

You have the following choices:

• No causes no automatic plotting;

• Yes - Open Only opens the plot file after analysis;

• Yes - Append opens the plotfile and updates previously graphed waveforms, placing new plots in addition to the current waveforms;

• Yes - Replace opens the plotfile and updates previously graphed waveforms, replacing the current waveforms.

7. Execute the pole-zero analysis.

Using the default pole-zero analysis values, Saber calculates the poles and zeros for the system in radians per second.

Saber stores all waveforms in a plot file, named pz, which can be viewed in CosmosScope.

After Saber completes the pole-zero analysis, you use CosmosScope to view the simulation results graphically, or use the Report tool to view the results in ASCII text.

Viewing Pole-Zero Analysis ResultsThe results of a pole-zero analysis can be viewed both as a graph in CosmosScope and as ASCII text in the Report tool.

Note: Saber Sketch probes -- Pole-zero plot files cannot be used with Saber Sketch probes. Saber Sketch probes only work with plot files which contain signal names that correspond to node names. Pole-zero analysis produces plot files with signal names that do not correspond to node names and, consequently, will not work with Saber Sketch probes.

This section covers the following topics:■ Viewing the Results in CosmosScope■ Viewing the Results in the Report Tool

Saber® User Guide 265D-2010.03-SP1

Page 280: Saber User Guide 2010.03

Chapter 16: Checking Linear Systems Analysis SpecificationsDetermining the Poles and Zeros of a System

Viewing the Results in CosmosScopeOverall, the procedure for viewing results from a pole-zero analysis, is as follows:■ Add the plot file to the Signal Manager’s plot file list.■ Open the plot file.■ Select signals to plot.■ Plot the selected signals in a graph.

You can do this step-by-step after an analysis, or you can set up Saber Guide to perform all or part of this process automatically.

The following procedure explains in more detail how to plot waveforms after an analysis:

1. Add the plot file to the Signal Manager and open it.

Saber Guide does this automatically if you specify one of the following under the Plot After Analysis menu field (Basic tab) before starting the analysis:

• Yes - Open Only

• Yes - Append Plots

• Yes - Replace Plots

In all of the above cases, Saber Guide invokes CosmosScope (if necessary) and opens the Signal Manager and the appropriate plot file.

However, if you specify No in the Plot After Analysis menu field, Saber Guide does not open the Signal Manager. You can open the last created plot file either by selecting the Results > View Plot Files in Scope pulldown menu item. (You can also click on the Last Plotfile icon in the Saber Guide icon bar.) This activates the View Plotfiles dialog box. Under the Plot File pulldown menu field, select one of the following:

• Last selects the most recent plot file generated by the analysis. This is the default.

• Plot File Names allows you to specify a list of plotfiles (separate by spaces or commas) in the Plot File field. You can use a browser to select the plot files by clicking on the Browse button.

Under the Plot Action field, select one of the following actions:

• Yes - Open Only does the following:

Invokes CosmosScope, if necessary.

266 Saber® User GuideD-2010.03-SP1

Page 281: Saber User Guide 2010.03

Chapter 16: Checking Linear Systems Analysis SpecificationsDetermining the Poles and Zeros of a System

Opens the Signal Manager window, if necessary.Opens the latest version of the plot file specified in the Plot File field.

• Yes - Append Plots does the following:

Invokes CosmosScope, if necessary.Opens the Signal Manager window, if necessary.Opens the latest version of the plot file specified in the Plot File field. Updates all previously graphed waveforms from the plot file, placing the new waveforms in addition to the corresponding waveforms from the previous analysis.

• Yes - Replace Plots does the following:

Invokes CosmosScope, if necessary.Opens the Signal Manager, if necessary.Opens the latest version of the plot file specified in the Plot File field. Updates all previously graphed waveforms from the plot file, replacing the corresponding waveforms from the previous analysis.

The Append and Replace options are convenient to use during design optimization, when repeatedly running analyses to see the effects of altering design parameters.

After making the settings described above, you open the Signal Manager by clicking on the OK button or the Apply button. The Signal Manager dialog box appears, along with a Plot File window for the plot file you specified.

If you click on the OK button, the View Plotfiles dialog box closes. If you click on the Apply button, the dialog box remains open. Click on the Close button to close the dialog box.

2. Select the signals to plot.

Assuming that you did not select the Append or Replace Plot Action options in the preceding step, you need to select the signals to be plotted. In the Plot File window, select each signal by clicking on it with the left mouse button. Unselect a signal by clicking on it again (or use the Deselect button or Signal menu).

3. Plot the selected signal(s).

Pole-zero analysis can generate pole data, zero data, and gain data. Gain data is displayed as sfact (scale factor) in the Plot File list.

Saber® User Guide 267D-2010.03-SP1

Page 282: Saber User Guide 2010.03

Chapter 16: Checking Linear Systems Analysis SpecificationsDetermining the Poles and Zeros of a System

You can plot the selected signals by clicking on the Plot button or by moving the cursor into the graph window and pressing the middle mouse button. (You can also plot a signal simply by double clicking on its name in the Plot File window.)

The selected signals appear the Graph window. For complete information on manipulating graphs, refer to CosmosScope Graph Window Operation.

After you plot the necessary signals, you can analyze the results in order to determine the next step in the design process.

Viewing the Results in the Report Tool A text report can be useful for viewing pole-zero data that is not easily visible in a graphical display.

To view the results of a pole-zero analysis in an ASCII text report, you can either use the Results > Pole-Zero Report menu item after the pole-zero analysis completes or select Yes in the Report after Analysis field in the Input/Output form.

The Pole-Zero Report form gives you greater control over the produced report.■ In the fields of the Pole-Zero Report forms, in the Basic and Output Control

tabs, you can specify your data source and the layout of the pole-zero report.

■ In the fields of the Pole-Zero Report forms Columns to Include tab, you can specify the types of information that you want Saber to specify in the pole-zero report

The Pole-Zero Report is generated by the pzreport Saber command.

Measuring Pole-Zero Analysis ResultsCosmosScope provides several pre-defined automated measurements to dramatically decrease the time it takes to extract s-domain specification data from plotted pole-zero waveforms.

To perform a measurement on a waveform within CosmosScope, you follow these steps:

1. Display the Measurement Tool.

268 Saber® User GuideD-2010.03-SP1

Page 283: Saber User Guide 2010.03

Chapter 16: Checking Linear Systems Analysis SpecificationsDetermining the Poles and Zeros of a System

Within the CosmosScope user interface, you can open the Measurement Tool by either selecting the Tools > Measurement pulldown menu item or by clicking on the Measurement icon in the Tool icon bar at the bottom of the CosmosScope user interface.

2. Select the appropriate measurement.

After you display the this tool, you can select which measurement you want to perform. In the Measurement field, you select the measurement by clicking on the downward arrow and selecting the measurement from within the various measurement categories.

The following table lists the measures accessible in the s-domain category.

3. Select the signal to measure.

You can specify the signal to measure in the Signal field. You can specify the signal by using either of the following methods:

• Click on the downward arrow, and select a signal from the resulting list.

• Select the signal in the current active graph.

Regardless of the method you chose, you must specify a signal prior to executing the measurement.

4. Perform the measurement.

You perform a measurement by clicking on the Apply button. This procedure performs the measurement on the specified signal and adds the corresponding information to the active graph.

5. Manipulate measurement information.

Measurement Definition

Damping Ratio Displays the damping ratio of a pole-zero waveform. The damping ratio is a dimensionless value.

Natural Frequency

Displays the natural frequency of a pole-zero waveform in radians per second.

Quality Factor Displays the quality factor of a pole-zero waveform. The Quality Factor is a dimensionless value.

Saber® User Guide 269D-2010.03-SP1

Page 284: Saber User Guide 2010.03

Chapter 16: Checking Linear Systems Analysis SpecificationsDetermining the Poles and Zeros of a System

During the course of data analysis within CosmosScope, you may want to manipulate which measurements can be viewed. This task can be accomplished by using the Measure Results form. You can open this form either by selecting the Graph > Measure Results... pulldown menu item or by double-clicking on measurement text within an active graph.

After you display this form, you can manipulate measurement information by using the following buttons:

• Delete Measurement deletes the selected measurement from the active graph.

• Delete All deletes all measure text/graphics from the active graph.

• Show All Values shows all measurements listed in the left scroll list in the graph.

• Hide All Values retains but does not display the measurements listed in the left scroll list.

• Show/hide status bubbles allows you to change the visibility of a measurement on the active graph on a per measurement basis.

The measurement cursor can be dragged to poles and zeros to display the measurement values for individual points.

Determining the Next StepUsing the signal viewing and measurement capabilities of CosmosScope and the Report tool, you determine whether your design meets the pre-determined specifications. If it meets specifications, then you can proceed to one of the following options:■ Verify the time-domain response using pole-zero data by using the Linear

Time Domain Response analysis.■ Verify the frequency response using pole-zero data by using the Frequency

Response analysis.■ Tune the design parameter by using statistical or parametric analysis.

270 Saber® User GuideD-2010.03-SP1

Page 285: Saber User Guide 2010.03

Chapter 16: Checking Linear Systems Analysis SpecificationsDetermining Time Domain Response Using Pole-Zero Data

If the design does not meet your specifications, you can take corrective action by using either of the following methods:■ Alter a design/instance parameter(s)

If the design change does not require you to modify the connectivity, you can modify the design parameters by using the Alter Design form available through the Edit > Alter...menu item.

■ Edit the schematic and re-netlisting.

If the design change requires you to change in connectivity (e.g. different parts, different wiring connections, or any change to the topology), you must make the change in the schematic, re-netlist the design (Design > Netlist design_name), and then re-load the design in Saber (Design > Simulate design_name).

Determining Time Domain Response Using Pole-Zero Data

Linear Time Domain analysis uses pole-zero data to determine the time-domain response of a system. You can also select the type of transient input for the system to determine the system response. The default transient input is an impulse.

To verify that your design meets pole/zero specifications, you execute a pole/zero analysis, view the results in CosmosScope, and evaluate the results to determine the next step. Based on this decision, you can either make the appropriate adjustments to meet specifications and re-run the analysis or continue to the next step in your design analysis process.

This section covers the following topics:■ Determining Poles and Zeros - Linear Time Domain■ Executing Linear Time Domain Analysis (tresp)

Saber® User Guide 271D-2010.03-SP1

Page 286: Saber User Guide 2010.03

Chapter 16: Checking Linear Systems Analysis SpecificationsDetermining Time Domain Response Using Pole-Zero Data

Determining Poles and Zeros - Linear Time DomainLinear Time Domain analysis examines the design using pole-zero data. You must find pole-zero data for the design prior to running the analysis, using one of the following methods: ■ In the Linear Time-Domain Responses from Poles and Zeros Analysis form,

specify Yes in the Run PZanalysis First? field. This selection informs Saber to execute pole-zero analysis to calculate the poles and zeros using the previously calculated operating point. The Pole-Zero form is discussed in the next step.

■ Run the pole-zero analysis separately by selecting the Analysis > Linear Systems Analysis > Pole-Zero pulldown menu item.

Executing Linear Time Domain Analysis (tresp)To execute linear time domain analysis:

1. Display the Linear Time Domain Dialog Box (Analyses > Linear System Analysis > Linear Time Response...).

2. (Optional) Use the -d flat Option.

The Linear Systems Analysis tool requires the use of the -d flat option if the design is hierarchical or contains hierarchical templates.

To use the -d flat option, perform the following steps:

a. Load a design.

b. Select Edit > Saber Settings.

c. Select Additional options > Specified

d. type -d flat

e. Click Save

f. Reload your design and run a DC analysis.

3. Specify the required linear time domain analysis fields.

272 Saber® User GuideD-2010.03-SP1

Page 287: Saber User Guide 2010.03

Chapter 16: Checking Linear Systems Analysis SpecificationsDetermining Time Domain Response Using Pole-Zero Data

In order to execute a Linear Time Domain analysis, you must specify the following information:

• End Time defines the time at which the linear time domain analysis stops. For example, if the driving source of the design is a sinusoidal function with a period of 10uS and you want to view the transient response of the first 5 cycles, you enter 50u (5 x 10u) as the value for this field.

• Start Time defines the time at which Saber begins the linear time domain analysis. The default value is 0.

• During linear time domain analysis, Saber uses the Time Step value to determine an initial guess at the next solution point.

As a rule of thumb, you should set this value to the smallest of the following parameters in your design:

1/10th of the smallest meaningful time constant in the designShortest rise or fall time of a square/pulse wave driving source1/100th of the input period of a sinusoidal driving source

• Response Type specifies the transient input to the system. This field is not required, but allows you to produce a desired response type.

4. Verify the analysis waveforms to create.

Saber uses the following two fields to define both the file that contains the waveforms and which waveforms to create:

• Input Plot File specifies the file that contains pole-zero data used for input for the analysis. The size of the plot file is a function of the number of data points and the number of signals in the Signal List.

• Zeros Selection determines which set of zeros, of those stored in the input plot file, will be used to compute the linear time domain response.

5. Select Post Analysis View.

You can have the data plotted automatically in CosmosScope after analysis. The Plot After Analysis menu field (Basic tab) allows you to specify how the plotting is to be done.

You have the following choices:

• No causes no automatic plotting;

• Yes - Open Only opens the plot file after analysis;

Saber® User Guide 273D-2010.03-SP1

Page 288: Saber User Guide 2010.03

Chapter 16: Checking Linear Systems Analysis SpecificationsDetermining Poles and Zeros - Frequency Response

• Yes - Append opens the plotfile and updates previously graphed waveforms, placing new plots in addition to the current waveforms;

• Yes - Replace opens the plotfile and updates previously graphed waveforms, replacing the current waveforms.

For more information on how to reduce the disk space used by data and plot files, refer to “Files Used During Saber Simulation.”

6. Execute the linear time domain analysis.

Clicking on the Apply button executes the analysis. Saber determines the linear time domain response of the design by using pole-zero data to determine system conditions and then calculating how the design responds to the passage of time.

After Saber has finished simulating the design based on your linear time domain analysis specifications, you can view the resultant waveforms in CosmosScope, apply measurements and determine your next step.Determining Frequency Response Using Pole-Zero Data

Frequency Response analysis uses pole-zero data to determine the frequency response of a system.

To verify that your design meets pole/zero specifications, you execute a pole/zero analysis, view the results in CosmosScope, and evaluate the results to determine the next step. Based on this decision, you can either make the appropriate adjustments to meet specifications and re-run the analysis or continue to the next step in your design analysis process.

Determining Poles and Zeros - Frequency Response

Frequency Response analysis examines the design using pole-zero data. You must find pole-zero data for the design prior to running the analysis, using one of the following methods: ■ In the Frequency Response from Poles and Zeros form, specify Yes in the

Run PZanalysis First field. This selection informs Saber to execute pole-zero analysis to calculate the poles and zeros using the previously calculated operating point. The Pole-Zero form is discussed in the next step.

■ Run the pole-zero analysis separately by selecting the Analysis > Linear Systems Analysis > Pole-Zero pulldown menu item.

This section covers the following topics:

274 Saber® User GuideD-2010.03-SP1

Page 289: Saber User Guide 2010.03

Chapter 16: Checking Linear Systems Analysis SpecificationsDetermining Poles and Zeros - Frequency Response

■ Executing Frequency Response Analysis (fresp)■ Linear Time Response Results

Executing Frequency Response Analysis (fresp)To perform a frequency response analysis, you specify the frequency range to analyze, verify the values of optional small signal fields, and then execute the command as described in the following steps:

1. Open the Frequency Response from Poles and Zeros Analysis Form. (Analysis > Linear Systems Analysis > Frequency Response).

2. (Optional) Use the -d flat Option.

The Linear Systems Analysis tool requires the use of the -d flat option if the design is hierarchical or contains hierarchical templates.

To use the -d flat option, perform the following steps:

• Load a design.

• Select Edit > Saber Settings.

• Select Additional options > Specified

• type -d flat

• Click Save

• Reload your design and run a DC analysis.

3. Specify the frequencies to sweep.

In order to execute a frequency response analysis, you must define at least one frequency point by using the Start Frequency field, which results in Saber calculating the frequency response at a single data point. If you want to perform the analysis over a frequency range, you specify the range by using the Start Frequency and End Frequency fields. All frequency values must be positive real numbers.

4. Specify the frequency data point values.

You can control the position of the calculated data points in the defined frequency range by using the following two fields:

• Number of Points defines the number of data points calculated between the frequency range defined by the Start Frequency and End Frequency fields.

Saber® User Guide 275D-2010.03-SP1

Page 290: Saber User Guide 2010.03

Chapter 16: Checking Linear Systems Analysis SpecificationsDetermining Poles and Zeros - Frequency Response

• Increment Type defines the spacing between data points, either linear (equal spacing) or the default value, logarithmic.

5. Verify the analysis waveforms to create.

Saber uses the following two fields to define both the file that contains the waveforms and which waveforms to create:

• Input Plot File specifies the plot file that contains pole-zero results used for input for the analysis. The size of the plot file is a function of the number of data points and the number of signals in the Signal List.

• Zeros Selection determines which set of zeros, of those stored in the input plot file, will be used to compute the linear time domain response.

6. Select Post Analysis View.

You can have the data plotted automatically in CosmosScope after analysis. The Plot After Analysis menu field (Basic tab) allows you to specify how the plotting is to be done.

You have the following choices:

• No causes no automatic plotting;

• Yes - Open Only opens the plot file after analysis;

• Yes - Append opens the plotfile and updates previously graphed waveforms, placing new plots in addition to the current waveforms;

• Yes - Replace opens the plotfile and updates previously graphed waveforms, replacing the current waveforms.

For more information on how to reduce the disk space used by data and plot files, refer to Appendix A.

7. Execute the Frequency Response analysis.

Using the default frequency response analysis values, Saber applies a small sinusoidal signal to the input and calculates the frequency response over the range defined by Start Frequency and End Frequency fields. Saber uses the Number of Points and Increment Type fields to determine the number and values of the calculated frequency points.

Saber stores the results for each system variable in the Data file named fresp. Saber also stores all signals defined in the Signal List in a Plot File named ac, which can be viewed in CosmosScope.

After Saber has finished simulating the design based on your frequency analysis specifications, you can view the resultant waveforms in CosmosScope, apply measurements and determine your next step.

276 Saber® User GuideD-2010.03-SP1

Page 291: Saber User Guide 2010.03

Chapter 16: Checking Linear Systems Analysis SpecificationsDetermining Poles and Zeros - Frequency Response

Linear Time Response Results Results produced by the Linear Time Response represent the response of a linearized approximation to your actual system. Linear Time Response employs methods which produce a discrete approximation to a continuous transfer function. Some systems may be numerically ill-suited to this analysis. In general, systems with large numbers of poles and/or zeros, or systems with a very large dynamic range in the poles and zeros may result in numerically unstable results.

If the Linear Time Response analysis produces results which tend toward very large values (effectively plus or minus infinity), do the following: ■ Check to see that the pole and zeros values are as expected. Pole values

with positive real part will produce responses which tend toward infinity. The response is consistent with expected behavior.

■ Try decreasing the duration of the response (e.g, by changing the end time).■ Try changing the time step size. Depending on the particular system

involved, increasing or decreasing the time step may help.■ Alter the design so as to change the pole and zero values and thus the

corresponding Linear Time Response.

Saber® User Guide 277D-2010.03-SP1

Page 292: Saber User Guide 2010.03

Chapter 16: Checking Linear Systems Analysis SpecificationsDetermining Poles and Zeros - Frequency Response

278 Saber® User GuideD-2010.03-SP1

Page 293: Saber User Guide 2010.03

17

17Text Editors

Describes the editors you can use to edit MAST files.

You can select one of three editors to edit MAST files:■ Report Tool (the default)■ GNU emacs ■ User defined (you must specify how to invoke the editor).

You can invoke the editor by double clicking on an error message reported by the Saber Simulator when reading the design; such errors must have a line number. The file containing the error will be loaded in the selected editor and, if possible, the cursor is positioned on the line containing the error. If you select Report Tool as your editor, it will highlight MAST keywords, types, comments, and function calls to predefined functions with different colors. You can disable highlighting in the Preferences tab.

The built-in invocation commands for emacs works with GNU emacs.

Specification of a user editor depends on whether or not the editor to be configured has a client/server model (such as emacs).

This section covers the following topics:■ Client/server model■ Non client/server model

Client/server model

Enter the client and server invocation commands in the corresponding lines of the Preferences form. If the client can start the server, ensure that the server

Saber® User Guide 279D-2010.03-SP1

Page 294: Saber User Guide 2010.03

Chapter 17: Text EditorsNon client/server model

will come up in server mode by placing the appropriate command in the server configuration file (e.g., for emacs, place the command

(gnuserv-start)

in your ~/.emacs file). Invoke the client in no-wait mode if available. If the server must be started separately, ensure that it is started in server mode by specifying this on its command line.

Non client/server model

Enter the invocation command for the editor in the client line of the Preferences form and leave the server line empty.

On all command lines you can use the following placeholders: ■ %f to specify where the file name must appear ■ %l to specify a line number where to position the cursor

If the editor you are starting is a graphical application, you can specify its invocation command directly in the corresponding line. Otherwise, you must start a window and invoke the editor in that window.

Here are the two ways to start the editor:■ On UNIX and Linux systems using X Windows:

xterm -e your_command

■ On Windows:

cmd /c your_command

Following are some examples of how to run different editors on different platforms.

Example 1 On UNIX/Linux, using vi editor (non-graphical, no client/server)

xterm -e vi -c %l %f

Example 2 On Windows, using vi editor (non-graphical, no client/server)

cmd /c vi -c %l %f

Example 3 Textedit (graphical, no client/server model, Sun Solaris, no line number)

textedit %f

280 Saber® User GuideD-2010.03-SP1

Page 295: Saber User Guide 2010.03

Chapter 17: Text EditorsNon client/server model

Example 4 Notepad (graphical, no client/server model, Windows, no line number

notepad %f

Saber® User Guide 281D-2010.03-SP1

Page 296: Saber User Guide 2010.03

Chapter 17: Text EditorsNon client/server model

282 Saber® User GuideD-2010.03-SP1

Page 297: Saber User Guide 2010.03

A

AFiles Used by Saber Tools

Provides a list of different types of files used and produced by the Saber environment.

This section covers the following topics:■ Preference Files■ Startup Files■ Log Files■ Project Files■ Report Files

Preference Files

This section describes the files associated with saving application preferences and configurations.

These files control three different types of application settings:■ Site-specific Preferences (for example, guide.site) and User-specific

Preferences (for example .guide_user) set the application preferences selected from the Edit menu. The .site file is read first. If it exists, the _user file is then read and overrides the .site file where they contradict each other.

■ Session-specific Configuration Parameters (for example .guidecfg) set the configuration parameters selected from the File menu choice.

■ Startup Files (for example guideRc.site) and user-specific startup files (for example .guideRc_user) contain AIM scripts that you can run in conjunction with Saber applications. The .site file is read first. If it exists, the _user file is then read and overrides the .site file where they contradict each other.

Saber® User Guide 283D-2010.03-SP1

Page 298: Saber User Guide 2010.03

Appendix A: Files Used by Saber ToolsPreference Files

These three types of application settings are independent of one another.

The following table shows the preference file used by applications. To make the preference file site-specific, rename it as shown in the table and include the site file in the AI_SITE_PATH environment variable.

Files listed in the Saber Guide column assume that you invoke Saber Guide standalone (without CosmosScope).

Site-specific Preferences Site files allow a system or site administrator to configure the environmental preferences of a given application for a large number of users. These files can be located anywhere on the network, but each user must have this directory location included as part of the AI_SITE_PATH environment variable.

During invocation, each application searches directories listed in the AI_SITE_PATH variable for aim.site, aimpart.site, sketch.site, guide.site, scope.site, harnessRc.site, or project.site, depending on which application you invoke. If the application finds the appropriate file, it loads it. The application

AIM Saber Guide CosmosScope Saber Sketch

Site-specific Preferences

aim.site guide.site scope.site

sketch.site

User-specific Preferences

.aim_user .guide_user .scope_user

.sketch_user

.aimpart_user

Session-specific Configuration Parameters

N/A .guidecfg .scopecfg .sketchcfg

Preference Files

ApplicationPreference

Simulator Preference

Graph Preference

Sketch Preferences

Startup Files N/A .guideRc_user

guideRc.site

.scopeRc_user

scopeRc.site

.sketchRc_user

sketchRc.site

Log Files N/A guide.log scope.log sketch.log

284 Saber® User GuideD-2010.03-SP1

Page 299: Saber User Guide 2010.03

Appendix A: Files Used by Saber ToolsPreference Files

continues searching in your home directory for the equivalent _user file. If an equivalent _user file is found, then it merges the contents with any previously found information, which will cause duplicate settings to be overwritten.

Site files are created from _user files using the procedure in the Installation Manual.

If you want to change the contents of any of these files, you can either delete the file to return to default preferences or you can reconfigure the application preferences and overwrite the old .site file.

Site File Name Equivalent _user File Name

Menu Pick Description

aim.site .aim_user Edit > Application Preferences

Contains AIM scripts.

aimpart.site .aimpart_user From the Parts Gallery, select Edit>New Part or New Category

Defines the database of user parts added through the Parts Gallery.

guide.site .guide_user Edit > Preferences Defines a global set of parameters for Saber Guide.

scope.site .scope_user Edit>Graph Preferences

Defines a global set of parameters for CosmosScope of the combination of CosmosScope and Saber Guide.

sketch.site .sketch_user Edit>Schematic Preferences

Defines a global set of parameters for Saber Sketch.

project.site .ai_prj (.project_user does not exist)

Edit>Simulator/Netlister Settings...

Defines a global set of parameters for the Saber/Netlister Settings... dialog box.

Saber® User Guide 285D-2010.03-SP1

Page 300: Saber User Guide 2010.03

Appendix A: Files Used by Saber ToolsPreference Files

User-specific Preferences Users can have a local equivalent of site files in their home directory. The local files begin with a period (.) and have an _user suffix such as .aim_user. The preferences contained in the _user files, if present, override the preferences in the corresponding .site file. When a user saves application preferences, Saber preferences, or graph preferences, they are saved in a local _user file.

To generate these files, choose the menu item shown in the file descriptions below and save the results of your edits.

To use the site-specific file (if present) or return to the original default preferences, delete the _user file and shut down the associated aimserver session by entering the following:

where qaz is a display name and joe is a userid.

The following list describes the user-specific preference files:

aimserver sessionshutdown qaz,joe

_user File Name Menu Pick Description

.aim_user Edit > Application Preferences

Contains AIM scripts.

.aimpart_user From the Parts Gallery, select Edit>New Part or New Category

Defines the database of user parts added through the Parts Gallery.

.guide_user Edit > Preferences Defines Saber Guide environment preferences such as simulator settings and the Report Tool setting.

.scope_user Edit>Graph Preferences

Defines a global set of parameters, such as graph colors and graph settings, for CosmosScope of the combination of CosmosScope and Saber Guide.

.sketch_user Edit>Schematic Preferences

Defines a global set of parameters for Saber Sketch.

286 Saber® User GuideD-2010.03-SP1

Page 301: Saber User Guide 2010.03

Appendix A: Files Used by Saber ToolsPreference Files

Session-specific Configuration Parameters This section describes the directories and files located in your home directory that contain session configuration parameters. Session configuration parameters consist of things such as window location and sizes, a list of available colors, and pathnames to various data sources.

This section covers the following topics:■ .guidecfg File■ .sketchcfg File■ .scopecfg File■ .scopecfg_data Directory

.guidecfg FileThe .guidecfg file is read from your home directory when you invoke Saber Guide in a stand-alone mode (no CosmosScope). This file holds the Saber Guide session configuration parameters when you choose the File > Configuration > Save or Save on Exit menu item.

To change the settings in this file, reconfigure the settings within Saber Guide and save them (overwriting the old data).

To ignore the settings in this file for a given session, use the -noconfig argument to bypass the .guidecfg file when you invoke Saber Guide.

To clear the settings in this file, choose the File > Configuration > Clear menu item.

.sketchcfg FileThe .sketchcfg file is read from your home directory when you invoke Saber Sketch. This file holds the Saber Sketch session configuration parameters when you choose the File > Configuration > Save or Save on Exit menu item.

.project_user Edit>Simulator/Netlister Settings...

Defines a global set of parameters for the Saber/Netlister Settings... dialog box.

_user File Name Menu Pick Description

Saber® User Guide 287D-2010.03-SP1

Page 302: Saber User Guide 2010.03

Appendix A: Files Used by Saber ToolsPreference Files

To change the settings in this file, reconfigure the settings within Saber Sketch and save them (overwriting the old data).

To ignore the settings in this file for a given session, use the -noconfig argument to bypass the .sketchcfg file when you invoke Saber Sketch.

To clear the settings in this file, choose the File > Configuration > Clear menu item.

.scopecfg File The .scopecfg file is read from your home directory when you invoke CosmosScope or the combination of CosmosScope and Saber Guide. This file holds the session configuration parameters when you choose the File > Configuration > Save or Save on Exit menu item.

If you want to change the settings in this file, reconfigure the settings within Saber Guide/CosmosScope and save them (overwriting the old data).

If you want to ignore the settings in this file for a given session, use the -noconfig argument to bypass the .scopecfg file when you invoke Saber Guide/CosmosScope.

If you want to clear the settings in this file, choose the File > Configuration > Clear menu item.

.scopecfg_data Directory This directory is located in your home directory. This directory contains a separate directory for each graph from a CosmosScope session when you choose the File > Configuration > Save or Save on Exit menu item. The graph directories contain files that store the graph configuration from a CosmosScope session.

The directory has the following structure:

.scopecfg_data

Graph0 Graph1 Graph2

graph.def graph.def graph.def

288 Saber® User GuideD-2010.03-SP1

Page 303: Saber User Guide 2010.03

Appendix A: Files Used by Saber ToolsStartup Files

Graph0, Graph1, Graph... represent subdirectories associated with each open graph in the CosmosScope session. Under each subdirectory is a file called graph.def that contains the data required to restore the contents of each graph.

Startup Files

applicationRc_user and applicationRc.site files force code to executed by the application at startup.

During invocation, each application searches directories listed in the AI_SITE_PATH variable for the guideRc.site, the scopeRc.site, and the sketchRc.site, depending on which application you invoke. If the application finds the appropriate file, it loads it. The application continues searching in your home directory for the equivalent _user file. If an equivalent _user file is found, then it merges the contents with any previously found information, which will cause duplicate settings to be overwritten.

The following files reside in your home directory and contain AIM commands controlling the application as listed below:■ guideRc.site - controls Saber Guide, during Saber Guide-only invocation (no

CosmosScope), on a site wide basis. ■ .guideRc_user - controls Saber Guide, during Saber Guide-only invocation

(no CosmosScope), on your local machine. ■ scopeRc.site - controls CosmosScope and Saber Guide (if Saber Guide is

invoked with CosmosScope) on a site wide basis. ■ .scopeRc_user - controls CosmosScope and Saber Guide (if Saber Guide

is invoked with CosmosScope) on your local machine. ■ sketchRc.site - controls Saber Sketch, during Saber Sketch invocation, on a

site wide basis. ■ .sketchRc_user - controls Saber Sketch, during Saber Sketch invocation, on

your local machine.

There is a similar pair of files for .aimRc_user and aimRc.site which are loaded before the files that all applications get. Unlike the applicationRc files, which are read only by the applications they are named for, the aimRc files are global files.

Saber® User Guide 289D-2010.03-SP1

Page 304: Saber User Guide 2010.03

Appendix A: Files Used by Saber ToolsLog Files

Log Files

A log file is created in the directory where the application was invoked and contains a log of the activities performed during a session. The contents of these files can be used to create Aim scripts to control the application.■ guide.log - created during a Saber Guide-only (no CosmosScope) session. ■ scope.log - created during a CosmosScope and Saber Guide session (if

Saber Guide is invoked with CosmosScope). ■ sketch.log - created during a Saber Sketch session.■ harness.log - created during a iQBus session.

Project Files

Edit > Simulator/Netlister Settings (Saber Sketch) and Edit > Simulator Settings (Saber Guide and CosmosScope) are saved for each individual design. The settings are saved in a design.ai_prj file in the current directory of the design. Every time you open a design, the settings in the design.ai_prj file are applied to the Designer application.

In order to create a project.site file, follow this procedure:

1. Specify the options on the Simulator/Netlister Settings form.

2. Click the Save button.

3. This creates a designname.ai_prj file in your working directory.

4. Rename designname.ai_prj to project.site.

5. Place the path to project.site in $AI_SITE_PATH.

Report Files

There are two kinds of report files.

.rpt files are ASCII files generated by the Report Tool using output from simulation analyses.

290 Saber® User GuideD-2010.03-SP1

Page 305: Saber User Guide 2010.03

Appendix A: Files Used by Saber ToolsReport Files

.r1 files are the raw results produced by the analyses and used by the Report Tool to generate .rpt files. .r1 files can be configured as three different file formats by using the Saber config command. The formats are as follows:

where design is the name of the design file and name is user selectable (with a default to the analysis abbreviation).

design.name.r1

design.r1.name

design/name.r1

Saber® User Guide 291D-2010.03-SP1

Page 306: Saber User Guide 2010.03

Appendix A: Files Used by Saber ToolsReport Files

292 Saber® User GuideD-2010.03-SP1

Page 307: Saber User Guide 2010.03

B

BError Messages

Describes the error messages that are most commonly encountered while using the simulator.

This chapter lists error messages in alphabetical order. Each error message description includes the probable cause that triggered the error message and the resolution(s). If an error message has more than one resolution, perform the resolutions n the order given. If you encounter an error message that is not described in this appendix, contact the Customer Support Department for assistance.

This section covers the following topics:■ Simulator Error Messages■ License Manager Log File Messages

Simulator Error Messages

The three types of error messages are:■ ERRORS cause your simulation to be terminated. If an ERROR occurs

during start-up, your simulator session is terminated.■ FATAL ERRORS cause your simulation to be terminated; some FATAL

ERRORS also cause your simulation session to be terminated. If a FATAL ERROR occurs during start-up, your Saber Simulator session is terminated.

■ After a WARNING message, your simulation usually continues; however, you should investigate the condition causing the message after the simulation is complete.

Saber® User Guide 293D-2010.03-SP1

Page 308: Saber User Guide 2010.03

Appendix B: Error MessagesSimulator Error Messages

Note: If mProbable Causeore than one error message appears, apply the resolution(s) given for the first error message, and retry the action that caused the message. The latter error messages may have been artificially produced by the condition causing the first error message.

This section covers the following topics:■ Bad encrypted data found■ Cannot connect to license server■ Client not authorized to connect to server■ ERROR “ALG_ITERATIONS” Too many iterations■ ERROR “ALG_NO_SOLUTION”■ ERROR “ALG_OUT_OF_REGIONS”■ ERROR “ALG_SINGULAR_JACOBIAN”■ ERROR “ALG_W_NO_DT_MM”■ ERROR: bad screen distance””■ ERROR “BUG_ASSERT_FAILED”■ ERROR “BUG_PROGRAM”■ ERROR “CLASS_COMPATIBILITY”■ ERROR “CLASS_DFILE_READ”■ ERROR “CLASS_IP_NOT_FOUND”■ ERROR “CLASS_NO_DEFAULT”■ ERROR “CLASS_NO_MATCH”■ ERROR “CLASS_OPEN_FILE”■ ERROR “CLASS_STAMP_CHANGE”■ ERROR “CLASS_UNMATCHED_END”■ ERROR “CLASS_VERSION”■ ERROR “DYN_LOAD_FAILED”■ ERROR “ERR_BUFFER”■ ERROR “ERR_MISSING_ARG”■ ERROR “ERR_NOSTORE”

294 Saber® User GuideD-2010.03-SP1

Page 309: Saber User Guide 2010.03

Appendix B: Error MessagesSimulator Error Messages

■ ERROR “EXT_TDB_EXCEPTION”■ ERROR “MAST_BAD_FIELD_NAME”■ ERROR “MAST_DUP_CMP”■ ERROR “MAST_EXT_IN_ROOT”■ ERROR “MAST_FILE_NOT_FOUND”■ ERROR “MAST_IMPORTED_USED”■ ERROR “MAST_NO_COMP”■ ERROR “MAST_NO_FIELD_NAME”■ ERROR “MAST_NO_NUM_EQUATION”■ ERROR “MAST_NO_NUM_REFERENCE■ ERROR “MAST_PIN_CONFLICT”■ ERROR “MAST_UNDEF_NAME”■ ERROR “MAST_UNDEF_TMP”■ ERROR “PL_BAD_DATAFILE”■ ERROR “PL_BAD_EVENTS”■ ERROR “PL_OPEN_FILE”■ ERROR “SEC_NOT_AUTHORIZED”■ ERROR “TER_ALIGNMENT”■ ERROR “TER_NOT_AUTH”■ ERROR “TMPL_HYPER_VALUE”■ ERROR “TMPL_NLM_PAR_UNDEF”■ ERROR “TMPL_SRC_POS_OR_0”■ ERROR “UI_OPEN_FILE”■ FATAL ERROR “BUG_PROGRAM”■ FATAL ERROR “DYN_REF”■ FATAL ERROR “ERR_NOFILERD”■ FATAL ERROR “SEC_CFGFAIL”■ FATAL ERROR “SEC_NOAUTH”■ FATAL ERROR “SEC_LMGR_CRASH”

Saber® User Guide 295D-2010.03-SP1

Page 310: Saber User Guide 2010.03

Appendix B: Error MessagesSimulator Error Messages

■ FATAL ERROR “SEC_NO_REQUIRED”■ FATAL ERROR “SEC_NOT_AUTHORIZED”■ License server not responding - attempting to reconnect . . .■ not loaded by saberld■ saberld: Fortran or C compiler required. Neither found ...■ Syntax error■ Unable to open display “machine_name”■ Unable to open display “machine_name:0”■ undefined symbol■ WARNING "ALG_NO_MM_DC”■ WARNING “ALG_THRESHOLD”■ WARNING “MAST_NO_GROUND”■ WARNING “SEC_EXPIRED”■ WARNING “SEC_EXPIRING”■ WARNING “SEC_LMGR_MESS”■ WARNING “SEC_LMGR_MSG”■ WARNING “SEC_LMGR_RECOVERY”■ WARNING “SEC_LMGR_RECOVERED”■ WARNING “SEC_NOT_AVAIL”■ WARNING “SPLIT_UNCONNECTED_BUT_CLASSIFIED”■ WARNING “TMPL_LIMIT_IP”■ WARNING “TMPL_LIMIT_TIME”■ WARNING "MAST_STAT_TOPOLOGY"■ X display server name required.■ X toolkit error: can’t open display

296 Saber® User GuideD-2010.03-SP1

Page 311: Saber User Guide 2010.03

Appendix B: Error MessagesSimulator Error Messages

Bad encrypted data foundProbable CauseThis error message may occur if you attempt to use a template library or component library that is not compatible with the version of the Saber Simulator that you are using.

ResolutionUpdate your libraries or Saber Simulator to the correct release version.

Note: This message may occur with the following error message:

***ERROR “TER_NOT_AUTH” ***.

Cannot connect to license serverThe simulator is unable to read the license file or is unable to locate the license file for one of the following reasons shown in Probable Cause 1 and Probable Cause 2.

Probable Cause 1Your computer is not properly connected to your network.

Resolution■ Check that your computer and the computer on which the license file is

located are properly connected to your network. You can do this by logging in to the machine on which the license file for the software is located from your machine.

• First, enter on your machine the following:

telnet server_name

where server_name is the name of the machine on which the license file is located.

• Then, login to that machine from your machine.

If you are not able to login, see your system administrator.

Probable Cause 2The license server is down.

Saber® User Guide 297D-2010.03-SP1

Page 312: Saber User Guide 2010.03

Appendix B: Error MessagesSimulator Error Messages

ResolutionCheck that your license server is running by entering the following:

This command gives you complete status information about your license server.

Client not authorized to connect to serverExample 1Client not authorized to connect to server. Unable to open display “client_host_name:0”.

Probable Cause 1This message occurs when the file server on which the software is running (“client host”) has not been authorized to display output on your machine (“X display server”).

ResolutionEnter the following command on your machine (“X display server”), where client_host_name is the machine or hostname of the “client host”:

xhost +client_host_name

Example 2Client not authorized to connect to server. Unable to open display “:0”.

Probable Cause 2The message in this example indicates an attempt is being made to display output from an application on the same machine as that on which the software is running.

ResolutionEnter xhost + on your machine (“X display server”):

install_home/bin/lmstat -a -cinstall_home/config/saber.lic

298 Saber® User GuideD-2010.03-SP1

Page 313: Saber User Guide 2010.03

Appendix B: Error MessagesSimulator Error Messages

Set the DISPLAY environment variable. The DISPLAY environment variable is typically set in your .xinitrc or .login file, but may be set in your .cshrc file (C shell) or .profile file (Bourne shell). Modify it as follows:

ERROR “ALG_ITERATIONS” Too many iterationsProbable CauseThe Saber Simulator requires more iterations to converge to a resolution than the number specified by one of the following parameters: tniter, fniter, fkiter, gmiter.

Resolution■ Increase the value of the parameters tniter, fniter, fkiter, and gmiter to as

much as twice the default value and re-run the simulation. (Increasing iteration limits beyond twice the default value is not usually effective.)

■ If you ran an Operating Point analysis, use the debug option to determine how close the analysis is to converging.

■ Check your netlist for errors. ■ Contact Synopsys Technical Support Center in the following ways:

• Open a call to your local support center from the Web by going to http://solvnet.synopsys.com/EnterACall (Synopsys user name and password required).

Shell Command

C setenv DISPLAY machine_name

Bourne DISPLAY=”machine_name:0”

export DISPLAY

Saber® User Guide 299D-2010.03-SP1

Page 314: Saber User Guide 2010.03

Appendix B: Error MessagesSimulator Error Messages

• Telephone your local support center.

United States

Oregon office: 866-898-6700 or 503-547-6700, or send an e-mail message to [email protected]

International

Germany: Telephone +49-89-99-320-0, fax +49-89-99-320-117, or e-mail [email protected]

France: Telephone +33 (0) 1 45 12 04 76,fax +33 (0) 1 45 12 07 07, or e-mail [email protected]

Sweden: Telephone +46 08 555 20220, fax +46 08 55520249, or e-mail [email protected]

ERROR “ALG_NO_SOLUTION”Example*** ERROR ** “ALG_NO_SOLUTION” *** Cannot find nonlinear system solution

Probable CauseThe Saber Simulator cannot find a non-linear solution.

ResolutionSelect the analysis that generates the error message from the following list.

If any analysis other than those listed below gives you this error message call Customer Support.

Transient analysis (tranalysis) Solution■ Did the analysis run at all?

• If the analysis did not run at all first try rerunning the DC analysis.

• After rerunning the DC analysis, change the stimulus by changing the slopes of transitions, and if there is more than one stimulus signal try offsetting transitions with respect to each other.

• Check models that use the simulator variable dc_domain for continuity between DC and time=0+. For a description of dc_domain refer to Chapter 3 of the MAST Reference Manual.

■ The analysis ran, but still produced the error message.

300 Saber® User GuideD-2010.03-SP1

Page 315: Saber User Guide 2010.03

Appendix B: Error MessagesSimulator Error Messages

• After running the analysis do the results look good?

• Use Results > View Plotfiles (plot) or Results > Plotfile Report (print) to view the results.

• If the results look good increase Sample Point Density (density) two times (x 2) and increase Target Iterations (tniter) four times (x 4). Rerun the analysis.

• If the results do not look good the netlist may be incorrect or there may be a discontinuity in model equations.

DC Analysis (dcanalysis) Solution■ Was a dcerr file created in your local directory?

Do not confuse the dcerr file with dc_err file which is created by a successful DC analysis.

• A dcerr file is expected. If the dcerr file does not exist call Customer Support.

■ Does the dcerr file contain reasonable results?

Use Results > Operating Point Report (di) to view the contents of the dcerr file.

If the results do not look good the netlist may be incorrect or there may be a discontinuity in model equations.

• If the results look good increase Sample Point Density (density) two times (x 2) and increase Target Iterations (tniter) four times (x 4).

• Repeat the DC analysis using First Algorithm set to Dynamic Ramp and Algorithm Stepping set to No in the Algorithm Selection tab.

• After running the analysis do the results look good? Use Results > View Plotfiles (plot) or Results > Plotfile Report (print) to view the results.

If the results do not look good the netlist may be incorrect or there may be a discontinuity in model equations.

■ If the results look good and the error message persists, check to see if the signals have settled to a resolution.

• To settle the signals, increase the Settling Time in the Algorithm Selection tab, Ramping Algorithm Settings button (dr_tsettle).

• Keep rerunning the analysis until the signals settle to a resolution.

• If the error message persists after the signals have settled to a resolution call Customer Support.

Saber® User Guide 301D-2010.03-SP1

Page 316: Saber User Guide 2010.03

Appendix B: Error MessagesSimulator Error Messages

DC/Transient analysis (dctranalysis) Solution ■ Did the analysis run at all?

• If the analysis did not run at all first try rerunning the DC analysis.

• After rerunning the DC analysis, change the stimulus by changing the slopes of transitions, and if there is more than one stimulus signal try offsetting transitions with respect to each other.

• Check models that use the simulator variable dc_domain for continuity between DC and time=0+. For a description of dc_domain refer to Chapter 3 of the MAST Reference Manual.

■ The analysis ran, but still produced the error message.

• After running the analysis do the results look good?

Use Results > View Plotfiles (plot) or Results > Plotfile Report (print) to view the results.

• If the results look good increase Sample Point Density (density) two times (x 2) and increase Target Iterations (tniter) four times (x 4). Rerun the analysis.

• If the results do not look good the netlist may be incorrect or there may be a discontinuity in model equations.

ERROR “ALG_OUT_OF_REGIONS”Example*** ERROR “ALG_OUT_OF_REGIONS *** /op_amp1.ut/tn.q2/pxvbci (q.1) is out of defined sample points on the low end.

Probable CauseThis error is generally associated with the use of the q, spq, d, and spd models, but can also appear when others are used. The voltages and/or the currents applied to the model are outside the defined operating range. Check the error message to determine which models are involved.

ResolutionCheck your netlist to make sure the models are connected and biased correctly.

Find out if the collector-to-emitter voltages are being limited. Use the di command to display DC voltages. Invoke the CosmosScope Waveform Analyzer to see tranalysis or dtanalysis results.

302 Saber® User GuideD-2010.03-SP1

Page 317: Saber User Guide 2010.03

Appendix B: Error MessagesSimulator Error Messages

If the error still occurs, contact Customer Support.

ERROR “ALG_SINGULAR_JACOBIAN”Example*** ERROR “ALG_SINGULAR_JACOBIAN” *** Singular Jacobian matrix.Possible causes for a singular Jacobian matrix:- Model operating outside of its intended region of operation.- Node/subsystem with no connection to the reference (floating).- Current loops (voltage sources/inductors in parallel).- Missing equation and/or missing variable reference.Potential problem variables/equations:/i(v.2)

The node referenced after the “/” at the end of the message indicates the location of the problem in your design.

Probable Cause 1In a netlist, two or more zero-impedance elements (across variable sources) are in parallel (examples include voltage sources, inductors, and temperature sources). Or two or more infinite-impedance elements (through variable sources) are in series (examples include current sources and power sources.)

ResolutionFor two zero-impedance elements, add an impedance in series with one of the elements (for example, add a resistor in series with a voltage source or specify the intrinsic resistance of an inductor or transformer).

For two infinite-impedance elements in series, add an impedance in parallel with one of the elements (for example, place a resistor in parallel with a current source).

Probable Cause 2In a netlist, one or more nodes do not have a DC path to the reference node. (The reference node is a node named 0, if one is present in the design. Otherwise, it is a node selected by the Saber Simulator).

ResolutionAdd a large value resistor between the specified node and the reference node.

Probable Cause 3In a netlist, there is a MAST template that does not generate a valid solution at DC.

Saber® User Guide 303D-2010.03-SP1

Page 318: Saber User Guide 2010.03

Appendix B: Error MessagesSimulator Error Messages

ResolutionAdd a statement to the equations section of the template you wrote to initialize values as needed.

Note: These messages often appear with the above messages:

*** ERROR “MAST_NO_NUM_REFERENCE ***

*** ERROR “MAST_NO_NUM_EQUATION” ***

ERROR “ALG_W_NO_DT_MM”Example*** ERROR “ALG_W_NO_DT_MM” *** The DC Transfer analysis operates only on the analog part of mixed-mode systems; there is no interaction with the digital part

Probable CauseAs stated in the error message above, the DC Transfer analysis operates only on the analog part of mixed-mode systems. There is no interaction with the digital part for the mixed-mode system.

ResolutionNone. This is a limitation of the DC Transfer analysis.

ERROR: bad screen distance””ExampleERROR: bad screen distance””

Probable CauseSpaces in a symbol port name are not allowed.

ResolutionRemove spaces from symbol port names.

ERROR “BUG_ASSERT_FAILED”An assertion made by the program failed. The information accompanying this message can help determine the cause of the error message.

304 Saber® User GuideD-2010.03-SP1

Page 319: Saber User Guide 2010.03

Appendix B: Error MessagesSimulator Error Messages

This is a generic message, meaning the same kind of message can occur under many different circumstances. It is not possible to classify the message and give conditions when it occurs, and how to fix it, as with other error messages.

ERROR “BUG_PROGRAM”Example*** ERROR “BUG_PROGRAM” *** Program error in routine “pffft:error code = -1014”.

Probable CauseAn unexpected condition occurred that is not handled properly by a program. This condition may have been artificially created by a previous error condition.

ResolutionThis error message appears when unusual conditions occur. There is no specific list of solutions which can cover all of the possibilities. General trouble-shooting techniques are recommended.

First, apply solutions to previous error messages.

If no other error messages appeared, call the Customer Support Department.

ERROR “CLASS_COMPATIBILITY”Example*** ERROR “CLASS_COMPATIBILITY” *** Saber and the dfile “tr” have incompatible machine ID: 202 versus 201.

Probable CauseThis problem occurs if you created data files on one type of machine (e.g. SUN sparc 2) and are attempting to perform an operation on the data file (e.g. ipex, ex, or fou) while using a different type of machine (e.g. HP700). Data files are not transportable across machines from different vendors or with different processor architectures. (

that plot files are transportable.)

Saber® User Guide 305D-2010.03-SP1

Page 320: Saber User Guide 2010.03

Appendix B: Error MessagesSimulator Error Messages

ERROR “CLASS_DFILE_READ”Example*** ERROR “CLASS_DFILE_READ” *** Cannot read the data file “tr”.

Probable CauseThe data file cannot be read. Possible causes can be:■ The data file was not created with the plot file.■ The data file does not have proper read/write permissions.

Resolution■ Run the simulation to create a new data file.■ Change the permissions on the data file.

ERROR “CLASS_IP_NOT_FOUND”Example*** ERROR “CLASS _IP_NOT_FOUND” *** The initial point “dc” is not found. tr (te 6m,ts 100u)

Probable CauseYou are attempting to run an analysis that requires a DC bias point. Either the DC bias point is not specified, the name of your initial point was incorrectly specified, the initial point file does not exist (need to run a DC analysis), or the user does not have read permission for the file.

Resolution■ Run a DC analysis.■ Specify the appropriate initial point file (trip or acip).■ Set the initial point file to “zero”.

ERROR “CLASS_NO_DEFAULT”Example*** ERROR “CLASS_NO_DEFAULT” *** There is no default PFile.

306 Saber® User GuideD-2010.03-SP1

Page 321: Saber User Guide 2010.03

Appendix B: Error MessagesSimulator Error Messages

Probable CauseYou tried to plot results by typing pl in the command line. This command would normally plot the last plot file that was created. This error message indicates that an analysis has not yet been run during the Saber session.

ResolutionSpecify the name of the plot file to be displayed after the pl command (e.g, pl tr1 or pl tr ac ac1), or run an analysis before using the pl command.

ERROR “CLASS_NO_MATCH”Example***ERROR "CLASS_NO_MATCH"*** No match for..

Probable CauseThis problem typically arises when the user specifies an individual signal or block of signals to be extracted or saved using wild card syntax. If a signal cannot be found, the error may occur.

ResolutionThe solution is to either change the specification using the wild card expansion or figure out why the block/signal does not exist.

ERROR “CLASS_OPEN_FILE”Example*** ERROR “CLASS_OPEN_FILE” *** Cannot open the file “ez.i1.dc”.

Probable CauseYou do not have permission to write the DC file.

ResolutionCheck directory permissions.

ERROR “CLASS_STAMP_CHANGE”ExampleThe netlist entry and error message are as follows:

Saber® User Guide 307D-2010.03-SP1

Page 322: Saber User Guide 2010.03

Appendix B: Error MessagesSimulator Error Messages

d.1 a k = model = (n = 1, is = 1e-14, rs = 1)alter /d.1 = model=(n=1.5)

*** ERROR “CLASS_STAMP_CHANGE” *** Alter would cause “topology change” in /d.1.

Probable CauseIn the example above, the alter command effectively changes the model of the component d.1 to:

d.1 a k = model = (n = 1.5, is = default_value,rs = 0)}

where 0 is the default value of rs.

When a design is simulated, redundant nodes (such as those to which the two ends of a resistor with a value of 0 are connected) are removed. Thus, the alter command in the example above changes the design topology. When you change the topology of a design you must re-invoke the Saber Simulator before simulating the design.

ResolutionAlter the model using the following command:

alter n(d.1)=1.5.

This command causes only the specified parameters to be changed.

OR

Exit the Saber Simulator, modify the netlist, and re-invoke the Saber Simulator.

ERROR “CLASS_UNMATCHED_END”Probable CauseThe VARY or MC command has a syntax error. The unmatched end means that the simulator found an end without some sort of beginning.

ResolutionThe solution is to correct the syntax of the opening line of the loop.

308 Saber® User GuideD-2010.03-SP1

Page 323: Saber User Guide 2010.03

Appendix B: Error MessagesSimulator Error Messages

Example 1vary r(r.r1) from 500 to 5k by 500*** ERROR "CLASS_ALTER_UNINIT" *** Cannot alter an uninitialized localvariable: "r(r.r1)".vary r(r.r1) from 500 to 5k by 500 |tr (dfile _,tend 6m,terror 0.001,tstep 1.428uexecution time= 0.0833 sec.dc;ac (dfile _,fbegin 100,fend 10k,npoints 500execution time= 0.05 sec.execution time= 0.167 sec.end*** ERROR "CLASS_UNMATCHED_END" *** Unmatched ENDend

Probable CauseUsed r instead of rnom.

Example 2vary r1 from 500 to 1k by 500*** ERROR "CLASS_NO_MATCH" *** No match for "r1": no such namevary r1 from 500 to 1k by 500 |tr (dfile _,tend 6m,terror 0.001,tstep 1.428uexecution time= 0.1 sec.dc;ac (dfile _,fbegin 100,fend 10k,npoints 500execution time= 0.1 sec.execution time= 0.217 sec.end*** ERROR "CLASS_UNMATCHED_END" *** Unmatched ENDend

Probable CauseDid not include template name and parameter name.

Saber® User Guide 309D-2010.03-SP1

Page 324: Saber User Guide 2010.03

Appendix B: Error MessagesSimulator Error Messages

Example 3vary rnom(r1) from 500 to 1k by 500near "rnom(r1": syntax errorvary rnom(r1) from 500 to 1k by 500 |tr (dfile _,tend 6m,terror 0.001,tstep 1.428uexecution time= 0.1 sec.dc;ac (dfile _,fbegin 100,fend 10k,npoints 500execution time= 0.0167 sec.execution time= 0.15 sec.end*** ERROR "CLASS_UNMATCHED_END" *** Unmatched ENDend

Probable CauseDid not include template name.

ERROR “CLASS_VERSION”ExampleThe dfile “trss” has been created with a different invocation of Saber*** ERROR "CLASS_VERSION" *** The dfile “trss” cannot be used for ipextract because it was created in a different invocation of Saber after something was altered. The alter information was lost when Saber was started over.execution time= 0.02 sec.

Probable CauseThe error arises because the data file does not match the state of the current design/simulation. This can occur when the designer attempts to use a data file for ipextract (Extract Initial Point) that was created in a different invocation of Saber and not updated after something was altered and the session ended. These changes will be lost and will not be available in the current session, rendering the data file “out of synch” with the current state of the design/simulation.

ResolutionPerform ipextract in the same session the data file is created, or update the data file immediately before leaving the Saber session to ensure all changes are captured. A fully updated data file can be used for extraction in another session as long as no changes are made before the extraction is performed.

310 Saber® User GuideD-2010.03-SP1

Page 325: Saber User Guide 2010.03

Appendix B: Error MessagesSimulator Error Messages

ERROR “DYN_LOAD_FAILED”Example*** ERROR “DYN_LOAD_FAILED” *** The load of symbol user-defined-routine-name failed.

Probable CauseYou attempted to use a foreign subroutine (a routine not written in the MAST modeling language). This message implies that the Saber Simulator cannot find a foreign function or subroutine.

ResolutionCheck that you compiled your foreign routine and that the resulting object file resides in a directory that is in your SABER_DATA_PATH.

If your routine is written in C, refer to the topic titled “Using C or FORTRAN Routines Called by Templates” in the installation manual to determine if the name of the routine must be followed by an underscore (_) character on your system. Then check to see that the name of your routine follows the required convention.

Determine if your routine uses functions from a system library. If it does, specify this library in a SABER_GLOBAL environment variable. Refer to the topic titled “Using C or FORTRAN Routines Called by Templates” in the installation manual.

ERROR “ERR_BUFFER”This message appears when it is not one of the programs that generates the message, for example, if the software has no control over the message content.

This is a generic message, meaning the same kind of message can occur under many different circumstances. It is not possible to classify the message and give conditions when it occurs, and how to fix it, as with other error messages.

ERROR “ERR_MISSING_ARG”Example***ERROR “ERR_MISSING_ARG”*** Missing argument input file

Saber® User Guide 311D-2010.03-SP1

Page 326: Saber User Guide 2010.03

Appendix B: Error MessagesSimulator Error Messages

Probable CauseThe saber command is typed at a Windows DOS prompt without a design specified.

ResolutionInvoke the saber command on a specific design.

ERROR “ERR_NOSTORE”Example*** ERROR “ERR_NOSTORE” *** Out of memory in routine XXXXX

Probable CauseThe default amount of the memory available to the Saber Simulator is 3,000,000 integers. This amount of memory accommodates most circuits. However, if your circuit is large, it may be necessary to increase the amount of available memory. Alternatively, you can configure Saber Guide to use a flat memory model.

Resolution■ In the UNIX environment, to increase the amount of memory available to the

Saber Simulator, use the saberld command with the -s option. For example, enter the following before you invoke the Saber Simulator on a design:

saberld -s 5000000

The size is expressed in number of integers.■ In the Windows or UNIX environment, to increase the amount of memory

available to the Saber Simulator, use the Saber command config memory_model flat.

■ In the NT environment, to increase the amount of memory available to the Saber Simulator, use the saber command with the -size option. For example, enter the following before you invoke the Saber Simulator on a design:

saber -size 5000000

The size is expressed in number of integers. This option can also be set in the Saber Settings form in Saber Guide. Open your design and then select Edit->SaberSettings... to open the form. On the Simulation tab, select the Controls sub-tab. Then, for the Memory size option, select Specified and enter a value in the field that is displayed.

312 Saber® User GuideD-2010.03-SP1

Page 327: Saber User Guide 2010.03

Appendix B: Error MessagesSimulator Error Messages

ERROR “EXT_TDB_EXCEPTION”Example*** ERROR “EXT_TDB_EXCEPTION” *** An error occurred while accessing the template database.

Probable CauseThe template database is unavailable due to incorrectly set permissions or corrupted files.

ResolutionUse the Update Template Information menu item to update the template database files, or use the command-line script to update the template database files without invoking an interactive application. ■ Select Saber > Update Template Information in any of the Frameways.■ Select Edit > Update Template Information in Saber Sketch.■ The command line script is:

ai_mk_tdb [-help] [-gui] [-sdp] file/dir...

You can invoke ai_mk_tdb -help for more information on this command.

ERROR “MAST_BAD_FIELD_NAME”ExampleLine 4 of x.sin near “e=_n, ix=”: *** ERROR “MAST_BAD_FIELD_NAME” *** The field “ix” does not appear in the argument list or structure.

Probable CauseThe argument ix is not a valid argument or a valid part of the model structure for this template. Usually a typographic error has been made, such as, in this case, using “ix” instead of the correct “is”.

ResolutionCheck arguments for misspellings, typographic errors, wrong order, etc.

Note: This message often appears with the following error messages:

*** FATAL ERROR “BUG_PROGRAM” ***

*** ERROR “MAST_BAD_FIELD” ***

Saber® User Guide 313D-2010.03-SP1

Page 328: Saber User Guide 2010.03

Appendix B: Error MessagesSimulator Error Messages

*** ERROR “MAST_CONN_COUNT” ***

ERROR “MAST_DUP_CMP”Example*** ERROR “MAST_DUP_CMP” *** Duplicate component “nand_l4.n1”.

Probable CauseTwo netlist entries refer to the same component in your design.

ResolutionIf two components in your design have the same name, change the reference designator (the extension after the period) of one of them. (For instance, one of the components in the example above could be renamed nand_l4.n2 if another component with that name does not exist in the design).

Or, if one of the entries in your netlist is simply a duplicate of another, remove it from your netlist.

ERROR “MAST_EXT_IN_ROOT”Example*** ERROR “MAST_EXT_IN_ROOT” *** the name “cmosp” is external to the root template.

Probable Cause 1A name has been declared as an external, but the named object does not appear in any of the ancestors of an instance of the template up to and including the root template.

ResolutionDeclare the object in the root template.

Probable Cause 2This error message can also result from an argument that is expecting a string as input.

ResolutionA string input must be enclosed in double quotes. For example: the matl argument of corenl.sin can have a string input, such as “sq_perm_80”.

314 Saber® User GuideD-2010.03-SP1

Page 329: Saber User Guide 2010.03

Appendix B: Error MessagesSimulator Error Messages

If the double quotes are not included in the argument, the Saber Simulator assumes that this is a numeric or other variable that is defined somewhere else in the hierarchy.

ERROR “MAST_FILE_NOT_FOUND”Exampleline 1 of tst.sin near “xyz.l”: *** ERROR “MAST_FILE_NOT_FOUND” *** Cannot find the file “xyz.sin” using SABER_DATA_PATH.

Probable CauseThe file indicated in the error message could not be found by the Saber Simulator.

Resolution■ Check that the file designated “undefined” in the error message is located in

one of the following places:

• Your local (working) directory

• The MAST Parts Library

• A directory specified in environment variable SABER_DATA_PATH

ERROR “MAST_IMPORTED_USED”ExampleTemplate rlc1_exp_val_bad*** ERROR "MAST_IMPORTED_USED" *** The value "power(resistor_1.r1)" in template"rlc1_exp_val_bad" depends on imported variables and must not enter analog equations.

Probable CauseIn the following example, power is declared as an export variable in template resistor_1.sin. In template rlc1_exp_val_bad this variable is assigned to a val variable within the rlc1_exp_val_bad template. So far this is ok. But the part that causes the problem is when the val variable pwrd is used in the right-hand side of an equation in the equations section of the rlc1_exp_val_bad template.

#------------Portion of resistor_1.sin---------

element template resistor_1 p m = res, tc, tnom

Saber® User Guide 315D-2010.03-SP1

Page 330: Saber User Guide 2010.03

Appendix B: Error MessagesSimulator Error Messages

electrical p, m

number res, tc[2]=[0, 0], tnom=27

external number temp # use temperature

export val p power # make power available

{

#------------end resistor_1.sin----------------

template rlc1_exp_val_bad p m = r,l,c

number r = 10k, # resistance arg. w/default

l = 1m, # inductance arg. w/default

c = 1u # cap. arg. w/default

{

val p pwrd

values{

pwrd = power(resistor_1.r1)

}

resistor_1.r1 p m = r

inductor.l1 p x = l

capacitor.c1 x m = c

equations{

i(p->m) += pwrd/v(p,m)

}

}

316 Saber® User GuideD-2010.03-SP1

Page 331: Saber User Guide 2010.03

Appendix B: Error MessagesSimulator Error Messages

ERROR “MAST_NO_COMP”Example*** ERROR “MAST_NO_COMP” *** There is no “r.1” in “/f_r.r2”.

Probable CauseYou attempted to specify a template in the alter or signal list (siglist) of an analysis and either the template does not occur in the netlist or the path to the template in the netlist has not been properly specified.

ResolutionType the instance of the template correctly (as it appears in the netlist). If hierarchy is involved, correctly specify the path to the desired template. For example, to find the correct path to a resistor, enter:

list .../r.1

This command causes a list of all resistors named r.1 to be displayed.

ERROR “MAST_NO_FIELD_NAME”Exampleline 5 of x.sin near “off=1), 0<CR>”: *** ERROR “MAST_NO_FIELD_NAME” *** Missing name = in field number 1 of an argument list or structure expression.

Probable CauseThe order of the arguments for this template in this netlist entry is different from that defined in the template. Arguments that are not specified in order must be specified in the form argument_name = value.

In this case, the netlist entry was:

v.cl a 0 = tran= (off=1), 0

This is a voltage source made up of a DC component of zero volts and a transient component that is turned off. The order defined in the voltage source template is the DC component first, followed by the transient component. Arguments not specified in order must be given in the form argument_name = value.

Saber® User Guide 317D-2010.03-SP1

Page 332: Saber User Guide 2010.03

Appendix B: Error MessagesSimulator Error Messages

ResolutionSpecify the arguments in the order defined in the template, or use the argument_name = value format. If you use the order defined in the template, the correct netlist line would be:

v.cl a 0 = 0, tran= (off=1)

If you use the argument_name = value format, the correct netlist line would be:

v.cl a 0 = tran= (off=1), dc = 0

Note: This message often appears with the following error message:

*** ERROR “MAST_BAD_FIELD” ***

ERROR “MAST_NO_NUM_EQUATION”Example*** ERROR “MAST_NO_NUM_EQUATION” *** Numerically no equation at /xfmrbad.dut/mwd

Probable Cause 1The template contains a netlist only, and the netlist contains a through variable loop (e.g., current loop, magnetic flux loop, etc.) that has no DC (direct current) path to the reference node. (The reference node is a node named 0 if one is present in the design. Otherwise, it is a node selected by the Saber Simulator. Refer to the error message "WARNING “MAST_NO_GROUND”").

ResolutionSet one of the nodes in the through variable loop to 0, or connect one of the nodes through an across variable source to the reference node.

Probable Cause 2The template (written in MAST) contains an equation in the equations section similar to the following:

x: a*x = b*y

ResolutionCorrect the condition in the template that causes a and b to both be set to zero.

Probable Cause 3The open loop gain (AVOL) of an op-amp (e.g. OP2) may be too high.

318 Saber® User GuideD-2010.03-SP1

Page 333: Saber User Guide 2010.03

Appendix B: Error MessagesSimulator Error Messages

ResolutionReduce the AVOL argument of the Op-amp to the 1E5 to 1E6 range. Values above 1E6 may cause this error.

Note: This message often appears with the following error message:

*** ERROR “ALG_SINGULAR_JACOBIAN” ***

ERROR “MAST_NO_NUM_REFERENCEExample*** ERROR “MAST_NO_NUM_REFERENCE” *** Numerically no reference to /xfmrbad.dut/mwa.

Probable CauseThere is no DC path between the node specified in the error message (/xfmrbad.dut/mwa in the example above) and the design’s reference node. (The reference node is a node named 0, if one is present in the design. Otherwise, it is a node selected by the Saber Simulator.) Refer to the error message *** WARNING “MAST_NO_GROUND” ***).

ResolutionAdd a large (for example, 100g (giga)) resistor from the node indicated in the error messages to the reference node (in the example, node /xfmrbad.dut/mwa).

Note: This message often appears with these messages:

*** ERROR “MAST_NO_NUM_EQUATION” ***

*** ERROR “ALG_SINGULAR_JACOBIAN” ***

ERROR “MAST_PIN_CONFLICT”Example*** ERROR “MAST_PIN_CONFLICT” *** The pin “vin” is of the wrong type.

Probable Cause 1Two or more pins of different types are connected together. For example, an electrical pin and a logic_l4 pin are connected.

Saber® User Guide 319D-2010.03-SP1

Page 334: Saber User Guide 2010.03

Appendix B: Error MessagesSimulator Error Messages

ResolutionEither disconnect the pins in your design, or insert the appropriate Hypermodel.

Probable Cause 2Hierarchical connectors for digital pins were used instead of digital input and output. This causes Hypermodels to be mistakenly inserted.

Resolution■ Use Hierarchical Input connector for connections to digital parts inputs.■ Use Hierarchical Output connector for connections to digital parts outputs.■ Only use Hierarchical Analog for electrical connections.

ERROR “MAST_UNDEF_NAME”Example*** ERROR “MAST_UNDEF_NAME” *** Undefined name “coeff”.

Probable Cause 1In a netlist: a property value is of a wrong data type (i.e. a string instead of a number).

For example: r.r1 = rnom = foo.

This netlist statement defines foo as being the value of the parameter rnom whereas the MAST template defines rnom as number.

ResolutionThe proper value type must be assigned to rnom, which is a valid number such as 100, not a string of characters such as foo.

320 Saber® User GuideD-2010.03-SP1

Page 335: Saber User Guide 2010.03

Appendix B: Error MessagesSimulator Error Messages

Probable Cause 2In a MAST template: a parameter name, system variable (var) or local variable (val) is used without being declared (this includes misspelling). For example:

This MAST template generates the error message when loaded in Saber. The reason is a misspelled word in the equations section (coeff instead of coef).

ERROR “MAST_UNDEF_TMP”Example*** ERROR “MAST_UNDEF_TMP” *** Undefined template “test”.

Probable CauseThe template indicated in the error message could not be found by the Saber Simulator.

Resolution■ Check that the template and the name of the file containing the template are

the same.■ Check that the name of the template file has the extension .sin (for example,

test.sin).■ Check that the template designated “undefined” in the error message is

located in one of the following places:

template isource m p = coef

electrical p,m

number coef

{

equations{

i(p->m) += coeff #ERROR ON THIS LINE

}

}

Saber® User Guide 321D-2010.03-SP1

Page 336: Saber User Guide 2010.03

Appendix B: Error MessagesSimulator Error Messages

• Your local (working) directory

• The MAST Parts Library

• A directory specified in environment variable SABER_DATA_PATH

ERROR “PL_BAD_DATAFILE”Example*** ERROR “PL_BAD_DATAFILE” *** Bad data file (.p2) format for plot file.

Probable CauseThe data in the file has been corrupted.

ResolutionSimulate design again.

ERROR “PL_BAD_EVENTS”Example*** ERROR “PL_BAD_EVENTS” *** Bad event file (.p3) format for plot file.

Probable CauseThe data in the file has been corrupted.

Resolution■ Simulate design again.■ Delete or rename your *.p3 files. All event data will be lost, but analog data

can be displayed.

ERROR “PL_OPEN_FILE”Example*** ERROR “PL_OPEN_FILE” *** File not opened.

Probable CauseA file that is expected by a MAST Source is either missing, misspelled, or not in the proper location. For example, assume the following instance of an Electrical Source v_trpf.v_trpf1 as shown from the Property Editor in the following figure:

322 Saber® User GuideD-2010.03-SP1

Page 337: Saber User Guide 2010.03

Appendix B: Error MessagesSimulator Error Messages

If you do not have the referenced file in the same directory as the schematic, the error message is generated.

ResolutionBe sure that the referenced file is in the same directory as the schematic and that it is spelled correctly.

ERROR “SEC_NOT_AUTHORIZED”Example*** ERROR “SEC_NOT_AUTHORIZED” *** You need the “Monte Carlo” package license to use MC.

This file is referenced bythe v_trpf source

Saber® User Guide 323D-2010.03-SP1

Page 338: Saber User Guide 2010.03

Appendix B: Error MessagesSimulator Error Messages

ResolutionRefer to the error

*** FATAL ERROR “SEC_NOT_AUTHORIZED” ***

ERROR “TER_ALIGNMENT”Example*** ERROR “TER_ALIGNMENT” *** Alignment error in call to ustore Traceback.

ResolutionThe simulator has detected that its allocated memory has been overwritten. This is most likely the case when using foreign functions, particularly foreign functions written in C language.

Using direct parameter addressing (pointers) can lead to using some part of the memory that should not be accessed.

Rewrite or comment out parameter addressing.

ERROR “TER_NOT_AUTH”Example*** ERROR “TER_NOT_AUTH” *** Program is not authorized to use this templateBad encrypted data found.line 108 of /support/saber/component/bjt/q2n2222a.sin near “520d13415”:

The netlist calls out a template in a library that is not available. The library may not be available for one of the following reasons described as follows:

Probable Cause 1The library is an optional library for which a license has not been purchased.

Resolution■ Verify that you have purchased a license by checking your license file

saber.lic located in the directory install_home/config.■ If a license has not been purchased, contact your local sales representative

or the Licensing Department to purchase a license for this feature.

324 Saber® User GuideD-2010.03-SP1

Page 339: Saber User Guide 2010.03

Appendix B: Error MessagesSimulator Error Messages

Probable Cause 2All copies of the library are currently checked out.

Resolution■ Enter the following command line to display a list of checked out licenses:

install_home/bin/lmstat -a -c install_home/config/

saber.lic

This command gives you complete status information about your license manager.

■ If all copies are frequently checked out, you should purchase additional licenses for this feature.

Probable Cause 3The FEATURE line corresponding to this template library is incorrect in your license file.

Resolution■ Check your license manager log file for error messages. If your license file

contains an incorrect FEATURE line, the license manager log file contains a line similar to the following:

“(saber_dmn) BAD CODE for OPT_TEMPLATE_LIBRARY”

In this example, the FEATURE line for the template library contains an error. ■ If a message in your license manager log file indicates an error, correct the

license file.

The error message Bad encrypted data found may also be found in the log file. This message can be ignored.

ERROR “TMPL_HYPER_VALUE”Example*** ERROR “TMPL_HYPER_VALUE” *** Hypermodel /ide_a2dn.dut: parameter voh or vxh. The condition is voh must be greater than vxh.

Probable CauseOne or both of the parameters listed in the error message do not meet the condition stated. This may be due to an unspecified parameter.

Saber® User Guide 325D-2010.03-SP1

Page 340: Saber User Guide 2010.03

Appendix B: Error MessagesSimulator Error Messages

ResolutionMake sure both parameters are specified and meet the stated condition. (The condition must be met even if it appears that the Saber Simulator will not use these parameters during the simulation.)

ERROR “TMPL_NLM_PAR_UNDEF”ExampleERROR “TMPL_NLM_PAR_UNDEF” *** /lnl.11/corenl.fe: model [1] ->ui must be defined.

Probable CauseA model argument to a nonlinear magnetics template is undefined.

In the example, the model argument to the template lnl.11 has an argument ui (initial permeability) that is undefined. This is one of eleven arguments to the model argument that define its magnetic characteristics, which must be defined.

ResolutionDefine the arguments as described in the manual Model Fundamentals, Chapter 3.

ERROR “TMPL_SRC_POS_OR_0”Example*** ERROR “TMPL_SRC_POS_OR_0” ***/v.in: pulse source; “rise time” must be >= 0’.

Probable CauseThe value of the named argument must be greater than or equal to zero.

ResolutionSpecify the parameter to be zero or positive.

Note: This message may occur when the argument is already set to zero. If this is the case, try setting the parameter to a very small positive value such as 1a (atto), 1f (femto), or 1p (pico).

326 Saber® User GuideD-2010.03-SP1

Page 341: Saber User Guide 2010.03

Appendix B: Error MessagesSimulator Error Messages

ERROR “UI_OPEN_FILE”Example*** ERROR “UI_OPEN_FILE” *** Cannot open the file “i”

Probable CauseThe file i to be included using the command line <i could not be opened because the file was not in the local directory, or the path to the file was not specified, or the file name was misspelled.

Resolution■ Copy the file into your local (working) directory.■ Specify the full path to the file’s location.■ Re-enter the command with the correct file name.

FATAL ERROR “BUG_PROGRAM”Example*** FATAL ERROR “BUG_PROGRAM” *** Program error in routine “pffft:error code = -1014”.

Probable CauseAn unexpected condition occurred that is not handled properly by a program. This condition may have been artificially created by a previous error condition.

ResolutionFirst, apply solutions to previous error messages.

If no other error messages appeared, call the Customer Support Department.

FATAL ERROR “DYN_REF”Example*** FATAL ERROR “DYN_REF” *** Some routine references are undefined.

Saber® User Guide 327D-2010.03-SP1

Page 342: Saber User Guide 2010.03

Appendix B: Error MessagesSimulator Error Messages

Probable CauseYou attempted to use a foreign subroutine (a routine not written in the MAST modeling language). This message implies that the Saber Simulator cannot find a foreign function or subroutine.

Resolution■ Check that you compiled your foreign routine and that the resulting object

file resides in a directory that is in your SABER_DATA_PATH.■ If your routine is written in C, refer to the topic titled “Using C or FORTRAN

Routines Called by Templates” in the installation manual to determine if the name of the routine must be followed by an underscore (_) character on your system. Then check to see that the name of your routine follows the required convention.

■ Determine if your routine uses functions from a system library. If it does, specify this library in a SABER_GLOBAL environment variable. Refer to the topic titled “Using C or FORTRAN Routines Called by Templates” in the installation manual.

Note: This message often appears with the following message:

*** “FATAL ERROR “DYN_SYM_FAIL” ***

FATAL ERROR “ERR_NOFILERD”ExamplePL Database Error: Error opening file.*** FATAL ERROR “ERR_NOFILERD” *** Cannot open the file “install.p1.acref” for reading.

Probable CauseThe Saber Simulator or CosmosScope Waveform Analyzer cannot open all of the necessary files for reading the results of an analysis or post-processing operation.

ResolutionCheck that all the files required are available and that you have read permission for the files.

All the files resulting from an analysis or post-processing operation must be available. You cannot rename files generated by an analysis or post-processing operation. You can move them to another directory, but they must all be together in the same directory.

328 Saber® User GuideD-2010.03-SP1

Page 343: Saber User Guide 2010.03

Appendix B: Error MessagesSimulator Error Messages

For example, the .p1 file resulting from an analysis contains reference pointers to other files in the complete set of files created by the analysis. The files created by an analysis are described in “Files Used by Saber Tools.”

FATAL ERROR “SEC_CFGFAIL”Example*** FATAL ERROR “SEC_CFGFAIL” *** Error in reading configuration file “analogy.cfg”.

Probable CauseThe file analogy.cfg provided with the software is missing or corrupted.

ResolutionRe-install the software.

FATAL ERROR “SEC_NOAUTH”ExampleLicense file “saber.lic” not found. ProblemThe license manager cannot find your license file.

ResolutionMake sure that your license file is located at %SYSTEMROOT% (typically C:\winnt) and is named saber.lic.

To check that your license file does not have a hidden extension (such as .txt) complete the following steps:

1. Invoke Windows Explorer.

2. Select View > Options.

3. Make sure the option Hide file extensions for known file types is not selected.

If it is selected click the checkbox to unselect it and then check Apply.

4. Locate the license file and rename it to remove any unnecessary characters.

Saber® User Guide 329D-2010.03-SP1

Page 344: Saber User Guide 2010.03

Appendix B: Error MessagesSimulator Error Messages

FATAL ERROR “SEC_LMGR_CRASH”Example*** FATAL ERROR “SEC_LMGR_CRASH” *** The SABER_SIMULATOR feature was lost due to the lmgrd server crashing.Please contact your system administrator for further assistance.

Probable CauseThe license manager is down.

ResolutionContact your system administrator for assistance in restarting the license manager.

FATAL ERROR “SEC_NO_REQUIRED”Example*** FATAL ERROR “SEC_NO_REQUIRED” *** Could not get required license - “MONTE CARLO”

Probable CauseYou have requested an option that is not available (in the example, the Monte Carlo option was requested).

ResolutionSee the resolution for the message:

*** FATAL ERROR “SEC_NOT_AUTHORIZED” ***

This error only occurs if you request a license using the -reqlic command option to the saber command.

FATAL ERROR “SEC_NOT_AUTHORIZED”Example*** FATAL ERROR “SEC_NOT AUTHORIZED” *** GRAPHICAL INTERFACE does not have an available license. Please check for correct hostid and/or enough licenses in license file. Invoking SABER in non-graphics (command) mode.

330 Saber® User GuideD-2010.03-SP1

Page 345: Saber User Guide 2010.03

Appendix B: Error MessagesSimulator Error Messages

Probable CauseThis message indicates a license that has been requested is not available. The example shown above indicates the GRAPHICS_INTERFACE license is not available. Licenses for major features may be unavailable for any of the following reasons:■ All licenses for the feature are currently in use.■ You have not purchased a license for the feature you are trying to use.■ Your license file has expired.■ The license manager is using the wrong version of the license file. A license

manager is required and it is not running.■ The FEATURE line corresponding to this feature in your license file is

incorrect.

Resolution■ Check the status of the license manager (if required) and the license you are

attempting to use by entering:

install_home/bin/lmstat -a -c install_home/config/

saber.lic

The information displayed includes the following:

• The status of the license manager.

• The features for which licenses are available and the total number of licenses available for each feature.

• Current users of the licenses for each feature.■ If the license you are attempting to use is not listed in the display from the

lmstat command, use a text editor or system utility such as tail or cat to display your license file. Check your license file for the following:

• Check that your license file contains a FEATURE line corresponding to the license requested. If you do not have a license for a feature you would like to use, contact Synopsys Customer Support ! to purchase one.

• Verify that the license for the feature has not expired. The expiration date is given in the fifth field of the FEATURE line corresponding to the feature. If the license for the feature is expired, contact the Licensing Department for a new license file.

Saber® User Guide 331D-2010.03-SP1

Page 346: Saber User Guide 2010.03

Appendix B: Error MessagesSimulator Error Messages

• If this is a new installation of the software and the license file has been provided by Fax, verify the contents of the license file have been entered into the license file exactly as they appear in the Fax.

■ If the error message continues to appear, verify that the license file being used by the license manager is the correct one.

• Look for a line similar to the following in the message that is displayed on your screen when the Saber Simulator is first invoked:

Reading authorization file

“/home/saber3_4/config/saber.lic”

• This line shows the location of the license file (saber.lic) that the license manager is using. If more than one license file is used, the files appear in a colon-separated list.

• Check that the complete path to the license file is displayed in the message. If only the name of the license file (e.g., saber.lic) is listed, a version of the license file in your local directory is being used by the license manager. Remove the local version of the license file if this is not the version to be used.

• If the license file used by the license manager is not the correct version, remove the incorrect version from the license file search path.

Note: This message is always preceded by the following warning message and a description of an error:

*** WARNING “SEC_LMGR_MESS” ***

License server not responding - attempting to reconnect . . .Examplelicense server not responding - attempting to reconnect...Use control-C to interrupt and quit trying.

Probable CauseThis message occurs when the license manager goes down. (The license manager will go down, for example, if a system failure occurs on a license server and, as a result, less than a majority of the license servers are running.)

332 Saber® User GuideD-2010.03-SP1

Page 347: Saber User Guide 2010.03

Appendix B: Error MessagesSimulator Error Messages

These applications check at intervals of usually about two minutes to determine if the license manager is running. If the license manager is not running, the application continues to check for the license manager. If it doesn’t succeed after several tries, the error message above is displayed.

The application continues to attempt to recover a license until you enter the interrupt character for your system (typically CNTL-C on UNIX systems).

Resolution■ If you want to terminate the simulation, enter the interrupt character for your

system. The simulation terminates and files are saved. You will need to re-run the simulation when the needed licenses become available again.

■ If you want the simulation to continue when the license manager comes back up, do not interrupt the process. When a set of all the licenses you were using when you started the simulation are again available, the simulation automatically continues.

If you are running a simulation in batch mode, the error message appears in the .out file for your design. You can enter an interrupt character to terminate the simulation or wait until the set of licenses your were using are available again for the simulation to continue.

not loaded by saberldThis message indicates that a routine is not defined or cannot be found. Refer to the undefined symbol message in this chapter.

saberld: Fortran or C compiler required. Neither found ...Probable CauseNeither a FORTRAN compiler nor a C compiler was found when the saberld command was executed.

ResolutionInclude the location of a FORTRAN or C compiler in your path variable. See your system administrator if you need help.

ReferenceRefer to the saberld command description

Saber® User Guide 333D-2010.03-SP1

Page 348: Saber User Guide 2010.03

Appendix B: Error MessagesSimulator Error Messages

Syntax errorThe syntax error message may appear alone, or it may be accompanied by other messages.

Example 1Near “(te 60p.”: syntax error.

Probable Cause 1In this example, the transient command tr (te 60p. is incorrect.

The period (.) following the 60p is syntactically incorrect. Characters that can appear in this position include comma (,), <TAB>, <CR>, right parenthesis ()), or <SPACE>.

Example 2line 1 of test.sin near “v.1 if”: syntax error

Probable Cause 2The previous error message refers to the following line in a netlist:

v.1 if 0 = 1

In this example, the word if is a reserved word in the MAST modeling language and cannot be used as a variable name in a template or netlist.

ResolutionDo not use reserved words as variable names in templates or netlists. Refer to the MAST Language Reference Manual for a list of reserved words and other MAST syntax rules.

Note: For syntax error messages that include the location of the error, the actual error is near the end of the string of characters that appear in quotes after the word Near. In the first example above, the error was the last character displayed. In the second example, the error was the second to the last character displayed.

Unable to open display “machine_name”ExampleUnable to open display “finland”

334 Saber® User GuideD-2010.03-SP1

Page 349: Saber User Guide 2010.03

Appendix B: Error MessagesSimulator Error Messages

This message may be displayed when you attempt to invoke the Saber Simulator remotely using X Windows. The message indicates one of the following problems:

Probable Cause 1The X Windows server field has not been given a value in your DISPLAY environment variable.

ResolutionTo tell the remote host where you want output from an application to be displayed, enter (if you are using a UNIX C shell):

rlogin remote_host

setenv DISPLAY machine_name:0

where remote_host is the machine (host) name of the remote host and machine_name is the machine (host) name of your machine.

Probable Cause 2The remote machine has not been given permission to display on your machine.

ResolutionTo give the machine on which the software will be running (the remote host) permission to display on your machine, enter on your machine:

xhost +remote_host

where remote_host is the machine (host) name of the remote host

Unable to open display “machine_name:0”ExampleUnable to open display “finland:0”

Probable CauseThis message may be displayed when you attempt to invoke the Saber Simulator remotely using X Windows. In the example above, either there is no machine on the network named finland or the machine finland does not currently have X Windows running.

Saber® User Guide 335D-2010.03-SP1

Page 350: Saber User Guide 2010.03

Appendix B: Error MessagesSimulator Error Messages

Resolution■ Check that X Windows has been started up on your machine before you

attempt to invoke the Saber Simulator.■ Check that your DISPLAY environment variable has been defined correctly.

To tell the remote host where you want output from an application to be displayed, enter (if you are using a UNIX C shell):

rlogin remote_host

setenv DISPLAY machine_name:0

where remote_host is the machine (host) name of the remote host and machine_name is the machine (host) name of your machine.

undefined symbolProbable CauseThis message may appear when you invoke either the Saber Simulator or the saberld command. This message indicates that a routine is not defined or cannot be found.

ResolutionYou may need to specify the additional routines to be loaded by defining a SABER_GLOBAL environment variable in your user startup file.

Complete the appropriate definition in your startup file for your shell environment as shown in the following table:

Shell &

File

SABER_GLOBAL Definition

C

.cshrc

Enter the following line anywhere in your .cshrc file:

setenv SABER_GLOBAL "saber_global_values"

Bourne

.profile

Enter the following lines anywhere in your .cshrc file:

SABER_GLOBAL="saber_global_values"

export SABER_GLOBAL

336 Saber® User GuideD-2010.03-SP1

Page 351: Saber User Guide 2010.03

Appendix B: Error MessagesSimulator Error Messages

where saber_global_values are the values to be used in the ld command to load required routines.

If FORTRAN libraries are not installed on your system, the math library should be loaded by including the value -lm with any other saber_global_values you specify. If FORTRAN libraries are installed on your system, see the table under the Note section for values to include.

Note:

Be sure that you are using the currently supported version of your compiler.

Note that 1 is the number “one”, l is a lower-case letter “L”, and I is the upper-case letter “I”.

WARNING "ALG_NO_MM_DC”Example*** WARNING "ALG_NO_MM_DC" *** Mixed mode oscillation. DC solution may not exist. You may wish to increase the value of ADiter (now 30)

Probable CauseThe circuit does not have a single steady state in DC analysis. This is because it is an operating digital oscillator such as an LM555 timer circuit. Because the digital part is not at a single state the DC solution cannot be found.

ResolutionIgnore the DC analysis and start the transient analysis with the TRIP field set to zero (written as zero, not as numeric 0).

There can be no DC solution while the oscillator is running.

Operating System

Values to be included with FORTRAN libraries installed

SunOS 4.1.3_U1

-Ldir/SC2.0.1/cg87 -Ldir/SC2.0.1 -lM77 -lF77 -lm

where dir is the path to the directory where f77 Version 2.0.1 is installed. Typical paths are /usr/lang or /usr/share/lang.

SunOS 5.4 -L/opt/SUNWspro/SC2.0.1 -lM77 -lF77 -lm

HP-UX (none required)

Saber® User Guide 337D-2010.03-SP1

Page 352: Saber User Guide 2010.03

Appendix B: Error MessagesSimulator Error Messages

WARNING “ALG_THRESHOLD”Example*** WARNING “ALG_THRESHOLD” *** Inaccurate threshold crossing time for XXX.X You may wish to modify TRESolution.

Probable CauseThe threshold crossing time is incorrect. Changing the TRESolution keeps the error message from appearing, but does not address the root of the problem.

ResolutionThe problem can be fixed by changing one or more of the following:

Step SizeDensityNewton Step Density

WARNING “MAST_NO_GROUND”Example*** WARNING “MAST_NO_GROUND” *** There is no ground (node 0) in “w”. “N2” is taken as the reference node.

Probable CauseThere is no node named 0 in your design. The warning indicates which node the Saber Simulator has selected as the reference node (In the example, the node named N2 has been selected).

ResolutionYou can modify your netlist to include a node named 0, or you can ignore this message if using the indicated node as a reference point for all measurements is acceptable.

WARNING “SEC_EXPIRED”Example*** WARNING “SEC_EXPIRED” *** Authorization for the SPECTRAL license has expired. Please contact your system administrator.

338 Saber® User GuideD-2010.03-SP1

Page 353: Saber User Guide 2010.03

Appendix B: Error MessagesSimulator Error Messages

Probable CauseThe license for a feature as expired.

ResolutionContact the Licensing Department for information about how to renew the license.

WARNING “SEC_EXPIRING”Example*** WARNING “SEC_EXPIRING” *** Authorization for the SPECTRAL package expires on 31-may-95. Please contact your system administrator.

Probable CauseThe license for a feature will be expiring on the date given.

ResolutionContact the Licensing Department for information about how to renew the license.

WARNING “SEC_LMGR_MESS”Example*** WARNING “SEC_LMGR_MESS” *** For feature“SABER_SIMULATOR_C” or “SABER_SIMULATOR_NL” -License Manager returned:“license file does not support this version”

Probable Cause - GeneralThis warning message is generated by the license manager. A number of different messages may be returned by the license manager as a part of this warning message. In the example above, the license manager returned the message “license file does not support this version”.

Resolution- GeneralRefer to the appropriate message description (problem) and solution as follows:

Probable Cause 1“licensed number of users already reached”

Saber® User Guide 339D-2010.03-SP1

Page 354: Saber User Guide 2010.03

Appendix B: Error MessagesSimulator Error Messages

All the licenses for a particular feature are in use.

Resolution■ Wait until a license is available.■ If this error message appears frequently, contact the Licensing Department

to purchase additional licenses for the feature.

Probable Cause 2“no such feature exists”

The feature could not be found in the license file. This usually means you have not purchased the feature or there is an error in the FEATURE line.

Resolution■ If you have not purchased the feature, contact Synopsys Customer Support

! to purchase the feature and obtain a new license file.■ If a FEATURE line exists in your license file for the feature, check for errors

in the FEATURE line.

Probable Cause 3“feature has expired”

The license for a FEATURE in your license file has expired.

ResolutionCheck the exp_date field in each FEATURE line in your license file for a date earlier than the current date indicating the license is expired. Call the Licensing Department to renew an expired FEATURE.

Probable Cause 4"no SERVER lines in license file"

There is no SERVER line in your license file and your license file contains FEATUREs that require at least one license server (indicated by a number greater than 0 in the #_licenses field).

Resolution■ Check that lines were not inadvertently omitted when you entered your

license file. ■ Check for errors in the #_licenses field in each FEATURE line.

Probable Cause 5“cannot connect to license server”

The license manager is not running.

340 Saber® User GuideD-2010.03-SP1

Page 355: Saber User Guide 2010.03

Appendix B: Error MessagesSimulator Error Messages

ResolutionPlease call the Customer Support Department.

Probable Cause 6"cannot read data from license server"

An internal error has occurred.

ResolutionPlease call the Customer Support Department.

Probable Cause 7"cannot write data to license server"

An internal error has occurred.

ResolutionPlease call the Customer Support Department.

Probable Cause 8“license file does not support this version”

The license file was created for an earlier version of the license manager than the license manager that is currently running. For example, the license file may have been created to be used by Version 2.1 of the license manager, but the license manager running on your system is Version 3.00.

Resolution■ Install the most recent version of your license file.■ If the error message continues to appear, verify that the license file being

used by the license manager is the correct one.

• Look for a line similar to the following in the message displayed on your screen when the Saber Simulator is first invoked:

Reading authorization file “/home/saber3_4/config/saber.lic”

This line shows the location of the license file (saber.lic) that the license manager is using.

• If the license file used by the license manager is not the correct version, remove the incorrect version from the license file search path.

■ If the error message continues to appear, contact the Licensing Department for a new license file.

Saber® User Guide 341D-2010.03-SP1

Page 356: Saber User Guide 2010.03

Appendix B: Error MessagesSimulator Error Messages

Probable Cause 9“license server does not support this feature”

The license file contains FEATUREs licensed under a later version of the license manager than the license manager that is currently running. For example, the license file may have been created to be used by Version 3.00 of the license manager, but the license manager running on your system is Version 2.1

ResolutionUpdate your license manager, or use a license file corresponding to the version of the license manager currently installed.

Probable Cause 10“license server busy (no majority)”

The license manager is busy if a quorum (>50%) of the license daemons are running so that licensing can start.

ResolutionWait a few minutes and then try starting the simulation again.

Probable Cause 11“license server temporarily busy (new server connecting)”

The Saber daemon is in the process of establishing a quorum condition.

ResolutionWait a few minutes and then try starting the simulation again.

Probable Cause 12“license server does not support this version of this feature”

The license file contains features licensed under a later version of the license manager than the license manager that is currently running. For example, your license file may have been created to be used by Version 2.1 of the license manager, but the license manager running on your system is Version 1.5.

Resolution■ Update your license manager, or use a license file corresponding to the

version of the license manager currently installed.■ Check that you are running the license manager lmgrd and Saber daemon

saber_dmn provided with your current version of the Saber Products software.

342 Saber® User GuideD-2010.03-SP1

Page 357: Saber User Guide 2010.03

Appendix B: Error MessagesSimulator Error Messages

Probable Cause 13“request for more licenses than this feature supports”

All licenses for this feature are in use. The license manager was not able to find a combination of licenses to service the request.

ResolutionWait until licenses are again available

Probable Cause 14“cannot read license file”

ResolutionCheck that access permissions for the license file have been set to provide read access to all users.

Probable Cause 15“Clock difference too large between client and server”

The date on the user’s system does not agree closely enough with the date on a license server.

ResolutionCheck the system clocks on the user’s system and on all the license servers. Set all the clocks to be within 24 hours of each other

Probable Cause 16“User/host on EXCLUDE list for feature”

The user or the host of the display has been excluded from this feature by a Saber daemon option file.

Probable Cause 17“User/host not on INCLUDE list for feature”

The user or the host of the display has not been included in this feature by a Saber daemon option file.

WARNING “SEC_LMGR_MSG”Refer to *** WARNING “SEC_LMGR_MESS” ***

Saber® User Guide 343D-2010.03-SP1

Page 358: Saber User Guide 2010.03

Appendix B: Error MessagesSimulator Error Messages

WARNING “SEC_LMGR_RECOVERY”Example*** WARNING “SEC_LMGR_RECOVERY” *** Attempting recovery for the SABER_SIMULATOR feature.The license server may be down. Contact your system administrator for additional assistance.

Probable CauseIndicates that the license manager is going down.

ResolutionCall your system administrator to restart the license manager.

WARNING “SEC_LMGR_RECOVERED”Example*** WARNING “SEC_LMGR_RECOVERED” *** The SABER_SIMULATOR feature was automatically recovered.

Probable CauseIndicates that the license manager has restarted. No action required.

WARNING “SEC_NOT_AVAIL”Example*** WARNING “SEC_NOT_AVAIL” *** MONTE_CARLO: No license available.

Probable CauseA license for this feature is not present in your license file.

WARNING “SPLIT_UNCONNECTED_BUT_CLASSIFIED”Example***WARNING “SPLIT_UNCONNECTED_BUT_CLASSIFIED”*** Port port_name on cell cell_name is not connected to an internal net. The schematic capture system should have warned you of this. It is being removed from the net in the cell above it.

344 Saber® User GuideD-2010.03-SP1

Page 359: Saber User Guide 2010.03

Appendix B: Error MessagesSimulator Error Messages

Probable Cause 1There is a hierarchical symbol which has pins on the symbol but not on the underlying hierarchical schematic.

ResolutionPlace hierarchical connectors on the schematic using the same names as the pins on the symbol.

Probable Cause 2If preceded by:

“Warning: Names of symbol ports do not match port names for the underlying schematic on symbol symbol_name

the connector names on the hierarchical schematic do not match the pin names on the symbol.

ResolutionRename the appropriate port or connector names so that they are the same.

WARNING “TMPL_LIMIT_IP”Example*** WARNING “TMPL_LIMIT_IP” *** /lf155_1.dut/op1c.1: during a dc analysis, The output voltage vout = 15.000000629874 was outside its limit of vcc minus dvomax; check simulation results (vout_warn and vout_cnt) for other possible limit violation conditions by this variable.

Probable CauseSome templates contain a condition check on certain parameters to warn if they exceed a safe operating area defined in the template. This message indicates that a safe operating area is being violated during a DC analysis.

In the example, the operational amplifier template lf155_1 was connected to +/- 15 volts supplies. The manufacturer’s data book for this part lists the minimum voltage swing as “+/- 12V with Vs = +/-15V and Rl = 10K” (National Semiconductor General Purpose Linear Devices, 1989, page 3-25). These restrictions were included in the template. Because they were exceeded during the simulation, this warning message was generated.

Saber® User Guide 345D-2010.03-SP1

Page 360: Saber User Guide 2010.03

Appendix B: Error MessagesSimulator Error Messages

ResolutionCheck the simulation results for violations of the restrictions indicated in the error message. Make changes to your design as needed and re-run the simulation.

WARNING “TMPL_LIMIT_TIME”Example*** WARNING “TMPL_LIMIT_TIME” *** /lf155_1.dut/op1c.1: at time = 516.91533694948u, variable The output voltage vout was outside its limit of vee plus dvomin; check simulation results (vout_warn and vout_cnt) for other possible limit violation conditions by this variable.

Probable CauseSome templates contain a condition check on certain parameters to determine whether they exceed a safe operating area defined in the template. This message indicates that a safe operating area is being violated during a transient analysis.

In the example, the operational amplifier template lf155_1 was connected to +/- 15 volts supplies. The manufacturer’s data book for this part lists the minimum voltage swing as “+/- 12V with Vs = +/-15V and Rl = 10K” (National Semiconductor General Purpose Linear Devices, 1989, page 3-25). These restrictions were included in the template. Because they were exceeded during the simulation, this warning message was generated.

ResolutionCheck the simulation results for violations of the restrictions indicated in the error message. Make changes to your design as needed and re-run the simulation.

WARNING "MAST_STAT_TOPOLOGY"Example*** WARNING "MAST_STAT_TOPOLOGY" *** The alter changed thestatistical topology of /spec_ceramic_cap_class2.c1.*** WARNING "MAST_STAT_TOPOLOGY" *** The alter changed thestatistical topology of /spec_rectifier_diode.d4.

346 Saber® User GuideD-2010.03-SP1

Page 361: Saber User Guide 2010.03

Appendix B: Error MessagesLicense Manager Log File Messages

Probable CauseEnter problem description here.

ResolutionEnter solution here.

X display server name required.Probable CauseYour working environment has not been set up to use the X Windows graphics environment. The environment variable DISPLAY has not been set up for this workstation.

ResolutionTo tell the remote host where you want output from an application to be displayed, enter (if you are using a UNIX C shell):

rlogin remote_host

setenv DISPLAY machine_name:0

where remote_host is the machine (host) name of the remote host and machine_name is the machine (host) name of your machine.

X toolkit error: can’t open displayProbable CauseYou have too many X Windows open. You cannot open another window.

ResolutionClose unneeded windows before attempting to open another window.

License Manager Log File Messages

The messages described here are messages most commonly encountered in a license manager log file. Each message is followed by a description of the problem indicated and possible solutions you can use to correct the problem.

This section covers the following topics:

Saber® User Guide 347D-2010.03-SP1

Page 362: Saber User Guide 2010.03

Appendix B: Error MessagesLicense Manager Log File Messages

■ . . . BAD CODE for feature■ BADCODE “encryption code in license file is inconsistent”■ BADCOMM “invalid returned data from license server”■ BADDATE “invalid date format in license file”■ BADFILE "invalid license file syntax"■ BADHOST “cannot find SERVER hostname in network database”■ CANTCONNECT “cannot connect to license server”■ EXPIRED "feature has expired"■ license daemon: execl failed:■ license manager: can’t initialize: cannot find license file■ . . . (lmgrd) license manager: Not a valid server host, exiting■ . . . (lmgrd) Retrying socket bind (address in use)■ . . . (lmgrd) Trying connection to . . .■ No features to serve. Shutting down saber_dmn■ NOREADLIC "cannot read license file"■ NOSERVER "Cannot connect to a license server"■ NO_SERVER_IN_FILE "no SERVER lines in license file"■ NOSERVICE "no TCP "license" service exists"■ NOSOCKET “no socket connection to license manager server”■ NOTTHISHOST "invalid host"■ OLDVER "license file does not support this version"■ . . . (saber_dmn) Wrong hostid, exiting.■ SERVLONGGONE "license server does not support this . . .■ SNOSERVSUPP "license server does not support this feature"

. . . BAD CODE for feature Probable CauseA FEATURE line in your license file contains an error.

348 Saber® User GuideD-2010.03-SP1

Page 363: Saber User Guide 2010.03

Appendix B: Error MessagesLicense Manager Log File Messages

ResolutionCheck the corresponding line in the license file to see that it matches the corresponding line in the listing of the license file that was sent to you.

BADCODE “encryption code in license file is inconsistent”Probable CauseThe encrypted license_code in a FEATURE line in your license file does not match the other data in the license file. This usually means it was entered incorrectly when you created your license file.

ResolutionCheck each FEATURE line in your license file for errors.

BADCOMM “invalid returned data from license server”Probable CauseAn internal error has occurred.

ResolutionPlease call the Customer Support Department.

BADDATE “invalid date format in license file”Probable CauseThe expiration date for a FEATURE in your license file is invalid.

ResolutionCheck the exp_date field for each FEATURE line to make sure the date was entered correctly when you created your license file.

Saber® User Guide 349D-2010.03-SP1

Page 364: Saber User Guide 2010.03

Appendix B: Error MessagesLicense Manager Log File Messages

BADFILE "invalid license file syntax"Probable CauseThe #_licenses field in a FEATURE line in your license file contains a value less than or equal to 0 indicating it is a node-locked, multi-user license, but the ID of the host machine at the end of the line is either invalid or not present.

ResolutionCheck your license file for errors.

BADHOST “cannot find SERVER hostname in network database”Probable CauseThe TCP/IP control file called hosts does not contain the host_name for one of your license servers.

ResolutionEnter the host_name for each license server into the hosts file.

CANTCONNECT “cannot connect to license server”Probable CauseThe license manager is not running.

ResolutionFollow the license manager procedures in the installation documentation.

EXPIRED "feature has expired"Probable CauseThe license for a FEATURE in your license file has expired.

Example(saber_dmn) EXPIRED: SABER_SIMULATOR

350 Saber® User GuideD-2010.03-SP1

Page 365: Saber User Guide 2010.03

Appendix B: Error MessagesLicense Manager Log File Messages

Resolution■ Check the exp_date field in each FEATURE line in your license file for a date

earlier than the current date indicating the license is expired. Call the Licensing Department to renew an expired FEATURE.

■ Check the date in the fifth field of the FEATURE line for the indicated feature in your license file. If the date is earlier than the current date, you need to update your license file. In the example, the license for the feature SABER_SIMULATOR has expired. Contact the Licensing Department to renew the license.

license daemon: execl failed:Example10/24 12:47 (lmgrd) FLEXlm (v2.10) started on finland10/24 12:47 (lmgrd) Using license file "saber.lic"license daemon: execl failed: (/usr/wrk/bin/saber_dmn or /usr/wrk/bin/saber_dmn/saber_dmn) -T sweden 2.10 4 -c saber.lic

This message indicates the license daemon lmgrd on the license server sweden was unable to locate the Saber daemon saber_dmn. It may not be able to do so for one of the following reasons:

Probable Cause 1In the DAEMON line in your license file, the wrong path has been specified to the Saber daemon saber_dmn.

Resolution■ Shut down all currently running license daemons by entering on any

machine on your network:

license_home/lmdown -c license_home/saber.lic

Modify the DAEMON line in your license file to specify the correct path to the saber_dmn.

Check that the saber_dmn file is present at the location specified in the DAEMON line of the license file.

■ Restart the license daemon on each of your license servers by logging in to each license server and entering the appropriate commands.

Saber® User Guide 351D-2010.03-SP1

Page 366: Saber User Guide 2010.03

Appendix B: Error MessagesLicense Manager Log File Messages

Probable Cause 2A copy of the saber_dmn file is not present at the location specified in the DAEMON line in your license file.

ResolutionCheck that a copy of the saber_dmn file has been placed on each license server in your system at the location specified in license file.

Probable Cause 3The saber_dmn is the wrong version for the machine on which it is running.

Resolution■ Check that the system type and operating system version number of the

software you are attempting to use correspond to your license server machine type and operating system version.

■ If your software has been loaded from a CD-ROM, check with your system administrator to make sure the correct system type and version number were specified when the software was loaded from the CD-ROM.

■ If your software has been loaded from tapes, check the “System Type:” and “O/S” version numbers on the tape label.

■ If you do not have a version of the software that corresponds to your license server, contact the Customer Support Department.

license manager: can’t initialize: cannot find license fileExamplelicense manager: can’t initialize: cannot find license fileUsing license file "/usr/local/flexlm/licenses/license.dat"

Probable CauseYou specified the wrong path to your license file when you started the license daemon lmgrd on your license server.

Resolution■ Determine the correct path to your license file saber.lic. Your license file

saber.lic should be located in the license_home directory, where license_home is the directory in which your license manager software has been installed.

■ Shut down all currently running license daemons by entering on any machine on your network:

352 Saber® User GuideD-2010.03-SP1

Page 367: Saber User Guide 2010.03

Appendix B: Error MessagesLicense Manager Log File Messages

license_home/lmdown -c license_home/saber.lic

■ Restart the license daemon on each of your license servers. Log in to each license server and enter the appropriate command with the correct path to your license file.

. . . (lmgrd) license manager: Not a valid server host, exitingThis message may indicate one of the two following problems:

Probable Cause 1The host_name in the SERVER line in your license file corresponding to this license server is incorrect.

Resolution■ Open your license file in a text editor. Your license file saber.lic is located in

the license_home directory (recommended to be /etc/saber).

Find the SERVER line containing the ID for this license server and change the host_name to the machine name of this license server.

■ Restart the license daemon on the license server using the command for your operating system.

Probable Cause 2You are starting the license daemon lmgrd on a license server that is not specified in a SERVER line in your license file.

Resolution■ Each license server must have a corresponding SERVER line in your

license file. Check your license file saber.lic (in license_home - /etc/saber) to see which license servers are listed.

■ If you want to use a license server that is not listed in your license file, contact the Licensing Department for a new license file.

. . . (lmgrd) Retrying socket bind (address in use)The port (or socket) designated in the SERVER line for this license server in your license file is currently in use and is not available to the license daemon (lmgrd) you are attempting to start. It may be unavailable for one of the following reasons.

Saber® User Guide 353D-2010.03-SP1

Page 368: Saber User Guide 2010.03

Appendix B: Error MessagesLicense Manager Log File Messages

Probable Cause 1A license daemon was previously started on this license server and is still running or was shut down improperly.

Resolution■ Shut down all currently running license daemons by entering on any

machine on your network:

license_home/lmdown -c license_home/saber.lic

■ If you have already shut down the license daemon and the problem persists, reboot the license server.

■ Restart the license daemon on each of your license servers by logging in to each license server and entering the appropriate command or commands.

Probable Cause 2Another program (such as the desktop publishing application Interleaf) is already using the port (socket) that the license daemon is requesting.

Resolution■ Shut down all currently running license daemons by entering on any

machine on your network:

license_home/lmdown -c license_home/saber.lic

■ In the SERVER line for this license server in your license file, change the port number to some other number greater than 1250. Check with your system administrator for an unused number. (The port number can be different in different SERVER lines.)

■ Restart the license daemon on each of your license servers by logging in to each license server and entering the appropriate commands.

. . . (lmgrd) Trying connection to . . .Example10/22 10:05 (lmgrd) FLEXlm (v2.10) started on sweden10/22 10:05 (lmgrd) Using license file "saber.lic"10/22 10:05 (lmgrd) Trying connection to norway10/22 10:05 (lmgrd) Trying connection to finland10/22 10:05 (lmgrd) Trying connection to denmark

354 Saber® User GuideD-2010.03-SP1

Page 369: Saber User Guide 2010.03

Appendix B: Error MessagesLicense Manager Log File Messages

Probable CauseThe sequence of messages in the example indicates that you have not yet started the license daemon on a majority of the license servers listed in the SERVER lines in your license file.

ResolutionContinue installing the license manager software on your license servers and starting license daemons on each of them. When you have completed this on a majority of your license servers, the Saber daemon saber_dmn will start up and the licenses will become available to users.

No features to serve. Shutting down saber_dmnThis message may indicate one of the following problems:

Probable Cause 1If the log file also contains a message similar to the following:

. . . BAD CODE for feature

the FEATURE line indicated in the messages contains an error in your license file.

ResolutionSee the message . . . BAD CODE for feature.

Probable Cause 2Your license file may be incorrectly configured. For example, if you are running the Saber Simulator with a node-locked/multi-user license only, and your license file contains a DAEMON or SERVER line, it is incorrectly configured.

ResolutionCall the Customer Support Department and request a new license file.

NOREADLIC "cannot read license file"Probable CauseThe license file could not be read.

ResolutionCheck that access permissions for the license file have been set to provide read access to all users.

Saber® User Guide 355D-2010.03-SP1

Page 370: Saber User Guide 2010.03

Appendix B: Error MessagesLicense Manager Log File Messages

NOSERVER "Cannot connect to a license server"Probable CauseThe daemon name specified in a license file FEATURE line is not saber_dmn.

ResolutionCheck that the daemon field in each FEATURE line contains the name saber_dmn. (It should not contain the full pathname to the saber_dmn.)

NO_SERVER_IN_FILE "no SERVER lines in license file"Probable CauseThere is no SERVER line in your license file and your license file contains FEATURES that require at least one license server (indicated by a number greater than 0 in the #_licenses field).

Resolution■ Check that lines were not inadvertently omitted when you entered your

license file. ■ Check for errors in the #_licenses field in each FEATURE line.

NOSERVICE "no TCP "license" service exists"Probable CauseA SERVER line in the license file does not specify a valid port number.

ResolutionCheck the port_number in each SERVER line in your license file. Any number above 1250 is a valid port number.

NOSOCKET “no socket connection to license manager server”Probable CauseAn internal error has occurred.

ResolutionPlease call the Customer Support Department.

356 Saber® User GuideD-2010.03-SP1

Page 371: Saber User Guide 2010.03

Appendix B: Error MessagesLicense Manager Log File Messages

NOTTHISHOST "invalid host"Probable CauseThe ID specified in a SERVER line in the license file does not match the host_name of the license server.

Resolution■ If the host_name of the license server has been changed, edit the license

file to enter the correct name in the host_name field of the SERVER line corresponding to that license server.

■ If the host_name is correct, check that the saberid for the license server has been entered correctly.

OLDVER "license file does not support this version"Probable CauseThe license file was created for an earlier version of the license manager than the license manager that is currently running. For example, the license file may have been created to be used by Version 1.5 of the Highland Software license manager, but the license manager running on your system is Version 2.1.

ResolutionInstall the most recent version of your license file. If the error message continues to appear, contact the Licensing Department for a current license file.

. . . (saber_dmn) Wrong hostid, exiting.Example10/24 12:42 (lmgrd) FLEXlm (v2.10) started on ellifino10/24 12:42 (lmgrd) Using license file "saber.lic.ellifino"10/24 12:42 (lmgrd) Started saber_dmn (internet port 4789)10/24 12:42 (saber_dmn) Wrong hostid, exiting.10/24 12:42 <saber_dmn> ls_exit() called with signal 3410/24 12:42 <lmgrd> Child pid (17771) died with status 3410/24 12:42 (lmgrd) Please correct problem and restart daemons10/24 12:42 <lmgrd> restart?: restart: 0, master: 0, havequorum: 1, going_ down: 0

This error message indicates the ID in the SERVER line for this license server is incorrect. It may be incorrect for one of the following reasons:

Saber® User Guide 357D-2010.03-SP1

Page 372: Saber User Guide 2010.03

Appendix B: Error MessagesLicense Manager Log File Messages

Probable Cause 1You received your license file by Fax and typed the ID number in incorrectly when you created your license file.

Resolution■ Shut down all currently running license daemons by entering on any

machine on your network:

license_home/lmdown -c license_home/config/saber.lic

■ Compare the contents of your license file to the Fax listing sent to you and correct any errors. Your license file saber.lic is located in license_home (recommended to be in /etc/saber).

■ Restart the license daemon on each of your license servers by logging in to each license server and entering the appropriate command.

Probable Cause 2The ID given to the Licensing Department when your license file was requested was incorrect.

Resolution■ Call the Licensing Department and provide the correct ID. You will be sent a

new license file.■ Install your new license file.■ Copy the new license file to all your file server(s) and license server(s).

SERVLONGGONE "license server does not support this . . . MessageSERVLONGGONE "license server does not support this version of this feature"

Probable CauseThe license file contains FEATURES licensed under a later version of the license manager than the license manager that is currently running. For example, the license file may have been created to be used by Version 2.1 of the Highland Software license manager, but the license manager running on your system is Version 1.5.

358 Saber® User GuideD-2010.03-SP1

Page 373: Saber User Guide 2010.03

Appendix B: Error MessagesLicense Manager Log File Messages

ResolutionUpdate your license manager, or use a license file corresponding to the version of the license manager currently installed.

SNOSERVSUPP "license server does not support this feature"Probable CauseThe license file contains FEATURES licensed under a later version of the license manager than the license manager that is currently running. For example, the license file may have been created to be used by Version 2.1 of the Highland Software license manager, but the license manager running on your system is Version 1.5.

ResolutionUpdate your license manager, or use a license file corresponding to the version of the license manager currently installed.

Saber® User Guide 359D-2010.03-SP1

Page 374: Saber User Guide 2010.03

Appendix B: Error MessagesLicense Manager Log File Messages

360 Saber® User GuideD-2010.03-SP1

Page 375: Saber User Guide 2010.03

C

CNetlister Command Reference

Describes how to use the Saber netlisting commands.

Note: Designs created with previous versions of supplied symbols must be saved before netlisting and simulating. If not, some of the Saber symbols, such as supplies, may not netlist correctly.

This section covers the following topics:■ Netlister Usage■ schtos

Netlister Usage

The netlister maps all parts in the schematic to an associated MAST template and generates a Saber netlist using the mapped template names. Saber determines the location of the template model descriptions using the following search path (current directory, SABER_DATA_PATH environment variable, SABER_HOME environment variable).

The netlister creates an entry for each symbol in the design. The following example and list shows how the netlister determines each values in the netlist entry:

Saber® User Guide 361D-2010.03-SP1

Page 376: Saber User Guide 2010.03

Appendix C: Netlister Command ReferenceNetlister Usage

■ Model name is defined by the primitive property on the instance assuming that a user-defined mapping file was not used during netlisting.

■ Instance name is defined by the inst property on the instance. If you do not specify the inst property on an instance, the netlister uses the schematic-capture tool auto-generated name.

■ Connection points are defined by the net names in the schematic. If you do not specify net names in the schematic, the netlister uses the schematic-capture tool auto-generated name.

■ Model parameters are added when non-default values are defined on the instance in the schematic.

If a net connects an analog part to a digital part, then the netlister inserts a Hypermodel on the connecting net. Because the insertion of this non-physical part requires the creation of a new net. The net on the analog side retains the existing net name but the net on the digital side is named <netname>_<digital_part_inst>_<pinname> as illustrated in the following figure:

The Hypermodel is inserted after the schematic capture process by the netlister and is not visible in the schematic. The bottom part of the previous

model name

instance name

connection points

model parameters

r.r1 node2 out = (rnom=1k)

/net1

U1R13

Digital Part Analog Part

/net1

U1R13

H

Hypermodel

/net1_U1_out

362 Saber® User GuideD-2010.03-SP1

Page 377: Saber User Guide 2010.03

Appendix C: Netlister Command Referenceschtos

figure just uses the schematic representation to demonstrate the concept of net re-naming due to Hypermodel insertion.

If the netlister reported any errors, then you should examine the transcript of the netlister (netlister_name.out) and resolve the error messages.

The inputs to these netlisters are the circuit interconnections produced from a Saber Sketch design, and component descriptions (from various libraries). The output of a netlister is a file (called a netlist) that completely characterizes the circuit. For these netlisters, this output file will have a .sin extension (for Saber Input).

schtos

This section covers the following topics:■ Description■ Syntax■ Arguments

DescriptionThe schtos command is used to create a netlist for the Saber simulator. Files referenced in command line options must be in the data search path. The design, from which the netlister extracts information, must be in the current (working) directory. schtos also produces an output file containing the messages that are written to the screen during program execution. This file is named schtos.out.

Note: To set the netlister preferences (options) from within Saber Sketch use the Edit > Netlister/Saber Preferences pulldown menu item.

Syntaxschtos [[-ae] [-dgne] [-fault option][-g ground_net_name] [-h hypermodel_lib] [-header][-m user_map_file] [-n netlist_template_file][-ns filename] [-o netlist_name] [-p power_net_name]

Saber® User Guide 363D-2010.03-SP1

Page 378: Saber User Guide 2010.03

Appendix C: Netlister Command Referenceschtos

[-pcif] [-q] [-tdb option] [-tI] [-tW] [-v][-vhdl] design_name

ArgumentsCommand line options can be included in any order. The following list describes the command line options available for this netlister.:

-ae causes the netlister to assume that templates will be provided so it does not search for them. When you use this option with the catosv netlister, or when using the -vhdl option for VHDL netlisting, it places symbols not specifically assigned to the Verilog netlist, either by a mapping file entry or by the Target_Simulator property, into the Saber simulator netlist rather than the Verilog simulator netlist.

You can use this command line option with the SaberPrepend property to allow the inclusion of templates at the beginning of the netlist so that they can be referenced later in the netlist.

-dgne declares global nets external electrical. This prevents the automatic connection of global nets as ports throughout the hierarchy.

364 Saber® User GuideD-2010.03-SP1

Page 379: Saber User Guide 2010.03

Appendix C: Netlister Command Referenceschtos

-fault option turns on fault wrapper generation for the Testify Test Manager. The following sub-options control whether fault wrapper files are written for primitive templates:

yes - always generate wrapper files

no - don’t generate wrapper files

as_needed - search for the wrapper file, write one if it’s not found.

If -fault is specified without one of these arguments, yes is the default.

The primitive fault wrappers are the separate .sin files that are created in the working directory, like r_f.sin or nand_l4_f.sin. Hierarchical wrappers go inside the main netlist are generated regardless of the value of the -fault sub-option.

-g ground_net_name

name of the top-level-symbol, zero-reference or ground net to which TTL, ECL, and MOS Hypermodel interfaces are to be connected. Use this option if your schematic contains symbols that are not connected to a ground net.

Node 0 has been made the default ground or reference node for Hypermodel interface connection. This means that the command line option -g is not needed when Hypermodel interfaces are to be connected to node 0.

-h hypermodel_library

name of the Hypermodel library to be used for mixed-mode support. If you do not include an extension, the netlister uses the extension .shm. If more than one Hypermodel library is required, a separate -h option clause is required for each one. The order in which you specify the libraries is important only if one library contains Hypermodel interface definitions that are dependent on definitions in another Hypermodel library. In this case you should specify the dependent library after the one it is dependent on.

Saber® User Guide 365D-2010.03-SP1

Page 380: Saber User Guide 2010.03

Appendix C: Netlister Command Referenceschtos

-header creates a template header for the design being netlisted. The netlister places the template header at the beginning of the top-level netlist.

-m user_map_file

filename of the user’s custom mapping file, if one is to be used. Entries in this mapping file are merged with those in the standard mapping files. If you enter a filename without an extension, or a filename with the extension .map, the netlister uses a mapping file with the filename and the extension .map. If you enter a filename with a different extension, the netlister issues a warning message and uses the mapping file with the name and extension you have specified.

The mapping file must reside in a directory that is referenced by the SABER_DATA_PATH environment variable.

-n netlist_templ_file

name of the netlist template file that the Verilog netlist writer is to use. The netlist template file contains structure and formatting information used by the Verilog writer to create a Verilog .v netlist file. The filename must have the extension .ntf. If you do not specify this option, the netlist template file provided with the netlister (verilog.ntf) will be used.

You must make a special netlist template file (file_name.ntf) to create netlists for Verilog only. This file should not contain the Verimix commands that are in the verilog.ntf file distributed with the netlisters. Furthermore, if your Verilog input files do not contain timescale directives, you cannot have one in the Verilog netlist produced by the netlister. Therefore, there should be no timescale directive in the .ntf file either. To switch between netlisting for Verilog only and netlisting for Saber/Verilog, the .ntf file should have a name other than verilog.ntf and you must specify this name with the -n command line option. Then, netlisting without the -n option gives you the Saber simulator and Verilog simulator netlists and netlisting with the -n option gives you the Verilog netlist only.

366 Saber® User GuideD-2010.03-SP1

Page 381: Saber User Guide 2010.03

Appendix C: Netlister Command Referenceschtos

-ns filename save a state file to improve netlister performance. The state file contains a compiled version of all of the data in the mapping and Hypermodel files. The netlister can read the state file much faster than it can parse the mapping and Hypermodel files, so the total time required to create a netlist is reduced.

The netlist state file will be used as long as the names and time stamps of the mapping and Hypermodel files do not change. If they change (for example, if a mapping file is edited, or a new Hypermodel file is specified, all of the files will be re-read, and the state file will be rewritten. Therefore, if there are frequent changes made to mapping files or Hypermodel files, turn this option off to prevent performance degradation.

-o netlist_name filename to be used for the Saber simulator and (if specified) partner simulator netlists. The netlister adds the appropriate extension. For example, the netlister adds the extension .sin to a Saber simulator netlist file; it adds the extension .v to a Verilog netlist. By default, if you do not specify this option, the netlister names the netlist file the same as the name of the design with the appropriate extension added.

-p power_net_name

name of the top-level power net to which the TTL, ECL, and MOS Hypermodel interfaces are to be connected.

-pcif preserves the case of included file names. Allows file names to be saved using upper case and/or lower case ASCII characters. Normally, file names are converted to lower case characters.

-q cancels the display of informative and warning messages turned on by either of the -tI or -tW options. This option cannot turn off any messages that the netlister displays by default.

-tdb option controls the use of the Template Database (TDB) by the netlister, using the on, off, nogen or warn options.

Only one option, on, off, or nogen, may be used at a time. However, warn may be used in combination with the other options.

Saber® User Guide 367D-2010.03-SP1

Page 382: Saber User Guide 2010.03

Appendix C: Netlister Command Referenceschtos

on—Full Template Database support, including user templates.

This is the default. With this option, it is not necessary to have mapping files that include basic information about templates, such as the names, order, and types of arguments and connection points. In addition, some netlisting features, such as type checking, are available only when the template database is used.

off—User templates are ignored; use the supplied database only. Since this option avoids searching for templates on disk, it provides the best performance.

However, due to the reduced functionality, this option is recommended only when no custom templates are used.

If you have custom templates with the same names as supplied templates, you should not use this option, as it may lead to netlisting errors or incorrect netlists.

nogen—Do not generate user template information (.ai_tdb files), but use such information if it is already available.

Use of this option may cause netlisting errors if the template database files are not up to date.

warn—Errors coming from the TDB are treated as warnings by the netlister, not as errors. The TDB flags errors for problems such as invalid templates and failure to write database files. Typically, these are errors because Saber can be expected to run into the same problem that the TDB did.

-tI turns on any remaining informative or warning messages that the netlister does not display by default or that have not been turned on by the -tW option.

368 Saber® User GuideD-2010.03-SP1

Page 383: Saber User Guide 2010.03

Appendix C: Netlister Command Referenceschtos

-tW turns on warning messages that the netlister does not display by default, and performs the following checks on the design as it is netlisted:

verification of valid connections between templates. For example, an electrical pin connected directly to a mechanical pin will cause a warning.

verification that template parameters without default values have a value provided in the symbol.

issue warnings if the template’s connection point list does not match the port list of the symbol.

These three checks are performed only for MAST templates, not for partner models

-v creates a Verilog netlist as well as a Saber netlist. When the -v option is specified, the string v is added to the end of the netlister name. What this means is that the netlister will then use the Verilog mapping file (for example, schtosv.map instead of schtos.map) and produce a v transcript file (for example, schtosv.out instead of schtos.out).

-vhdl specifies that all instances targeted to the Saber/ModelSim Co-Simulator Interface (via a mapping file or the target_simulator property) are to be written to a VHDL structural netlist for Saber/ModelSim. When the -vhdl option is specified, the string vhd is added to the end of the netlister name. What this means is that the netlister will then use the VHDL mapping file (for example, schtosvhd.map instead of schtos.map) and produce a vhd transcript file (for example, schtosvhd.out instead of schtos.out).

Saber® User Guide 369D-2010.03-SP1

Page 384: Saber User Guide 2010.03

Appendix C: Netlister Command Referenceschtos

370 Saber® User GuideD-2010.03-SP1

Page 385: Saber User Guide 2010.03

D

DSimulating Digital Parts in Saber

Describes how to simulate digital parts using Hypermodels.

In the simulator, the behavior of digital signals are represented as discrete states (e.g. 0,1,Z,X), and analog signals are represented as continuous curves. If your design contains both analog and digital parts, Saber must map signal values between analog and digital waveforms.

Saber accomplishes this mapping using Hypermodels. Hypermodels emulate input and output terminal characteristics, such as delays attributable to rise and fall times, and can include the loading effects of a given digital technology. The Hypermodel does not determine the values within the digital model, such as propagation delays. The netlister automatically inserts Hypermodels at all analog-digital boundaries. Because Hypermodels are not “physical” components, they are added only to the netlist, not the schematic, for the purpose of simulation.

Although the Component Library lists over 2000 logic devices having characterized Hypermodels, they are not directly supported with schematic symbols or menu items in the Parts Gallery. In order to implement these parts, you will place the generic digital part in the schematic, specify propagation delay properties, and assign the appropriate Hypermodel depending on your requirements for accuracy and simulation speed.

This procedure discusses using Hypermodels to map between analog and digital signals for Saber native mixed-signal simulation. It does not include digital to digital Hypermodels (used for co-simulation) or mixed-technology Hypermodels (for mapping analog to mechanical signals).

This section covers the following topics:■ Using Default Hypermodels■ Using Ideal Hypermodels■ Using Technology-Specific Hypermodels

Saber® User Guide 371D-2010.03-SP1

Page 386: Saber User Guide 2010.03

Appendix D: Simulating Digital Parts in SaberUsing Default Hypermodels

■ Hypermodel Filenames and Logic Families■ Creating Part Number-Specific Hypermodels■ Using Multiple Hypermodel Families in a Design■ Selecting Hypermodels from the Saber/Netlister Settings Form■ Net Re-naming Due to Hypermodel Insertion

Using Default Hypermodels

Default Hypermodels use the 5V CMOS technology ideal Hypermodel. They are designed to get fast, approximate results in the simulation. They have the following restrictions:■ The ground net name to which digital parts are referenced in your design

must be named ‘0’. The netlister automatically connects these types of Hypermodels to the 0 net in the Saber netlist.

■ Default values are to be used for properties such as propagation times and inertial delays of digital parts in your design for which you have not specified values.

■ Digital parts from the Saber library are to be simulated by the Saber Simulator, not a partner simulator.

If default Hypermodels meet your simulation requirements, no further action is required from you. The netlister automatically adds default Hypermodels.

Using Ideal Hypermodels

These Hypermodels provide an approximate translation between analog signals and digital logic states for different technologies. These Hypermodels model some digital parameters, such as voltage levels and rise/fall times, and they behave as ideal voltage sources and ideal impedances on the analog side. Less time is needed to simulate a design containing these Hypermodels. However, the results are not as realistic as they are if you use a fully-characterized technology-specific Hypermodel because ideal Hypermodels do not model all of the behavior of the actual devices.

372 Saber® User GuideD-2010.03-SP1

Page 387: Saber User Guide 2010.03

Appendix D: Simulating Digital Parts in SaberUsing Technology-Specific Hypermodels

These Hypermodels may be useful when you first start developing a design and want to get a quick, approximate idea of how your design will perform. They are available for a number of logic families including TTL, CMOS, and ECL.

If you want to use these Hypermodels in you design, you must specify the appropriate Hypermodel file in the netlister options form as described in “Selecting Hypermodels from the Saber/Netlister Settings Form.” No other action is necessary to use these types of Hypermodels.

“Hypermodel Filenames and Logic Families” gives a table comparing each logic family to the filenames used for both ideal Hypermodels and technology-specific Hypermodels.

Using Technology-Specific Hypermodels

Compared to the ideal Hypermodels, these Hypermodels model additional characteristics (such as current levels, output capacitance and leakage currents) and improve the accuracy of the characteristics modeled by the ideal Hypermodels. The analog input and output characteristics are non-linear and reflect the digital input state, power supply levels and external load. Because these Hypermodels model a number of different effects, more simulation time is required to simulate your design, but the results will be more precise.

You may want to use this type of Hypermodel once you have established the basic configuration of your design and are ready to “fine-tune” the performance of the design. To use these Hypermodels in your design, you must specify the appropriate Hypermodel file in the netlister options form. No other action is necessary to use these types of Hypermodels.

Saber® User Guide 373D-2010.03-SP1

Page 388: Saber User Guide 2010.03

Appendix D: Simulating Digital Parts in SaberHypermodel Filenames and Logic Families

Hypermodel Filenames and Logic Families

The following table compares logic family to the filenames used for both ideal Hypermodels and technology-specific Hypermodels.

All supplied Hypermodel files are located in the install_home/template/hypermod directory and have a .shm extension.

Logic Family Ideal Name in Form (filename)

Technology-SpecificName in Form (filename)

5 volt CMOS Ideal CD(cd_ide.shm)

RCA CD 5V (cd5.shm)

15 volt CMOS Ideal CD(cd_ide.shm)

RCA CD 15V (cd15.shm)

ECL MC1600 series Ideal ECL(ecl_ide.shm)

ECL (ecl.shm)

Military High Speed CMOS

Ideal MHC(mhc_ide.shm)

Military HC (mhc.shm)

High Speed CMOS Ideal HC(hc_ide.shm)Ideal HCT(hct_ide.shm)

Motorola HC (mt.shm)

Fast TTL Ideal Fast(f_ide.shm)

National Fast TTL(ns.shm)

Advanced TTL (AS/ALS)

Ideal ALS(als_ide.shm)

TI ALS/AS (ti.shm)

Standard/LS TTL Ideal LS(ls_ide.shm)

TI LS (ti2.shm)

374 Saber® User GuideD-2010.03-SP1

Page 389: Saber User Guide 2010.03

Appendix D: Simulating Digital Parts in SaberCreating Part Number-Specific Hypermodels

Creating Part Number-Specific Hypermodels

If you only define a technology-specific Hypermodel file in the Netlister options form, the netlister will add a generic Hypermodel for that specific family at the analog-digital boundary. If you want a part to be characterized like an actual component, you must define a specific Hypermodel name on each digital pin on the part.

For example, rather than specifying technology-specific Hypermodels that model “generic” TTL low-power Schottky digital inputs and outputs for the inverters a design, you can specify Hypermodels that have been characterized to model the specific input and output behavior of a 74LS04 inverter.

The following procedure shows how to define a Hypermodel to a digital pin using a 74LS04 inverter as an example.

1. Specify the TI LS Hypermodel file on the Saber/Netlister Settings form.

2. The Hypermodel files are located in the template/hypermod directory.

Do a text search on the file ti2.shm for “74LS04”.

The search returns the following:

The a,d,g, and p characters indicate inputs (a), outputs(d), ground (g) and power (p) net on the 74LS04. ti74ls_15 is the model designation.

3. Add a SaberModelName property to each port of the digital part.

a. Open the Property Editor on all of the ports.

b. Add a SaberModelName property to all ports. Add the model designation to the Value field.

In this example, on the inverter, you would add one property to all of the ports:

c. Click Apply.

74LS04:adadadg dadadap:: ti74ls_15

Name Value

SaberModelName ti74ls_15

Saber® User Guide 375D-2010.03-SP1

Page 390: Saber User Guide 2010.03

Appendix D: Simulating Digital Parts in SaberUsing Multiple Hypermodel Families in a Design

Note that in the general case, some ports might behave like one kind of part, and other ports might behave like a different part, as in the next example.■ Do a text search on the file ns.shm for “74F74”. The search will return

74F74:aaaaddg ddaaaap:: ns74f_7k ([2,3,11,12]=ns74f_8u)

■ Like the other example, the a,d,g, and p characters indicate inputs (a), outputs(d), ground (g) and power (p). Pins can also be bidirectional (b), though none are on this device. The line also states that the ns74f_7k model, also defined in ns.shm, will be applied to all pins except 2, 3, 11, and 12 (the CLK and D inputs for each flip flop). An ns74f_8u model will be applied to these pins.

Using Multiple Hypermodel Families in a Design

The procedure to include more than one logic family in a design—for example, to have both TTL and CMOS parts in a circuit—is the same as that for the “Creating Part Number-Specific Hypermodels, except that you must specify, in the Saber/Netlister Settings form, the multiple Hypermodels corresponding to the logic families in your design, rather than only one Hypermodel.

You then assign a SaberModelName property with the value of the model designation to each pin on the digital parts in the design.

If you want to assign unique power and ground connections to each Hypermodel in your design, use the symbol port properties, SaberModelPowerPin and SaberModelGroundPin, as follows:

Note that these properties must be assigned to the symbol’s ports, not to the instance’s ports.

Invoke the Symbol Editor on the symbol and assign these properties to the port you want attached to a Hypermodel:■ SaberModelName = model designation of the Hypermodel■ SaberModelPowerPin = name of that symbol’s port that you want the

Hypermodel’s power pin attached to ■ SaberModelGroundPin = name of that symbol’s port that you want the

Hypermodel’s ground pin attached to

The following example illustrates how to use these properties. A symbol sym has three ports: VCC, attached to power, VEE, attached to ground, and A,

376 Saber® User GuideD-2010.03-SP1

Page 391: Saber User Guide 2010.03

Appendix D: Simulating Digital Parts in SaberSelecting Hypermodels from the Saber/Netlister Settings Form

attached to an idp Hypermodel. You will assign the following properties to port A:

SaberModelName = idpSaberModelPowerPin = VCC SaberModelGroundPin = VEE

Selecting Hypermodels from the Saber/Netlister Settings Form

To select Hypermodels:

1. Open the Saber/Netlister Settings form. (Edit>Saber/Netlister Settings... ).

2. Select the Netlister tab, and then the Hypermodels tab.

The Available listbox displays the pre-defined Hypermodels you can use during simulation.

3. Specify the Hypermodel.

• Click on the Hypermodel you want in the Available listbox.

• Add the Hypermodel to the Selected listbox by clicking the <<>> button between listboxes.

• Save the setting by clicking the Apply button, then the Save button on the bottom of the Saber/Netlister Settings form.

4. Option—specifying power references.

If you used technology-specific Hypermodels you can specify the name of the power node that should be used for the upper limit (rail) for the analog signal in the Power net name field on the Basic tab. By default, the Hypermodel is connected to VCC. You can only define one power net for a design.

5. Option—specifying ground references.

If you used any Hypermodel other than default ideal, you can specify the name of the ground node that should be used for the lower limit (rail) for the analog signal in the Ground net name field on the Basic tab. By default, the Hypermodel is connected to the node called 0.

6. Close the Saber/Netlister Settings form by clicking on the Close button.

Saber® User Guide 377D-2010.03-SP1

Page 392: Saber User Guide 2010.03

Appendix D: Simulating Digital Parts in SaberNet Re-naming Due to Hypermodel Insertion

Net Re-naming Due to Hypermodel Insertion

If a net connects an analog part to a digital part, then the netlister inserts a Hypermodel on the connecting net. The insertion of this non-physical part requires the creation of a new net. The net on the analog side retains the existing net name while the net on the digital side is re-named <netname>_<digital_part_inst>_<pinname> as illustrated in the following figure:

The Hypermodel is inserted after the schematic capture process by the netlister and is not visible in the schematic. The bottom part of the previous figure uses the schematic representation to demonstrate the concept of net re-naming due to Hypermodel insertion.

If the netlister reported any errors, then you should examine the transcript of the netlister (netlister_name.out) and resolve the error messages.

/net1

U1R13

Digital Part Analog Part

/net1

U1R13

H

Hypermodel

/net1_U1_out

378 Saber® User GuideD-2010.03-SP1

Page 393: Saber User Guide 2010.03

E

EAdvanced Simulator Transient Analysis Controls

Describes how to use some of the advanced controls of the Time-Domain Transient (TR) analysis of the simulator.

This chapter discusses the advanced controls in the context of general principles of simulation. The following flowchart shows the transient analysis operations in detail:

Saber® User Guide 379D-2010.03-SP1

Page 394: Saber User Guide 2010.03

Appendix E: Advanced Simulator Transient Analysis Controls

The transient analysis first reads the initial point file (specified by trip) which can originate from a dc analysis, dt analysis, an initial point extract (ipex), a previous transient analysis (tr), zero (i.e., everything set to zero), or sigset [10]. The innermost loop is the iteration of the nonlinear solution algorithm. The middle loop is the time step refinement when a variable time step is used. The outer loop is the incrementing of the time variable. Given a time step, h, the operation point is determined using three steps [9]:

1. Numerical integration techniques are used to convert the system of ordinary differential equations into a series of nonlinear algebraic equations.

2. Nonlinear solution algorithms are used to convert these nonlinear algebraic equations into a series of linear algebraic equations.

time = time + h

Read Initial Point File

Make initial guess of next h

Events processing

Iserror withinbounds?

Yes

No

Doestime = tend?

Yes

No

Modify h

Numerical Integration

Write result

Converged?YesNo

Linearization

Equation Formulation

Linear Equation Solution

380 Saber® User GuideD-2010.03-SP1

Page 395: Saber User Guide 2010.03

Appendix E: Advanced Simulator Transient Analysis ControlsFormulating the System Matrix for Transient Analysis

3. These linear algebraic equations are solved using direct matrix techniques (i.e., LU decomposition).

This section covers the following topics:■ Formulating the System Matrix for Transient Analysis■ Nonlinear Solution Algorithms Used in Transient Analysis■ Basics of the Newton-Raphson Algorithm■ Basics of the Katzenelson Algorithm■ Sample Points and Newton Steps Used in Transient Analysis■ Matrix Pivoting and Conditioning■ Numerical Limitations of Transient Analysis■ Integration Methods Used in Transient Analysis■ Local Truncation Error Controls in Transient Analysis■ Time Step Controls for Transient Analysis

Formulating the System Matrix for Transient Analysis

Consider a simple linear circuit shown in the following figure.

Using KCL, the nodal equations are as follows:

_

+

i iR

R vI C

1 2

0

i

_

+

v

1

1

1

1 2

2

3

2

Saber® User Guide 381D-2010.03-SP1

Page 396: Saber User Guide 2010.03

Appendix E: Advanced Simulator Transient Analysis ControlsFormulating the System Matrix for Transient Analysis

Combining Equations 1-4, substituting g1 = 1/R1 and g2 = 1/R2, and taking the Laplace transform (i.e., v(t) Æ V(s)) results in:

Equations 5 and 6 can be written in matrix form as:

which is written in general form as: where Y is the admittance matrix, V is the nodal voltage vector, and I is the vector of currents. This matrix formulation is called the Modified Nodal Analysis (MNA) method and is used by the majority of circuit simulators, including the simulator[1]. MNA improves upon nodal analysis in its handling of voltage-defined branches (i.e., independent voltage sources), current-controlled branches, and large

382 Saber® User GuideD-2010.03-SP1

Page 397: Saber User Guide 2010.03

Appendix E: Advanced Simulator Transient Analysis ControlsFormulating the System Matrix for Transient Analysis

conductances. Nodal analysis requires extra matrix operations over MNA because a floating, independent voltage source must be transformed into a current source in parallel with a conductor. Examples of alternative formulations are tree/link and sparse tableau methods[5].

The resistors in this example contribute conductance (g1 and g2 in Equation 6) to the Y matrix in Equation 7. These conductances are constant with respect to frequency so they are static terms in the Y matrix. In contrast, the capacitance term sC1 in Equation 6 is frequency dependent, so it contributes a dynamic term to the Y matrix.

In the case of the linear time domain, the system matrix is a combination of two matrices: G, or conductance matrix, for static elements and sC, or capacitance matrix, for dynamic elements (i.e., frequency dependent). That is, the admittance matrix is:

In the more general case, the capacitance matrix is replaced by a charge

matrix which contains Q and (time varying) elements. For example, a time-varying, nonlinear capacitor will have a branch voltage which is a function of the charge, q, in the capacitor (this contributes to the Q matrix), and the branch

current will be (this contributes to the matrix) [11]. In the general case, the system of equations is:

For purposes of this discussion, assume there are no time-varying elements.

How do the equations from the previous section change if R2 is replaced with a diode as shown in the following figure.

Q.

q(t) = i(t) Q.

Saber® User Guide 383D-2010.03-SP1

Page 398: Saber User Guide 2010.03

Appendix E: Advanced Simulator Transient Analysis ControlsFormulating the System Matrix for Transient Analysis

Equation 2 is replaced with a diode current which is nonlinear:

which changes Equation 6 accordingly:

Compare Equations 11 and 6, and note that the Laplace transform that was used to create Equation 6 can no longer be used because it is only valid for linear equations. Before Equation 11 (or the more general YV = I equation) can be solved for the output vector, V, it must be transformed into a linear, algebraic equation. Nonlinear solution algorithms are used to find a linear equivalent model for the nonlinearity which is valid for a specific operating point. Derivatives are handled by numerical integration methods discussed in Integration Methods Used in Transient Analysis.

_

+

i iR

D vI C

1 2

0

i

_

+

v

1

1

1

1 2

2

3

1

384 Saber® User GuideD-2010.03-SP1

Page 399: Saber User Guide 2010.03

Appendix E: Advanced Simulator Transient Analysis ControlsNonlinear Solution Algorithms Used in Transient Analysis

Nonlinear Solution Algorithms Used in Transient Analysis

The simulator offers two choices of algorithms for the nonlinear solution: Newton-Raphson and Katzenelson. These algorithms can be selected with the algorithm variable of the transient analysis by specifying either newt (i.e., Newton-Raphson) or katz (i.e., Katzenelson) where newt is the default. For example, tr(te 100n,ts .1n,algorithm katz) would select the Katzenelson algorithm.

Basics of the Newton-Raphson Algorithm

Because all nonlinearities in the simulator are piece-wise linear (see the following figure), a special adaption of the continuous version of Newton-Raphson algorithm is used [5].

However, because the algorithm still operates in nearly the same way and the continuous case is easier to understand, the continuous case will be presented first.

To better understand the Newton-Raphson algorithm, consider the case of one equation in one unknown, i(v). To simplify this example, consider the circuit shown in the following figure where C1 is removed.

I

V

Saber® User Guide 385D-2010.03-SP1

Page 400: Saber User Guide 2010.03

Appendix E: Advanced Simulator Transient Analysis ControlsBasics of the Newton-Raphson Algorithm

The algorithm is used to find the point where the diode current, i2(v2), equals the resistor current, i1(v2), defined as follows:

In the following figure the exponential curve is the diode current i2(v2) from Equation 13 and the load line is i1(v2) from Equation 13.

The algorithm is as follows [12]:

1. Guess that the solution is at point 1.

_

+

i R

I C

1 2

0_

+

v1

1 1

1

i3

i2

D1v2

V1

I

V2

Ieq 0

1.

2.

project upproject across

3.

4.

J(v

Load Line, i

3a.

diode current, i1 2

(0) )

386 Saber® User GuideD-2010.03-SP1

Page 401: Saber User Guide 2010.03

Appendix E: Advanced Simulator Transient Analysis ControlsBasics of the Newton-Raphson Algorithm

2. Draw a line tangent to point 1 which intercepts the load line at point 2. This

tangential line has an i-intercept, Ieq0, and slope J(v ) where the superscript (0) indicates that this is the initial iteration:

3. From point 2 on the load line, project up to 3a and across to point 3. Draw lines (not shown) tangent to points 3a and 3, and observe where these lines intercept the load line. Now, determine which tangential line intercept point on the load line is closer to the desired solution (point 4). This results in point 3 being selected as the solution for the present iteration.

4. Repeat steps 2 and 3 until the algorithm converges (i.e., the tangent intercept with the load line (e.g., point 2) and point 4 are close enough)

where the k-th iteration has slope J(v ) and i-intercept Ieqk.

Now consider the general case of a system of n nonlinear equations. Now the single derivative is replaced with a matrix of derivatives for the system called the Jacobian matrix (Equation 14). Now the Newton-Raphson algorithm is solving for the system of n nonlinear equations in n unknowns:

The Jacobian matrix looks like:

(0)

(k)

Saber® User Guide 387D-2010.03-SP1

Page 402: Saber User Guide 2010.03

Appendix E: Advanced Simulator Transient Analysis ControlsBasics of the Newton-Raphson Algorithm

Because the evaluation of the Jacobian matrix at every iteration is computationally expensive, the simulator uses an approximation of first derivatives that uses a finite differencing technique called simplicial subdivision [8]. Because all nonlinearities in the simulator are piecewise linear and are based on the sample point assignment, the evaluation of the Jacobian matrix may not be needed for every iteration. Another advantage of using the piecewise linear Newton-Raphson algorithm is the ability to check for repeated iteration loops using the cyclic path detection algorithm [5,p.298]. In this case Newton-Raphson iterations proceed until the iteration point lies on the piecewise linear segment that contains the intercept point with the load line.

Note that the slope and I-intercept of the tangential lines described in the algorithm are already known for each piecewise linear segment.

The general iterative equation for the Newton-Raphson algorithm is:

where k is the iteration number and x and f(x) are vectors. There are several variables of the transient analysis that can be used to control how the Newton-Raphson algorithm operates during transient analysis. The simulator has two different limits for the number iterations: “transient” and “full.” Transient Newton-Raphson refers to the case where a good initial point is expected such as when there are only small changes in the independent variable from the previous time point. Full Newton-Raphson refers to the case where a good initial point is not expected such as during the initial time point or following a discontinuity.

The tniter variable sets the suggested limit for the number of transient Newton-Raphson iterations (default is 3). fniter sets the maximum number of full Newton-Raphson iterations (default is 100). What this means is that tniter is typically used instead of fniter as the maximum number of iterations unless a lot of iterations are expected, such as following a discontinuity. Setting fniter too low can cause transient analysis to fail to find a solution and setting fniter too high can cause the simulation to take an excessive amount of CPU time to complete.

The Newton-Raphson algorithm will converge only if the initial guess is close enough to the correct solution. To understand what “close enough” means, consider the nonlinear i-v curve in the following figure. In this case, the solution that Newton-Raphson will settle on depends entirely on where the iterations were started since there are three valid solutions to i1 = i2 (points 1-3). If the initial point is left of point 1, then point 1 will likely be the solution. It is not clear

388 Saber® User GuideD-2010.03-SP1

Page 403: Saber User Guide 2010.03

Appendix E: Advanced Simulator Transient Analysis ControlsBasics of the Newton-Raphson Algorithm

what will happen if the initial point is between points 1 and 2. This limitation is inherent in all known iterative methods, including those used in the simulator.

Once the Newton-Raphson iteration converges to a solution, the linear equivalent circuit is substituted in the matrix. For the present example, the Newton-Raphson solution point has a specific slope and I-intercept:

which can be substituted into the schematic as a conductor and current source as shown in the following figure. At this point, the linearization step is complete and the equation formulation can proceed as described in Formulating the System Matrix for Transient Analysis and Nonlinear Solution Algorithms Used in Transient Analysis.

V

I

V

Load Line, inonlinear current, i

1. 2.

3.

12

1

2

Saber® User Guide 389D-2010.03-SP1

Page 404: Saber User Guide 2010.03

Appendix E: Advanced Simulator Transient Analysis ControlsBasics of the Katzenelson Algorithm

If the capacitor were included, the result would be similar, except that both the static and dynamic impedances would be used in the calculation. The linearization step is repeated for every time point.

Basics of the Katzenelson Algorithm

The second algorithm that the simulator provides for nonlinear solutions is the Katzenelson algorithm [2]. Unlike Newton-Raphson, the Katzenelson algorithm was designed to work strictly with piecewise linear systems (see the figure below). The simulator uses sample points to determine where the linear regions are for every nonlinear device. The operating point of a piecewise linear element is located within a specific linear segment of the independent variables. The Katzenelson algorithm is a method for determining which segment is active in every piecewise linear element at a particular time.

The fkiter variable sets the maximum number of full Katzenelson iterations per nonlinearity (default is 50) at a given time point. If Newton-Raphson fails, it will attempt to use Katzenelson where tr_akiter is the maximum number of additional Katzenelson iterations to take (i.e., fkiter is set to the value of tr_akiter in this case).

The Katzenelson algorithm is not as easy to understand as Newton-Raphson because it is geometry-based, which, in n nonlinear equations, means mapping points to an n-dimensional hypercube. However, to gain some idea how the

_

+

i

I

1 2

0_

+

v

1

1

R1

GeqIeq v2

i2

390 Saber® User GuideD-2010.03-SP1

Page 405: Saber User Guide 2010.03

Appendix E: Advanced Simulator Transient Analysis ControlsSample Points and Newton Steps Used in Transient Analysis

Katzenelson algorithm works, consider once again the case of one equation in one unknown, i(v), as shown in the following figure.

1. Subdivide the independent variable, v, into a grid. The simulator refines the conversion of the grid rectangles into triangles in a non-standard way.

2. Project from an initial point to triangle region that contains both the piecewise linear segment and the load line. Repeat until the desired region is found (shaded triangle). This is costly because each iteration can only move to an adjacent region.

Sample Points and Newton Steps Used in Transient Analysis

Although the details of creating nonlinear models in a modeling language is beyond the scope of this series of topics, it is useful to review Newton steps and sample points in order to understand the transient variables nsdensity, density, and nslimit. Newton steps are a form of newton limiting that are used to assist the nonlinear solution algorithm. A brief discussion is provided here.

Newton steps sets the maximum change that the independent variable of a nonlinearity can take for every iteration of the nonlinear solution algorithm. This mechanism prevents the simulator from skipping over important regions of nonlinearities.

For example, specifying newton step points x1 and x2 in the following figure permits the simulator to check the sharp transition. If x increases it will not enter the region (x1,x2) further than the first newton step [6].

V(1)

I

V

Load Line

Saber® User Guide 391D-2010.03-SP1

Page 406: Saber User Guide 2010.03

Appendix E: Advanced Simulator Transient Analysis ControlsSample Points and Newton Steps Used in Transient Analysis

The nsdensity variable adjusts the amount of newton step points relative to the number already set. The original position of the Newton steps is already specified in the nonlinear template. If the default is as pictured in the preceding figure, nsdensity set to 2 would insert a point between x1 and x2 (point x3) as shown. The nslimit variable (default yes) determines whether newton step limiting is checked at every iteration or only when no solution can be found. In the latter case, Newton step limiting is turned on for several iterations, and then switched off again. With nslimit set to no, some circuits will run slightly faster. In most cases, there should be no observable differences in results.

A similar concept is the density variable which adjusts the amount of sample points relative to the number already set. Sample points are the points of a piecewise linear curve that intersect the continuous nonlinear curve. In the following figure, the increase in density significantly decreases the error between the piecewise linear approximation and the nonlinear curve. The adjustment of density and terror (see Local Truncation Error Controls in Transient Analysis) for each design is called calibration [10].

x3

Dependent

Independent Variable

x1 x2

original newton steps with nsdensity = 1

addition newton steps with nsdensity = 2

Variable

392 Saber® User GuideD-2010.03-SP1

Page 407: Saber User Guide 2010.03

Appendix E: Advanced Simulator Transient Analysis ControlsMatrix Pivoting and Conditioning

Matrix Pivoting and Conditioning

This topic does not cover any specific transient analysis controls, but it is provided to show how the Linear Equation Solution step in the transient analysis flow chart works. Essentially this step is solving for the output vector, V.

The admittance matrix, Y, described in Formulating the System Matrix for Transient Analysis, is a sparse matrix. A matrix is sparse if there are few entries (i.e., less than 10%) for each row/column. In the simulator, it is typical to have roughly three non-zero entries per row or 3N non-zero entries in an NxN matrix. It is desirable to take advantage of this sparsity because it significantly simplifies and speeds up the numerical solution. To solve for V with the greatest absolute numerical accuracy, the largest numerical values in the matrix should be located on the diagonal of the matrix - this is called diagonal dominance. This can be accomplished by pivoting which is a way of rearranging the rows and columns of a matrix. Because sparsity improves the efficiency of the matrix, there are techniques used to prevent “fill-in” (i.e., converting a value from zero to non-zero at a particular location in the matrix) during pivoting and other matrix operations.

The system matrix is converted into lower-upper triangular form known as LU [3], so that

I

V

original sample points with density = 1

addition sample points with density = 2

Saber® User Guide 393D-2010.03-SP1

Page 408: Saber User Guide 2010.03

Appendix E: Advanced Simulator Transient Analysis ControlsMatrix Pivoting and Conditioning

becomes

The method for making this conversion is called LU decomposition. The advantage of using LU decomposition is that if only I changes, V can be recalculated by a single forward and backward substitution rather than recalculating V from scratch. This process can be summarized by two steps where X=UV: 1) solve LX = I for X, and 2) solve UV=I for V. Consider a simple example (note that this is not a sparse matrix):

becomes

Now solve LX = I for X by forward substitution

And now solve UV = X for V by backward substitution

394 Saber® User GuideD-2010.03-SP1

Page 409: Saber User Guide 2010.03

Appendix E: Advanced Simulator Transient Analysis ControlsNumerical Limitations of Transient Analysis

Numerical Limitations of Transient Analysis

All computer simulators use finite precision arithmetic. Most commercial simulators including the simulator use double precision arithmetic in their calculation. While double precision numbers can be extremely small (roughly

10 ) or extremely large (roughly 10 ), the simple arithmetic operations (+ - * /) are subject to rounding errors which are the ratio of any pair of numbers

used in an arithmetic operation. For example, 10 + 10 will work and 10

+ 10 will work, but 10 +10 will round-off. Note that in many cases, the round-off does not cause a problem because the smaller number is not significant. If you attempt to simulate a design that requires an arithmetic operation that exceeds the rounding limit and the smaller numbers are significant, the results will be unpredictable. In colloquial terms this rounding limit problem is known as the “big number-small number problem.” This will manifest itself in different ways for each analysis of every commercial simulator. For example, the fft analysis is presently restricted to single-precision data so that only a dynamic range of 80-90dB can be expected. For DC and transient analyses in the simulator, the rounding limit of certain matrix calculations is

limited to 10 or 160dB (that is, the ratio of any pair of numbers cannot exceed this limit).

Consider a simple circuit:

v.1 1 0 = 1

r.1 1 2 = 1e-18

-324 308

237 243 -300

-289 237 -289

16

Saber® User Guide 395D-2010.03-SP1

Page 410: Saber User Guide 2010.03

Appendix E: Advanced Simulator Transient Analysis ControlsIntegration Methods Used in Transient Analysis

r.2 2 0 = 100meg

This requires a dynamic range of 10 = 10 which exceeds the rounding

limit of 10 . As a result, the simulator DC analysis will calculate that i(v.1) is 128 amperes! To solve this problem, replace r.1 with rz.1 model since the rz model was designed to work with small resistors and the r model with larger resistors. Note that if the values of r.1 and r.2 are reversed, the simulator will

calculate the correct answer of 10 amperes for i(v.1). There are similar models for other elements that may be extra large or small. This rounding limit does not mean that you cannot use extremely small or large values, rather the restriction is on the range of numbers for related elements (i.e., elements which combine to make an entry in the system matrix) used in a particular design.

Integration Methods Used in Transient Analysis

The integration method and order variables strongly determine the accuracy and CPU time of running a transient analysis. Transient analysis in the simulator is essentially the time domain solution of a system of nonlinear ordinary differential equations (ODEs). In contrast, simulators designed to solve detailed electromagnetic systems or fluid flow must solve a system of partial differential equations (PDEs) such as the wave equation or diffusion equation. Because simulating PDE systems is much more time consuming than simulating ODEs and because the techniques required for solving these systems are very different, these systems can be optimized using separate simulators.

To solve a system of ordinary differential equations (ODEs) of the form on a digital computer, numerical integration methods are used. To see how this works, consider the simple example of solving for the voltage across a capacitor with a variable current input:

(9+18) 27

16

-8

x = f(x, t).

396 Saber® User GuideD-2010.03-SP1

Page 411: Saber User Guide 2010.03

Appendix E: Advanced Simulator Transient Analysis ControlsIntegration Methods Used in Transient Analysis

where h is the time step (i.e., the difference between the present time point and the next time point). The integral in Equation 31 is the area under the curve shown in the figure below.

It can be approximated in a number of ways:]

where h is the time step.

As seen in the preceding figure, forward Euler starts with the current time, t, and projects in a straight line to the next time point t+h. Backward Euler starts at the next point and projects in a straight line backward. Both forward and backward Euler are first-order approximations.

i

t

ForwardEuler

BackwardEuler

Trapezoidal

t t+h

Saber® User Guide 397D-2010.03-SP1

Page 412: Saber User Guide 2010.03

Appendix E: Advanced Simulator Transient Analysis ControlsIntegration Methods Used in Transient Analysis

Trapezoidal draws a straight line through the current time point and the next time point. Trapezoidal is a second-order approximation, so trapezoidal produces a more accurate estimate for the integral when it can be used. Trapezoidal has two orders 1 and 2 and each has the following functionality:

Selecting order 1 results in a backward Euler and the method is ignored.

Selecting order 2 you can specify whether the second order method should be Gear or trap.

The order 1 method is used for the first steps after a discontinuity.

A fourth method of integration is available in the simulator called second-order Gear, which is similar to trapezoidal. Second-order Gear is the default method.

Now applying Equation 32 to Equation 31, the voltage at the next time step is:

No numerical integration method is exact. Consequently, the simulator decides when to stop iterating on the solution for the next time point when the estimated solution is within bounds (this iteration is the middle loop of the transient analysis flow chart). This bound is called the local truncation error (LTE). The LTE is local because it shows only the error for a single time step as opposed to the absolute error, which would be the sum of the LTE for the present and all past time points. Numerical integration methods used in the simulator are numerically stable, which means that by maintaining a certain local truncation error, the cumulative absolute error will not diverge (i.e., increase indefinitely). The exception is positive feedback systems and oscillators unless the value of the terror variable is very small.

As shown in the first step of the outer loop in the transient analysis flow chart, the user-specified tstep variable (shown as h) is used as a initial guess for the actual time step that is calculated for every time point using a predictor-corrector algorithm. The predictor-corrector algorithm is complete when the LTE is within bounds (see Local Truncation Error Controls in Transient

398 Saber® User GuideD-2010.03-SP1

Page 413: Saber User Guide 2010.03

Appendix E: Advanced Simulator Transient Analysis ControlsIntegration Methods Used in Transient Analysis

Analysis). The output of this looping is the accepted value for the next time step, h, and the solution vector at the new time point, t+h.

The predictor estimate is used to start the iteration loop for the corrector (see the figure below). Other checks such as iteration limits are not shown.

If the current solution at time tn is xn, the predictor estimates the next solution

vector to be x n+1 at time t n+1 where the superscript indicates that this is the predictor solution.

The corrector methods available in the simulator are Gear’s multistep algorithm (orders 1 and 2) and trapezoidal (orders 1 and 2). The corrector method can be selected by the simulator or the user through the use of the method and order secondary variables. The order variable (set to 1 or 2) is only used if the method is set to Gear. By default, method is set to Gear and order to 2.

First-order Gear’s multistep algorithm [4] is equivalent to the backward Euler integration method and is used whenever two previous time points are not available for extrapolation. For example, first-order Gear is used as the corrector at the initial time step calculation or immediately following a discontinuity (e.g., a large switching point). The first-order Gear corrector method (i.e., Backward Euler) is as follows:

Use predictor to calculate x

Use corrector to calculate x

decrease hIs

LTE withinbounds?

Let x

Yes

No

pn+1

cn+1

n+1 = x cn+1

p p

Saber® User Guide 399D-2010.03-SP1

Page 414: Saber User Guide 2010.03

Appendix E: Advanced Simulator Transient Analysis ControlsIntegration Methods Used in Transient Analysis

The second-order Gear algorithm uses two previous time points to interpolate to a third point using a parabola. The second-order Gear corrector method is as follows:

Trapezoidal is also a second-order algorithm but it only relies on one previous time point [5]. The trapezoidal corrector method is as follows:

While all three of these integration methods are numerically stable, they have different numerical properties. First-order Gear has a monotonically decreasing error whereas the trapezoidal error can oscillate with decreasing amplitude as it approaches the solution with a large time step, h. Second-order Gear overcomes this problem, but it can overshoot at switching points whereas first-order Gear will round off the solution. The following figure shows an exaggerated example of second-order Gear overshoot and first-order Gear round-off with a sharp transient. The method and order variables were provided to let the users decide which numerical properties are acceptable to their particular system.

i

timet1 t2 t3t0 t4

Second-order Gear

First-order Gear

400 Saber® User GuideD-2010.03-SP1

Page 415: Saber User Guide 2010.03

Appendix E: Advanced Simulator Transient Analysis ControlsLocal Truncation Error Controls in Transient Analysis

Local Truncation Error Controls in Transient Analysis

The iteration of the time step is complete when the Local Truncation Error (LTE) is within the bound specified by the variable terror. As explained in Integration Methods Used in Transient Analysis, LTE is the difference between the exact solution and the corresponding numerical solution at a given time point. The default value for terror is 0.005. One of the simulator equations for LTE is:

where ||v|| is the notation for the norm or length of a vector. The error vector

is the difference between the estimated solution for the (j)-th iteration and the estimated solution at the (j-1)-th iteration. The calculation of LTE shown in Equation 39 involves taking the norm of the error vector relative to the v vector. There are three types of norms that can be used in the calculation of

LTE: 1-norm (L1), 2-norm(L2), and infinity-norm (L ). The choice is available through the terrnorm variable which allows six different methods of LTE calculation:

(v - v)^

401 Saber® User GuideD-2010.03-SP1

Page 416: Saber User Guide 2010.03

Appendix E: Advanced Simulator Transient Analysis ControlsLocal Truncation Error Controls in Transient Analysis

The general definition of the norms is as follows:

The default terrnorm is 6. Notice that terrnorm 1-3 involves a single norm of the ratio and terrnorm 4-6 involves the ratio of two norms. Each method of calculating LTE will likely result in different time steps. There are no general rules for when to use which terrnorm, but it has been reported that terrnorm

402 Saber® User GuideD-2010.03-SP1

Page 417: Saber User Guide 2010.03

Appendix E: Advanced Simulator Transient Analysis ControlsTime Step Controls for Transient Analysis

values 1-3 often result in smaller time steps being selected relative to the default. As a result, the simulation will take longer, but may yield more accurate results. terrnorm 1-3 is particularly useful if the values of system variables differ by many orders of magnitude (see the discussion about “big-number, small-number” problems in Numerical Limitations of Transient Analysis). If you want to determine an optimal value for the terrnorm variable, the best approach is to experiment.

Th terrtype variable selects which group of elements will be used in the LTE calculation and may be set to static, dynamic (default), or all. With terrtype set to static, only the elements in the G matrix (static with no charge effects) will be used for determining truncation error. With terrtype set to dynamic, only the elements in the Q,Q’ matrices (dynamic elements with charge effects) will be used. With terrtype set to all, both static and dynamic elements will be used. Because the all setting uses more information in each LTE calculation, the simulation will be slower compared to the other settings, but it will also be more accurate. If the system contains only dynamic (charge-based) elements, static should not be used. Conversely, if the system only contains static elements, dynamic should not be used.

Time Step Controls for Transient Analysis

The stepsize variable can be set to either fixed or variable (default). A fixed time step uses the value of tstep for every step instead of calculating it. When stepsize is set to variable, tstep is used only for the calculation of the first time step and for subsequent time points where second-order Gear is automatically switched to first-order Gear.

A variable time step allows significant improvement in speed and accuracy for most systems. There are cases where careful choice of tstep can make a difference even when stepsize is set to variable. For example, when simulating stiff systems it is important to limit the time step to prevent the simulation from going too far off track during a sharp transition like a switching point. If the time step is too small, the simulation time may become excessive. If the time step is too large, the transient analysis may have difficulty starting up. A rule of thumb is to set tstep to 0.01 times the smallest oscillation period or smallest time constant in the system.

The samestep variable defines how many time steps are taken before a different time step can be taken. Time steps are usually modified by multiplying

Saber® User Guide 403D-2010.03-SP1

Page 418: Saber User Guide 2010.03

Appendix E: Advanced Simulator Transient Analysis ControlsTime Step Controls for Transient Analysis

or dividing by two. The tsmin (default is tstep*10 ) and tsmax (default

tstep*10 ) variables specify the lower and upper bounds for the time step. tsmin can be useful when the time steps are smaller than necessary. A rule of thumb for this case is to set tsmin to 0.001 times the minimum oscillation period or smallest time constant in the system. tsmax is rarely used, but something short of tend is sometimes specified.

-7

5

404 Saber® User GuideD-2010.03-SP1

Page 419: Saber User Guide 2010.03

F

FStress Analysis Concepts

Explain how to interpret manufacturer’s safe operating area (SOA) curves to determine stress values and define how thermal effects are modeled for stress analysis.

This section covers the following topics:■ Safe Operating Area (SOA) Curves■ Thermal Effects Properties■ Specifying Thermal Effects Properties■ Setting Ambient Temperatures in a Design

Safe Operating Area (SOA) Curves

Ratings for operating conditions are specified by the manufacturer for stress measures for a part. Operating conditions are also referred to as maximum operating limits, safe operating limits (SOL), or safe operating area (SOA). A maximum operating condition for a particular stress measure may be a single value, or it may be defined as a function of another operating condition such as ambient temperature or applied voltage.

The following figure shows a typical curve provided on a data sheet by a manufacturer to specify the maximum rating for the power dissipation of a resistor as a function of ambient temperature.

The area under this curve is known as the safe operating area or SOA. If the resistor is operated outside the conditions defined by the SOA, it will be overstressed.

Saber® User Guide 405D-2010.03-SP1

Page 420: Saber User Guide 2010.03

Appendix F: Stress Analysis ConceptsSafe Operating Area (SOA) Curves

For example, the maximum rating for power dissipation for a resistor may be 1/4 watt up to a certain ambient temperature Tc. Above this temperature, the maximum power dissipation drops linearly until the maximum operating temperature Tjmax is reached.

The slope of the curve between Tc and Tjmax is the negative reciprocal of the thermal resistance of the resistor. This value is used in the calculation of the internal temperature of the resistor.

Rating curves such as those shown in the following figure are frequently referred to by manufacturers as derating specifications. The curves actually show rated values for the operating conditions before any derating has been applied.

A bipolar junction transistor has ratings such as the maximum power dissipation, maximum voltages, and maximum currents. These ratings may vary as a function of such conditions as junction temperature, applied voltage, and radiation. shows the maximum collector current (Icmax) as a function of the collector-emitter voltage (Vcemax). This curve is made up of several segments, each corresponding to a different stress limit.

PD

0Ambient Tj

Power

T

max

c max

406 Saber® User GuideD-2010.03-SP1

Page 421: Saber User Guide 2010.03

Appendix F: Stress Analysis ConceptsThermal Effects Properties

Thermal Effects Properties

Thermal effects are calculated in the underlying model (template) for a part by using an equation of the following formula:

where:

tempj = temp + pwrd * rth_eff

tempj is the internal temperature of a device. In the case of a semiconductor device, Tj is the junction temperature.

temp is the ambient temperature. The Saber Simulator uses a default value of 27××C for ambient temperature. "Setting Ambient Temperatures in a Design" describes how to specify a different ambient temperature either for the entire design or for a particular part in the design.

pwrd is the power dissipated by the part. This value is calculated in the template (for example, pwrd for a bipolar transistor).

rth_eff is the thermal resistance specified by a property on the symbol for the part. The method of modeling thermal resistance differs depending on whether a heat sink is present

Ic

Vce

log(Ic)

log(Vce)

Power dissipation limit

Secondarybreakdown

limit

Bond wire limit

max

max

Saber® User Guide 407D-2010.03-SP1

Page 422: Saber User Guide 2010.03

Appendix F: Stress Analysis ConceptsThermal Effects Properties

The following two sections describe how thermal resistance is modeled depending on whether a heat sink is present or not.

This section covers the following topics:■ Thermal Effects for Parts without Heat Sinks■ Thermal Effects for Parts with Heat Sinks

Thermal Effects for Parts without Heat SinksIf the part does not have a heat sink, the thermal resistance is specified by the rth_ja property (junction-to-ambient thermal resistance.) The following figure shows how to obtain a value for this property from the power rating curve on the manufacturer’s data sheet.

For example, if a resistor is dissipating 1 W at an ambient temperature of 27×C with the junction-to-ambient thermal resistance of 100×C/W. then the internal temperature of the resistor will rise to 127×C.

Thermal Effects for Parts with Heat SinksIf the part has a heat sink, the thermal resistance is specified by both the rth_jc property (junction-to-case thermal resistance) and the rth_hs property for (case-to-ambient thermal resistance.) These values are typically provided on the manufacturer’s data sheets for the device and the heat sink.

For example, if a resistor is dissipating 1 W at an ambient temperature of 27×C with the junction-to-case thermal resistance of 1 ×C/W and the case-to-ambient

tempj = 27 + 1 * 100 = 127

PD

0Ambient TemperatureTj

Power

T

max

max

thermal resistance (rth_ja) =Tjmax T

PD max

C

C

408 Saber® User GuideD-2010.03-SP1

Page 423: Saber User Guide 2010.03

Appendix F: Stress Analysis ConceptsSpecifying Thermal Effects Properties

(heat sink) thermal resistance is 10×C/W, then the internal temperature of the resistor will rise to 38×C.

Specifying Thermal Effects Properties

If you want to consider thermal effects during stress analysis, you will need to provide a value for either the thermal resistance rth_ja (if no heat sink is present) or the thermal resistance pair rth_jc and rth_hs (if a heat sink is present).

1. Set the template’s ambient temperature.

Follow the procedure in "Setting Ambient Temperatures in a Design".

2. Determine if the template will model a part with or without a heat sink.

Thermal resistances are defined by the symbol properties rth_ja, rth_jc, and rth_hs.

• If the device is operating without a heat sink, you will need to specify rth_ja, the thermal resistance from junction to ambient.

• If the device is operating with a heat sink, you will need to specify both rth_jc , the thermal resistance from junction to case, and rth_hs, the thermal resistance of an external heat sink.

3. Provide values for the thermal resistance symbol properties.

a. Open the Property Editor on the template’s symbol instance.

b. Set the Value of each thermal resistance symbol property required by your thermal mounting configuration as determined in Step 2.

4. Include the temperature quantities in the analysis signal list.

For example, if you are trying to determine junction temperature as a function of time, be sure to include tempj of the template of interest in the signal list of your transient analysis so that once the analysis is complete you will be able to plot tempj in CosmosScope.

tempj = 27 + 1 * (1 + 10) = 38

Saber® User Guide 409D-2010.03-SP1

Page 424: Saber User Guide 2010.03

Appendix F: Stress Analysis ConceptsSetting Ambient Temperatures in a Design

Setting Ambient Temperatures in a Design

To set ambient temperatures in a design:

1. Define the ambient temperature.

Depending upon how accurate you need your simulation results to be, you can set the ambient temperature on each template (locally) or on all of the parts in the design (globally).

The default ambient temperature, both locally and globally, is 27×C.

You might choose to deviate from the default if:

• you have preliminary operating temperatures from thermal analysis

• you have actual temperature measurements from prototype systems

• you are simulating system performance under extremes of temperature

• you are investigating the effects of a circuit board “hot spot” on system performance

2. Determine if you want ambient temperature set locally or globally.

3. Set the temp property.

Template instances have a symbol property called temp that can be set to the ambient temperature of your choice.

The procedure to set the temp property depends upon whether you are setting it locally or globally:

To set the temp property locally:

a. Open the Property Editor on the template’s symbol instance.

b. Set the Value of temp to the ambient temperature, in centigrade, you want the template to be simulated at.

To set the temp property globally, do any of the following:

• The temp flag is also a global variable, meaning that you can specify one ambient temperature on all of the parts in your design. The default global temperature is 27×C.

• Set temp to the ambient temperature, in centigrade, you want the template to be simulated at on the SaberInclude symbol, following the instructions on how to set a global variable in your schematic capture tool.

410 Saber® User GuideD-2010.03-SP1

Page 425: Saber User Guide 2010.03

Appendix F: Stress Analysis ConceptsSetting Ambient Temperatures in a Design

• You are also able to set the global temp property to a value and override it on a template-by-template basis.

Saber® User Guide 411D-2010.03-SP1

Page 426: Saber User Guide 2010.03

Appendix F: Stress Analysis ConceptsSetting Ambient Temperatures in a Design

412 Saber® User GuideD-2010.03-SP1

Page 427: Saber User Guide 2010.03

G

GPassing Hierarchical Parameters

Describes how to pass parameters between templates.

This section covers the following topics:■ Passing Hierarchical Parameters

Passing Hierarchical Parameters

The netlisters can determine which parameters are to be passed through the hierarchy of the templates they are writing. After determining which parameters are to be passed to an existing template, the netlisters search the schematic that contains the instance of the existing template, and then the schematic containing that schematic, etc., until it finds the parameters it needs or it reaches the most general schematic. Parameters that are found are declared in the templates that correspond to the schematics through which they are passed. Parameters that are not found are declared external and can be defined in an included file. An included file is a file that is included in a netlist by using a SaberInclude property on a symbol.

If the value of a parameter passed to an existing template is a MAST identifier (argument name), then the design will be searched upward through the instances in the hierarchy for that identifier. If the identifier is found as a property somewhere in the design above, then parameters will be established to pass the property through the hierarchy to the target template. If the identifier is being passed to an instance in the top level of the design, then it will be passed through directly and no declaration will be necessary. If the identifier is not found as a property somewhere in the design above, then it will be declared external.

Saber® User Guide 413D-2010.03-SP1

Page 428: Saber User Guide 2010.03

Appendix G: Passing Hierarchical ParametersPassing Hierarchical Parameters

Note that enumerated type values are MAST identifiers. This will normally cause all enumerated type values to be declared external. A template argument with enumerated values can only be given a value from a list of values declared in the template. These values typically are words such as YES or NO. If an enums section definition is not present, there are two ways that enumerated type values can be passed into a template, one that makes use of the external declaration and one that avoids it.

External declarations can be used to pass enumerated type values into a template by initializing a variable with the enumerated type value in a file and including the file in the netlist with a SaberInclude property. For example, if you wish to pass the enumerated type value _0 to the init parameter of the inv_l4 template in a schematic other than the most general schematic of the design, then you will need to pass some other value instead, such as inv_init, which will be declared in the netlist as shown below:

You need to then define inv_init in a file such as enuminit.sin and cause it to be included at the top level of the schematic with the SaberInclude property. The contents of this file should contain the following along with any other initialization that you need for enumerated types in your design:

If you wish to pass more than just a single identifier to a parameter of an existing template, then you must enclose in braces any parameters that are to be passed through hierarchy to this parameter. Also, if the value is an expression and any of the identifiers in the expression will be passed from a higher level or are declared global, then they should be enclosed in braces.

For example, if you wish to use the Saber_rnom property to pass the sum of existing properties res1 and res2 to the r.r1 instance of the r template, then the

external inv_l4..init inv_init

inv_l4..init inv_init = _0

414 Saber® User GuideD-2010.03-SP1

Page 429: Saber User Guide 2010.03

Appendix G: Passing Hierarchical ParametersPassing Hierarchical Parameters

Saber_rnom property must have the value {res1}+{res2} and the netlist will contain:

If res1 does not exist as a property in the hierarchy above this instance of the r template, then it will be declared external and must be defined in an included file such as was done above.

When a template is created from a schematic that will have parameters passed through it, default parameter value declarations are made only if the symbol for the schematic has a property with same name as the parameter. If it does not have such a property, then all instances of that symbol in the design must have such a property.

r..rnom res1

r..rnom res2

...

r.r1 p:node1 m:node2 = rnom=res1+res2

Saber® User Guide 415D-2010.03-SP1

Page 430: Saber User Guide 2010.03

Appendix G: Passing Hierarchical ParametersPassing Hierarchical Parameters

416 Saber® User GuideD-2010.03-SP1

Page 431: Saber User Guide 2010.03

Index

AAC analysis

algorithm overview 103defining frequency range 101defining increment function 101defining number of data points 101definition 99determine next step 109displaying the form 101measuring the results 106output files 103overview 99performing 100resolving design problems 109specifying initial point 101viewing results 104

AC Analysis Results, Measuring 106AC Analysis, Executing 100aim.site file 285ALG_NO_SOLUTION 58Ambient Temperatures

Setting in a Design 410Amplitude Ratio field 135Analyses menu 36Analysis Results, Measuring 73Axis Attributes Menu Option 26

BBAD CODE for feature 348Bad encrypted data found 297BADCODE “encryption code in license file is

inconsistent” 349BADCOMM “invalid returned data from license

server” 349BADDATE “invalid date format in license file” 349BADFILE "invalid license file syntax" 350BADHOST “cannot find SERVER hostname in

network database” 350Bode plot 99

measuring results 106viewing results 104

Cc_tol property 152calibrating analyses

DC Analysis 114DC Transfer Analysis 115for DC analysis 114for DC transfer 115for fourier analyses 118for small signal analyses 117for transient analysis 116Fourier, FFT, and IFFT Analyses 118overview 113process overview 113Small Signal Analyses 117Transient Analysis 116

Cannot connect to license server 297CANTCONNECT “cannot connect to license

server” 350chain ABCD 127Circuit Bias Point, Determiining 100Circuit Operating Point, Determining 263Client not authorized to connect to server 298collecting stress data 161Component Sensitivity, Determining 144compression 133Compute Desensitization field 135configuration parameters, setting 287Contributors

distortion 135noise 130

DData files

using in stress analysis 165Data Files field

DC Transfer 94Transient analysis 68, 69, 103

DC analysisalgorithm overview 55displaying results 55executing the analysis 55

417

Page 432: Saber User Guide 2010.03

IndexE

output files 55running multiple iterations 55using holdnodes 60

DC Analysis, performing 54DC Operating Points, Hints for Finding Difficult 58DC Sweep analysis

see DC Transfer analysisDC Transfer

algorithm overview 95command example 96displaying results 96evaluating results 98running multiple iterations 95specifying required fields 94

DC Transfer analysisdefinition 93performing 93specifying optional fields 94

DC Transfer Analysis, Executing 93DC Transfer Results, Viewing 96dc_err file

displaying 57dcerr file 59Debug field 54Debugging DC Analysis Results 58defining signals to plot 67, 102deleting measurements 75derating curve examples 164derating factor 163Derating Values, Specifying 163desensitization distortion product 133DIA 251DIA Monitor Tool 257Display Initial Point Error field 57Distortion analysis

analyzing the results 138compared to fourier analysis 77defining frequency range 134defining input/output files 136executing the analysis 136harmonic distortion in fourier analysis 80overview 133process 134specifying contributors 135specifying optional distortion products 135specifying output signals 134viewing results 104

viewing the results 137Distortion Analysis Overview 133Distortion Analysis Results, Viewing 137Distortion Contributors field 135Distortion Results, Viewing 138Distortion Specifications, Checking 134Distributed Iterative Analysis (DIA) 251

EEdit menu 12editing the initial point 87End Frequency field 101End Point File field (dc) 54End Time field 66, 273ERROR

“ALG_ITERATIONS” Too many iterations 299“ALG_NO_SOLUTION” 300“ALG_OUT_OF_REGIONS” 302“ALG_SINGULAR_JACOBIAN” 303“ALG_W_NO_DT_MM” 304“BUG_ASSERT_FAILED” 304“BUG_PROGRAM” 305“CLASS_COMPATIBILITY” 305“CLASS_DFILE_READ” 306“CLASS_IP_NOT_FOUND” 306“CLASS_NO_DEFAULT” 306“CLASS_NO_MTCH” 307“CLASS_OPEN_FILE” 307“CLASS_STAMP_CHANGE” 307“CLASS_UNMATCHED_END” 308“CLASS_VERSION” 310“DYN_LOAD_FAILED” 311“ERR_BUFFER” 311“ERR_MISSING_ARG” 311“ERR_NOSTORE” 312“EXT_TDB_EXCEPTION” 313“MAST_BAD_FIELD_NAME” 313“MAST_DUP_CMP” 314“MAST_EXT_IN_ROOT” 314“MAST_FILE_NOT_FOUND” 315“MAST_IMPORTED_USED” 315“MAST_NO_COMP” 317“MAST_NO_FIELD_NAME” 317“MAST_NO_NUM_EQUATION” 318“MAST_NO_NUM_REFERENCE 319“MAST_PIN_CONFLICT” 319“MAST_UNDEF_NAME” 320

418

Page 433: Saber User Guide 2010.03

IndexF

“MAST_UNDEF_TMP” 321“PL_BAD_DATAFILE” 322“PL_BAD_EVENTS” 322“PL_OPEN_FILE” 322“SEC_NOT_AUTHORIZED” 323“TER_ALIGNMENT” 324“TER_NOT_AUTH” 324“TMPL_HYPER_VALUE” 325“TMPL_NLM_PAR_UNDEF” 326“TMPL_SRC_POS_OR_0” 326“UI_OPEN_FILE” 327bad screen distance”” 304

Experimentplotting simulation results using "ScopePlot" 18

Experiment dialog box 14EXPIRED "feature has expired" 350Extract menu 37

FFATAL ERROR

“BUG_PROGRAM” 327“DYN_REF” 327“ERR_NOFILERD” 328“SEC_CFGFAIL” 329“SEC_LMGR_CRASH” 330“SEC_NO_REQUIRED” 330“SEC_NOAUTH” 329“SEC_NOT_AUTHORIZED” 330

FFT analysiscompared to distortion analysis 77executing the analysis 82overview 81specifying input time segment 83specifying number of points 82specifying signals to transform 82specifying source transient data 82specifying windowing functions 83viewing the results 83

FFT Analysis, Performing 81File menu 9First Transient Data Point, Specifying 66flicker noise 129fourier analyses overview 76Fourier analysis

analyzing the results 81compared to distortion analysis 77executing the analysis 80

overview 77plot file contents 80specifying harmonic calculations 79specifying signals to transform 78specifying the data file 78specifying the fundamental frequency 79viewing the results 80

Fourier Analysis, Performing 77frequency response 99Frequency Response Analysis (fresp), Executing

275Frequency Response, Determining Using Pole-

Zero Data 274Frequency Spectrum of a Time-Domain Signal,

Checking 76

GGraph menu 21Grids 30.guidecfg file 287guide.log file 290.guideRc_user file 289guideRc.site file 289guide.site file 285

Hharmonic distortion 133harness.log file 290heat sinks, thermal effects of 408Help menu 41holdnodes 60Horizontal Axis Options 25hybrid parameters 127Hypermodels

Creating Part Number-Specific 375Filenames and Logic Families 374Overview 371Selecting from the Saber/Netlister Settings Form

377Using Default 372Using Ideal 372Using Muliple Families in a Design 376Using Technology-Specific 373

IIcon Bar

419

Page 434: Saber User Guide 2010.03

IndexK

SaberGuide 1iFFT analysis

executing the analysis 111overview 109specifying data 110specifying signals to transform 110specifying source plot file 110viewing the results 111, 128

Increment Type field 101Independent Source field 94Initial Point files

editing values 87evaluating 57using in stress analysis 165

Input File From fieldOperating Point Report form 56

intermodulation distortion 133intermodulation distortion products

specifying 135

KKatzenelson Algorithm, Basics of 390

Ll_tol 152large signal analyses 65license daemon

execl failed 351

license managercan’t initialize

cannot find license file 352License Manager Log File Messages 347License server not responding 332Linear Time Domain Analysis (tresp), Executing

272lmgrd

Retrying socket bind (address in use) 353Trying connection to . . . 354

lmgrd license managerNot a valid server host, exiting 353

Lock Menu Item 30Log Files 290

Mmachine_name 0‚ Unable to open display 335

manipulating measurements 75Matrix Pivoting and Conditioning 393Measure

Results Menu Option 28Measurement tool

frequency measures 106manipulating measurements 75setting data range 74

measuring AC analysis results 106measuring the results 268Measuring transient results 73Members Menu Option 27modeling noise 129Monitor field 54Monte Carlo 152

adding analyses 155adding post-processing functions 156continuing the analysis 159executing 153moving elements in the loops 156overview 151saving parameter values 154viewing the results 157

Monte Carlo Analysis, Executing 153Monte Carlo Results, Viewing 157Mouse Usage

SaberGuide 3multi-segment waveforms 142

NNet Re-naming Due to Hypermodel Insertion 378Netlister Command Reference, Saber 361Newton-Raphson Algorithm, Basics of 385No features to serve. Shutting down saber_dmn

355NO_SERVER_IN_FILE "no SERVER lines in

license file" 356Node Value List field 88Noise analysis

analyzing the results 132definition 128executing the analysis 128, 131nons 130specify noise contributors 130specifying frequency range 129specifying output signals 130types of noise 129

420

Page 435: Saber User Guide 2010.03

IndexO

viewing results 104viewing the results 131

Noise Analysis Overview 128Noise Specifications, Checking 129Nominal Simulation, Performing 165Nominal Simulations, Performing 145Non-linear systems

small signal model 99, 125nons 130NOREADLIC "cannot read license file" 355NOSERVER "Cannot connect to a license server"

356NOSERVICE "no TCP "license" service exists" 356NOSOCKET “no socket connection to license

manager server” 356NOTTHISHOST "invalid host" 357Number of Points field 82, 101, 275

OOLDVER "license file does not support this version"

357Open Design Dialog Box 11open-circuit impedance 127operating point

definition 53purpose 53

Operating Point Report 55Operating Point, evaluating 55Oscillators

Keeping Going 89Starting by Modifying the DC Initial Point 87Starting By Using Current and Voltage Sources

89Starting in Transient Analysis 85

oscillatorsediting the initial point 87starting transient analysis 85

PParameter sweep

adding analyses 140adding post-processing functions 141adding vary and monte carlo loops 140, 155executing the analysis 141overview 139specifying the parameters 140

types of sweeps 140viewing the results 142

Parameter Tolerance Ranges, Specifying 152parameter tolerances, specifying 152Part Data, Collecting 161performance measure 145Plot files

viewing Plot files 71, 96, 104, 266Plot Files field

DC Transfer 94Pole-Zero analysis 264Transient analysis 67, 102

plotting signals 72, 97, 106, 267Poles and Zeros - Frequency Response,

Determining 274Poles and Zeros - Linear Time Domain,

Determining 272Poles and Zeros, Determining 262Pole-Zero analysis 268Pole-Zero Analysis Results, Measuring 268Pole-Zero Analysis Results, Viewing 265Pole-Zero Analysis, Executing 263Preference Files 283Project Files 290project.site file 285pulldown menu

contents 9general operation 7

PZ analysisdetermine next step 270

Rr_tol 152Range 29Report Files 290Results menu 38reverse chain ABCD 127Run DC analysis First? field 66, 100, 101, 263,

264, 272Run PZ analysis First? field 274running multiple iterations 95

SSaber Include File symbol 162saber_dmn, Wrong hostid, exiting. 357saberld

421

Page 436: Saber User Guide 2010.03

IndexS

Fortran or C compiler required. Neither found ... 333

not loaded by 333Safe Operating Area (SOA) Curves 405saving transient results 67, 102Scale 30scattering 127schtos Command Line, SaberDesigner 363.scopecfg file 288.scopecfg_data directory 288scope.log file 290.scopeRc_user file 289scopeRc.site file 289scope.site file 285seeds, Monte Carlo 153Selected Axes Menu Option 29Selected Signals

Color Menu Item 33Delete Signals Menu Item 36Digital Display Menu Item 35Menu Option 32Stack Region Menu Item 33Style Menu Item 33Symbol Menu Item 34Symbol Width Menu Item 34Trace Height Menu Item 35View Menu Item 34

Sensitivity analysisevaluating the results 149generating the report 148overview 139, 144performing nominal simulation 145specifying analyses 147specifying parameters 146specifying percentage to vary

perturbation 147Sensitivity Analysis, Performing 146Sensitivity Report, Evaluating 149Sensitivity Report, Generating 148SERVLONGGONE "license server does not

support this 358short-circuit admittance 127shot noise 129showing measurements 75Signal Attributes

Menu Option 22View Axis Options 24

Signal List fieldTransient analysis 67, 102value recommendations 68, 102

Sigset command 87Simple Circuits That are Hard for DC Analysis 63simulation problems, troubleshooting

Advanced Simulator Transient Analysis Controls 379

Error ALG_NO_SOLUTION 300Finding and Debugging DC Operating Points 53starting oscillators in transient analysis 85

Simulator Error Messages 293Simulator Found the Wrong Operating Point 60.sketchcfg file 287sketch.log file 290.sketchRc_user file 289sketchRc.site file 289sketch.site file 285Sliders 30Small signal analyses

AC analysis 99available types 99, 125defining frequency ranges 101definition 99defintion 125measurement summary 106Noise analysis 128output files 103specifying operating point 101viewing results 104

Small Signal Analysis Results, Viewing 104Small-Signal Transfer Function , Determining

Process Steps 126SNOSERVSUPP "license server does not support

this feature" 359specifying tolerances 152Start Frequency field 101Start Time field 67, 273Startup Files 289Statistical analysis

See Monte CarloStress analysis

analyzing the results 167performing 165performing nominal simulation 165process overview 161restricting input data 165specifying derating values 163

422

Page 437: Saber User Guide 2010.03

IndexT

specifying stress ratings 162specifying the derating file 166specifying the report 166specifying thermal effects 409specifying which measures to calculate 166viewing the report 166

Stress Analysis, Performing 165stress measure 161stress ratings

order of precedence 163overriding 163specifying 162

Stress Ratings on Components, Specifying 162Stress Report, Analyzing 167Stress Report, Viewing 166Sweep Range field

DC Transfer 94Sweeping Parameters - Process Steps 139Sweeping Parameters Example - Analyzing a

Design over a Temperature Range 143Syntax error 334

TThermal Effects

for Parts with Heat Sinks 408for Parts without Heat Sinks 408Properties 407Specifying Properties 409

thermal effects, specifying 409thermal noise 129Time Domain Response, Determining Using Pole-

Zero Data 271Time Step field

Transient analysis 66value recommendation 66

Tool Bar IconsSaberDesigner 4

Tools menu 40Total Harmonic Distortion field 80transfer functions 127Transforming Frequency-Domain Signals to the

Time-Domain (ifft) 109Transient Analysis

Eliminating Spikes in 90Formulating the System Matrix 381Integration Methods Used in 396Local Truncation Error Controls 401

Nonlinear Solution Algorithms Used in 385Numerical Limitations of 395Sample Points and Newton Steps Used in 391Time Control Steps 403

Transient analysisdefining signals to plot 67, 102determining next step 75executing the analysis 69filling out the form 66measuring results 73performing 66prerequisite 65starting oscillators 66viewing the frequency spectrum 77

Transient Analysis Results, Viewing 70Transient Analysis, Extending 69Transient Analysis, Performing 66troubleshooting simulation problems

Advanced Simulator Transient Analysis Controls 379

Error ALG_NO_SOLUTION 300Finding and Debugging DC Operating Points 53starting oscillators in transient analysis 85

Two-port analysisexecuting the analysis 128overview 126performing 126types of parameters 127

Two-Port Analysis Overview 126

UUnable to open display “machine_name” 334undefined symbol 336

VVary

See Parameter sweepVertical Axis Options 24viewing plot files 71, 96, 104, 266viewing transient results 70

WWARNING

"ALG_NO_MM_DC” 337“ALG_THRESHOLD” 338“MAST_NO_GROUND” 338

423

Page 438: Saber User Guide 2010.03

IndexX

“MAST_STAT_TOPOLOGY” 346“SEC_EXPIRED” 338“SEC_EXPIRING” 339“SEC_LMGR_MESS” 339“SEC_LMGR_MSG” 343“SEC_LMGR_RECOVERED” 344“SEC_LMGR_RECOVERY” 344“SEC_NOT_AVAIL” 344“SPLIT_UNCONNECTED_BUT_CLASSIFIED”

344“TMPL_LIMIT_IP” 345

“TMPL_LIMIT_TIME” 346Window menu 40windowing functions 80

XX display server name required. 347X toolkit error

can’t open display 347

424