software engineering of the preditor process editor and statistical simulator n.
Skip this Video
Download Presentation
Software Engineering of the PREDITOR Process Editor and Statistical Simulator

Loading in 2 Seconds...

play fullscreen
1 / 19

Software Engineering of the PREDITOR Process Editor and Statistical Simulator - PowerPoint PPT Presentation

  • Uploaded on

Outline • The Past • The Present: PREDITOR • PREDITOR Organization • PREDITOR Example • Software Engineering in PREDITOR • Little Layout Editor (LILY) • Canvas Experiments • LILY Implementation. Software Engineering of the PREDITOR Process Editor and Statistical Simulator. Hank Walker.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about 'Software Engineering of the PREDITOR Process Editor and Statistical Simulator' - louisa

Download Now An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
software engineering of the preditor process editor and statistical simulator

• The Past

• The Present: PREDITOR

• PREDITOR Organization

• PREDITOR Example

• Software Engineering in PREDITOR

• Little Layout Editor (LILY)

• Canvas Experiments

• LILY Implementation

Software Engineering of thePREDITOR Process Editorand Statistical Simulator

Hank Walker

the past
1978 - FABRICS 0 (Maly, Strojwas)

• FORTRAN, batch, bipolar only

1980 - FABRICS I (Nassif, Strojwas, Director)

• FORTRAN, DEC-10, DEC-20, 1-D process, 2-D device models for MOS and bipolar process, interactive user interface

1981 - FABRICS I.X (Nassif, Strojwas, Director)

• Pascal, DEC-20, HP9836, MOS and bipolar, DEC-20, HP9836

1983 - FABRICS II (Nassif, Strojwas, Director)

• C, UNIX, process supervisor concept, device structure

- library of analytical 1-D process models, 2-D device models

• "wafer representation" just bunch of variables - geometry fixed at compile time

The Past
the past1
1986 - Process Engineer's Workbench (Low, Kager, Strojwas, Director)

• Process Editor (PED) specifies artwork and process flow

- library of analytical 1-D process and 2-D device models

• Process Interpreter and Compiler (PI/C) simulates process

- 3-D wafer representation - bag of rectangles

• PI/C generates C code for FABRICS process supervisor

- interpreted flow too slow for statistical simulation

- tended to break C compilers

1985 - Prometheus (Spanos)

• nonlinear optimization

• tune FABRICS to process disturbances

• optimize process/device parameters

The Past
the present preditor
Old PEW/FABRICS Capabilities

• interactive process/device specification/simulation

• statistical process/device simulation with analytical models

• library of simulation steps

New Capabilities

• general 3-D wafer representation

- mixture of geometry and field representations

- flexibility for new applications - extraction, yield simulation

- lower model development, integration overhead

• interpreted statistical simulation - no more compilation

• modular system organization

• new models

- 2-D seminumerical device model, Poisson solver

- partial SAMPLE, SUPREM-IV links

• new functions: sensitivity analysis, general layouts

The Present: PREDITOR
preditor3 implementation
Core simulator and database surrounded by interface programs

• communication primarily via files

Use engine for batch-mode simulation, optimization

LLE, Forms/Menus still integrated, GKS-based, not separate programs

PREDITOR3 Implementation
chip database
Chip is composed of layers and fields

• chip divided into corner-stitched regions at direction of simulation models

• regions contain a list of layers and fields (layer stack)

• layers contain layer model (surface shape) and attributes

• attributes include doping profiles, material type, surface shape, etc.

Chip Database
preditor example

Monte Carlo Simulation Results

Id vs. Gate Oxide

Id vs. Poly Length

software engineering in preditor
Large System

• 250K lines of C in 1500 modules, 2MB binary

• parts date to 1982 - generations of students and programmers

Evolution from Process Engineer's Workbench (PEW)

• reuse as much PEW code as possible

• focus new work on CDB, model integration

• experiment with new system


• commercialization as pdFab from PDF Solutions, Inc.

Project Organization

• chief programmer

- six years experience on PREDITOR, PEW

• one assistant programmer

- component development

• students hand over new models for integration

