Product Documentation
Open Simulation System Reference
Product Version IC23.1, June 2023


Contents

1

Introducing the Open Simulation System (OSS)

OSS Components Overview

Simulator Integration Overview

Designer and Developer Perspectives

64-bit OSS

2

Integrating Simulators

Requirements

SKILL
Database Access Functions (SKILL Database Access)
Running Simulation Using SE
Creating Stimuli Using STL
Developing a Simulator Interface

Simulation Steps

Generating Stimuli
Generating a Netlist
Translating Stimuli Names
Running the Simulator
Translating Names in Simulator Text Output
Creating Backannotation Error Messages

Integration Steps

3

Customizing the Simulation Environment (SE)

SE Goals

SE Steps

Run Directory Initialization
Netlisting
Simulation Input Translation
Running the Simulator
Simulation Output Translation

How SE Works

Files Needed To Integrate Your Simulator

Simulator-Specific SE Customization File
Template Control File
Name Translation File

SE Naming Conventions

SE Variables

simActions
simAlwaysAddPrefixInInstName
simCapUnit
simCellName
simCellViewModifiedAction
simCheckNetCollisionAction
simCleanFileList
simCommand
simCompleteMessage
simControlFile
simDefaultControl
simDefaultRunDir
simDefaultSimulator
simDetectPCellFailure
simDoNetlist
simDoNotForkNetlist
simFailedMessage
simGenWarnings
simHost
simHostDiffers
simIgnoreTerm
simResolveStopCellImplicitConns
simInitRunActions
simInstNamePrefix
simLibName
simMaxNetlistErrors
simModelNamePrefix
simNetlistHier
simNetNamePrefix
simNlpGlobalCellName
simNlpGlobalLibName
simNlpGlobalViewName
simNotIncremental
simPcellPrefix
simPinGlobals
simReNetlistAll
simViewName
simViewList
simRunDir
simRunningInSi
simSedFile
simSimulatorSaveVars
simSimulatorUnbindFuncs
simSimulatorUnbindVars
simStopList
simStopNetlistOnPcellFailure
simTimeUnit
simSimulator
simSupportDuplicatePorts
simSymbolModifiedAction

SE SKILL Functions

SE Graphics Variables

4

Customizing the Interactive Simulation Environment (ISE)

Understanding Interactive Simulation

Interactive and Batch Simulation
Creating an Interactive Interface

Using an Interactive Simulation Interface

Initializing the Interactive Environment
Creating Windows for Interactive Simulation
Running the Simulation
Ending the Session

Customizing ISE

ISE Interfacing Steps
Foreground Simulation Environment
Window Environment
Menu Commands
ISE Variables
ISE Functions
ISE Interfacing Steps
Foreground Simulation Environment
Window Environment
Menu Commands
Filtering Simulator Inputs and Outputs
Creating User Specified Window Placement

ISE Variables

iseDontOpenSchematicWindowIfOneExists
iseExitSimulator Command
iseFilterInputFunc
iseFilterOutputFunc
iseInitSchWindowFunc
iseInitSimWindowFunc
iiseInputNetlistCommand
iseInputStimulus Command
iseInvokeSimulatorFunc
iseOpenWindowsFunc
iseReleaseFunc
iseRunSimulator Command
iseSchematicMenu Handle
iseSetFunc
iseSimulateFunc
iseSimulatorMenuHandle
iseStartSimulatorFunc
iseSchWinAttrId
iseSimWinAttrId

ISE Functions

NFS-Mount Mode
Copy Mount Mode
Assigning the Path
Selecting the Mode
Copying the Simulation Files
OSS System Requirements

5

Customizing the Hierarchical Netlister (HNL)

How the Netlister Works

Introduction
Defaults Setup
Handling Designs with Instances of Different Place Masters Having the Same Switch Master
Property Inheritance Warning
Instance Ignore Conventions
Skipping Terminals
Output Formatting
Map File
Naming Conventions
Source Code

Support for Inherited Connections

Support for Supply Sensitivity
Ignoring Mismatch in Inherited Connections

Support for Iterated Instances

Writing a Formatter

Set Output Variables
Create Netlister Data Structures
Print Netlist Header
Print Connectivity for Subcircuits
Print Connectivity for Top Cells
Print Netlist Footer
Unbind Variables
Required Formatter Functions and Variables
Formatter-Specific Triggers that Customize the Netlist

HNL Specific Properties

HNL Variables

HNL Global Variables

HNL Access Functions

Incremental Hierarchical Netlisting

How IHNL Works
Terms You Need To Know
Name Mapping in IHNL
Netlist Module Names
Global Signals
Known Problems
Configuring an Incremental Netlist Formatter
Writing the HNL Formatter
Converting to an IHNL Formatter
Example
HNL Code To Change
IHNL Code To Add
Variables and Functions for Incremental Netlisting
Definable Variables
Variables IHNL Defines

6

Customizing the HNL Net-Based Netlister

Flow of Net-Based HNL

HNL Variables for Net-Based Netlisting

HNL Procedures for Net-Based Netlisting

Other Variables and Procedures

Controlling the Format of the Netlist File
Variable and Name Mapping Functions
Other Procedures and Functions
Other Variables

Procedures the Formatter Must Define

Designing an HNL Net-Based Formatter

Determine Name Mapping and Netlist Syntax Needed
Initialize Variables
Code the Needed Procedures

Net-Based Netlister Design Example

Designing the Netlister
The Formatter
Sample Output from Formatter Design

7

Customizing the Flat Netlister (FNL)

How FNL Works

Formatting Instructions
Database Traversal Routines

FNL Naming Conventions

FNL Flattening Process

Locating an Instance of a Device
Switching Views
Stopping Views
Opening a Design
Locating a Cellview
Expand or Format
Global Nets
Support of Multiplicity Factors for Flat Netlisters

FNL Name Map

FNL Output Formatting

Global Cellview (nlpglobals) Contents
Creating Predetermined Properties
Formatting Substitution Expressions
SKILL Formatting

Customizing FNL Output

Learn Required Information
Create Global Cellview
Create Library Elements
Write SKILL Formatting Procedures
Modify the Simulation Environment (SE)

FNL Format Example

FNL SKILL Functions

8

Customizing Post-Layout Simulation

Parasitics Extracted by the Layout Extractor

Parasitics Extracted by the Symbolic Layout Parameter Extraction Tool

Customization Steps
Variables
Functions

9

Generating a Library

Library Structure Overview

Data Organization
Library Directory Contents
Logical Name to Physical Path Name Mapping
Cell
Views
Version

Library Element Views

Symbol Views
Simulation Views
Subcircuit Primitive Views

Creating Your Own Library

Symbol Generation
View Generation

Library Maintenance

Library Update Procedures
Example of Updating a Cadence Sample Library

A

Support for HED

APIs Modified to Support these Features

Bind to Open

Handling of views without DFII-DB data by OSS

B

Troubleshooting: Bus Direction

Determining a Bus Direction

Resolving a Conflict in Bus Direction


Return to top
 ⠀
X