Software Engineering in PREDITOR
software engineering in preditor1
System Evolution

• PREDITOR1 - PEW interface and models integrated with CDB

• PREDITOR2 - xgraph, xmdraw user interfaces, pdFab V1.0

• PREDITOR3 - SUPREM-III, virtual grid, pdFab V2.0

• PREDITOR4 - server mode, Tcl interface, LILY

- never completed, became later versions of pdFab

Tool Usage

• cc, dbx, lint,...

• no rapid prototyping tools

• no GUI builder

• heavy software reuse

• standard project libraries - math, GKS, SIN, C Programmer's Toolbox,...

• no CodeCenter/ObjectCenter

- problems with large programs

Software Engineering in PREDITOR
little layout editor lily

• specify/view transistor, inverter, small cell mask artwork

- <= ~1000 polygons

• specify points and cutlines for simulation and visualization

• read/write CIF and maybe Calma layout files

• handle polygons

• painting, not object paradigm

• communicate with rest of system via messages

• not a full-blown layout editor


• PED layout editor from PEW

- GKS-based

- gridless colored box outlines

- part of monolithic GUI

Little Layout Editor (LILY)
lily implementation
Construct with Tk/Tcl widgets

• flexible, can change look-and-feel

• fast enough for buttons, mouse operations

• convenient communication mechanism

• fits in with intended use of Tcl as PREDITOR extension language

• canvas widget provides rectangles, polygons, lines, bitmaps, text,...


• canvas is object, not paint oriented

• too slow on 1000 items?

- all operations use item linked list

- while operating on DECstation 3100 - ~ 3 MIPS machine

• no polygon outlines

• order of display - opaque objects

• no translucent colors

LILY Implementation
canvas experiments
Is the canvas fast enough?

• modify mkScroll.tcl in widget demo

• 100x100 array of diamond polygons


• startup 30 sec, 3 MB memory

• scroll speed okay

• select/deselect is 0.5 sec!

- dominated by linear item search

• but 1000 items is 10X faster => interactive

• compile -O instead of -g for 2-3X speedup


• canvas is fast enough for ~1000 items

• modify to use quadtree, etc., for 10,000 items

- lot of work

Canvas Experiments
canvas experiments1
Can we have acceptable item colors?

• do we need polygon outlines?

• play with canvas in widget demo

• stipples are user-defined, have colors, transparent

• use order of mask layers in item list to control visibility

- each item can have a tag, e.g. layer name

- items are drawn in list order

• can hide layers by making items transparent

• no translucent colors via X color map tricks


• can use stippled colored polygons for now

• maybe modify canvas to add polygon outlines later

• translucent colors require major rewrite, corner-stitched database

Canvas Experiments
canvas experiments2
Can we easily implement painting?

• coalesce polygons that touch

• erase polygon regions under eraser

• perform boolean polygon operations

- union new polygon with nearby ones

- subtract eraser from nearby polygons

- use VLASIC polygon package

• useful canvas item functions

- find nearby item

- exec command on event sequence


• painting not too hard to implement

• will run fast enough

Canvas Experiments
lily cif interface
CIF - Caltech Intermediate Form

• hierarchical mask artwork format

• symbols, boxes, wires, polygons, labels,...

How to read CIF into LILY?

• new Tcl parser? No, a major undertaking

• use existing CMU C parser

- user supplies callbacks, e.g. outputpolygon

- will flatten and sort geometry

• write C callbacks to issue canvas Tcl commands

- outputpolygon(layer, path) calls

$c create polygon x1 y1 ...xn yn -fill $layercolor -tags $layer

- optional Tcl callback layer for look-and-feel decisions

• link callbacks with CIF parser and rest of LILY (canvas,...)

• CIF parser uses same LILY interface as rest of code

LILY CIF Interface




Tcl Callbacks


C Callbacks

C Calls

CIF Parser


lily implementation1

• Wish

• polygon package

• CIF parser

• C callbacks

Tk/Tcl command file

• optional Tcl callbacks

• GUI organization, behavior

• link to PREDITOR Tcl

LILY Implementation

Drawing Tools

Menu Bar



Scroll Bars