DEVELOPMENT OF A DISTRIBUTED DESIGN SYSTEM

FOR INTEGRATED CIRCUIT DESIGN USING

VAX 1117 50 AND SCALDSYSTEM COMPUTERS

A Thesf-s Presented to

The FacuJ.ty of the Col.1.ege of Engineering and Technology

Ohfo University

In Partial. Ful.fi.l.lment

of the Requttements for the Degree

Master of Science

Robert Stratton Nobl.es,, TI -4L March, 1986 ACKNOWLEDGEMENTS

I wou1.d Iike to thank my advl.sor, Dr. Harold KJ.ock not only for his support of this thesi.~,but for his interest in and support of my graduate work altogether.

My thanks to the members of my committee: Dr. Janusz

Starzyk and Dr. Robert Curt!.s helped to form my earliest interest in VLSI deslgn (whj.c.h launched this thesis), and t.o

Dr. Israel Uri.el.1, for his interest and val.uab1.e sugges- t l.ons .

I wou1.d also I.lke to express my appreci.!.on here for the help given to me by my mother and father, who have al-ways belleved j.n me.

And final.l.y, my deepest gratitude goes to my wife,

Kfm, whose support has meant everything to me. TABLE OF CONTENTS

Page

ACKNOWLEDGEMENTS i

LIST OF FIGURES

CHAPTER 1 : INTRODUCTION

CHAPTER 2: AN INTRODUCTION TO THE SYSTEM

2.1 A Short View of rhe Hi-story of UNIX

2.2 Conventions Used In Thfs Thesis

2.3 The UNIX System 9

2.4 UNIX System I/O

2.5 The UNIX Command Intetpreter(SheJ.1.)

CHAPTER 3: VAX AND SCALDSYSTEX DESIGN ENVIRONMENTS 17

3.1 SCALDsystem Resources

3.1.1 Hardware Resources

3.1.2 The 0peratJ.ng System and F3.l.e System Layouts 20

3.1.3 SCALDsystem Integrated Cj.rcuf.t Desi.gn Software 26

3.2 VAX System Resources

3.2.1 Hardware Resources

3.2.2 The Operating System and File System Layouts 35

3.2.3 Integrated Circuit Design Software 41

CHAPTER 4: VAX/SCALDSYSTEM COMMUNICATIONS 4 5

4.1 Communi.catj.ons Usi.ng the Program 4 5

4.2 Ini.t.Sal.iz3.ng UNIX Terminal. Processes 5 4 TABLE OF CONTENTS (continued)

Page

4.3 Design Database Compatibf3.j.ty 63

4.3.1 The CIF and CAESAR Database Formats 66

4.3.2 Data Transferral.: SCALDsystem To VAX System

4.3.3 Data Transferral.: VAX System To SCALDsystem

CHAPTER 5 : SCALDSYSTEM PROGRAM DEVELOPMENT

5.1 The Drc/Extract Command Fi1.e

5 .4 Modff icaffons on the hpf il.ter program

5.5 The Stanford Ce1.3. Library

5.6 The Lyout Li.brary

CHAPTER 6: DESIGN EXAMPLES

6.1 Ffnl.te State Machine Example

6.2 RAM Subsystem Example

6.3 Scale Program Example

CHAPTER 7: CONCLUSION

7.1 Beneftts of a Dfstributed Design System

7.2 Recommendations and Suggested Improvements

CHAPTER 8: BIBLIOGRAPHY

APPENDICES

APPENDIX A: UNIX CSH COMMAND SUMMARY TABLE OF CONTENTS (continued)

Page

APPENDICES (continued)

A.2 Pre-def ined and Environment Variables

A .3 Command Interpretatton

A.4 Expressions

A.5 Substitutions

APPENDIX B: SCALDSYSTEM PROGRAM AND FILE LISTINGS

B.l SCALDsystem Program L$.stl.ngs

B .2 SCALDsystem Fi1.e Listi.ngs

B.3 VAX System Program Li.stings

B.4 VAX System Fi1.e Li.sti.ngs

B.5 ??].ow Charts

APPENDIX C: USING THE HP PEN PLOTTERS

C.l Plotting on the HP7470

C.2 Pl.ottl.ng on the HP75xx Serl-es of P3.otters

C .3 SCALDsystem Setups

APPENDIX D: SCALDSYSTEM MAINTENANCE

D.l Shutttng the System Down (the right way

D.2 What To Do When Things Go Wrong

D.3 Backing Up the Sysrem LIST OF FIGURES

FIGURE Page

2.1 A sample UNIX di.rectory hierarchy 11

3.1 0rganj.zati.on of des 3.gn software under /uO 2 7

3.2 Organlzat-.ion of design sof tware under /usr (SCALDsystem)

Organization of design software under /usr (VAXsystem)

Communj . tons using the tip program

Terminal. initializat3.on events

Movl-ng files from the SCALDsystem to the VAX system

Preparing design files for the SCALDsystem

Ll.ght confroJ.ler state transition table

FSM description for the peg program

Lfght- fsm layout

RAMPAIR 1.ogj.c

RAMPAIR layout

ADDRESS logic

ADDRESS layout

SHREG log3.c

SHREG layout

INTERFACEPAIR 1ogj.c

INTERFACEPAIR layour LIST OF FIGURES (conti.nued)

FIGURE Page

6.13 2-bit MEMORY 1.ogf.c 134

6.14 2-bit NEMORY 1.ayout 135

6.15 MEMORY layout 136

6.16 SCALE example 138

Flowchart of FSCKFILEFX 255

Fl-owchart of hpl 257

Flowchart of VALID2VAX 25 8

Flowchart of VAX2VALID (SCALDsysrem) 260

Flowchart. of SCALE

Flowchart of VALIDCOM

FJ-owchart of VAX2VALID (VAX system) CHAPTER 1 : INTRODUCTION

The work done in thls thesi.s was moti.vated by a need to deve1.o~ a distr.i.buted computer system for the design of

1.ntegrated ci.rcu3.t~. Initl.al.3.y a VAX 11/750 mjnicomputer and a workstation for the computer-ai.ded desi-gn (CAD) of eJ.ectri.ca1. and Integrated cl.rcui.ts were avaiJ.ab3.e for thfs design work. When used as separate design stations, each of these computers lacked fac5.1.3.ti.e~ essent IaJ. to the design process whi.ch were provided by the other. As an exampJ.e, the software too1.s .Instal.l. on the VAX system cover a wide range of operati.ons from rhe i.ni.tl.al. desi.gn J.ayout through si.aul.at.5on and on to the p1.otting of the design.

TJnfortunatel.~, the hardware needed for interacti.ve design

1.ayout 3.s not ava5.1.abl.e for the system. However, the recent1.y-purchased CAD workstation (hereafter referred to as the SCALDsystern) supports an exce1.J.ent i.nteracti.ve 1.ayout program for designj.ng 5.ntegrated ci.rcuj.ts, but i.s Jacktng in areas of software support necessary for the compJ.ete verift- cati-on of desi-gns. By deve1.opi.ng software which a3.1.ows these two systems to communicate and process each system's design inEormatj.on the desi-gner may take advantage of the

VAX system's PLA generators and s.tmuJ.atlon software wh1l.e actual 1.y construct lng the integrated ci-rcuit with

SCALDsystemls Interact ive 1-ayout editor. This t-hesi s wi 1 J descrj-be the software created for this purpose and the soft- ware whl,ch was created or modified for the purpose of upgrading the design facI.lj.ties on the SCALDsystem. The work described herein 1.s for the deveJ.opment of integrated circuit designs and it. 1.s assumed that the reader has a basic knowledge of this subject.

In addition to describing the tool-s and methods used to deveJ.op software for these rwo systems, this thesis also serves as a reference manual. for any further deve1.opment or design work which may be done i.n the future. Many of the topi.cs which have been i.ncompl.et-e3.y covered or not covered at al.1. in available reference material were unearthed

through months of experimenrati.on and a large number of

phone .1.s. The chapters wh3.c.h foI.1.o~ are organi.zed so

that the first- as well. as the experienced user may

benefit from the mater1.al.. AI.so, since much of the deve-

loped so£tware has an Intimate re1.ationship with the UNIX

operacing system, th1.s aspect is covered 1.n some amount of

detail., providing a basis for an understanding of the rest

of the thes-. The appendices also cover related material. which was fe1.t to be va1.uabl.e but was not suitab1.e for p3.a-

cement Cn the mai.n chapters. The fol.l.owjng paragraphs sum-

maze the content of 6he chapters whi.ch foJ.1.o~and present

the I.ogi.ca1. constructi.on of the thesis i.tse1.f. The second chapter introduces the UNIX operattng system which j.s common to both the VAX and the SCALDsystem. Th3.s material. is intended for those who are not fam1Ij. with ti7.i.s operating system, prov.id3.ng a baslc coverage of the topics and syntax which appears throughout the thesi-s.

The third chapter exami.nes destgn software avaj.l.ab1.e on each of the two systems. The design software and j.ts orga- nization w1.thin the UNIX system (partI.cuJ.ar1.y .important in the SCALDsystem's case) is revi.ewed and functional. descrip- tions of the deslgn too1.s related to this thests project are provided.

Chapter four presents the deve1.opment of an RS232 com- muni.catl.ons 1.I.nk between the VAX and SCALDsystem det.ailj.ng t operation and the terml.nal communl.cat.ions of the UNIX systems whtch support 1.t. The i.ssues of desi.gn data base compatabi.1.I.t.y are examined and those programs whl.ch process desfgn data for transmfssion between systems are dj.scussed.

Chapter ftve examlnes the modifications made to

SCALDsystem software. This i.ncl.udes modifl.cat1.ons of the

SCALDsystem pJ.ottl.ng software, the Drc/Extracr command fil-e, and the LED techno.l.ogy f1l.e. Also covered are the i.nstaJ.1.a- tion and use of the Stanford cel.1. J.i.brary for destgn deve- lopment and the J.yout 1.ibrary for the s11nulati.on of

integrated cl rcui.t destgns. Chapter si.x presents three examp1.e~ of desi-gns created usfng the software developed for the two systems. The fi-rst i1.J.ustrar.e~ the use of the functI.ona1. descript3.on 1.angauge supported by peg(CAD1) and a new program named - p3.a.

This example also verifies the operatj-on of the com- muni.cati.ons ].ink and expJ.ains deta3.1~of creating a f i n3.t-e state machfne whi-ch are not fuJ.1.y covered i.n the exi.st3.ng references. The second examp3.e 3.1.J.ustrates the use of the

Stanford cell 13.brary (down3.oaded from the VAX system) to construct a dynamj-c RAM subsystem from a set of basCc ceJ.1.s.

Thi.s exampl.e also prov1.des some gul.dJ.ines in constructing thls circuj.t which are not clear1.y covered in the referen- ces. The final examp1.e 3.s of the SHREG cell (shown i.n the

RAM subsystem example) whi.ch has been scaJ.ed down from 2.5 mi. to 1.0 micron feature size us3.ng the "sca1.e" sheJ.3. developed for the SCALDsystem.

Chapter seven i.s the concl.uslon, serving to wrap thj.ngs up and to suggest future 3.mprovement.s to be made to the di.strCbuted system.

Appendlx sectCon A describes, i.n detatl., pertinent. information on usi.ng the she1.J. such as the varlous substitu- tion mechanisms, varI.ab1.e mani puJ.at.i.ons, and programml ng structures. Thi.s sectI.on shou1.d be read before exam.int.ng

the shell. scrlpt programml.ng presented i.n th1.s thesis. Appendlx section B Is a 1.i.stI.ng of modi.fied software and programs whfch were developed for the two systems, wj-th flow charts and annotation. In addltI.on, several. modlff.ed system fll-es and examples of design databases which have been modified by these programs are presented.

Appendix section C is a guide to uslng the ava1J.abJ.e

plott.i.ng hardware and what to do when things go wrong.

Appendix sect.i.on D covers system maintenance pro- cedures for the SCALDsystem. WCthout these procedures, none of the work done for this thesj-s wou1.d have been posslbJ.e! CHAPTER 2: AN INTRODUCTION TO THE UNIX SYSTEM

In view of the material. whi.ch folI.ows, it i.s appropr-l.ate that some discussion of the UNIX operating systems be pre- sented at th.i.s point. Both of the computer systems on which the design and testing of VLSI structures are performed run a version of the UNIX system and an understanding of the programming and princip3.es of operatI.on require at least a noddfng acquai-ntence wi-th the UNIX envtronment. Thi.~ chapter provides a basic out1.J.ne of UNIX system components with an attempt be-l.ng made to keep deta.i.1~at a managable

].eve]. . Later, in chapter four, dj.scussions on the programming of the VAX and SCALDsystem commun-l.catlons system wi1.J. require a detai.1.ed examination of the methods used by

UNIX to establish control. of its termtnal 110. Final.l.y, the second sect.i.on of the appendix wi-11. review the detaj.1.s of programming the she].]. for those who are unfamiliar with its usage.

2.1 A Short View of the History of UNIX

Deve1.opment of the UNIX system began J.n the late 1960's

at Bel.J.'s AT&T Laboratories through the efforts of a

programmer named Ken Thompson. The story has it that Mr.

Thompson was devel.oplng a prograln named "Space Travel." on a

GE computer runni.ng the MULTICS operat.-l.ng system and began developing a support1.ve system for his programmi. ng work.

UNIX was original.1.y wrltten in assembly 1.anguage for

Digltal Equfpment Corporation's PDP7 as a single-user system

(hence the name UNIX in contrast to MULTICS which was a multi-user system). As the UNIX system became more popul.ar at AT&T, the basic system was extended for mul.tl-user opera- tion and the "B" language was developed to port UNIX to

DEC' s PDPll machine. Soon a£ter, anothe~programmer, Dennis

Ritchie coll.aborated with Ken Thompson in the devel.opment of the "C" language to improve the portability of the UNIX system. The system's kernel. (the primary and most fundamen- tal structure of an operating system) consists of LOO0 li.nes of assembly code and 10,000 lines of C code. The Sixth

Edi.tion UNIX system became r.ommercia1.l.y avail.ab1e i.n 1978, and was largely superceded by the more popu1.ar Seventh

Editfon.

It was from th1.s Seventh Edition of AT&T UNIX that the

University of California at Berkeley based thei.r own ver- sions oE the UNIX system. These versions (known as 4.1 and

4.2 Berkeley Standard Distr.tbuti.on UNIX) were deve3.oped to run on the new line of VAX mtni.computers so3.d by Digital.

Equtpment CorpocatCon and incl.uded many ext.ensl.ons to AT&T1s

UNIX such as an tmproved edttor which 1.nr.orporaked screen- editing as one of its operati.ona1. modes and a new co~nmand interpreter, csh(1) among others. Out of a1.1. the opera- tional aspects of UNIX, there are three which are the most visab1.e to the programmer; the fi1.e system, 1/0 system, and the command interpreter (or "shel.1." as it's more commonly referred to).

2.2 Conventions Used -In This Thesis--

Throughout this thesis there wtl.1. be numerous references to programs and files found on the UNIX system. As each program or file is mentioned, it wil.1 be printed i.n the form: "name(section)". The name, of course, will. refer to the program or fi1.e bei.ng di-scussed whi1.e the sectton will. be a number which refers to a particular section in the UNIX

Programmer's Manual Volume 1 [I]. In the case of desi.gn software developed at Berkeley, these sections wi.11 be given as 1.VLSI or CAD1 and may be referenced through the UW/NW

VLSI Design Tools Reference Manual [2]. Since there are two versions of the UNIX system whi.t:h wtll be under discussion

(namely, 4.1 BSD for the SCALDsystem and 4.2 BSD for the VAX system), the reader should examine the context of each reference to decCde whtch version of the Programmer's Manual. shou1.d be used. However, in many cases thf.s matter wi.11. not be critical.. More detatled informatCon on the UNIX operatCng system can be found 1.n volume 2 of the UNIX

Programmer's Manual. [3] . 2 .3 The- UNIX File -.-- System

The UNIX file system is organ4.zed i.nto a hierarchy based on the generali-zed tree structure. Parent nodes Cn th1.s

system are di.rectories and their chi1.dren are either files

(leaves) or st.i.11 other directories (subdirectories) . Thus

it is relatfvely easy to organi.ze system programs by

grouping together related works .in a hierarchical. manner.

Files Cn thls system grow dynamicaX1.y and without bound and

are structured i.n 512-byte bl.ocks with no other structural.

informatI.on maintatned. Directory speci.ficati.ons are

referred to as path names and usual-ly begin wlth a "1" (th4.s

slash i.t.se1.f represents the absolute top of the directory

hierarchy and is aptly referred to as the "root"). Thus a

typical. di.tectory specifi.cati.on might be /usr/grad/nbl (the

author's dl-rectory of restdence) or /usr/ucb (the home of

user-contributed so£tware developed at Berkeley).

References to files appear at the very end of a pathname

ie., /usr/bin/csh (the executable program 1.mage of the

0erkel.e~co~nmand interpreter). Particu1.arly notable di.rec-

tory entries are:

/etc most of the system management code and startup

scripts.

/dev device Etles and thetr maintenance programs. /usr/bl.n, /usr/ucb, /bl n

executab1.e software for system users.

/usr/l.ocal.

l.oca1.l.y devel.oped user software.

These last four directories and the user's own directory are searched by default for commands typed at the terminal..

Al so, references to files and subdirectories within the user's home directory do not require prepending their full pathname as the she1 1 does this automatically. Such a path- name to the user's home (or login) directory may be accessed with the metacharacter " " which is expanded automatically by the shell. Other characters expanded by the shell include "." (the current directory) and ".." (the parent directory). An illustration of the UNIX system's directory hierarchy appears in figure 2.1.

Certain system files and special program files have a period prepended to the file name. Examples of these fi J.es are:

.cshrc InitiaJJy read by csh at login, this file con-

tains commands and variable settings defined by

the user.

.login Read by csh after the .cshrc File, this file

contains additional shell instructions. FIGURE 2.1 A sample UNIX directory hierarchy. .prof-l.3.e

Read by another command i.nterpreter, sh(1 ).

AnaJ.ogous to .cshrc and .login.

.J.ogout Opt-lonal. file created by the user to specify

personal. J.ogout procedures.

These files do not norma1Jy show up under a casual inspec- tjon of directory contents unless specifical Jy requested.

The UNIX file system is quite susceptible to damage and perhaps requires more maintenance than most other file system implementations. A utility program, fsck(8) checks file systems for damage and interacrs wtth the operator to correct these damages when they do occur. As such, this program is indispensible to the system manager and will be covered more fuJ 1y in appendix section D.

2.4 UNIX Svstetn 1/0

The UNIX system supports a wide range of options in tailoring the 1/0 environment for the user and the system.

The user's terminal and other system devices are identified using "files" in the /dev/directory. A few examples of

these entries are:

/dev/ttyl2

Tern~inal device number 12. The operator's console

/dev/mtO

Magnetic tape drive number 0.

/dev/rmtO

Raw magnetic tape drl-ve (no formatting ) .

Raw magnet1.c tape drive without automatic rewind.

/dev/hpOg

Disk drive 0, offset cylinder g.

Each of these file entries represent an I/o buffer and i.ts associated device driver. Stnce these buffers act exactJy as ordinary system fi.les, they may be opened for reading and writing without special arrangements.

The UNIX shell. supports user-controlled 1/0 redirection of three previous1.y-def ined fil-es. These files are:

stdin Standard input. 1nj.tiall.y defined as the user's

keyboard and used for program input.

stdout Standard output. Initlall-y defined as the

user's screen or printer and used for program output.

stderr Standard error. In~.tial.l.ydefined as the user's

screen or printer and used to direct error information

even ff the standard output has been redirected. I/o redi.rection 1,s performed by the shel.1. when the user lssues commands of the form:

cat file- name > /dev/ttyl2

'rhe cat(1) command aJ.ways uses the stdout fi1.e for its out- put. The i.nformat1.on written by a program to stdout may be redirected by the ">" sign to the named fll.e, in this case a termj-nal.. The output of the cat command then appears on rhat termJ.nal.'s disp3.a~screen or on paper, if the terminal.

.i.s a printer. A stm1.J.ar redi.recrlon may be forced by usi-ng the "<" character. Thjs redi.rect-ion causes the standard

-i.nput of a command to be taken from the named fi.3.e. As an example:

hpfi 1.t.er < hpplot .dat > /dev/.yc

Th1.s pJ.otti.ng program on the SCALDsystem uses on1.y standard input and output for its tasks. The redl.rect1.on causes this program to read plot data from the hppJ.ot.dat fJ.1.e and to its translated version of this to the /dev/ttyc fi1.e

(which is connected to a plotter).

One other useful. form of I/o redi.recton is the pipe.

Thjs i.s used to "pipe" the standard output of one command

1.nto the standard i.nput of the next, as shown in this

example : cat file- name I out.- file

As prev1.ousl.y explained, the cat command sends Its output to stdout. The tee(1) command writes information recei.ved through stdl.n to both stdout and a named fi.1.e. Thj.s command pipe dispJ.ays the file to the user while simultaneous1.y copying this output to another file. Both of these programs are used by the tip(1) program covered later as a means to transfer files from one system to another.

2.5 The UNIX Command Interpreter (Shell.)

Unlike command tnterpreters found on most operati-ng systems, the UNIX command 'Interpreter (hereafter referred to as the sheJ.1.) is not bui.lt into the system. The shel.1. i.s actual.1.y an executab1.e program image no dtfferent J.n form than any other program 1.mage on the system, with the excep- tion of its function. It is the UNIX kernel. wh1.ch 1.s respons1.ble for managing the system resources such as memory and other machine hardware, 110 requests, file system handling and system security. The she].]. simp1.y acts as a high-1.eveJ. Interface to the kernel on behalf of the user, interpreting command 1.ine entries, requests for I/O redl rec- tion, and perf ormlng metacharacter substitutCons before sub- mj.tt.l.ng requests to the kernel.

There are two shells available to the users of Berkeley

1JNIX systems. One ts the standard Bourne she1.1 known as sh(l), the other is an extended verslon of this shell. with a

C language-l.3.ke syntax known as csh(1). Each of these shel1.s 3.mpl.ement.s a h3.gh-level. language with prograrnmJ.ng features such as the J-E-then, while, and goto constructs.

The UNIX she1.J.s can j-nterprey interactive termfnal commands ot user-wrj.rten fI.1.e~ known as sheI.1. scrI.pts. Most of the progranmJ.ng work done for this thests is written as she3.3. scripts for the csh program (described I.n append3.x A) which makes them easier to majntain and modify. CHAPTER 3: VAX AND SCALDSYSTEM DESIGN ENVIRONMENTS

What foJ.1.ows is a revtew of the integrated clrcuit design environments on the VAX and SCALDsystem computer systems. The intent here is to develop an understandi.ng of these environments at the system level. and to i1l.ustrate the

1.ayout. of the design software within the UNIX dftectory system. Topics covered for each system I.ncl.ude basic hard- ware resources and the operating system whfch supports them, and the organization of software within each system. In the case of the SCALDsystem, several. too3.s which are di.rect3.y affected by this thesis, or which are poor1.y documented wiJ.1 be reviewed in some detai.3.. Since those too1.s which comprise the VAX system design software are well-documented and requfted no mod;.fi.cations, on3.y those too1.s whfch were direct.3.y I.nvolved with thj.s project are dl.scussed.

These i1l.ustrations wi.J.3. serve to hjghl-ight important. features and the differences between the two systems and in the end, wiJ.1. suggest the ro3.e~ to be played by each system tn the distributed system. These roJ.es wf.1.J. be clarj.fled in the chapter four.

3.1 SCALDsystem Resources

VALID Logj.cls SCALDsyst-em serfes of workst.ations are designed specif ical3.y for the computer-aj.ded deslgn and ana- 1.ysis of eJ.ectrl.cal systems. This functl-on can be further separated into two major areas: schematic capture and integrated circuit design.

The first area of schematic capture is the design of electrical. systems which are bul.1.t from integrated circuits such as the 74LS04 inverter chip or the 74LS112 3-K flip f1.op package. These designs are created using the

SCALDsystemls Graphics EDftor (GED) program and may be simu- lated for several. performance criteria such as 1.ogic and timing . Since chis thests is concerned primarily wl.th i.ntegrated ci.rcul.t design, thj.s program wl.l.1 warrant 1.i.ttl.e discussion.

An lntegrated c1rcui.t design l.s created using the Layout

Editor (LED) and may be checked for design rule vSol.ations with a design ru1.e check program (Drc/Extract) whlch also functions as a circul.t extractor. Once the circuit is extracted, l.t may be simuJ.ated using the we3.1-known spice program or by using the SCALDsystemls "sl.mu3.at.e" program.

The subset of tools provided for the creation and verifica- tion of integrated ci.rcui.t deslgns are known coJ.lectlvely as the SCALDstar system. Th3.s should not be confused wl.th the

SCALDsystem referenced throughout. thJ.s thesf.~,whi.ch refers coJ.1ect.tvel.y to the hardware and soEtware of the system. 3 .1.1 Hardware Resources

The SCALDsystem processing engine 1.s NotoroJ.als 68000LB s1.ngJ.e-board microprocessor system wh.i.ch has access to 2 megabytes of physical memory, control. unl.ts for dtsk and tape drives and an additional. 110 processing subsystem. This subsytem handles 110 operations for the keyboard, graphi.cs tabJ.et and display systems (one high-reso1.urion monochrome screen and a high-resoJ.ution co1.or monitor). It shou1.d be mentioned here that the 68000 mj.croprocessor is somethJ.ng less than adequate for the stringent processing requirements imposed by a CAD system. As an examp]-e, the 68000 ar1.th- netic operations are defined only for integer arithmetj-c.

Simul.atj.ons wil.1. require at least some fl.oatl.ng-po5nt opera-

tions which must be hand3.ed by additional. cod;-ng, making

these programs 1-ess effecient than they wou1.d otherw-tse be.

The performance of the system often suffers because of

less than optimum hardware resources, occaslonaJ.3.y deadlocking processes [4] and requiring the system manager's

intervention to get It gol.ng again. Another probJ.em i.s that

even though desl.gn data bases often occupy large amounts of

secondary storage, the system's hard dl.sk has a capacity of

onJ.y 70 megabytes (unformatted) and even th.s space is

heavC1.y used by the UNIX operattng system for programs and

swap space. The tape system uses a 1/4" tape format with a storage capacity of approximate1.y 40 megabytes. This format

Cs incompatib1.e with any other system to which we have access, which further comp1.icates storage problems. Further information about the hardware of the SCALDsystem may be found in references [5] and [6 1.

These performance and storage requirements were the two

primary reasons a communications ].ink with the VAX system was devel.oped, al.1.owSng designers to make use of the VAX's

simuJ.ation too1.s (with addj.ti.ona1. processing power) and a

much larger secondary storage space.

3.1.2 The Operating System and File System Layouts

The operating system chosen for the workstations Is a

modified version of the 4.1BSD system. Al-though most of the

standard UNIX software i.s avail.abl.e, some of the more

valuable communications programs (such as UUCP [3] and

(1)) and other system fi1.e~(such as gettytab) are notably

absenr. References for this system are found 3.n the UNIX

Programmer's Manual, the SCALDsystem Manager's Reference

Manual. [7 1, and the SCALDsys tem's Manager's Training Manual.

[8]. In using these manuals the reader Cs cautioned that

the UNIX Programmer's Manual. supp1. by VALID Logi.c is

practical.1.y a verbatum copy of the one dtstributed by the

Unj.versity of Ca1.ifornj.a at Berkeley and does not accurately reflect many of the modifications and omi.ssj.ons of the system. The System Manager's Reference and Training manuals shou1.d also be approached with caution as they describe a

J.ater production model. of our system known as SCALDsystem

11.

The UNIX file system used by the SCALDstar tools is par- titioned into several dist1.nr.t sections, the first of which ts the /uO directory. This directory 1.s actuaJ.1~the coot of a mounted fi3.e system (see mount(8)) and j.s the - dence of design software, user's home directories, and

1.anguage compiJ.ers. The foJ.J.ow-lng j.s a map of the programs related to integrated c1.rcui.r design:

/uO/layout

Directory of LED software and utilities.

defauXt.cmap

Defi.nI.tlons of defau1.t colors for design J.ayers.

def au1.t. tech

Default technol.ogy definitions (nMOS process).

drc.

Drc/~xtractdesi-gn rule checker and circuit extrac-

tor.

J.ed. ex

Interacti-ve 1ayout edltor program for the design of integrated circu1.t artwork.

Program for producing plots of the designs created

using LED. rotate

Ut1.l.l.t~program used to translate, sca1.e and rotate

design fC1.e data. softkeyassign

"Cal.1.ed" by startup. l.ed to assign command text

to keyboard funct1.on keys. spice.ex.hardware

Spice simul.ation program for use with an optional

f l.oari.ng-point accelerator board.

Spice simu1.ation program for systems lacking a

floating-point accel-erator. startup.1.ed

A default in.i.ti.al.l.zat~.onfile which 1.s always read

by led. The primary purpose of this file ts to

read the softkeyassign text fi1.e. ut l. I. s

Directory for ut.i.1 1.tJ.e~such as the asci.i.2bi.nary

and b1.nary2asci i programs (whl.ch translate LED

designs from ascil. to b1.nary forms and visa versa)

and the --ca2led program whjch ttans1.ates the CAESAR database format to LED format and creates a working

di.rectory for the user.

/uO/l.j.b direcEory

SCALDsystem si.muJ.atj.on and device 1.ibraries.

lyout

Directory for model. bodies used by the compJ.J.er

when compilj.ng for 3.yout (used to generate a spice

Input f i3.e ).

ce1. I.

Directory for Stanford cell 1.j.brary. Contains

basic cell. designs for use in design projects.

1nstal.l.ed from the VAX system.

/uO/user

Directory for default user files. ContaCns several

of the older command files used by SCALDsystem

sfmulation programs.

/uO/user/ALL

Directory for current defau3.t user ff1.e~ such as

the UNIX system's .l.ogfn, .profj.le and .cshrc.

A1.so contaI.ns several SCALDsystem command files.

ModifJ.ed to include Drc/~xtrar.t command ft1.e~and

LED techno1 ogy and col.ormap ff1.e~. Locatlon of system p1.otting so£ tware for UP pen

pl.otters.

hpf ilter

Program used to transl-ate makepl.ot and GED plot

data for the HP75xx series of pen pJ.ottets.

hp7470

Modified version of hpfj.J.ter. Set up to drive the

UP7470 series of pen plotters.

/uO/scald

Directory for scald simu1.ation software.

mas ter.lib

Th1.s file is used by both GED and LED to 1.ocar.e

1.ibrar.t.e~. Sim.€l.ar to the working dfrectory 1.n

form.

/uO/sca.l.d/interface

Directory for programs whj.ch translate data base

structures used by one set of too3.s to those used

by other sets of tools. Not documented.

/usr/bin

A UNIX .rectory general.J.y used to organl.ze user-

executab1.e programs, thf.s directory 1.s used by the

SCALDsystem to hold system-spec1.f ic f1.l.e~. -drc This shel.1. script ca1.l.s the drc.ex program. -led This sheJ.1. script. calls rhe 3.ed.ex program.

gspice

This shell. script ca1.l.s the runinterface program to

prepare 1-ayout data bases for the spice program and

to Itnk the user's spi.ce.hdr fjle with the resu1.t.

Spice.hdr contains spice "dot" commands with sym-

bolfc node references.

spice

This shell. scrj.pt runs the actual. spice software.

It was modi.fi.ed to call the spfce.ex.sof tware

program i.nstead of the spi.ce.ex.hardware program.

makep1.o t

Th3.s program jnvokes the p1ot.e~ program for the

user.

/usr/locaJ.

This di.rectory contains programming developed here

at Ohio Uni.versity.

Th3.s shel.1. script checks for proper setup of the

plotter's termtnal port and invokes the proper

p1.ottLng inrerface for an HP pen p1.otter. fsckfilefx

This shell. script is used to move those files whi.ch

were moved to a l.ost+found di.rectory by the fsck

program back to their original. owner1s directory.

valfd2vax

This she1.1. script prepares files created by the LED

program for processing on the VAX system.

vax2vaJ.id

This script insta1I.s files created on the VAX

system fnto the user's SCALDstar directory system.

An il.lustratj.on of these directorj.es appears in figures 3.1 and 3.2.

3.1.3 SCALDsystem Integrated Circuit Design Software

This section provides brief descriptions of the design f aci1.ities avaflable for integrated circui.t design. The purpose of this section is to ac_quaJ.nt the user with the operations of the SCALDstar design tools, so that the modi- fications to this software (discussed in chapter five) may be better undetstood. More I.nformat.on may be found i.n the pre3.imJ.nary release of the SCALDstar Reference Manual for version 8.0 LED software [9 1. lay'out. .cshrc / *.l.ogin -uti1.s *default. tech 3.yout -cell. .profile *default .cmap compi1.e~.cmd ascii2binary drc.ex *drcl O.cmd binary2ascii 1.ed .ex *drc2-5- .cmd ca2l.ed plot. ex *nmos .cmap rotate *nmos. tech softkeyasslgn s imul.ate. cmd spice.ex.hardware *spfce. cmd spice .ex. sof tware startup. J.ed

* Software devel.oped or rnodlfied as a part of thfs thesls

FIGURE 3.1 0rganI.zati.on of design software under /uO. drc *f sckf ilef x gspice *hpJ. led *val.j.d2vax makeplo t *vax2valid

* Software developed or modlfied as a part of this thesis

FIGURE 3.2 Organization of design software under /usr.

-LED

The layout editor al.1ows the user to define the various

layer geometries of the integrated circuft and to add sub

cel1.s to the design 1.n a hferarchical fashion. The design may be modifled by using commands which delete, rotate, or

mirror objects. Advanced commands al..l.ow the user to create

one or two-dimensional. arrays of an object. St.1.3.1. other

commands are provlded to a1.1.o~ the user to operate on the

various 1.evel.s of h1.erarchy that [nay have been incorporated

into the design. In its "startup" phase, LED 1.ooks for a set of fi1.e~ whJch may define an i.ni.tia1. set of operatl.ons to be per- formed before turning controJ. over t the user. The first of these files is /uO/layout/startup.l.ed. Thj.s fi1.e assigns

LED commands (with arguments) to the functlon keys on the user's keyboard. The second file read is in the user's current directory and Is aJ.so named "startup.1.ed". This ftle usual.1.y def j nes the SCALDS tat directory, the ce1.1. l.ibrary, and a default design fj.1.e to be opened for edi-ting.

The SCALDstar directory is used by LED to map design names

(which may contain any combi nati.on of upper and 3.ower case letters and numbers, and spaces) to UNIX subdirectory names

(1-ower case letters and numbers on1.y). These UNIX subdtrec- tories contain desi-gn data bases for LED's graphic represen- tatlon, simulation programs, and Drc/Extract output.

Also defined during LED's startup phase (or as an optJ.on during the ini.tia1 edi-ting of a deslgn) j.s the technol.ogy of the deslgn (I., CMOS, nMOS, hMOS, etc.), and the col.ors used to represent the design layers. These def in-i.t ions appear in the system's technology and co1.ormap files, respect.tve1.y (see sect ion 5.6 ). The default technoJ.ogy

(nMOS) i.s defined durlng startup wlth the defauJr.tech and def au3.t .cmap fi1.e~mentioned earl i er. The user may a1.so create their own fi.les for speci.al. techno1.ogi.e~and i.nstal.1 them in t.he i.r home dl. rectory. This program checks the layer geometries defined i-n the user's integrated circuit design for possib1.e to1.erance violatj.ons whj.ch may lead to an improperly-fabricated device. DrcIExtract bases its operations on the layers defined in the user's design and performs logfcal. operations such as the BooIean and, or, and excI.usi.ve-or to produce temporary layers whfch iso1.at.e such structures as enhan- cement and depJ.et.ion-mode transistors, butting contacts or vias. Once these layers have been i.sol.ated, other

Drc/Extract operations may be used to check physical. dimen- sions such as width, over1.a~ and separation. Ci.rr.uit and connectj.vity data bases may also be produced during the extraction phase. Once Drc/Extract has determfned that an error in deslgn 1.ayout exists, an error layer is automatl- ca1.ly drawn around the v-IoIation whl.ch may be exam{-ned by re-editing the design with LED. The user may a1.so deff.ne message strings to be printed i.n proximity to the error.

A1.1. of these operations are specified in a command fi1.e read by ~rc/Extract whose default name J.s "drc.cmdm. A full. description of thj.s program can be found In reference [9].

Destgns created with LED may also be out-put in hardcopy form on ef.ther e1.ect.rostar.i.c or pen p1.ot.t.ers. The program used to produce this form of output 1.s named "makep1,ot".

Makep1.ot1s operations are contrnl.led by a command ft1.e which defines the of pI.otter being used, the size of the pl.ot, and optfons such as menus and axes pl.otting. Makepl.or produces an intermedlate text file of Versatec pl-otting com- mands. If the user's design is very large (on the order of

10 square millimeters or more) makep1.ot1s output may exceed the avai1.able space on the system di.sk. Output intended for

Hew1.ett-Packard pen p1.otters must be further processed by either the hpfilter program (for the HP75xx series of plotters) or the hp7470 program (for the HP7470 plotter).

The user gai.ns access to these programs by fnvoking the hpl she3.1 script. The makepl-ot program is described in reference [9 1.

Although the plotting software for the Versraec or

Benson 1i.ne of electrostatic p1.otters 3.s availab3.e on both workstations, only the BOBCATS2 station has the necessary peripheral interface hardware.

Spice

The circuf.t extraction phase of the Drc/~xtractcommand produces a data file which may be further processed to yie1.d input data for the spice anal.og cl.rcu1.t stmul.ator. The design l.s then comp.i.l.ed (usl.ng the SCALDsys tem comp1 l.er) for "lyout" which uses models found i.n the J.yout 1.f.brary to form the compil.er output files whlch wlll be used by the sf.mu1.a- tion program. A special note here: the extraction fi1.e created by Drc1Extrac.t program has a non-fatal. error which disturbs the splce program. Instead of connectfng the signal. ground node to node number 0, it is Instead connected to node number 9. Spice compl.alns about th1.s condition but the simulatlon may stllJ. be run if the user set the voltage of thj.s node properly (e, 0 volts). After creat.ing a spice .hdr file (which cnntai ns the splce "dot" commands and symbolic nodal references), the user runs the gspice program which produces the spi.ce Input file (sp.i.ce.net3.i.st). The spice program itself is run by typing:

spice < spice.netJ.ist

If the user wishes the spice output listing to be written to a f.tl.e, an additional. 1/0 redirection must be supp1.i.ed to divert the standard output. The spice program al.J.ows many model. parameters (such as Input waveforms, FET threshold

voltages and temperature) to be defined and gj.ves the user

the abi.1.it.y to control. the data output of the simu1.atCon.

However, the spice ptogram is extremeJ.y sJ.ow (especlal.ly on

the SCALDsystem) for designs which c.0ntai.n over 100 tran-

stst.ors and may aJ.so be prone to the dead1.or.k condi.tion

referred to earlier. Before running the spice program, the user shou1.d struc- ture the1.r spice.hdr and a spice command file, splce.cmd, as shown j.n the Drc/Extract sectl-on of the SCALDstar Reference

Manual. [9].

The Drc/Extract program wi1.l. also produce a connecti.vity file for the SCALDsystem simu1.at.e program. The desi.gn Is compil.ed for "sim" (see ref. [lo]) to prepare a netl.i.st for the simulator. The sImul.ator program a1.J.ows the user to deff.ne signal.^ (.ncI.uding a detail-ed representatton of arbirrary clock waveforms ) and to "c1.oc.k" the desi.gn through any number of cycl-es. The program produces either hexadecl- mal. values or waveform drawings as output. Thts output may be p1-otted 1.f the simu1.ate program is run whi-le working in ged, usi.ng the ha (hardcopy) command. This command is also described i.n reference [lo].

3.2 VAX System Resources

Djgital Equtpment Corporation's VAX 11/750 1 j ne of mfni- computers provide high-speed processing power at a reaso-

nable cost. They are general-purpose and are not

specif fcally intended for the design and testing of

integrated circuits. However, thei r high performance-to- cost ratio has made them one of the more popu3.ar serCes of computers for research on i-ntegrated clrcuit design. Much of the desj-gn software instaJ.l.ed on thl.s VAX system was the result of research at the Univers.ity of Cal.iforn1.a at

Berkeley and the Unlversi-ty of Washl.ngton in Seattle. Their distrl.but.ions include programs which simula te 1.ogl.c, t-iml.ng and power requirements of integrated ci-rcui t destgns. Other programs perform design rule checks on 1-ayout geometries and on electrical properties. Although programs are avai.labl.e for the interactive layout of i.ntegrated circuit desfgns, the hardware necessary for the display and data-entry of such work are not available ar this time.

3.2.1 Hardware Resources

The VAX 11/750 processi.ng system is hi.gh1.y integrated and provides a high throughput, unlike the mi.croprocessor- based SCALDsystem. The VAX system is fairly well. sui-ted to runnlng CAD software since a fl.oating-point: accel.erator and high-speed data bus are avaiJ.ab3.e on the system. I/O I.s handled through another hlgh-speed bus system whI.ch connects to a hard disk drive wI.th approx.matly 250 megabytes of storage. A Q'' tape dti.ve is also supported, whi.ch makes further dtstribut Cons of desi.gn software accessible to our department. 3.2.2 The Operating System and File System Layouts

Currently, both DEC's VMS operattng system and the

4.2BSD UNIX system are scheduled for operation on the VAX computer. Although a program which simu3.ates the 4.1BSD

UNIX environnient is runnJ.ng under VMS, the design software current1.y instal1.ed was developed on a 4.2BSD UNIX system and i.s 1argeI.y 1ncompatj.bl.e wlth the 4,lBSD emul.atdon environment. Because of the dJ.fficu1.ties encountered J.n this install.atCon, design work is done whJ.le runnjng the

4.2BSD UNIX system.

The 4.2BSD system has incorporated several j.mprovemenfs over the older 4.1BSD UNIX, such as a much faster file system, a wealth of user-contributed software and improved communications programs. AIJ. documented features work as expected and no major performance errors have been observed.

References for this system j.ncl.ude online manual. df.sp1.ays

(see man(l)), vo3.umes 1 and 2 of the UNIX Progtammer's

Manual, and the Gulde To User-Contributed Software.

Although manual sectlons 2 and 3 from volume 1 of the UNIX

Programmer's Manual. are missing from our ha tdcopy documen- tation, they ate avaj.l.ab3.e onl.€ne with the man command.

The col.lectf.on of desi.gn t.oo.l.s avai.3.abl.e on the VAX are from two dtstriburions; one from t.he UW/NW Consortium and the other from the UnlversJty of Cal1fornl.a at Berkeley.

Each of these distributions nc3.ude cont.r.tbutJ.ons from aca- demic and industrial. sources. These too1.s may be cata- gor.ized as functional. design tool.s, layout and disp1.a~ tool-s, tools for design and eJ.ectri.cal ru3.e checki.ng, and fJ.nally, too1.s for circui.t extractJ.on and simul.ati.on. Since many of these tools were deveJ.oped tndependentl.y, ut.l.l.ities are tncluded to facili.tate the transl.ation of dJ.ffering data bases from one to another. Discussions of these tools and their usage may be found J.n a thesis presented by Niren

Choudry [ll1, the uW/NW Consortl.umls reference manual. [2 1, and onl.ine manual pages i.nc1.uded with the Berkeley di-stribu-

tton of tools.

In the listing of design tools whl.ch foil-ows J.t becomes

apparent that the destgn software avai1abl.e on the VAX

system offers the designer more too1.s throughout more stages

of the design process than the SCALDsystem deslgn software

does. Some of the mote common1.y used VAX system desfgn

tools are:

/usr/cad/bi.n

Functional. descrJpri.on tool.^, 1.ayout software,

design rule-checklng software, stmul.atjon software.

caesar

A jntegrated circuft layout editor, very similar to VALID'S LED program. cif 2ca

A program used to transl.ate the CIF database to the

CAESAR data base. An exp1.anatl.on of these two

database formats appears in the writeup of this

program which fol.lows later in th1.s section. clfflatten

A program used to l.ncorporate subce1.1. deffnl.tions

as part of the main body, removing (or fJ.attenI.ng)

the hierarchy of the desCgn file. crystal.

A program to simu1,ate timing of signal propagation. eqntot t

A program which trans]-ates boo]-ean equat.ions .f.ntn a

truth table format suj.tab1.e for input into programs

which generate PLA artwork (such as mkp1.a or tp1.a). esim

This program simu3.ates el.ectr.ica1 propertl.es of an

extracted netlist. mextra

A program which extracts el.ectrical circuit parame-

ters such as connectivity and devices for sJ.1nu1.a-

tion programs. mkp1.a

A program which generates PLA artwork from a truth table description of a PLA.

peg

A functional. descripti-on "compller", peg accepts a

"high-].eve]." descriptJ.on of a fCnl.te-state machine

and produces boolean equations to descrlbe It.

powes t

Used to estimate average and maxl.mum dc power

requirements of a design.

/usr/vl s1.bi.n

A dJ.rectoty whlch contaj.ns p1.otti.ng softwate,

design and electrical. rule check programs, spice

software, data base translators, and programs deve-

?.oped for this thesis.

alldrc

A she1.l sctipt, s.Cm.l.1.ar to the Drc/Extract command

fl1.e on the SCALDsystem. Used to prov.ide compre-

henslve checking of Mead and Conway deslgn rules

for integrated ci.rcui.E deslgn [12].

-drc A dj.tectnry which contains the software rout.nes

ca.l.1.ed by the al.1.drc and fastdrc shell. sct1pts to

extract the layer informati.on used i.n design rul.e

checks. -etc An elec~rical.ru1.e checker. Used to 1sol.ar.e unu-

sable e1.ectricaJ. connecti-ons, such as power Lo

ground shorts. fastdrc

A speedier, less comprehensive version of alldrc. forfor

An executable program Image used to replace UNIX

newline characters wfth FORTRAN carriage controls. make-p1.a

Devel-oped to integrate the PLA design process using

peg, eqntott, and tp1.a for use Cn LED deslgn work. nmos .cmap

Analogous to LED ' s co1.ormap file. nmos. tec

Ana1.ogous to LED'S technoJ.ogy file. prep,p1.a

DeveJ.oped to prepare designs created by mkp1.a for

use by the LED program. pspice

This program is used to prepare an Input deck for

the spice simu1.atJ.on program. Optiona1.1.y Invokes

the spcpp program. spcpp

This program a1.1.ows the user ot construct spCce

"dot" commands which refer to nodes symbol.i.ca1.3.y.

These names are translated to node numbers. spice

Thts she1.J. script invokes the splce2g6 program.

spice2g6

The spice si.mulation program.

/usr/cad/lib

This directory contains files referred to by mextra

for extraction and by tp1.a and p1.ap for artwork

generati-on.

/usr/l.ocal.

This dj.rectory contains software devel-oped 1.ocall.y

for this thesis project.

va1.i dcom

Communi.cations prograin for the VAX and

SCALDsystems.

vaJ.j.dE ix

Shell. script used to remove a "non-prlntfng" asctI.

character whI.ch sometimes appears appended to the

lines of files transferred to the VAX system.

vax2vaJ.j.d

She1.J. script to transJ.ate CIF-format ted designs to

the caesar format (for LED).

A dtagram showing the organization of these files on the

VAX system is shown in figure 3.3. cad -bin -lib a1.l.drc - d r c caesar .cadrc e r c cif 2ca £astdrc ciffl.atten forfor crystal. *make- p1.a eqntot t nmos . e s im nmos . tec mextra *prep- p1.a mkp1.a pspice Peg SPCPP powes t spice spi.ce2g6

* Software developed or modtfied as a part of this thesis

FIGURE 3.3 Organizat-ton of destgn software undet /usr.

3 .2.3 Integrated Circuit Design Software

This section discusses those VAX system programs whfch were dtrectly j.nvolved with this thesi-s project. There are many more programs whi.ch are i.nva1.uabI.e i.n the deslgn and testing of integrated cfrcuits for which the reader may turn to the UW/NW Consortium's reference manual. [2] for more information. Also, NIren Choudry's thesis [ll] on the instaI..l.ation and use of these too1.s at Ohio Unf versit.yls

Department of E1.ectrical. and Computer Engineering provides

i.nsi.ght fnto the VAX sys tern's desfgn software. cif 2ca(CAD)

This program is one of a set of filters avai1abl.e on the

VAX system. Its purpose is to trans1.at.e the CIF database format into the CAESAR format (see section 4.2.1).

When processing a design which has defined sub cell.^, cj.f2ca produces a file for every symbol. (subcel.1) encoun- tered which .i.s given the fil.ename "symbo1.xx.ca" (where xx is the symbol.'^ number in the "DS" statement header) by default. If the symbol is given a name (via the CIF "9" user extension), then that name Is used for the filename.

The top-level ce1.1. which cal.1.s instances of these subce1.1.s is then named "project.caW, unless it too has a name defined.

This program is used to remove ce3.1 hi.erachy from the

CIF database. That is, any "DS" statements and subsequent ca1.1.s to these statements 1.n the design ate read and the calls implemented. The ourput is then a design wlth no sym- bol. defini.tions. This is especial.1.y usefu1.1 for desIgns that wi11. be translated by the c.i.fZr-a program, avolding the generation of unnecessary files. The usage of the ci.ffl.at- ten program is: ciffl-atten input- file > output- file

Where the i.nput -fj.1.e j.s a CIF-formatted design fi.3.e that does not contain the CIF "wire" command and output- file I.s the name of the fI.1.e for ciffl.attenls output.

Mextra

The mextra program i.s used to extract el.ectri.cal ctrcuit information from integrated ctrcu1.t designs. The i.nput fj.1.e

is restricted to manhattan-sty1.e ge0metti.e~ (a1.l edges ate mu3.tipl.e~ of 90) and must be 1.n the CIF format.

C'nfortunately, mextra handles on1.y a subset of the CIF for- mat and does not recognize the CIF "Wire" or "Rotate" com- mands. This aspect and its Influence upon the construction

of the distributed deslgn system 1s discussed in chapter

four.

Mextra outputs a set of ftles that are used by the VAX

system's set of simul.atlon software. Assuming that the

design fi3.e to be processed is named .cif, these

files are:

basename. 1 og

Contains informat ion about the number of tran-

sistors and nodes found during the extraction and

messages about any possible errors which may have occured.

basename .a].

This file is used by the esim program to locate

s ignal. names.

basename.nodes

Thlis file is a ltst of node names and the.i.r 1.or.a-

tions (given in the CIF format).

basename.slm

This file is the cl.rcuit descriptl.on used by the

simu3.ation programs and e It may be processed

for use by MIT's rnl. program using the s1.mfiJ.ter

program.

A listing of an examp1.e CIF formatted file (created and pro- cessed on the SCALDsystem) and the resultant output files from mextra are presented fn appendix sectton B.2.

Before begtnnling Its extraction process, mextra reads a file named /usr/cad/l.lib/ .cadre. This ftle conkains a J.fst of deftnittons used by mextra to define the units used for the CIF coordinate system (1.0 centlmtcrons by default) and capacftance values for various layers, and the technoJ.ogy of the design (nMOS or CMOS p-we1.J.). The user may also fnclude the .cadrc f.i.3.e I.n t.hef.r home direckory to overtde the one

1.n t-he /usr/cad/ltb direct-ory. Thj.s chapter describes the primary issue of thj.s thesj-s, i.e., the transferal. of desl.gn files from the SCALDsystem to

the VAX system and visa versa. This requires that first of aJ.l, the systems must be able to communicate without error

tens of thousands of bytes of information. SecondJ.y, the design databases used must be understood by programs on both systems. As wil.1. soon be apparent from the di.scussi.ons whtch foJ.J.ow, there have been several major compJ.i.cat.i.ons in

achieving these goals, the most frustratI.ng of whJ.ch was a

lack of adequate i.nformatj.on. Much of the work was deve-

loped after months spent studying the details of these

systems' operations and using a large degree of intutti-on to

ptece together the puzz1.e. At some point in the future,

these systems should be ].inked by an Ethernet connection and

much of the communications work done for this thesis wf.1.l be

largely unnecesary. However, the prograrnmj.ng work done for

the transl.ation of design databases from one system format

to the other was designed to remain viable i.rregatdJ.ess of

what type of communi.cati.ons 1.i.nk is 1.n use. Each of the

programs involved In th1.s facet of deve1.opment are brief3.y

described In this chapter. A more compl-ete descrI.pti.on of

these can be found in secttons B.l and B.2 of the appendix.

4.1 Commun<.cations Usi-ng the Tip Program AJ.though there are a variety of communications programs available with the 4.1BSD and 4.2BSD systems, most of these programs support communi.catj.ons using Arpanet, Ethernet, and

UUCP protocols and require programs capable of handli.ng the same protocols to be available at the remote site. These programs also require, at the very least, automatic calJ.ing units, and at most, Ethernet transcl.evers and tsansmission medium. Even though the 4.1BSD reJ.ease incJ.uded some of the necessary software, VALID'S ommission of these programs further restricted the set of avaSJ.ab3.e options. Lacklng adequate support from the SCALDsystem, the probJ.em became one of finding (or creating) a communl.cations program on the

VAX system capable of communicating with a protocol. whl.ch had minimal or non-exjstent requirements for the remote system.

Another problem was to 1.oc.at.e a program which could use a simp1.e , three-wire RS232 ].ink wtthout an automat ic caJ.l.i.ng unit. Only the tip(1) program appeared to meet the first requfrement but seemed unable to support the second. Tip allows a UNIX to UNIX Interface wtth another system with the si.ng1.e resrriction that the remote site must support the cat(1) and tee(1) programs mentioned i.n chapter two. The cat. program is used to write asci.-coded fiJ.es out to the termi-nal. port from whence the command 1.s issued and 1.s the means by wh1.c.h tj.p J.mpl-ements its file transfers from the remote system. The program tee can route terminal. i.nput j.nto flles and is used for transferring files to the remote system.

Since both cat and tee are avail.ab1.e on the SCALDsystem,

the next probl.em was how to direct t3.p to make i.ts connec-

tion over an RS232 terminal I.ine. Ti.pls knowledge of what

devices to use and what characters shou1.d be recognized as

"end-of-Iine" and "end-of-fl.leW comes from a fi.1.e In the

/etc di.rectory named "remote". Entrles in thl.s fi1.e begin

with a name of the remote system be-tng diaJ.ed, fo3.l.owed by

several. boolean, integer, and character fields used to

define the remote's characteristics. A trial sol.ution of

adding a new entry to this file falled, since tJ.p apparently

lns-tsts on using an automatic call.1.ng unit.

An answer to this problem was fina1.J.y found In a program

d-tstributed on the 4.1BSD system named cu(l), whj.ch tip sup-

ports as a subset of its operations. The cu program was

also designed to use automat1.c call.ing unj.ts but supports a

command 1.i.ne argument whi.ch specffies that the port bei-ng

connected to is a terml.na1.. The full. command l.i.ne of the cu

program Cs:

cu tel.no [-t ] [-n [-s speed] [-a acu] [-I. 1.1 ne] [-b] ] Tel.no is the telephone number to be used i.n cal.1.ing the remote system, wi.th minus si.gns inserted to provide del-ays.

The -t flag signals cu that a terminal. 1,s bei-ng di.al.ed.

Speed def ines the baudrate at whi.ch the connectj.on is to be establtshed. The -a and -1 flags may be used to specJ.fy pathnames for the automat.tc calJ.ing unit's device driver and communi.catton port, respectj.vely. They are used to override the default values of -a /dev/cuaO -1 /dev/culO. The -n option (where n Cs a sCng1.e di.g.it) changes the last character of the default names cuaO and cu1.O to n. The -b flag option spec-f.fies that nulls are to be turned into breaks, all.owing the break key (and also control.-shif t-@) to send t.he break signal to the remot-e system.

In defining the conmuni.cattons link to the SCALDsystem,

the command line of cu appears as follows:

Th-f.s form indicates that a term-fnal -f.s being "di.al.edN at

1200 baud over the /dev/ttyOO port. The /dev/nu3.1. device

specified as the automattc call.i.ng uni.t i.s defined in UNIX

as an I/O fi1.e which returns on1.y the nul.1. c.hara(:ter when

read and di-sregards any charact-ers written to it Thls has

had the effect "turnI.ng oEf" cu's (tip's) acu interface.

Once t.he communi.c.atl.ons 1.i.nk Is establ.i.shed, the user inter- face i.s as defined the documentati-on for the t1.p program.

That .is, al.1. of the commands understood by tip may be used.

After processing the cu command line, tj.p searches i.n the user's home dfrectory for a "startup" file named

" .tiprcW. This file may be used to Snit$-al-ize com- munications options for the tip program by setting boolean, numerical, and string val.ued variables. After reading

.tiprc, tip establishes a file named LCK..ttyOO in the

/usr/spool./uucp directory. This fi3.e i.s used to prevent other users from accessl.ng a terminal. line current1.y i.n use by tip and is removed upon normal termination of the ti.p program. If, for any reason, a communJ.cati.ons 1J.nk J.s ter- minated abnormal.l.y, the system manager must delete the lock fC1.e so that users may aga1.n use ti.p. An I.ll.ustration of the tip program's operation Js shown in figure 4.1.

Once the connectI.on is established, it appears eo the user chat their terrnjnal is connected direct1.y to the

SCALDsystem (the VAX system and tip are transparent). The on1.y exception to this 1s that tip recogni.zes a command

"escape" character whi-ch signals that a command wi.11. be given to tip. By default, th1.s escape character is the tCl.de "w" . The following commands are recognized by tip: VAX system

--- - -. ------/ . t iprc

-----

------letclr emo t e

desi.gn files ----- cu1200: tc=UNIX-1200

1. User invokes cu which i-s J.ogica1.l.y 1j.nked to the ti.~ program.

2. Tip accesses the cu entry in /etc/rernote.

3. Tf.p reads var1abl.e settings f-n the user's .tiprc ftle.

4. Tip creates the lock file to inhibit user access to ttyoo.

5. Communtcatl.ons ].ink established ustng the SCALDsystem's cat and tee programs for file transEers.

6. Ttp removes the lock file when finished.

FIGURE 4.1 CommunCcatCons uvtng the ttp program. "! Escape to the VAX system shell (as defined by tip's

"shel.1" variab3.e). Typfng a control-D ex3.t.s th3.s

shell and returns the user to tip.

"c [pathname]

The UNIX (change di.rectory) command.

&p VAXf C3.e [SCALD£iI.e ]

Send a VAX system fi1.e named VAXfile to the

SCALDsys tem and name it SCALDfi3.e. If the

SCALDfile argument i.s omitted, the file's name will.

be VAXfi1.e.

"t SCALDf ile [VAXf ile ]

Take the file named SCALDfi1.e from the SCALDsystem

to the VAX system and name it VAXfile. Agaj-n, if

the VAXf lle argument 3,s omitted, the name defaults

to SCALDf ile.

s Set a variab3.e. The following variables are of

spec3 al interest:

echocheck (boo].) Thi.s value must. be set true on

thl-s system due to the SCALDsystem's 1.azi.ness I.n

processing received characters. When thi-s variable

i.s set, tip watts until. the remote system has

echoed the character sent to it before transmttting the next character. Proper file transmissions can-

not be guaranteed unless t.hI.s value .s set!

verbose (booJ.) This variabl-e, when set, causes tip

to write a running account of the number of 1.i.nes

transmitted and when finished, to wrtte the amount

of time used. AJ.though not essential to operation,

users may wfsh to set t h i s variab1.e.

script (booJ.) When set, this var1.abJ.e tel.3.s t1.p to

write a transcript of the current session.

record (string) thl.s identifies the output file

name for a scripted session.

w 9 Send a break signal to the remote system. Thi.s

signal can be used to reset the SCALDsystem's

baudrate to 300.

Pu , the tip program.

The tip program is invoked through a shell. script named va1.i.dcom (described at the end of th1.s section). After ttp has dtsplayed the "connec%edW message on the user's ter- minal., the user may either type 1.n their account name or, if

300 baud was speciff.ed with val.i.dcom, send the break si-gnal. wi.th the ""#" sequence. If the break sCgnal f.s sucr.essfu1l.y interpreted by t-he SCALDsystern, the user wi.J.1 be prompted by the login banner. If the user does not see thjs banner, they should be sure that validcom was invoked with the argu- ment for 300 baud and try sending a break signal again. If probl.ems persist, the system manager should be consulted.

After completfng the 1.ogin process by typj.ng their password, the user is presented wfth the message of the day from the SCALDsystem foll.owed by a message:

"*** Welcome to the VAX~VALID System ***"

The receipt of this message Indicates that the modified

.l.ogfn fi1.e in the user's home directory (see sectJ.on 4.2) has set termj.nal characteristics for the VAX line.

Fi.1.e transfers may begin after the user has rec1.eved the she1.1.'~ command 1.J.ne prompt. These are accompl.ished uslng the "&t" and ""p" commands, as described above. The user say wish to monltnr these transfers by setti.ng the "verbose" variable.

The user may notlce that the t.I.l.de character which pre- ceeds the tip commands sometj.mes becomes vtsab1.e on the screen (it is norma3.1.y 1.nvjsabl.e). If thfs shou1.d happen, si.mp1.y erase the character, type the return key and try again. Al.so, the user may notice that the1.r del.ete key on the vtlOO terminal. echoes the ""?" (control.-?) symboJ.. This usua3.l.y happens after the user has run a shel.1 scr3.pt which does not use the checkterm program. To regain the proper recognftion of thej.r termj.na1, the user shou1.d type:

stty dec tandem tabs

The session ends when the user logs out from the

SCALDsystem and types the "" . " sequence to terminate the tip program.

4.2 1nitiaJ.j.zj.ng UNIX Terminal Processes

Before using the ti.p program, 1.t Is important that the processes run by the UNIX system whi.ch manage t-erminal com- rnunI.cati.ons be properly inI.ti.aI.i.zed. The UNIX sys tem sup- ports a wl.de range of opti-ons in tai.l.oring the 1/0 environment for the user and the system. However, this flexibility is not wtthout Its dtsadvantages, since the user may at first be overwhel.med with the shear number of options and programming avaj.1abJ.e. Thls section will not attempt to cover the entire 1/0 system, but. will i.nst.ead 1.i.mit the discussion to terml.na1 devices.

Terminal lines appear to the user as file entries in the

/dev directory. Each on-site, 1.nteractCve termi.nal is Cden-

tlfied by ttie fi1.e name /dev/ttyxx, where xx i.s a two-dfg1.t decJ.mal. number indi.cat.t.ng the RS232 port to whi-ch t-he ter- mi.na.1. is connected. The /dev/ttyxx fi1.ename is actuaI.1.y a pofnter to the system buffer used for that terminal.'^ com- munfcat.ons wh1.l.e the terminal.'^ devi.ce driver i.s a part of the UNIX kernel.. TermJ.nal characteristics are estab1.i.shed through phases in the i.ni.t.ia1. startup of the system and sub- sequent user logins. The programs involved and the1.r asso- ciated databases are: init(8):

Init is sometimes referred to as the father of all

processes on the system. It 1.s called i.ni.tJ.al.1.y

fo3.1.owing the 1.oadi.ng of the system kernel. (ie.,

the "boot" phase) and proceeds to open(2) termi-nal.

files (buffers). 1nj.t is slgnaled once the ter-

minal file is successfully opened and starts a

getty(8) process for that port. The getty process

Is cal1.ed w-ith an alphanumeric argument whCch has

been obtained by init from a database file known as

ttys(7). This argument .I.n turn will. be used by

getty as an i.ndex i.nto another termi.nal database

file called gettytab(7) whfch specifies the i.nit1.al.

character is ti.^^ to be assocj.ated with that ter-

minal.

ttys(7 ):

This f t1.e is read by i. t and c(-,ntai.ns a one-line

entry for each rermi-nal. supported by the system. The first digit of an entry is a swi.tch to activate

(=I) or deacti.vat.e (=O) the assnci.ated terminal

The second value of the 1.1.ne Cs an a1.phanumerlc

character to be used as the argument for the

getty(8) process and refers to an entry in the

gettytab(7) fi.le. The third fie1.d of the S.i.ne is

the name of the termi.nal line to whf.ch rhe first

two entries refer and fo1.lnws the nami.ng conventfon

of the ftl.es in the /dev directory (e., ttyxx). getty(8):

Getty is the process whl.ch prompts the user to

"login" by displayi.ng a 3.ogi.n banner specf-fied by

the gettytab file. Getty may also alter certain

terml-nal character is ti.^^ such as baud rate w-tthin

the limfts set by gettytab. Getty also attempts to

determlne whether the user's terminal has an upper

or lower case character set (since the UNIX command

tnterpreter is case sensitive) and will. estab1.ish

upper-to-lower character trans3.atl.on tf necessary.

Getty then passes the login name of the user to the

I.ogin(1) process. gettytab(5):

This database file deftnes the arguments used by

inj.t when the getty process Cs starred. Each entry

begl.ns with the argument used and is foJ..l.owed by a succession of def.tnJ.tions for the terminal. such as

initial baud rate cycl.es, a fi1.e to di.sp1.a~as the

login banner and a set of termi.na3. character is ti.^^

stmilar to those defined by the termcap(5) database

file. ttytype(5):

This database file matches specific terml-nal 3.j.nes

with entries fn the termcap database file. Each

one-line entry has two fields; the first i.ndi.cates

the termtnal line a£fected, the second -i.s the i.ndex

fnto termcap and j.s used by the command l.nterpreter

to inj.tiaJ].ize the environment for programs such as

the shell., editors and communi.cations programs. termcap(5 ):

Termcap defines a wide variety of terminal charac-

teristl.cs and capabi.l.j.ties such as margins, speci.aJ.

functi-on keys, control. characters and more. As

mentioned above, any program requiring thfs of

informat.i.on references termcap, usual1.y through the

"term" she3.3. variable set during the she1.1.'~ inl.-

tl.alization.

After the system's prJ.mary boot phase, a program named

Cnit is run. In the mul.tiuser mode (tnl.t may also run i.n a

sCng3.e-user mode ), init f irst examines /etc/ttys to deter- mine whi.ch terminal 1j.nes are to be activated. For each such J.i.ne, in3.t creates a concurrent process (by 1.ssulng a fork(2) system call) which attempts to open(2) the 1.i.ne for subsequent read and write operations. As each of these pro- cesses successful1.y compJ.ete, ini.t is duely notified and calls the getty process (with argument.) for each terminal line. Getty issues the 3.ogin prompt and patiently awaj-ts terminal input. If multiple baudrates are speci.f led 3.n get- tytab, getty wi1.J. sw3.tch from the first baudrate to the next upon receipt of a break as the fCrst character. This cycle cont3.nues from one baudrate to the next and back to the 3.nl- t3.aJ. baudrate until a character other than break Is received. At this point, getty bel.ieves .itsel.£ to be reading the user's login name, which will. be passed Cn a call to a program named J-ogin(1). Log.fn will. prompt far the user's password and 3.f successful. will. execute the user's shell. program. Af tet readi.ng Inl.tl.al.3.zation scripts 3.n the user's home direcfory, the sheJ.1. prompts the user for com- mand input and waits. These sequences are shown i.n figure

4.2. 14 console^^^^ 11 Of ttyoo

I

F/dev/consol.e) ( . prof Cle)

*Xot found on the SCALDsystem

1. Init reads the /etc/ttys file.

2. Init forks a set of processes to open terminal buffers for readi-ng and wrltl.ng operations. (Note that i.n th1.s Fl.lustratf.on, on1.y one active terminal i.s shown) .

3. After the complet.i.on of step three, inlt calls a set of getty processes wi-th argument from the /etc/t tys ftle.

4. Getty processes use the suppl.Ied argument to access ter- mtnal characteristics from the /etc/gettytab ftle.

5. Getty processes issue 1.ogf.n prompt and for a user to I.og In.

6. After the user has logged in, the getty processes cal.1. login with the user name (1.og.I.n name) as an argument. The 3.ogSn process asks the user for their password and checks this against the entry In /etc/passwd.

7. The login process calls the sheJ.1 named i.n the /etc/passwd file.

8. The shell. reads the user's l.ogin scrlpts and the etclttytype file to determine rhe terminal's type.

FIGURE 4 .2 Termi.naJ. i.ni.ti.ali.zatCon events. During experl-ments wi-th the tip program, it was di.sco- vered that the SCALDsys tem termIna1. buffer cou3.d not keep up with unsynchronized transmi-ssions from the VAX system at more than 300 baud. Even with the echocheck variab1.e set, errors in transmissi.on sometimes occurred. Slnce the i.ni.- tI.aJ. entries in the SCALDsystem's /etc/ttys fI.3.e set a1.1. terminals to 9600 baud, the entry representing the VAX ter- minal connecrton (/dev/ttya) had to be changed so that I.ts getty process set the i.ni.ttaJ. baud rate at no greater than

1200. There is no /etc/gettytab file on the SCALDsystem and no documentation on getty's accepted arguments and thei-r ineanlngs. The fol.1.owlng rab1.e shows the baudrates for the

SCALDsystem's getty arguments and was constructed with the he3.p of a representative from VALID'S Operating Systems

Group:

'The desired argument is 3, since th1.s wi.11 al ].ow users a

defau1.t connect Con at the hi.ghest baudrate, and wi 1.1 a1.so al1.o~them to reduce thl.s rate to 300 baud i.f the si.tuati.on warrants. The /etc/ttys f1l.e entry for this terminal. appears as:

Note that the user must send the break signal as the flrst character to the SCALDsystem and that subsequent break signals wtll. cycle the baud rate through the two petmissab1.e values.

In the case of the VAX system, a rnodificatlon was also made to the /etc/ttys fi1.e. However, this modificati.on was designed only to proh1.bi.t users from 1.ogging In on the

SCALDsystem terminal 3.ine. If the lj.ne i.s not d.i.sabl.ed, then every time the SCALDsystem issues its 1.ogI.n message on this line, the VAX system thlnks that a user is trying to log in. The reverse of this situat.i.on is also true, and what results is a feedback between the two systems which ptoh1,bj.t~the usage of the line at all.! The entry for the

ttys file is:

One ftnal step 1.s necessary for establ.l.shi.ng proper com-

rnunicatJ.ons protocol.. Once the user has logged into the

SCALDsystem, the she3.3. eventual1.y reads the user's .l.ogi n file. This file has been modlfied to determi-ne the ter- minal on which the user has logged i.n and to set that

terminal's characteristi-cs for the VAX system 1.i.ne. These characteristics are set by stty(1) as £011-ows:

stty dec tandem tabs

The dec argument sets the shell.'^ recognit.on of the DEC vt

setles of termj.na1.s (even though this shou3.d be al.ready set

since the /etc/ttytype fi1.e sets ttya as "vtlOO"!). This

a1.J.ows the user to use the pre-defined keys on the vt100 wlthout unexpected results. The tandem argument causes the

SCALDsystern to issue the XON/XOFF sj.gnals, which are used to

synchronize the flow of data from the VAX sysrem In an

attempt to prevent the SCALDsystemls input buffer from

overflowing. The final argument, "tabs" causes the tab

character to be expanded into the proper number of spaces.

This allows the user to check the number of bytes occupied

by the design fi1.e on both systems to determfne if charac-

ters were lost during Its transml.ssion. As wfth other

"critical" files, this file has been placed in the

/uO/user/ALL dfrectoty. A 1.J.stl.ng of th1.s file appears i-n

append3.x sectj-on B.1.

Th5.s shell. sctlpt was insta1.l.ed on the VAX computer

system to prov.l.de an effectf.ve user i-nterface to the rip program. Its usage is:

val.idcom [300]

If the user does not specifical1.y request the optJ.onal 300 bit/sec baudrate, the baudrate defaults to 1200 bi.t.s/sec.

Actual file transfer experiments have shown that at the maxj-mum 1200 bits/sec rate, the effective baud rate (the rate at which characters are actual1.y transferred without error) is approxJ.mate1.y 32.2 bits/sec. At this rate, .Ct took 20 minutes to transfer the 38,679-byte light- fsm example (shown j.n section 6.1 ). Although the system does work, .i.t is excessive1.y sl-ow and has the potential to waste va1.uabl.e time.

The val.1.dcom program fltst checks for the exj.stence of

the .tiprc file in the user's home directory. This file .is

used to insure that the tip variable "echocheck" is properly

set. If the .tiprc file Is not found, a copy is made of the

one instaJ.1.ed in the / directory. Va3.idcom then ca1.1~the

tip program (via cu) to connect the user. Once the tip

program terminates, a check is made to determine 1.f this

tetminatl.on was abnormal.. If so, the user is notJ.fied that

t1.p1s lock file may not have been removed properly and that

the system manager w1l.J. have to do so.

This program's 1i.sti.ng appears In appendfx sectJ.011 B.2.

4.3 Design Database Compatibi.1.i.ty Once a design is created, its formal. specl.EicatCon l.s stored 1.n a database, which is then avaJ.3.abl.e for further editing, simulation and testl.ng, or manufacturing. Data- bases are descriptive 3-anguages which, in the case of integrated circuit design, specify the types of polygons created, their locatlons and orientati.ons, and the materia1.s f tom whlch they are composed. Generally, geometric st~uc- tures are represented as wi.res, rectangles, po1.ygons or boxes, although the definition and use of these structures varj.es from one type of database to another. The com- positl.on of such a structure is described as .ts layer of

fabricat.ion. In addftion to representing l.nformation essen-

tial for the productj-on of the design, a descript1.ve

language will. often make provisions for hierarchy (a design

whl.ch Is itse3.f composed of subdesigns), notations (notes

di.splayed with the design to Inform the desfgner of any

changes, problems, e.), and signal names (notes whi.ch

l.dentIfy nodes in the clrcuit for reference during the simu-

latlon of the design ).

Graphfcs programs whfch al3.o~the desJ.gner to v.isual3.y

j.nspect and edi.t the desi.gn require information from the

database whi.ch Cs qutte dtfferent from the information

required by si.mul.atCon programs. In the former case, only

1nformatJ.on relevant to the di.sp1.a~ of the desi.gn such as the J.ayer, shape and orientation of an object is needed.

Sl.muJ.atj.on programs, however, require i.nfotmat.on on the ci.rcuit's electrical properties such as connecti.vity (nodes eJ.ectrica11-y connected to one another) and dev.ices (elements between nodes such as enhancment and dep.l.eti.on-mode tran- sistors, capacitors, and resistors). Programs whf.ch translate databases used for graphfcs from one type to another are of ten called "fil.ters", whlle those programs which transJ.ate a g7aphj.c~database to a simuJ.ation database are called "compilers", or "circuit extractors".

The problem of moving design j.nformatI.on from one system to another is soJ.ved by determi-nIng which progtams on the two systems will j-nteract with each other, and at what phase of the design process this .Cnteraction shou1.d occur. An examination of the .f.nformatl.on given I.n chapter three shows that SCALDstar hardware and software support for the sf.mu1.a- t1.on of integrated c.i.rcuft designs is much more l.imited than that of the VAX system. However, the LED program prov.ides powerful. editing fac.i.l.it1.e~ for the int.eracti.ve desi.gn of integrated circuits. Gtven that the 1.nteracti.ve design pro- cess itself is best performed on the SCALDsystem and that the VAX system software is we1.J.-suited for the sirnuJ.ation of those designs, it becomes apparent thaf one i.nteract i.on bet- ween rhese two systems wf.1.J. be between the LED and mexrra programs. Although most designs wi.1.J. be generated on the

SCALDsystem usCng the LED program, several. 3,mportant designs may be generated by functional. description software such as the peg(CAD1) and plap(CAD1) programs for .lncl.usl.on I.n the design process. Therefore, an interaction will. occur bet- ween this software and the LED program on the SCALDsystem.

4.3.1 The CIF and CAESAR Database Formats

The discussions wh3.r.h fol-low describe the two database formats used for the transmi.ssi.on of data between the two systems. The Ca1.tech 1ntermedi.ate Format (CIF) 5.s fuJ..Ly documented in Nead and Conway's text on VLSI Destgn [9].

Therefore, its description will. be somewhat limited, serving onJ.y as a comparison with the second language, CAESAR. To date, this department does not have the documentati.on for this language and what is presented here has been J.earned through observati.on. Both of these languages incorporate at least a subset of the features mentfoned prev.tousJ.y, aJ.though the CAESAR format restricts designs to those whi.ch are 1.n the manhattan sty1.e (edges orient-ed at 90" mu1.t.lpJ.e~ on1.y). The reader may compare these two formats usi.ng t.he exampl-e desi-gn fiJ.e (sh3.f treg) whi.ch i.s 3.i.sted in i.ts CIF format tn appendix secrf.on B.l and in i.ts CAESAR format 1.n appendi-x secti.on B.2. Layer Definitions

The fol1.owing table shows each I.anguagels means of spe- cifying the layers used i.n the design. In the CIF specifi- cation, the layer name also includes the technol-ogy of the design. In this case, the "N" is used to denote the nMOS technology. The CAESAR language uses a header at the beginning of the design f1l.e. For the nMOS technology, thfs is "tech nmos".

Layer CIF Specificatton CAESAR Specif 1cati.on polysilicon "L NP" << polysilicon >> diffusion "L ND" << diffusion >> metal "L " << metal. >>

1mpl.ant "L NI" << implant >> "L NC" << cut >> buried contact "L NB" << buried- contact >> overglass "L NG" << overglass >> label. undefined << label >>

Geometrical Deflnitlons

The CIF language a1.l.ows the deslgner to specify boxes, wires and polygons. However, most of the programs whf.ch

tnterpret the CIF format (such as mextra and cf.f2ca) do not

a1J.o~the wire or poJ.ygon structures to be used. The CIF

destgns produced by the LED program on the SCALDsystem and

the tp3.a and mkp1.a programs on the VAX system a1.1. use the box structure to define layer geometries. A box Is defined by the foJ.J.owj.ng command:

B length width center di.recti.on

A1.I sfzes and coordinates uni.ts are i.n centi.mi.crons. The optional "direction" argument may consist of any two integer vaJ.ues whj.ch specJ.fy the tun and rise of the ang3.e of the box's otientat1.011 with respect to the x axis.

The onIy two CAESAR structures have been observed. The first, and most promi.nent, i.s the rectangle. ThJ.s structure is specified wfth the foJ.J.owi.ng command:

rect x1.l yJ.1. xur yur

Where xl.1. and yll. specify the J.ower left-hand corner and xur and yur specify the upper right-hand corner.

The second observed structure i.s called a box. This structure's J.coation is speci.fied in the same manner as the rectang1.e and serves to defi.ne the outermost peri-meter of the design. All. CAESAR coordinate values and si-zes are based on units of 0.5 centimlcrons.

Subcell Def 1.ni.tton and Usage

The CTF language begins the def ini.tion of a ce1.1 with the fol J owfng command: DS symbol.- number A B;

The variab1.e "symbol- number" is used to identify the symbol. being defined. The variables A and B are integers which are used to form the fraction A/B. This fraction is used to multiply the nume7i.c values which fo1.1ow I.n the specifics- tTons of the cell's design, al.l.owing somewhat smaller values to be used throughout. The ceJ.1.'~ definition may also be given a symbolic name for interpretation by using the fo3.J.owfng syntax:

9 symbol.- name;

Subcells are called i.n the main design by usi-ng the call command:

C symbol- number Translation MX MY Rotation;

The subcell may also be trans1.ated, mirrored in the x or y plane, or rotated by any angle. These franformati.ons may be applled in any combination. However, the mextra and crl.f2ca programs will. not recognfze these transformattons (see the f ol.1.owi.ng section).

The CAESAR language manipulates subcel.1.s by p1ac.i-ng each cel.1. inro i.ts own separate desi-gn fi1.e. The cel.lls name appears as the fC1.ename of the design fi.3.e. The mechanism used Cn ca.l.l.i.ng the cel.1. i.s: USE cel.1- name

This may be followed by a transformation command, which is usually of the form:

transform 1 0 0 0 0

Without a detailed descr.ipt~.onof the language, the syntax of this command is unknown.

Signal Names

Signal names i.n the CIF language are defined by the fo1l.owing:

94 signal- name x y; where the x,y coordinate specifies the point at whtch the signal name is attached.

The CAESAR language has a specific layer for slgnal names which has been defined as the "label" layer.

FolI.owing the deftnition of thfs layer wwithin a design, the label. command appears as :

label. sCgna3.-name xl.1 y1.l xur yur

Where the lower left and upper right values speci.fy the size of the text string. 4.3.2 Data Transferral: SCALDsystem To VAX System

The mextra circuit extraction program produces several output files for use by every slmulatlon program on the VAX system, with the exception of MIT's rnl program. Thus, mextra serves as a sort of gateway through whI.ch designs developed on the SCALDsystem must pass. This means that these designs must be in the CIF format. Further restric- ti-ons imposed by the mextra program are:

* Nanhattan style geometries (all. layer geometries must be

multiples of 90°).

* The CIF "Rotate" command 5.s not recogni.zed.

* The CIF "Wire" structure i.s not recognj-zed.

Fortunately, the LED program i.s capable of writlng deslgn data in the CIF format. This output i.s produced uslng the LED command :

The -p argument .instructs the program to i.nclude signal names in th1.s output. A full expl.anation of th3.s command is given i.n the SCALDstat Reference Manual for version 7.5

SCALDstar programs. The desi-gn fi1.e created resi-des 1.n the user's home directory under the f l..l.ename "ci.fW which shou1.d be renamed to avoid overwriting 1.t the next tfme the command fs used. The CIF design fi.1.e i.s then processed ustng the val.id2vax program jnstall.ed on the SCALDsystem.

The valid2vax program was wrltten for this thes.s to automate the processing of LED-generated CIF deslgn files for the mextra circuit. extraction program. The foll.owf.ng command 3.j.ne invokes the program:

val-i.d2vax [-c control.- file] design- f ile(s)

The optional control.- file argument may be used to define an ascij. fi1.e which contai-ns a 3.i.sting of files to be pro-

cessed. In most cases this file is easy to create using the

filename substitut.~.onand 1/0 redi.rect.i.on mechanisms of the

shell. (see appendix A). As an example, the user inay create

several. design files which have the filetype of ".cif". The

control file may be built automatlca1.l.y by typing:

Is *.cif > control.- file

If the control- file argument is not- given to the valid2vax program, the design files must be ltsted on the command

ltne. If the control file is specified the listing of rhese

ftles is opttonal. Sj.nce many designs whi-ch may be transferred to the VAX system will. represent subcel..l.s which have not yet had their power and ground 1.ines connected on a global. basis, the valid2vax shell. script cal1.s the UNIX stream editor, sed(1) to append the "!" character to user signals defined as vdd and gnd. This suffix identifies these signals as beCng glo- bal, preventing the mextra program from attaching its own suffixes to make them unique. At the same tfme, the sed program i.s also instructed to replace any mixture of upper and lower case characters i.n these signal. names with "Vdd" and "GND". This is done since VAX s.i.mu3.ati.on programs must see these strings in exactly these forms before the design can be properly processed.

In addition to changing the form of the power and ground labels, the valfd2vax program performs two other operations on the design file using the sed program. The first of

these I.s the removal of the layer prefix attached by the LED program to signal names. The prtmary reason for this is to proper3.y form the power and ground signal. names (Vdd! and

GND! ), but this also saves the user some unnecessary and awkward cyping. The second editing operati-on removes the

CIF rotati.on command wh1.c.h appears in subce1.l ca1.l.s as "R 1

0" which -I.s, i.n effect, a rotatf.on of 0" (the LED program

produces this even though i.t is not ne-cessary). If the user has inc3.uded a subcel.1. in thei.r design which js rotated using the LED rotate command,the design wil.1. not be proper1.y processed by mextra. Therefore, the user should take pre- cautions to avoid this situation. This may be done by creating the subcel.1. wlth the proper orientation to begin with, or by fol1.owl.ng the procedure below:

1. Edtt a new cell.

2. Add the subcell to the new ceJ.1..

3. Rotate the cel.1. to its proper orientation.

4. Use the LED "smash" command to remove hierarchy.

5. Save the new cell..

Afte+ creating the rotated subcel1 as suggested by the above procedure, the user may call. this cel.1 when edit.l.ng the maI.n design without having to perform a rotation.

Al.ternativel.y, the subce3.1. may be called into the mai.n deslgn and rotated, then smashed to make Ct a part of the main design. However, if there are many of these subcells called, the maj.n destgn file's size will. grow since these structures will not be I.mpl.emented as instances of a sing1.e subcel.1 definitfon.

A desCgn file (shiftreg.ctf) created by the LED ci.f com- mand and processed by the val.I.d2vax command is 1i.sted in appendi.~sect.Con B.1. This sect.i.on also reprints the out-put files created by the mextra program from the same desCgn f i1.e.

This shell. script 1s lnstal1.ed on the VAX computer for the purpose of removing a non-pr1ntabJ.e asc1.i character

(octal 005) sometimes appended to each 1.1.ne of a deslgn fi1.e which has been transferred to the VAX system. This probJ.em occurs intermittently durlng the transmission of files using the val.1.dcom (tJ.p) program. The usage of this program 1.s:

Where fil.ename i.s the name of the file to be fixed. The character appended may be seen if the destgn file i.s edited with the ed(1) program by requesting a listing to be di.splayed (the "1" command ). If the characters are not removed, mextra comp1.aj.n~ about an unknown CIF command and refuses to process the file.

The fo1l.owing 1.I.ust.ration (f igure 4.3) shows the pro- cessing and transml.ssion of files from the SCALDsystem to the VAX system. Note that the actual. communications and file transferral. commands originate from the VAX system.

A 1.1.st.1.ng of th1.s program appears In appendix sec.t.i.on SCALDsysten VAX system (In the user's home (In the user's home dtrectory.) directory .)

~-~~~f~ev//dev/t tya t ty~l

*--) valldcom

1. Designs are first processed using the vali.d2vax program.

2. The valj-dcom program is used to invoke tip.

3. Tip begins running and files may be transferred.

FIGURE 4.3 Moving files from the SCALDsystem to the VAX system. 4.3.3 Data Transferral.: VAX System To SCALDsystem

Although most designs wi.l.1. 3.3.kel.y be created usi.ng the

LED program, a set of the VAX system's too1.s prov.I.de the capabi1.l.t~ of automatl.~artwork generati.on. In part.i.cul.ar, the mkp1.a and tpla programs may be used to create PLA struc- tures from truth tab1.e descripti.ons. Si.nce most comp1.e~ des3.gn structures can be best handled by the use of regul.ar structures such as the PLA, the designer shou1.d have the means of 3.ncorporati.ng these structures i.nto desi.gns created usfng the LED program.

In dec3.ding upon the descriptive 1-anguage to be used for desl-gns transferred ro the SCALDsystem, i.t seemed at first that LED on1.y supported its own internal. database l.anguage, of which there are both asci.1 and bl-nary-coded forms. Upon examl.nation of the ascii-coded form, .It was found to bear a strikl.ng resemb1.enc.e to the caesar descri.pti.ve language used on the VAX system. In fact, th3.s resemb1.ence may be much more than coi.ncfdenta1. since the LED command set matches that of the caesar(CAD1) i.nteract3.ve 1.ayout program from

Berkeley a1.most one to one. In the end, it turns out that the LED program wi1.1. handle rhe caesar language as a subset wi.th proper 3.nterpretation of signal. names as well. as the layer geometr.tes . Al.1. designs generated on the VAX system may be output Jn either the CIF or caesar languages. However, several. problems have become apparent when attempting to output directly .in the caesar format. The basic uni.t of measure- ment for these programs is 1.0 cent.imi.crons whlle that of the LED programs own database 1.s 0.5 centimj.crons. AI.so, 1.n the case of the tp1.a program, the caesar output cannot. be correct1.y scaled for arbi.trary design sca1.e factors

(lambda). Thf.s bug in the software can be overcome by out- putting the design in the CIF format, in wh1ch case the scale factor appears j.n the Define Symbol. (DS) statement.

This scaling was necessary since components from the

Stanford cel.1. library may be incorporated j.n their desi.gn to provide testabf.1.i.ty (see the Tight- fsm example in chapter

6). PLA artwork-generating programs shou1.d be directed to produce output Sn the CIF format with l.ambda=2.5 microns, the same scale factor used throughout the Stanford 1.1.brary.

The vax2vall.d shell. scri.pt i.nstal.1.ed on the VAX computer system 1.s used to rrans3.at.e CIF format desi.gn files into the caesar format and to sca3.e them upwards by a factor of two.

The processed fi1.e~are then ready for edi.tI.ng wi.t.h the

SCALDsystem's LED program (a second vax2val d script,

instal..l.ed on the SCALDsystem comp1.etes th1.s process and is described later in this chapter). The program may be cal.J.ed uslng the command :

vax2valj.d [-c control.- file] design- file(s)

The arguments used are the same as the va3.l.dZvax program previously expl.aI.ned. The actual. scalfng i.s accompl.l.shed by using the cif2ca fil-ter.

As the program is processing design fi.J.es, two 1.3.stings are produced automat.caI.1.y. The fi.rst i.s a fi.1.e named vax2vaI.i.d.l.i~ which 1.3.sts all. of the design ff.1.e~processed by the program (this 1.i.st may be sent to the SCALDsystem for use as a control. fi1.e for that system's vax2vaJ.l.d program).

A second 1.ist.i.ng of a1.1. files whj.ch were not processed by the program are placed into a fi1.e named vax2vall.d. log.

A desj.gn fi1.e (shiftreg.ci.f) processed by the vax2val.id program 3,s 1.i.sted 1.n appendlx section B.1. The reader should compare the sh1ftreg.cl.f fi1.e to the two caesar files named SHIFTREG. ca and sh3.f treg. ca, which were produced by the vax2val.i.d program (uslng the ci.f2ca filter). The two

CAESAR files appear in appendi-x sectlon B.2.

Th1.s shel.1. script is used to automate the process of creati.ng a finite state machine. The shell script is

f nvoked by: make- p1.a [-s ] peg- input - fi1.e outfi1.e

Where the opti.ona1 sty1.e I.s one of the set of sty1.e~passed on as an argument to the tp1.a program. Peg-input -file is the hlgh-level descr1.ption of the machine used by the

peg(CAD1) program and nutfile i.s the filename of the final. design. Make- p3.a first processes the peg-input -fi3.e with peg and then passes this resu1.t. onto eqntott(1) w3.t.h an

argument which causes eqntott to preserve user names

asslgned to Input and output s1gnaJ.s. The output of eqntotr

is piped to tpl.a, with arguments to:

* Produce CIF formatted output (this overcomes a bug in

the program which prevents the sca1.ing of caesar for-

matted output ).

* Sec the type of style used (ie., Bcis, Btrans, Mcis,

Mtrans, Tci.s, Ttrans). The defau1.t. 3.s 51cj.s.

* Provlde c1.ocked i.nput and output for the PLA.

* Place the design in a temporary output file to await

further processing.

After the design is produced by tpla, its hierarchy is

removed ustng the cifflatten program, and it fs then "fil.teredn usI.ng the cif2ca program. A 1.Isti.ng of thl.s program has been placed i.n appendix section B.2. prep p1.a

The prep- p1.a shell. scrl.pt I.s provided for the users of the mkpl.a(CAD) program. Its command line is:

prep- p1.a filename

Where filename J.s the name of the file produced by the mkp1.a program. Prep- p3.a rep3.aces the occurences of the "p3.aI-Iw4" symbol name with "p1.aI-IIw4". Thjs I.s done to avoid con-

fusion with the symbolname, "p1.aj.-Iw4" when usCng the LED

program (since LED is case-insensItI.ve). Since the mkp1.a

program generates "wfre" strucrures, the user may not remove

hierarchy by using the cifflatten, since th1.s program does

not accept these def i.ni.tI.ons.

When the CIF formatted output of the mkp3.a program 1,s

processed by the vax2val.I.d (VAX system) program, each symbol

defined by the mkp3.a program 1.s placed fnto a separate

design file having the same name as the symbol. The "ma1.n"

design f i1.e which caI.1.s the subcel.1. defin3.tI.ons wi1.I. be

named "project.ca" (it may certain1.y be renamed by the

user). To use these fi1.e~Cn edi.tl.ng the design on the LED

program, the user sI.~npl.y edits the project.ca fi.3e. Thts ft1.e automat1.cal.l.y ca1.1 s a1.1. of the subcel.1.s i.nto p1.ac.e.

Th3.s program's 1.isting appears jn appendix sectjon B.2. vax2val.i.d (SCALDsystem)

Thjs shell. script (instal.3ed on the SCALDsystem) l.s used to Insta1.1. designs transferred from the VAX system.

Its usage Is:

vax2val.j.d [-c control.- file] desfgn- file(s)

The conmand 3.ine arguments operate exact1.y as exp1.ai.ned j.n the djscussion of the val.i.d2vax program. The vax2val.l.d program asks the user for the name of the4.r working di-rec- tory and checks for it exi.stence. If it is not found, the program creates it. Next, the program begins its processj.ng of each of the f1.1.e~named by the user. Vax2val.id creates the design direc~oriesfor each fi1.e on the ].;.st: and places the desi.gn Into I.t as an ascj.3.-coded desi.gn fi.1.e for LED

(named 1.yout.1 .I). If a design dj-rectory already exl.sts, the user is asked l.f the current design shou1.d be repl.aced.

If the user repl.aces the design, vax2val.f.d removes the binary-coded desi.gn f i1.e (named 1.yout- bI.n.1 .1) which was produced by the LED program (since LED wI11. always read thls

format i,nstead of an ascii.-coded one) and insta1.1.s the

design f.iSe. A1.1 of the files successfu3.1.y processed are

1.isted in a fi.le named "vax2val.id.l.i.s" and wri.tren into the

user's working di rectory. After processing desl-gn fi.J.es wl th the vax2val.id program, it i.s advisab3.e for the user to ed1.t the desi.gn wlth the LED program and Immedi.ate1.y "wrj-te" j.t. Th1s pro- duces the bj-nary-coded design f.CJ.e, 3.n effect., trans1.ating the design database from the caesar to the LED format. The

1.yout.l.l design file should then be removed. A J.istl.ng of this program i.s presented in append1.x secti-on B.2.

The 13J.ustration which foJ.1.ows (figure 4.4) shows the varlous means of preparing design fiJ.es created on the VAX system for transml ssi-on to the SCALDsystem. ------LED-compat 1.bJ.e design f Cl.es

* eqntott I

user-created ' design f €l.es (CIF format) r - user-created design f il.es 9 (caesar format 7 7 -I---- J. To SCALDsystem

FIGURE 4.4 Prepartng des.ign files for the SCALDsystem CHAPTER 5: SCALDSYSTEH PROGRAM DEVELOPMENT

Before integrating VAX and SCALDsystem resources to form the distributed design system, it was necessary to understand the faci1itl.e~of each system l.ndividua3.l.y. Thfs work iso1.ated potential prob1.ems within each system and provided some measure of thei.r compatibilJ.ty. Examination of the design tools insta1.1.ed on the VAX computer system showed that the only probl.ems of any serious consequences are the mextra(1) and cj.f2ca(l) programs. These operate on the CIF design database and are unab1.e to i-nterpret wi.re structures or petform rotat.J.ons on subce1.1. fnstances.

Unfortunately, the correction of these prob3.ems invo1.ves a detailed understanding of these program's source codes, which wou1.d take more time than i.s aval.J.ab1.e for this pro- ject. In general, the on1.y work done on the VAX system was to improve the interaction of the user with the design tools. It was with the SCALDsystem that the most serJ.ous problems were encountered, most of whfch were simp1.y the

J.mplementation of site-specffic command files, although some changes i.n existing code and c1,arificatton of documentat tons were found to be necessary.

In addi.ti.on to modffying code for the purpose of pro- ducl.ng a design database compatib1.e w1,t.h VAX system soft- ware, modi.f.tcattons were also necessary to enab1.e and enhance the SCALDsystemls pI.ott1.ng fac1.l.ities. Orlg1.naIlyy

i.nsta1l.ed pl.ottjng software handled only Verstaec and Renson e1.ectrostati.c plotters and the HP75xx series of pen plot-

ters. Due to the unavaJ.l.abi.1.J.t.y of these pI.ott.ers, this

code was modified to handle the more easi1.y obta.i.nab1.e

HP7470 pen plotter.

5.1 The Drc/Extract Command Fj.le

The operations specified by the Drc/Extract command fi.1.e

jdenti-fy structures whj.ch exceed error to1.eranr.e~ of the

manufacturi.ng process and i.so1.ate elements of the design

which meet fabrication standards but do not conform t.o the

l.og1.cal. des1.gn rules necessary for propet operakion of rhe

devtce. Therefor, the operations performed by Drc/~xtract

depend on the fabti.cation faci.1.I.t.y whjch manufactures the

devj-ce, and on the particul.ar technol.ogy on whi.ch t.he device

i.s based (e., nMOS, CMOS, hMOS, etc.). These factors vary

from design to design and from one fabricatton house to the

other and each set of crjteria requf-re the creati.on of a

command fi1.e to support them. At present, there are no par-

ticu1.ar constrai.nts due to fabri.cation standards and on1.y

the nMOS technoiogy is in use, and for these reasons, on1.y

two command Eiles were created for this system. The on1.y

difference between the two files is that one operates on designs created using I.ambda=l .O microns (drcl-0 .cmd) and the other works on desJ.gns using l.ambda=2.5 microns (drc2- 5.cmd). The drcl- O.cmd file serves as a "norma1J.zed" model which users may modify for their own designs by mul-tipl.y.lng numeric command parameters J.n the fi1.e by a scale factor.

This factor j.s:

scale-f actor = l.ambda/l .o, where lambda Is the new fundamental. unit of the design. The

drc25.cmd file j.s provfded for (possib1.y first-time)

designs which may use standard components from the cell.

library.

Two additional command entries were made to both command

files to produce a cI.rcuit extractton for the SCALDsystem

simulate program. These two 3.ines are:

simul.ator NMOS ENH passtranststor

sj.mul.ator NMOS DEPL resistor

Previous l.ogica3. operati.ons in the command fi1.e have

extracted the iocat Cons of enhancement and deplet fan-mode

trans.istors from the user's design and assigned spice model.

names to these. The sCmul.ator command produces a connec-

ti.v.ity f1l.e (sim- cn.l.1) with the spi-ce model. names NMOS ENH

and NMOS DEPL replaced by passtranststor and resi.stor respectiv1.y. When the design 1.s compiled for "sim", these new devlce models are located J.n the /uO/lj.b/sim dSrectory and ate used to create a netl.5.st sui.tab3.e as a database for the si.mul.at.5.on program.

Finall.y, an error in the example Drc/Ext.ract command file was corrected. This etror was ln a numeric value passed to the "expand" command. Instead of the ori.ginal va1.ues of 0.5 and -0.5, t.he values 1.0 and -1.0 shnu3.d be used. The corrected entry and 5.ts context appear as

Eoll.ows:

expand ctran -1.0 ttranl expand rtranl 1.0 rtran2 andnot pol.ysi.llcon rtran2 testpoly width tespoly 2 .0 "poly overhang < 2"

The layer, "testpo1.y" is used to check that. the polys.Clicon gate reg5.on of an nHOS transistor extends at ].east

2.0 microns over the diffuston region. The two "expand" steps are used to remove two small "ears" which are the result of an adjacent. but ting contact. in the dep3.et Son-mode transistor case. After removSng these "ears" (if they ex3.s t), the "andnot" operat1.on between the rtran2 and po1.y- siJ.I.con layers produces the t.estpn1.y layer, Thfs layer i.s composed ent1.rel.y of polysi'l jcon which 13.es on e.i.ther s.de of the diffusion regi.on. The wi.dth command then checks for

the proper overhang of 2.0 mjcrons and writes the quoted message string 3.E the check fai 1.s. These Drc/~xtract command files were i.nsta1.J.ed 1.n the

/uO/user/ALL di.rectory. Thl.s di.rectory contal.ns al.1. of the

SCALDsystemls required "startup" files whi.ch are to be distributed to a new user's home directory when that user is first installed on the system. Thus, both drc fiI.es are immediately made avai1.abl.e to the user.

5.2 Technology Flles

As nentloned previousJ.y, each design created by the user will be based on a technol.ogy such as CMOS, hMOS or nMOS.

During 3.t~"startup" phase, LED attempts to 1-ocate two files

associ-ated with the system's default technol.ogy. These

fil-es are "defau3.t.. tech" and "default .cmap", both of whJ.ch

reside i.n the /uO/l.ayout system directory. The first fi1.e

names the technol-ogy, the colormap file to be used

("defau1t.cmap") and ehe fundamental. units of measurement

di.spl.ayed by LED'S grid. The next set of entries in this

file identify the J.ayers present in the technoJ.ogy. These

are defined as fol.1.o~~:

1 ayername outline- pattern f il 1 -style color- number

[stipple pattern]

[cif-lname = "cif -layer - name"] [wire- width = w -wfdth]

[prefix = preftx- character];

where:

layer- name: The name of the layer. out1.1.ne- pattern: The sty3.e of the outJ.ine to be drawn

around polygons on the layer.

fill.- style: The pattern drawn within the perimeter of

the polygon. If a sti.pple pattern is specified, the

next line of the entry specifies the st1ppl.e pattern.

color- number: The color for the layer.

cif- layer-name: The presence of this definit.i.on sper.7.-

fies a CIF layer name to be assoc.i.ated with LED 1.ayers

when the "cif" command is used w1thl.n LED. Those layers

known to LED for which this entry is mlssing are not

included in the CIF output file.

w-width: The default w1dth for wires drawn by LED in

thi.s layer (based on the Mead and Conway design rules).

prefix- character: The character to be prepended to

signal names defined on thj.s layer. Thl.s entry also has

the effect of defini.ng layers to which a signal name may

be attached. If thLs entry is oml.tted, LED comp1.ai.n~

that a va1.l.d prefix I~snot found when the user attempts

to attach a si-gnal name to th.i.s layer.

Modificati.ons made to th1.s fi1.e concerned the cif- layer - name var.tab1.e. The ortgi.na3. entr1.e~made by VALID Logic. were not recognI.zed by the VAX system desi.gn too1.s. The

1.abel.s were redef Cried as: LED layer CIF I-ayer

pol.ysillcon "L NP"

d1.f fusion "L ND"

metal. "L Nbl"

implant "L NI"

cut "L NC"

buried- contact "L NB" ove rg1.a~s "L NG"

Other layers whj.r.h have correspondi.ng CIF layer entr-les defined by VALID Logic are enhancement and dep3.eti.on-mode transistors ("L NENH" and "L NDEP"), and the boundary ("L

NBND"). These 1.ayers actua13.y have no meani.ng to the VAX system programs, but were not removed since LED will. not generate these 1-ayers norma1l.y.

After modj.fying the technoIogy fiI.e, the origi.na3. defau3 t .tech and defaul.t.cmap fCles were renamed d.tech and d.cmap. The modifj-ed techoI.ogy fi1.e was then i.nstal1.ed as the new default. tech so that LED wou3.d automat ica1.1.y understand correct CIF 3.ayer names. However, contrary to the documentation whi.ch descri-bes LED'S usage of these flles, i.t was found that. LED wi.1.J. always attempt to l.ocate an nmos.ter.h fi3.e i.n t.he user's home directory. For this reason, the modifted technn3.ngy flle and the colormap file were insta1.l.ed in the /uO/user/~~~di.rectory so that a1.1. users recei.ve a copy. These fi.1.e~are presented 1.n append1.x

section B.1.

5 .3 Plotting Facil1tj.e~

Plotting software, as dJ.stributed by VALID Logic sup-

ports either Versatec or Benson e1.ectrostatic pl.otters, or

the HP75xx series of mu1.t.i.-pen pl.otters from

Hewlet t-Packard. At present, our department does not have

access to the former these facj.l.ities were developed for the

HP75xx series of pen p1.otters. The J.nl.tial work done In

developing a usab1.e plotter interface was made possib1.e

through a special. loan of an HP7585 pl-otter from the depart-

ment of Industrial. Technology.

The first step Cn deve1.opi.ng a working p1.otter interface

was to establ.J.sh proper SCALDsystem recogni.ton of the XON

and XOFF (ascii DC1 and DC3) handshaking signals. These

characters are used to prevent data 1.oss during com-

munl.catj.ons of asynchronous computing devices. In thi.s

case, the plotter requests the SCALDsystem to stop sending

data (via the XOFF signal.) if the pl.otterrs internal. buffer

is .i.n danger of overfl.owi.ng. The SCALDsystem then suspends

its transmi.ssi.on of plot data until. i.t receives a speci.fic

request from the pl.ott.er for more data (via the XON sf-gnal.). The SCALDsystem's l.nltCa1 termi.naJ. process i.s the getty pro-

cess (as expJ.aj.ned 1.n chapt.er 4), whI.ch i.s not capab1.e of

tnterpretl-ng these signals. In order to do thi-s, a user

nust be logged Cnto the system on the eermlnal port to which

the plotter is to be connected.

The 1.ogi.n procedure i.s used to start the csh program

which does recognize the handshake. After the user is

1.ogged i.n, the terminal. buffer file (/dev/ttyc, 1.n t.hIs

case) is owned by that user, wlth a protection mode that

restrtcts other users From wrj.ti.ng to that fi.1.e. Si-nce the

pl.otti.ng software must be able to write as well. as read th3.s

Fil.e, the protection mode on the fI.1.e must be reset to a1.l.o~

th1.s. AI.so, an estab1.lshed user of the system shou3.d not

have to jepordize theI.r securi.ty by logging f.n themselves

si.nce other users cou1.d access thei.r work by simply con-

nectlng a terminal to the plotter's port.

The sol.uton to thi.s probl-em was to create a fictI.tous

user named "pJ.otter". This user has nil files of l-nterest,

preventing any security prob1.ems. A spec1.al. ".1.ogI.n" f1.J.e

was created in the "p1.otter" directory which exacnines the

port to whCch "pJ.otter" i.s 3.oggi.ng 1.n. If this port l.s not

the ttyc termjnal. port, a message to this effect is issued

to the llser and the ".l.ogInW fi 1.e issues the "1.ogout" com-

mand. 'If the user i.s cnnnected to the ttyc port, another message is issued, informing the user to d.i.sconnect the ter- minal before connecti.ng the plotter. Th1.s is on3.y s1.gni f t- cant in the case of the HP7470 pl.otter, as will. be exp1.ai.ned later in th1.s chapter.

To produce plot data for an LED design, the user fi-rst

creates a file named "pl.ot.cmd". Thi.s file contai.ns com- mands for the direction of the makeplot program such as the

type of pJ.otter being used (the HP in this case), Its paper

size, the patterns and pen numbers to be used J.n p3.otting

layers, and other commands to produce suppl.ementa1. infor-

mation (eg., grids, menus and axes). The user Invokes the

makepl.ot program with the name of the design to be pl.otted

and opt.i.onally, a name of the makepl.01: command fi1.e to be

used i.f it is not the default. p1.ot.cmd file. The output

produced by makeplot 1.s then J.nterpreted by a pl.ot program

cal.l.ed by the hpl program.

When produc1.ng p1.ot output for Graphics Edl.tor (GED)

designs, the user should first edi.t the stattup.ged file to

include two set commands:

set hp- monopl.ot set local- plot

This insures that p1.ot data will. be written to the

hpplot.dat file to be processed by the hpl. program. To pro-

duce plot output t.he user issues the GED command: ha scale-f actor

The opt3.onal scale-factor is used to fit the plot onto the paper. If the message "sh: cannot access /dev/hpW is returned, the user need not worry. The program has written the hpp1.ot .dat file as requested.

To plot a design, the user invokes a modified version of

VALID'S hpl. program (1.3.sted in section B.l of the appendjx).

This shell. script was modj-fted to accept a user-defined name for che p1.otfiI.e Instead of automatically using the

"hpplot.dat" filename. If the user does not supp1.y a p3.ot- fi1.e name to hpl. (on the command 3.l.ne), hpl. defaults to the

"hpplot.datU file. In addition, hpl. also asks the user if the HP7470 pl.ott.er is bei.ng used. If the answer is "no", hpl. ca1.l.s the hpfil.ter program (found 5.n the /uO/ed<.tor/3.i.b directory) usl.ng the shell.'^ 110 redirection mechanism to read from the plotfile and wri.te to the plotter's t.erml.na1. port. If the answer 3.s "yes", hpl Instead cal1.s a modified verslon of hpfj.l.ter named "hp747OW. P1.otfil.e and terminal defJ.nit.ions are suppl.J.ed on the hp7470 program's command line when t is invoked. Modi.flcations to the hpft1.t.er program are discussed in the Eo1.J.owing section.

5.4 Modificati.ons on the hpf i.1.ter program

Software, as distributed by VALID Logic, works as

expected for the 1-IP75xx series of pen plotters and the problem of obtai.nj.ng hardcopy output of destgns wou1.d end here were i.t not for the fact. that a pen pl.otter of this type Is not genera3.l.y avaflable in our department.. The one plotter whj.ch Cs aval.l.able J.s the HP7470. Thl.s 4.s a smal.1, two-pen plotter whj.ch i.s restricted to an 8V2 x 11 i.nch paper size. AJ.though the Hewlet t-Packard Graphj cs Language

(HP-GL) is used by both the HP75xx and the HP7470, several. problems have prevented the use of the hpfilter program with the HP7470. Chj.ef among these prob1.ems was the orl.entati.n of the plot paper. On the HP75xx series, paper Is placed on the plotter with J.ts short edge along the pl.otterls x-axi.s whC1.e on the HP7470 the x-axl.s fal1.s 3.engthwi.se aJ.ong the paper. Thus drawings produced by the makepl.ot program would be cJ.ipped. Another problem was that the hpfi1.t.e~ program does not al1.o~the user to change pens during the pJ.ottI.ng operation. Since up to ei.ght pens may be deftned for the

HP75xx plotters, the two-pen configurati.on of the HP7470 plotter meant that. the p1.o~ program shou1.d suspend the plotter and inform the user to change pens as needed.

The first modlfJ.catlon made t.o hpfiJ.ter was to defi.ne addttional. input and output fil-es. Orl.ginalJ.y, hpfi1.ter only used the standard i-nput and output. files (stdi.n and stdout), expecting the hpl. shel.1. scri.pt to use the shel.Jfs

1/0 re-directj.on mechani.sm to estab1.i.sh 3.1.nks to the p3.ot- file and the p1.otter. This meant that interacti.on between the program and the user was not poss1bJ.e since these chan- nels were being used for plot data. This problem was corrected by adding the "pl.ot -file" and "termi.nalW fi.le definl.ti.ons to the program header, and by defini.ng the program's access to command line arguments through the argv and argc pointers (see ref [13]). The two fi3.e variab1.e~ were then defined as pascal. TEXT types in the program's g1.o- bal definJ.ti.on sectl.on and were "reset" i.n the program's mai.n block to assign the file names gi-ven on the command

3.ine duri.ng the program's i.nvocati.on. Al.1. read and read3.n sratements associated wCth the input of plot data were modified to read from the "p1.ot -f.i.1.e" file variab1.e and a1.J. write and wri.teln statements used to direct plot command ouput to the plotter were modified to write to the

"terminaJ." file varJ.ab1.e.

Once the program's main I/o stream was established tnternall.~, interactton with the user of the program was made possible. As previ.ous1.y mentioned, this Interaction was to support pen changes as speci.fi.ed by the p1.ot dat-a fi.le. A global variable, "1.astpen" was defined to prevent unneccesary pen changes which occur as the plot data draws the axes of the pl.ot. Thi.s variable is set to the value of

1 (the default text pen number asstgned by the makeplot. program) duri-ng initia1.J.zation within the ma1.n block of program code. The lastpen variable is redefined on1.y .f the current pen number differs from the previous number used.

If there is no dtfference, the user Is nor. notified of the pen change. If a pen change i.s necessary, the program I.den- tiftes the number of the pen as specified in the p1.ot dat-a file and determfnes the number of the pen which the HP7470 will use. AlJ. odd pen numbers use pen one, even numbers use pen two. Thj.s informati.on is presented to the user wi.th a prompt to change the pens and r.o press the return key when they are finished. The program then performs a read1.n from the user's termi.nal which has the effect of pausing the program's (and the plotter's) executton until. the user has sucessfully changed the pen.

The next aodification was to provide the means by wh1.c.h khe user cou3.d set the pen ve1.ocJ.ty of the plotter. This becomes necessary when the paper belng used i.s rough in tex- ture, which causes excesstve wear on the fiber-tipped plot. pens. Thfs value may be set anywhere from 0.38 cm/s

(slowest speed) to 38.1 cm/s (fastest speed).

The last modtfication made was to apply a rotation of

-90 degrees to the plot data produced by the makeplot program. This rotatton was applied in two dimensions and was followed by a translattnn to properly offset the plot' onto the paper by using the standard transformat.i.on mat:ri.x

co~n~nonlyused in graphics programs:

where x1 and y' are the transformed coordinate values issued

to the plotter.

Since rotatl.ons which may be speci.fied in the plot data

ftle are also recognized by the hpfil.ter program, this

transfotmat.1.on appears in the "convert" program procedure,

previous to the transformation performed by hpfilter or.tgi.-

nal1.y.

In addition to apply1.ng rotation and transl.at.i.on to a3.3.

pen addresses specified by the plot data file, rotations

were also performed on the program procedures "Place- Text" and "Plot- Mirrored - Text". These procedures I-dentlfy the pl.acement, orientation, and size of the text as spec1.f i.ed

in the plot data fi.le and perform rotation of text by expll-

cit command arguments to the p1-otter. Sj-nce this data is

not. processed by t-he "convert." procedure mentioned above,

the command arguments Ln these procedures were altered inde-

pendently. After applying the transformat.lons to the pJ.ot data, the plotter seemed to be confused and refused to accept the pen addresses. One S.mmedi.ate cause for this was the reorien- tation of the 1.ower left and upper right poj.nts used J.n the p1.otter1s "Window 1nl.ti.al.i.zarion" command. The "windowing" was, in fact, unecessary and so the coding for this command was commented out of the source code. StJ.I.l., even after this change was made, the pJ.otter seemed not to be ab3.e to process commands. After some experimentatl.on, if was found that the command termlnat.orls needed by the plotter had been omi.tted from parts of hpfl.l.terls coding. After p1.acing these characters into thei.r proper posit.I.ons w1thi.n the code, the plotter behaved as expected.

A fuJ.1 Ifsting of the hp7470.pas program code appears in append1.x sect.i.on B.1. For the use of the HP pen pl.otters, see appendix C.

5.5 The Stanford Cell Library

The Stanford cell. 1.i.brary contains a coJ.l.ecti.on of over

80 tested cel.1. and subsystem designs for use 3.n the develop- ment of nMOS i.ntegrated ci.rcuitry. The col.J.ection i.ncludes para1.l.eJ. and serial. ari.thmet4.c units, l.ogic units, c3.oc.k cells, counter c.eJ.l.s, memory cel.1.s and a basi.c desi.gn frame whfch prov.1des system cJ.c,ckl.ng and I/o buffering for si.mpJ.e des-lgn projects. Each of the ce1.l~3.n the I.ibrary 3.s based on lambdaz:! .5 microns. Descr.ipt~.ons of these ce1.J s which

incJ.ude information on their operation, size and 3.nterfacf.ng

requirements can be found 3.n the VLSI Designer's Library

[ 141. This file has been added to the /uO/scal.d/mas ter. lib

file.

The Stanford c-eJ.3. library was origSna1l.y instal.1.ed from

the UW/NW distribut3.on i n the VAX system's

/usr/l.ocal/lib/layout directory as a sing3.e desjgn file

named "lib" which contalned mu3.ti.pJ.e CIF symbol. defin3.ti.ons.

Most of these deftned an entj.re ce1.1, while others defined

subcells of a design cell. (notabJ.y the Basf.cDesignFrame and

BasicDes-ignFramePC cel.3.s ). After runntng the vax2valf.d

program on thf,s file, desCgn files in the form of

"symbolxx.ca" were produced (where "xx" is the decCmal.

number of the symbol. definj.ti.on) and transferred, one by

one, usj.ng the tip program. The cells were then instalJ.ed

on the SCALDsystem in the /uO/lib/ceJ.J. directory.

To use these ce1.1.s effectively, the user must first

establ.ish Drc/Extract data for each cel.1. Thfs is due to a

bug in the system which prevents the Drc/~xtract: program

from be3.ng run on the ce3.I.s f.n the actual IIbrary

(/uO/l.ib/ceJ.J.). To run the Drc/Extract program on these

cells, fhe user shou1.d perform the foJ.J.owing nperati.ons: 1. Edlt a new design wlth a name di.fferent than t.hat of

the cell to be used.

2. Use the LED "addcel.3." command to add the desired

c e 1. 1. .

3. Use the LED "smash" command to remove hierarchy.

4. Run the DrclExtract program on the cell..

These steps will. establish the ce1.l. 3.n the user's dj.rectory wfth all. of the required data files needed for testing the design. This newly-created cell. is the one which w.i.11. actually be used in the design.

5.6 The Lvout Ltbrarv

This library 1s used by the SCALDsystem to construct a netlj.st from the conner.tCvCty fi.l.e produced by the

Drc/Extract program. Thl.s netli.st i.s then used for the spice simuJ.ation program. The J.yout library was not origi- na1J.y 1nstal.l.ed on the system by VALID L0gj.c and was created for this thesis by makf.ng the /u0/3.3.b/l.yout directory and copying j.nko it components from the /uO/l.ib/spice directory.

To produce the netli.st for the spi.ce program, the user uses the SCALDsystem compfl.er to comp1l.e the design for "J.yout":

comp1l.e drawing- name 1 yout. To do this, the fol.lowi.ng J.1.nes must be i.ncJ.uded in the user's compj.ler.cmd fi.1.e:

directory '/uO/1.ib/lyout.lib1;

The 1.yout.lib fI1.e is a reference file sim1.lar to the user's workl.ng directory. Thj.s 1i.brary has also been added to the

/uO/scal.d/master.lib,

Scale

This program ;.s used to change the bastc scale factor of a user's design. the user invokes the program in the foll.owing manner:

scale scale- factor [-c control- file] design- file(s)

The usage of the control.- ffle opti.on and the desi.gn file list are as previousl-y expJ.ai ned.

The scale-factor varI.ab3.e i.s a real number used to mu3.tj.pl.y the dimensions of the design when scaling. For example, 1.f the user has a design where lambda = 2.5 mi-crons and they wi.sh to shr1.nk the destgn to the polnt where lambda

= 1.0 microns, the sca3.e fact-or Is:

scale-factor = 1.0 /2.5 = 0.4

The sca1.e program checks for the exi.stenr.e of the desi.gn files specl.fied by the user. If a ftle ts not found an error aessage i.s written t.o the user's terminal. and to a file named "scale.err" for reference. The program then con- tinues with the next design file in the lI.st. When a file

1s found, the program first ca1J.s rotate wI.th the appropriate scal.i.ng factor and then checks for its success- f ul comp1.etl.on. The reason for this is that the rotate program does not always perform correctly, espec1.aI.J.y on the caesar database and processing 1.9 stopped t-o avoi.d damage to the user's fi1.e system. If the rotate program has performed as expected, a second program called

"asc.i.j.2bi.nary" is used to translate the ascl..i. fi3.e produced by the rotate program Into a binary data base file. Thi.s file is then copied to design-f Il.e/lyout -bj.n.1 .l.

If the user attempts to interrupt the scale program i.n progress, the program asks the user if they wl-sh to continue and then responds accordi.ng1.y. However, 1nterrupt.s wi.1.1. only be servlced before or after the processing done by

rotate and ascl.l.2bInary.

checkterm

As mentioned previously, checkterm is used to reset ter-

minal. features if the user is communicating through the VAX

system. Checkterm sitnpl y queries the she1 1 for the terminal

line being used and if that line is /dev/ttya, issues the

command: stty dec tandem tabs

This command sets the shel.1.'~ tecognj.tion of the vt100's special characters (such as the de1.et.e key), instructs the

SCALDsystem to output the XON~XOFF characters as appropriate, and causes tabs to be expanded into spaces.

There are no arguments suppJ.ied to the checkterm program for its execution. CHAPTER 6: DESIGN EXAMPLES

This chapter presents three designs which i.ll.ustrate the faci.1ities made accessib1.e by combl.nj.ng VAX and SCALDsystem resources. The first design i.s an i.mplementation of the

Mead and Conway traffic 1.ight contro1.ler [12] using the peg design program to compile a hl.gh-level state descriptl.on of a programmab3.e logic array (PLA) used as a finite state machine (FSM). Thj.s i1.J.ustrates the use of the make- p1.a program, the communications I.l.nk, and the SCALDsys tem's vax2vali.d program which were developed as a part oE th3.s thesis project. It is also intended that this example should provide the user with an understanding of the tech- niques used to realize an FSM as a part of an 1-ntegrated cftcuit design. The section inc3.udes a full-color plot of

the FS41.

The second example -1.ll.ustrates the usefulness of the

Stanford cell. library (fnstal3.ed on the SCALDsystem as the

"cell." library) by constructing a dynamic random-access memory subsystem through the use of basic ce1J.s in the

1.j.brary. These ce1J.s include the memory element ttse1.f

(RAMPAIR), an interface cel.3. (INTERFACEPAIR), an address

cell (ADDRESS), and a shift regi.ster (SHREG) for handl.ing

sequentJ.al1.y generated column addresses. This exampJ.e al.so

hCgh1ight.s features and functi.onal operat tons that are not weJ.3. documented 1.n the 3..i.brary1s reference source [14].

Each basic cell. and the examp3.e subsystem is shown i.n a color plot with an accompanying circuit schematic which details logical operat.l.ons.

The final example is used as a demonstration of the scale program which was devel-oped for this thesis. The

SHREG ce1.1. introduced tn sect1.on 6.2 i.s used so that the reader may compare the two pJ.ots. Th.i.s exanp3.e wi3.1. also discuss the uses for whj.ch the scale ptogram was originaJ.ly tntended and Lts possible appl.i.cations and 1.i.ml.tatI.ons.

6.1 Finite State ?lach.i.ne Example

As the functions implemented by integrated cj.rcui% designs become j.ncreasingl.y compJ.ex, chip real estate becomes much more valuable. Another important factor is the touting of compl.Lcated i.nterconnections. For these reasons, structures which ate reguJ.ar in the3.r deslgn topo1.ogy are preferred over so-called "random logic" sttuctutes. One of the most useful reguJ.ar structures is the PLA. In addi.tion to the PLA1s ability to I.mpJ.ement booJ.ean sums of products expressions, t may also reaJ.i.ze the FSM by encodi.ng present-state information tn one or more outputs and feedi.ng these outputs back i.nt.0 the PLA as i.nputs for decodi.ng. In this way, comp1.e~ operations encoded as state transi.tions can be i.mp3.emented wi-th compact, regu1.a~ structures which require minJ.mal interconnection routi-ng. As an added bonus, the PLAs generated w3.th the make- p1.a program are matched f.n pitch to several cel1.s Cn the Stanford cel.1. library which

Imp1.ement IBM's ].east sensItj.ve scan design (LSSD). This Is a testability technique used to link internal state bits of the PLA into a shfft register to be read out for exam3.nati.on and/or modification. This e1.J.minat.e~ the need for mu3.tipIexj.ng schemes or large numbers of extra pj-ns on the chl.p. Another benefit is a separati.on of the data path found in the FSM impl.ementation of a PLA, which aI1.ows the control circuitry of the FSM and the data path to be tested

Independently.

The FSM of this example i.s used to control. a traffic light at the i.ntersecti.on of a farm road (assumes very light to moderate traffic) and a hi.ghway (re3.ativel.y heavy traffic). Highway traffic J.s gi.ven priority, be3.ng stopped only when traffic 1.s detected on the farm road. The hi-ghway light remains green untll after a signal i.nd1.cat.e~ that a long time period has exp3.red and a second signal indi.cates that roadbed sensors have detected cars on the farm road.

Once on of these events i.s detected, a timer is started and the hi.ghway light turns yel.1.o~. The FSM t-hen waits unt.f1. another signal. i.ndicates that a short t3.rne perf- has expired and then turns the highway light red and the farm road light green. The system starts the ti.mer agai.n and waits until a sfgnal indicates that. a long time period has e1.apsed or there are no cars left on the farm road.

Once the FSM detects eI.ther one of these two events, the

farm road lights are cycled to ye1.J.o~and the timer Is again

started. At the end of the short time perj-od, the farm road

lights turned red and the htghway lights are turned green.

The timer is again started, placI.ng the FSN in its i.nltI.al.

state.

The first step in designtng the PLA is to define the

inputs and outputs of the PLA, and the states and t.he.i.r

transitions. The fol.lowi.ng signa1.s were defined by Nead and

Conway:

C (input)

This signal. j.s true when the roadbed sensors detect

the presence of cars on the farm road.

ST (output)

The ti.mer 3.s started when th1.s sfgnal 1s true.

TS (input)

This si-gnal. is true when the ti.mer has reached the

end of the short tI.me perlod. TL (input)

This signal. is true when the timer has reached the

end of the long time period.

HL- 0 HL -1 and FL- 0 FL -1 (outputs) These are 2-bit bfnary words used to encode the

colors of the highway and farm road signals respec-

tively. As an example, the hi-ghway lights are

coded by:

(HL- 1,HL - 0) = (0,O) green

(HL -1,HL - 0) = (0,l) yellow

(HL- 1,HL - 0) = (1,O) red

The coding for the farm road lights is identical..

HG HY FG FY (states)

These ate symbol.1.c notations for the states of the

FSM. They are: Highway Green, Highway Ye1.1.o~ and

Farm road Green and Farm road Yel1.o~.

The 1.ogic for all. of the above signals is positlve true

(asserted h3.gh). Note that the state definl.tj.ons for a red highway or farm road traffic stgnal. are impl.J.ed by the FG and HG states.

The state dl.agram and the state transl.tI.on tab1.e for the light contrc,l.l.er are shown in ftgures 6.1 and 6.2. FIGURE 6 .1 LIght controJ.J.er state diagram

-- Present Inputs Next Outputs State State ST? -.

HG (C)and(TL)=O HG I Green Red No (C) and(TL)=l HY I Green Red Yes

HY TS-0 Yel.1.o~ Red No :: 1 Ye1.l.o~ Red Yes (E)o r( TL) =O Green No " (F)oT(TL)=I 1 1 FY Green Yes -- Ye 3. ].ow No IiG Yel3.o~ Yes

FIGURE 6 .2 Li.ght controller state transtt Con table Note that these descri.ptions come direct1.y from the foregoing treatment of the conttoI..l.er. Later, during the design of the peg program's input file, practical con- stderations w.i.lJ. requi.re the addttion of four new states.

1apS.ementatj.on Of An FSM Using Make-pla

Havlng defined the signals of the system and the state transitions, the next tep 1.s to transl.ate th1.s 1.nformati.on into a l.i.gh-level. desctj pti.c,n which i.s unders tandab1.e to the peg(CAD1) program. The foJ.1.owi.ng descr.ipti.on first defines

the i.3put.s and outputs to be used by the machi.ne. The RESET

input is a signal. 1nternal.l.y defined by peg whose assertion

causes the FSM to jump to the fi.rst state on the Ji st (the

START state in the example below). States are defined by

thei.r name and a 1.J.st of signals to be asserted (positl.ve

log1.c). Those s1.gnal.s not J.isted as bei.ng asserted are at

ground potential.. Fol.l.ow1ng the J.J.st of assertl.ons are the

conditions under whlch a state transttion 1.s made and the

state to whJ.ch the FSM ~1.11.jump. Note that the final. 1-i ne

in the description i.mp1.ements the state transltl.on of FY to

HG

The user of the peg program, shou1.d be aware that. the

FSM is i.mp3.emented as a !Inore model., wf.th Its outputs

deftned onJ.y by the present stat-e of the machine. 'In t-his example, the FSM described by Mead and Conway 1.s based on the Mealy model. FSM which defines the outputs of the FSM terms of both the present state and the present input. The user of peg may overcome this limitation by defi.nl.ng addi.- tional states for the machine whi-ch are reached when the proper change 3.n input i.s detected. In thls example, the additional. "INIT- " states were defined to imp1.ement the ST (Start Timer) signal. Thfs signal is asserted on1.y when an i nput signal initiates one of the fo1.J owtng transit.i.ons :

The reader shou3.d refer to the state diagram in figure 6.1 for the Input signaJ.s which cause these trans.itl.ons. The foll.ow.ing 1.i.sting I.n figure 6.3 is that of the descriptj.on used by the peg program for th1.s FSM example.

The description of the FSM (a file named peg.input) was submi.tted as the input for the make- p1.a program devel.oped as a part of this thesl.~. The make- p1.a program uses several. design programs and the cCf2ca filter to produce

LED-compat.ib1.e PLA structures which may be used as FSMs. --Traf f .i.c light control.1 er example. Discussed in Yead & --Conway1s "Introduction To VLSI Systems, pp. 85-88.

INPUTS: RESET C TL TS;

--Where C is a pos. true s.tgna1. fndicating farm road traffic - - TL is a long time-out signal from the counter - - TS is a short time-out signal from the counter

OUTPUTS: ST HL -0 HL -1 FL -0 HL - 1; --Where ST is the start tjmer signal - - HL 0 and HL 1 code the highway signal color - - FL-0- and FL-1- code the farm road signal. color Start: GOT0 INIT- H - Green; Start Is the RESET state

ISIT- H -Green: ASSERT ST HL -0 HL -1;

H- Green: ASSERT EL 0; CASE (C TY TS) ? ? 0 => H -Green; ? 0 ? => H Green; 1 1 ? => INIT -H -~e1.1.o~; ENDCASE => H -Green;

INIT- H -Yel1.o~: ASSERT ST FL -0;

ASSERT HL 1 EL 0; CASE (C TL TS)- ? ? 0 => H Yel.1.o~; ? ? 1 => INIT -F -Green; ENDCASE => H- Ye1.l.o~; INIT- F -Green: ASSERT ST HL -1 FL -0;

F- Green: ASSERT HL 0; CASE (C TT TS) 1 0 ? => F Green; o ? ? => INIT -F -~el1.o~; ? 1 ? => INIT- F - Yel.1.0~; ENDCASE => F -Green; INIT- F - Yell-ow: ASSERT ST HL 0; GOTO INIT -H -Green;

FIGURE 6.3 ESM descripti.on for the peg program The resultant PLA wIl.1. include a1.1. of the signal names ori- ginal1.y defined by the designer, whlch wfll be d€spl.ayed aJ.ong with the design when edited by the LED program. In addition, the signals generated by the peg program whj-ch are used to identify the states of the machine will. also be displayed. These labels are used to ai.d the designer's interpretation of the machf.ne generated structure. The PLA is output. at a scale of lambda=2.5 mJ.crons so that the design is compatib1.e with the Stanford cell library's LSSD cel.1.s. The command 3.J.ne which produced thCs examp1.e i.s:

make- p1.a peg.input light- fsm

Notice that the PLA desi.gn produced i.s ?.n tpl.als 3icJ.s style which has clocked inputs and outputs placed on the same side of the PLA structure.

Summary Information from the peg program (in the fi1.e

peg.summary) noted that there were 4 inputs, 5 outputs, and

9 states. The output file (light- fsm) contained a total of

38,679 bytes in the CAESAR format.

Once the design was created, the val.idcom program was

invoked .I establ.?.sh a connecti.on to the SCALDsystem. The

ft1.e transfer was made usi.ng the command: This created a file of the same name on the SCALDsystem.

Near1.y 21 minutes were needed to downl.oad this examp1.e.

After downl.oading the design flle (placlng it i.n the home directory "/uO/nbl." ), the SCALDsysteml s vax2valfd

program was used to instal.]. the design for the LED program.

The vax2valld program created a subdtrectory named light- fsm

and p1.aced the design fIe i-n th-ls subdi.rectory wl th the

filename l.yout .l .l . An entry for this design was also

placed i.n the working directory named nbl..vlsl..

The final. stage in processing the desfgn was to edit_ it

using the LED program. The LED program's "write" command

was used to place a bi-nary version of the design i.nto the

lfght- fsm subdirectory. In effect, the LED program ls bef-ng

used here to translate from the CAESAR format to the LED

format. The PLA produced by these operations 1.s shown 1-n

f igute 6.4. As can be seen f-n the fi.gure, its occupied area

1s small, being somewhat less than 3.025~10-3 cm2.

In addition to the I.ncl.uding the user-defined Cnput and

output signal-s, peg automatl.cal1.y defines, and 1.abe1.s

signa3.s to be used for the encoding of state i.nfocmat1on.

The number of these lines depend, of course, on the number

of states which t.he FSM may obtain. For thts destgn, these 3 I

-0 UOE

ZOO. 0 _-

FIGURE 6.4 Light-fsm layout Cei1: LIGHTJSM Mirror: OFF Scale: Rotation: 90 T"i 212.65 t-- Mon Jan 20 22: 18: 48 1986 >- Val~dLogic Systems Inc. SCALGstar Plot Var. 8.0 r-^- .- -- 1 I j diffusion i _i L - . i 17 metal output. signa1.s (from the or-plane of the PLA) are labeled

OutStO* through OutSt3*. The corresponding Input si.gna1.s are labeled InStO* through InSt3* (the "*" appended to each of these signals is understood by mextra to denote local. node names). These signals were too small. i.n relation to the rest of the design to be shown on the plot. of figure

6.4. To ill.ustrate thel.r names and 1-ocations, numbers have been drawn on the plot output. beside each signal I.i.ne. The stgnals which correspond to these numbers are:

INPUTS (diffusion layer) OUTPUTS (pol.ysiIicon 1-ayer)

1. Reset 9. outst3*

2. C 10. outst2*

TL 11. OutStl*

TS 12. outsto*

InStO* 13. ST InStl* 14. HL- 0 InSt2* 15. HL- 1 InSt3* 16 FL- 0 17. FL- 1

To comp1.et.e the const.ruct.!.on of the FSM, the user must con- nect the outputs OutSt[0,3]* w1.th the respective state input.s InSt[0,3]*. Note t-hat t.hese two sets of sl.gna1. lines are on different layers (di.ffusi.on and pol.ysi.li.con) and must connected usi-ng buried or but-ting contacts. 6.2 RAM Subsvstem Exam~1.e

By using the standard cells avai1.abl.e from the Stanford l.i.brary, the user can easily build a dynamic RAM subsytem.

The overall. structure 1.s compact (this 320-bit example occupies an area of approximately 1.3~10-2 cm2 and prov-ldes interfacing for a standard two-phase c1.ocking scheme.

There are two ce13.s used for bit storage: a single, three- transistor memory el.ement, and a pair of these memory ele- ments stacked vertically with shared ground lines. A basic cell. j.s provided for column-sel.ect-lon with an opt.i.onal shift reg-lster cell. for hand]-ing serial.l.y generated co.l.umn addresses. Another basic cell. provides interfac-lng for the storage, inversion, and timing of data to be written to and read from each row of the memory system. It is left to the user to provide row-select addressing and refresh functtons.

These cells are described i.n more detail throughout the

following sections.

RAM and RAMPAIR

The RAM cell. utilI.zes three transitnrs to store Infor- mation in the form of charge. This Information i.s read (or written) through the Bi-o signal. 1.i.ne. The process of

reading or writttng Is determined by two other signal. I.i.nes

wh.i.ch are READ and WRITE, respective3.y. In readi.ng stored informat-ion, the stgnal Rio is precharged (to +5 voJ.ts) and the READ line is clocked. Inverted data j.s then read from the same Bi.o signal line, whlch has dropped to ground poten- tial if the storage transistor has 3 charge on i.ts gate, or rema1.n~ at Vdd in the absence of such charge. To perform a write operation, Bio is driven to the proper potentlal. and the WRITE signal. J.ine is c1.ocked. The J-tterature on this des-tgn cautions that both reading and wr-itl.ng operat.ions enta1.J. charge-sharing from the Bto 1.ine. The user shou3.d therefore est-tmate the amount. of charge used in stori.ng information onto the gate of the storage transj-stor and pro- vide the proper drive if many such transistors (such as a large array) are Co be accessed.

option all.^, the user may use an alternate versi.on of the si.ng3.e RAM cell.. This bas1.c cel.1. is referenced as RAMPAIR and is s-i.mply a vertical. stack of the RAM cell. wi.th shared ground J.i.nes. When construct1.ng the memory array, each of these cells are placed together hor1zont.alJ.y wl.th a 4 J.ambda overlap (each Bi.o contact cut i.s superimposed over its neighbor). The 3.ogicaJ. schemat1.c of the RAMPAIR ce3.1 3.s shown in figure 6.5 and its J-ayout in fi-gure 6.6.

ADDRESS

This cell is used to select a cojumn in an array built on the basi.c RAM or RAMPAIK cel Is, and to provtde the drive ORAWING-

CELL=RAMPAIR

LASTJODIFIED=Tue Dec 17 00: 04: 22 1985

FIGURE 6. 5 RAMPAIR logic Bio

FIGURE 6.6 RAMPAIR layout I:e13: i?At~.;~pAIFi 1Jtirr.cjr: OFF 'f? Scale: 9508.75 Fstotat ion: 0 i_.. , Sat 0%~2s 18: 45: 40 i985 2 Valid logic Systena fnr. 8CACOsfar Plut ker. 8.P for the READ and WRITE signal Li.nes. A negative-true si.gnal

(SELECT -bar) selects the array co1.umn on whi.ch read1.ng or writing is to be performed. Both READ -bar and WRITE -bar are also active-low signals. This ce1.3. J.s placed so that 1.t directly abuts the top RAM or RAMPAIR cell of the coJ.umn wi-th an optional 0.5 lambda overlap. This placement automa- tically abuts these cel.1.s in the horizontal. dtrection without overlap. Logic for the ADDRESS cell J.s shown J.n figure 6.7 and i.ts layout is shown i.n figure 6.8.

SHREG

This J.s an optional component of the subsystem whi.ch al.3.ows sequentially-generated column addresses to be used.

In addition to the input and outpur data signals (DATAIN and

DATAOUT) which propagate 1nformatl.on from one SHREG ce1.L to its neighbor, an inverted data output (SELECT- bar) is pro- vided to the ADDRESS cell.. These cells are placed so that they vertical1.y abut the ADDRESS cell. with a 4 lambda overlap. Since the SHREG ce1.J. has been matched in pltch with the ADDRESS cell., this ceI.1. abuts horizontal.1.y with no overl.ap. Logtc for the SHREG cell. is shown J.n figure 6.9 and Its layout in figure 6 .lo.

INTERFACE and INTERFACEPAIR

The INTERFACE and INTEKFACEPAIR cells are used to pro- vide the user necessary tJ.mJng, buffering, and prechargCng -3 WRITE

DRAWI&

CELL=ADDAESS LAST~ODIFIED=TueDec 17 00: 29: 53 1985

FIGURE 6.7 ADDRESS logic OOSB

oms

OOfZ

om?!

omr

FIGURE 6.8 ADDRESS layout Cell: ADDRESSJELL Mirror: OFF Scale: 346.49 Rotation: 0 Sat Feb 22 22s 44: 32 1986 Valid Logic Syetorne Inc. SCALDstar Plot Ver. 8.0 -- . r---.-...- . -- polysilicon A diffusion i .. -._ ------.---- r"""""""""" I I : j implant ,,,,,,,,,,,,,,,,,,,-~ ,,,,,,,,,,,,,,,,,,,-~ I cut CELL-SYREG- LASTJODIFIEO-Sat Feb 1 22~221401986

FIGURE 6.9 SHREG logic FIGURE 6.10 SHREG layout Cell: SHIFTREG Mirror: OFF Scale: 583.79 Rotation: 0 Sat 8 'CX Feb 16:52:40 1986 Valid Logic Systems Inc. SCALDstar Plot Ver. 8.0 ------. - .. ------! - -1 I polysi 1 icon i ! diffusion

.- .- - . .- " L L.-- -1 1.-.-... -.,--- 1 ,-"""""'------I I I metal I I I implant L--.--- I .---..------.---,,! cut (through the "signal" named PRECHARGE) for reading and writing informatJ.on to the RAM and RAMPAIR ce1.l.s respec- tively. The ce1.1. precharges the Rio signal. 1.3.ne during the first clock phase. During the second phase the EXTio signal. is written if the DRIVE signal I.s asserted hi.gh and prov.ides the re-inverted data output from the memory ce1.1. i.f the

SENSE si.gnal is asserted high. Both INTERFACE and

INTERFACEPAIR abut horizontal. 1.y wlt h RAM and RAMPAIR, wi.th no overlap. Logic for the INTERFACEPAIR cell used in thj-s examp1.e i.s shown in figure G.ll. Its layout is shown i.n flgure 6.12.

Constructlne The Subsvstem

The actual. work needed to piece together the various subcell. components of the RAM system J.s done through the use of the LED program. The first step is to coJ.1.ect the cel.3.s needed into the user's home dltectory to c1.rcumvent the problem of runnfng the Drc/~xtractprogram on the actual cel1.s themselves (see section 5.5). This .is done by editing a new design which has a name that the user will. recogni.ze as belongi-ng to the cel.1. of interest. The cell. I.s added and rotated, If necessary, before the LED program's "smash" com- nand i.s used to remove hferarchy. The cel.1. i.s then writ-ten out by LED to create an instance of 1.t in the user's di.rec- rory. At this point, the user shou1.d run t.he scale she.l.1. SENSE GND DRIVE

Bio

PRECHARGE

VDD

PRECHARGE

Bio

--DRAWING CELL=INTERFACEPAIR LAST-MODIFIED=M~~D~c 16 18: 00: 27 1985

FIGURE 6.11 INTERFACEPAIR logic t 8.L J.iai.~l-t ?*A;.: ht A '-t 1 i id IJ * 2 t 8

FIGURE 6-12 INTERFACEPAIR layout Y Ce 11: ;p)'rERF .bCE.-CE!-i.. b!irror\: OFF I Scale: :305.!54 fiotatiof*: 0 I..- .-.\ $3: Dee 5 1 $9: 02: 36 1985 X valid L~gi' !&Y/b$e~XC. SChLD.t.P 6.0

-_-_-s-..- --.PC' f*s-*--<...- *"*.# -, implant I \

-_-._IIi,.,.."-**.--*.-A "?. " - 4-I \ .. -.-.c ! cut I L.- - .-. .-:""a script if the design Is t~obe based on a vaJ.ue of lambda other than 2.5 microns.

Once the design ceJ.3.s are scaled properJ.y, the process of building the memory array begins. The easiest method of doing so Is to add the RAM or RAMPAIR cell to the subsystem design. This cell. Is then repeated in an array using the

LED array command. To create this examp1.e array, the

RAMPAIR cell. was picked as the "current cell." (by centering the crosshairs over the cel.3. and pressing the yelJ.ow puck button), and the command:

array 16 10

was given. Thi.s produced the array of RAMPAIR cells. The

INTERFACEPAIR and ADDRESS cells were added to the destgn and

repl.1cated by using the array command aga1.n. To produce an

array of the INTERFACEPAIR cel.1. in the direction of the y

axfs, the command used was:

array 0 10

For the 16 ADDRESS ceJ.1.s needed, the command used was:

array 16 0

This produced 16 copfes of rhe ADDRESS cell fn rhe direction

a£ the x axis. These two arrays were added to the mal.n memory array by

zooming In to the area of contact and connecting the signal and power lines of one cell. out of each array to the

appropriate signal or power 1.ine of the mai.n memory array,

using the LED "move" command. The rest of the connect3.ons

aligned themselves automatica1l.y.

Operatlonal Consideratj.ons

Use of this system requtres the user to provide some

amount of "external" control. J.ogic. The cJ.ockfng scheme

used to synchronize the sysI!em1s data and control signals Cs

based on two-phase clock signals whl.ch must be qualified by

the user. This means that such sJ.gna1.s such as the

PBECHARGE signal used by the INTERFACE cell shou3.d not be

actl.vated every time the second phase of the system's cJ.ock

occurs. Instead, these signals shou3.d be qualified by the

occurance of two events, namely during an i-ntended operation

on the memory array or during a refresh operation.

In accessing e1.ement.s of the array for read, write, and

refresh operat.tons, the i.nt3.mat.e re1ationshI.p between the

Bi.o signal. used for accessing the i.nformat.f.on and rhe

storage transistor to which it is connected requl.res the

user to read or write who3.e co1.umns at a tCme. During a

read operatton, a single bi.t nf tnformatlon can be selected by using a simpl-e decoding (seI.ectJ.on) scheme. However, during a wrtte operation the whole co3.umn must be read, the bit of interest modified, and the whole column rewrI.tten.

The INTERFACE and INTERFACEPAIR ce1.l.s provide a storage capabi.lity whI.ch will buffer informati.on which is not modif ied long enough for the modif tcatfon process to comp1.e t e.

The logic diagram For a dual-bit memory system i.s shown in figure 6.13. The I.ayout for that system 1s shown in figure 6.14. The fu3.1. 320-bit subsystem Is shown in bl.ock form In figure 6.15 and i.J.l.ustrates the overlaps of each of the basic cells.

6.3 Scale Program Example

This example shows the effect. of the sca1.e program, which was written for this thesis to a1.l.o~ the designer to alter the size of the cel.1.s found .i.n the Stanford cell. library. This program may also be used to reduce (or enlarge) the size of those designs produced using the VAX system's design tools such as tpl.a, mkpl.a, and p1.a~.

The cell. to be scaled s;houl.d be 1.n LED'S binary format..

Those ceJ.1.s wh-tch have been downJ.oaded From the VAX system shou1.d be read us.tng the LED program and wrttten back out t.o

perform Ehe trans3.atJ.on (see the ftrst example Cn sect.ion DRAWING

CELL=MEMORY

LASTJ4OOIFIEO=Tue Oec 17 01: 22: 54 1985

FIGURE 6-13 2-bit MEMORY logic to-

Ou% ioms

FIGURE 6.14 2-bit MEMORY layout Cell: MEMEX Mirrorr OFF Scale: 288. 12 Rotation: 0 Sat Feb 22 23: 12t 35 1986 'Lx Valid Logic Systame Inc. SCALDstar Plot Vor. 8.0

. - .. .- ... .. --" I----.-- 1 I ! polysilicon 1 diffusion i-- 1 i- .. .. ._. d r""--""--'------r------7 I I j implant i---.--i I------? FIGURE 6.1 5 MEMORY layout Cell: MEMORY Mirror: OFF Scale: 100.20 Rotation: 90 +ix Sat Dec f4 22: 36: 16 A985 P Valid Logic Syatens Inc. SCALmar Plot Ver. 8.0

-- - - " -i 1 polysilicon ! diffusion

I-.. -.. b. ..-"-. I . --d -^"..---..- ' r" 7 I metal [r 1implant L. =" ,--..-----,- l.L 6.1). The use^ should note !-.hat. signal names are -not scaled and should remove these 1.f they are present. The example shown 3.n figure 6.16 is that of the SHREG cel.1. presented i.n the RAM memory sysrem exampl-e, scaJ.ed to a lambda of 1.0 microns. The command 1i.ne whfch produced the scaled version was:

scale 0.4 shif treg :-ow

T-0 01

yon

FIGURE 6.16 SCALE example Cell: SHIFTREG Mirror: OFF Y'T' Scale: 1457.89 Rotation: 0 Sat Feb 8 16: 58: 58 1986 Lx Valid Logic Syeteme Inc. SCALDstar Plot Var. 0.0

-. .- -- .- -- . .- . ---I i I I polysilicon I 1 diffusion i ...-A I i r___l_ ,.""""--"""""' I I I 7 metal I i implant L _-A iI-,-.-,,,,,,,,,,,,,,,: cut CHAPTER 7 : CONCLUSION

7.1 Benefits of a Dfstributed Design System

Before the deve1.opment of this distributed desi.gn system, those who wished to use the VAX system's destgn software were forced to create their design by hand. That is, designs were el-ther drawn to scale on paper and translated to the CIF format by the designer, or were created using the LED program and the "c<.f" comnand wl-th the user bei.ng required to copy thfs output by hand to the VAX system. Another 1.j.mtatI.on of the design process was that without an undets~andlngof the design ft1.e format required by the LED program, the designer could not move those designs created by VAX system software to the SCALDsystem.

Thi.s meant that. the desinger cou1.d not make use of the VAX system's functional. descrj.pti.on program peg, or the automa- tic layout generators such as the tpla, rnkpl-a, or pl.ap

programs.

As a resu1.t of the work done for th3.s thesis, those who wtsh to develop integrated cl.rcui.t desi.gns may now take fu1.l.

advantage of the f aci.1.i ti.es avai.J.ab1.e on both the

SCALDsystem and the VAX system. Thi-s all.ows the designer to

create desjgns using the LED program on the SCALDsystem

which incorporate regular structures such as PLAs and finite state machines. The install.ation of the Stanford cel.1.

1-ibrary onto the SCALDsystem now all.ows the experienced designer access to pre-tested circuitry, saving time and reduci.ng desIgn errors. The student who 1s 1.earnl.ng the subject of integrated circuit design for the first tlme may study these ceI.l.s, 1earni.ng technj-ques whIch have been pro- ven in Industry. The j.nstall.at.i.on of the l.yout library and modifications of the DrcIExtract command fJ.1.e have provided the SCALDsystem user with simu1.ation fac.i.1ities whJ.ch pre- viously did not exist.

The commun.i.cations ].Ink developed for these two systems offers several more dl.stinct advantages for the designer.

Deslgns created on the SCALDsystem may now be moved to the

VAX system where the superior re1.IabilJ.t.y and processing power of the VAX llj750 and sophisticated simul.ation fac.i.11- ties a1I.o~the designer to overcome the SCALDsystemls J.im1.- tations in these areas. In addition to these benefits, the

VAX system also provides a much larger secondary storage area, xeducfng the strain imposed on the SCALDsystemls storage facl.1.lties. The user may l.i.m.i.t deslgn files stored on the SCALDsystem to those which are necessary to the

1.ayout editing process, confining the J.arger s.imu3.at.ion

databases to the VAX system where storage i.s more readi1.y

aval. l.ab1.e . 7.2 Recommendations and Sunnested 1m~rovemenf.s

A1,though there has been a marked improvement in the design facilities avaj.l.able, there are several areas whI.ch must be considered for improvement. The work done throughout this thesis has been restricted by a "make-do" situation, using only the equlpment present1.y aval.lab3.e.

Many of the improvements which wi1.1. be suggested here depend on the purchasing of equipment upgrades and additional far.1.- lities. These 1.mprovements will. be listed i.n the order of their importance.

Inproved Processing Support

The SCALDsystens present1.y in use at this department are lialted in processing power and are prone to software failures. These fai-lures are largely due to the 1.imited size of physical. memory installed Cn the machines and nay also occur because of errors in the translation of the UNIX system from its original. 1.mpJ.ementation on the VAX series of computers to the mtcroprocessor-based SCALDsystem. The

SCALDsystem is extreme1.y 1.l.m.ited f.n i.ts hardware expansion capabl.ity, having on1.y ten opentngs aval.1abJ.e for the

i.nstalJat~.onof addtt ConaS cl.rcult boards. Four of these

ten slots are present1.y occupted by 512k memory boards for a

total of 2 megabytes of RAM memory. On1.y one other slot Js avaflable for an opt1.onal. accessary. In the case of the

1nach1.ne used for thJ.s thes ts work (BOBCATSl), thfs slot 1.s occupied by the UNIX Termtnal Board (UTB) interface whi.ch I.s used for the RS232 commun~.cattons. The second machtne

(BOBCATS2) uses this slot for Its Peripheral Interface

Board (PIB), which provides i-nterfacing for Versatec e3.ectrostatic plotters, IBM System 370 computers, and VAX serIes computers. The rest of the slots available are popu- lated by essentl-a1 hardware equi.pment such as the disk and tape drive controI.l.ers, vfdeo contro1.lers for each of the two screens, and the cpu board. Since usable slot space ts at a premium, there wi.1.1. undoubtab3.y be compromises in any upgrade.

One possible upgrade (which Is strong1.y recommended here) is to trade i.n the four 512k memory boards and the

UTB from the BOBCATS1 machine for four 1 megabyte memory boards and an Ethernet controll.er. The Ethernet. control.3.er board i.mplements the hardware interface to the Ethernet com- municatfons system. The additfonal memory will. greatly

Improve both the reliabt1.ity and processing speed of the

system and the Ethernet i.nterface wtl.3. a1.1.o~ the effeci-ent

transfer of data between systems (ar 10 megabi.ts/sec).

For the BOBCATS2 machIne, the four 512k memory boards

should be traded for khree 1 megabyte boards and a second Ethernet contro1l.er board, retalni.ng the PIB for Its use as a Versatec p1.otter InterEace. Once the Ethernet boards are

Installed, the two systems wi3.J. be able to share resources such as the HP plotter software on BOBCATS1 and the Versatec i.nterf ace on BOBCATSZ.

The primary reason for the instalI.at!.on of Ethernet controller boards on these two workstati.ons is to prov.Cde an effeclent communications medi.um with another computer system such as a VAX. In our present si.tuation, the scheduling of both VMS and UNIX on the VAX 11/750 has caused compl.j.cati.ons

for those who wish to use the UNIX system for integrated cutdesign and those who depend on the VMS system for other types of research. Thi.s situation may be avo!.ded by

the purchase of a DEC MicroVAX 11 system whi.ch may be dedC-

cated for work on integrated circuit design, freetng our

present VAX system for other work. The MIcroVAX I1 system

may be ordered from DEC in a configuration whi.ch offers 6 megabytes of physical. memory, an Ethernet controlJ.er, and an

RA81 di.sk system (which offers hundreds of megabytes for

s torage). AJ.though the 4.2BSD-compati.bJ.e ULTRIX operat i.ng

systeln necessary for the support of our destgn t.oo1.s Cs not

current.3.y offered as a part of thls configuration, this

option 1,s expected to be avaj.l.able in the near future.

These suggested Improvements wi 21 a1 low the SCALDsys tern

to better handle processing requirements of the LED and Drc/~xtract programs, as well. as the requirement-s of the schema ti.^ capture and simufat ion software (one of the selling pofnts of the system). These arrangements wi.11. also provide unj.nterrupted access to VAX system si.mu3atlon soft- ware, slnce ULTRIX (UNIX) wlll. not have to be scheduled on this system.

Improvements For Plorting Facilities

There are several. reasons for uslng a p1.otter to 0btal.n a hardcopy output of a design. The most important of these f.s to present rhe designer wlth a comp1.et.e pi-cture of thelr circuit at an adequate resoS.utlon for the i.nterpretati.on of posslble design errors. Due to the 1.iml.ted slze of CRT di.spl.ays, a large deslgn cannot be shown wlth adequate reso-

1.ution. If the plotter can support a large enough page si.ze, most plot outputs may be useful. in the design process.

Another application for the plotted output of integrated cl.rcuit designs Is for the di.ssm1.natl.on and exchange of

informat.l.on, through progress reports and other corn- munl.catlons (such as a thests).

The ~P7470pl.otter Is inadequate for seri.ous desi.gn eva-

luatl.on, due to the smaS.l. si.ze of paper supported and its

.inabi.l.Cty to support mu1.t.I.pJ.e pens. Even the HP75xx series

of pJ.otters wi1.1. not provl.de the best qual.i.ty output. wi.thout better control. over the appearance of the 1.ayout. In thCs case, the plot image suffers due to the 1.nabil.i.t.y of the makeplot program to produce stipp1.e patterns for a pen plot.

\c'ithout a stj.pp1.e pattern to define the J.nterior of the

1.ayer geometries, the designer is more prone to mistakes since the plot is much harder to read (especI.al.1.y true in the case of large c1rcuj.t designs). The HP75xx series Is ab1.e to produce these patterns, but only If the p1.ot data has specif.ied a polygon as the plot j.mage to be drawn. The makepl-ot program outputs layer geometries as a set of ver- texes, which cannot be fil1.ed.

The best plotter to use for this type of work would be an electrostatic plotter capable of reproducing colors. fJithout. the use of co.l.ots, the complexity of most integrated circuj.t designs makes Ct extremely difficu1.t to extract use- ful informat1.on from the p1.ot.. At present, the versi-on of the makep1.ot program jnstal.1.ed on the two systems does not support e1.ectrostatic co1.or p3.otters. However, it should not prove difficu1.t to order a new version whj.ch does offer this support. Once this is done, the PIB may be used to drive one of the compatible electrostatj.~ p1.otters from

Versatec or Benson.

'In decj.d.i.ng which type of p1.otters to be used wi.th thi.s

system, the major c:onsI.derati.on wi1.l. of course be rhe cost of the plotter. Pen p1.otters wi3.I general.1.y be far cheaper than e1ectrostatj.c color pl.otters. However, the advantages of using the electrostatic type p3.otter such as a faster p1.ot output, and greater clarity may justify the cost. An e1.ectrostatic plotter is also versatil.e enough to be used for the reproduction of hJ.gh quality documents. UNIX provi- des several fac.i.lities for th3.s work such as text format- ters, several dozen font types, and graphics capabilltles.

Improvements In Documentation

Since the SCALDsystems produced by Valid Logic are st.i.1.J. quite new, much of the documentati.on originally distributed with the systems is incompl.ete, some of which is due to sec-

tions of the manuals whJ.ch were unavaiJ.ab1.e at the time of

printing. However, other areas such as informatl.on

regarding the UNIX system, various peripheral devices sup- ported, and r.apabi3.J.tJ.e~ of some of the deslgn software are entirely missing. A fu1.1. set of new documents should be ordered with spec.i.fic requests for:

1. Operating system detal.ls such as device drivers and

confi.gurat.i.on software.

2. Deta.ils of the Valid Resident Monitor and Versabug

software.

3. Explanations of software bugs such as the Drc/~xtract's Fnabil.ity to operate on 1.j.brary cel1.s and

the causes of operating system fai.lures.

The order for these manuals and 1.nformatFon should c1.ar.ify that we are operating an older model of the SCALDsystem

(=ode]. 6401).

Software Upgrades

A new version of the UNIX operating system has been out for some time now and should be i.nsta1.l.ed on our system.

Currently, we are using version 7.25.2 UNIX. The new ver- sion is 7.25.5. As previousl.y mentioned, it may be adv.i- sable to Install the color version of the makepl-ot program i.f an electrostatic color plotter is to be used. CHAPTER 8: BIBLIOGRAPHY

[l] Computer Systems Research Group, "UNIX Programmers

Hanual. 4th Berkeley Distribution, vol. 1," Department

of Electrical Engi.neer>ng and Computer Scfence, Unj-ver-

sity of Calif ornia, Berkeley, Calffotnj.a, 1983.

[Z] UW/NW VLSI Consortium, "VLSI Deslgn Tools Reference

Manual., Release 1.0," Department of Computer Science,

University of Washington, Seattle, Washington, 1983.

[3] Computer Systems Research Group, "UNIX Programmers

Manual. 4th Berkeley Distribution, vol.. 2," Department

of Electrical Engtneering and Computer Sci.ence, Uni.ver-

sity of Callforn.ta, Berkel.ey, Cal.i.fornj.a, 1983.

[4] Dei.te1, Harvey M., "An Introduction to Operating

Systems," Addtson Wesl-ey, Reading, Massachussetts,

pp 125 - 145, 1984.

[5] Va1j.d Logic Systems, Inc., "SCALDsystem Primary Hard-

ware Mafntenance Manual, " Mountain View, Ca1.j.f orni a,

1984.

[6] Valid Logic Systems, Inc., "SCALDsystem Peripheral

Hardware Mafntenance Manual," Mountain View, Caltfor-

nia, 1984.

[7] Valid Logic Systems, Inc., "SCALDsystem Manager's Re-

ference Manual.," MountaCn View, CaJ.i.fornia, 1984. Valid Logic Systems, Tnc., "SCALDsystem Manager's

Traj.n-f.ng Manual.," Mounta1.n View, CaJ.J.forni.a, 1984.

Va1j.d Logtc Systems, Inc., "SCALDstar Reference Manual.

Preliminary Information, ReJ.ease 8.0," Mountain View,

California, 1984.

Va1i.d Logic Systems, Inc., "SCALDsystem Reference Man- ual, vol. 1," Mountain View, Cali.fornia, 1984.

Choudhury, Niren, "1mpl.ementation of Basic Software

Tools to Start a VLSI Program at Ohio Un1.versit.y with a High Speed Para3.J.eJ. Mul.tl.pJ.i.er as an Example, "

Masters Thesis, ECE Department, Ohio Universi r-y, June

1985.

Mead, C. and L. Conway, "Introduction to VLSI Sys- tems," Addison Wesley PubJ.i.shi.ng Company, Reading,

Massachussetts, 1980.

Sil.icon VaJ.J.ey Software, Inc., "Pascal. Reference Man- ual, version 2.0," Cupertino, Californi.a, 1983.

Newktrk, J. and R. Mathews, "The VLSI Designer's Li- brary," Addison Wesley PubJ.i.shi.ng Company, Inc.,

Reading, Massachussetts, 1983.

Hewlett-Packard Company, "HP7470A Owner's Manual.,"

San D.tego, CaJ.i.fornj.a, 1982.

Hewl-ett-Packard Company, "HP7470A Interfaci-ng and

Programming Manual.," San Di.ego, Cali forni a, 1982. APPENDIX A: UNIX CSH COMMAND SUMMARY

The fo1.lowing sections provide a rather detailed look at the features and operatI.ons of the csh program. Due to the vo1.ume of material. needed to present the csh program I.n 1.ts entirity, the follow discussion is l.j.m.i.ted to those commands and operations pertinent to the programming done for th1.s

thesis. Those fnterested in further reading may consu1.t the

UNIX Programmer's Manual. or several. other books ava.i.l.ab3.e on

the market.

The default I/O environment for the user's terminal. l.s

defined by the fo1.J.owing names and thelr associ.ated fi1.e

descripters:

stdin 0

standatd Input- inStial.1.y defined as the terminal.'^

keyboard.

stdout 1

standard output- ini.tj.al.1.y defined as the

term~.nal.'scrt screen.

stderr 2

standard error- initially defined as the terminal 's

crt screen. The fl1.e descriptor is a number used both by the shel.1. and the kernel in i.dentifyi.ng the "ft3.e" (recall. that aJ.1.

1/0 is handled as data directed to and from Jes) These i.nitia3. values may be t.emporari3.y altered (redtrected) with the folJ.owing shell. "commands":

< name

This directs the sheJ.1. to open file "name" for

readfng Instead of the standard i.nput (st.d;.n).

Substitution metacharacters are recogntzed and

thej.7 directj,ves obeyed fI.rst.

> name

The fi.1e "name" is used as the standard output. If

the file does not exist, i.t wi.3.J. be created. If it

does exist, its previous contents are overwritten.

>> name

This redirectj.on is ident.ical to ">" w3.th the

exception that output 3.s appended to the f1J.e

"name" rather than overwrittlng 3.t.

command argument(s) I command argument(s)

Thi.s type of I/O redSrectJ.on is referred to as a

pi.pe. The standard output of the fi.rst command js

presented as the standard input to the second. The

second command i.s run concurrently wi.th the ftrst,

0btal.n.r ng f,ts f.nput as f t becomes avai l.ab1.e. A.2 Pre-def ined and Envfronment Varlab1.e~

The shell. maJ.nta1.n~ a set of variab1.e~ whlch are i.nI- ti.al.1zed by commands in the user's .cshrc and .1.ogI.n she1.J. scripts. These vari-abJes are used by the shell. to control. its default actions, to recei-ve arguments passed to shel.1. scripts and in some cases, to make -1.nformation about the user's environment avai1.abJ.e to programs.

user

This va;.€abJ.e is set to the user's log1.n name.

home

Thi.s var3.abl.e i.s set to the user's J.ogin (home)

di.rectory.

path

Thjs variable f.s set to a wordl.i.st whlch Cdent1fj.e~

dlrectorjes to be examined when searching for exe-

cutable program images typed as commands by the

user.

term

This variable ldent if ies the type of terminal that

the user is current1y operating. This value

corresponds to entries In the termcap(5) database

ftle.

StdtUS

This varlable is a numeric value whfch represents the status returned by the last command. If a com-

mand terminates abnormal.l.y, a value of 0200 (rhe

J.eadi.ng zero indicates an octal. number value) is

added to status. AJ.1. bui.J.tin sheJ.1. commands ter-

mjnate wlrh status=O upon their successful.^. comp1.e-

tion and status=l for an abnormal. termj.nati.on.

argv

Th5.s variab1.e I.s a one-dj.mensj.ona1. array used to

ho1.d command 1.Jne arguments passed to he shel.1.

script upon its I.nvocation. The value of argv[O]

is always set to ehe name of the Invoked shel.3.

script. A shorthand notation Is avaf.l.ab1.e for

referencing each e1.ement of argv by which "$1"

refers to "argv[l]".

A.3 Command Inter~retation

One of the most basfc and often-used functions of the

she1 J js command interpretation. Ini tlal ly, the user is

given a prompt on their terminal screen to indicate that the

shell is awal ting command input. The user responds by

typing the command and a list of arguments (or a null

argument) to be passed tn thar command. A command line has

the following form:

command argument (s The shell. uses an i-nternal hash tab1.e to 1.ocate the command among a set of previous1.y-spec1.f ted dtrectorjes, then starts the command and passes the arguments to i.t.

In addition to 1.ocating commands represented by programs residing J.n the UNIX file system, the shel.1. aIso has a number of builtin commands. These commands are:

c d

cd name

cdir

chdir name

The ftrst and third forms cause the shell to set

the directory "name" as the working (default)

di.rectory. The second and fourth forms perform rhe

same function as the first and third forms.

wordl ist

echo -n wordl i st

This command writes the elements of "wordlist"

(which may be explicit or variable in their form)

to the shell's standard output. All shell substi-

tution and expanston rules apply. The second form

the same as the first, but does not append the

newline character to Cts output. exi t exi.t(expression)

The first. form causes the she3.1. to exit with the

value of the "status" var1abl.e. The second form

causes exltlng wtth the value of the expresston. foreach name (word3 ist)

end

The var1.ab1.e "name" js set to the value of each

element of wordl.i.st 1.n succesi-on and t-he sequence

oE commands betwen the foreach and i.ts matching end

are executed. The varj.ab1.e "wordJ.ist" may be

elrher a set of exp1.icj.tl.y-named values or may be a

var1abl.e array. Another bui 1.tj.n shel.1 command,

"continue" may be used to di-rect control. fl.ow

di.rect1.y to the foreach stafement prematurel-y,

skfpplng any cc,mmands 1.n between. Another buil.t in

command, "break" causes control fJ.ow to proceed

wj.th the statement fmmedCate1.y foJ.low1.ng the end of

the foteach I.oop. i.f (expression) command

If, after evaluation, rhe expression is true

(greater than O), then the command with its

optfonal argutnents fs executed. In this form, the command must be simple, that is, it must not

include other special shell directives such as

pipelinjng or a command list. if (expression) then . . . else If (expressCon- 2) then . . .

... endif

If the first expressi.on Js true, then those com-

nands up to rhe fi.rst "el.seW are executed. If the

second expression Is true, commands up to the

second "el.seV are executed and so on. onintr onfntr - onintr label

This command controls the shell's response to

recieved interrupt signals. The first form forces

a return to the default shell action, which is to

terminate the she3 1 script. The second form

instructs the shell to ignore all interrupts. The

final form direclts program flow to continue at

"Jabel" when an interrupt is received or a child process (programs executed by the shel.1) receives

an j.nterrupt.

set

set name

set name=word

set name=(wordl l st)

The first command form causes the she31 to display

the value of all previously set shell variables.

The second form initializes a shell variable by

assigning a null character to "name". The last

form defines an array wtth elemenrsof wordl i st

(note that the parenthesis are mandatory). A1 3

values to the right of an assfgnment are first com-

mand and £1 Jename expanded (unless quoted).

shift

shift name

The first Form f this command "shjfts" all ele-

ments of the variable array argv one eleaent to the

left (eg., argv[l] = argv[2], argv[2] = argv[3],

etc.). The second form performs the smae operation

on the variable array "name".

The expressions used 1.n the for loop are of the f o?..Iowfng for~ns: A == B

A != B

The first form tests for the equivalency of two

strings or numbers. The second form evaluates as

true if the variable B is not equal. to variable A.

-e filename

!-e filename

The first form is true if the file exlsts, the

second form is true if the file does not exist.

-d directory

!-d di-rectory

The fi.rst form 3.s true if the named di.rectory

exists, the second form is rrue i.f the directory

does not exlst.

Whi3.e readi.ng input, t.he she].,. recogn-tzes certa1.n metacharacters as dtrectjves to perform sel.ectJ.ve subs t1t.u- tions on those characters. In descrl.bing these metacharac- eers and himeanings, on1.y those re3.at.ed to programming work wl.1.J. be covered in detail.. The foJ.J.owfng substf.tutl.ons are descri.bed i.n the order in which they are performed by the shell.. HLstory substitutions are used to place words from pre- vious command Input into current. command Input,

Metacharacters recognized by the she3.J. a1.1.o~ the user to refer to prevl.ous commands (whjch are maintained by. the shell. I.n a hi.story I.i.st) and any of their arguments. This al.l.ows the user to re-edit a previously mistyped command and

Its arguments, or to re-Input a previous command wtth new arguments. Each command typed by the user is refered to as an event and i.s desj-gnated by an event number.

Al.1.a~Substi tut. ions

Two bui3.t.in commands, "a1.I.asW and "unali.as" aJ.1 ow the user to bu1.I.d their own personal. commands. After the shel.1. recognizes a command line Input, it is first parsed into dist1.nct words from left to right and the first word l.s checked to see i.f an a3.i.a~ exists for 1.t. If it. does, the shell. re-reads thl.s input to determine I.£ hfstory substi.r.u- tlons should then be performed. In doing this, the command line is treated as if .it were a previous command J.J.ne (for compatIb1.J.ity with the she1.1.'~ hi.story mechani.sm). The words t.hus formed are then used to rep3.ac.e the command and its argument 3.i.st. If no history is found, the argument list is passed unchanged. Ouotat4.ons Wlth ". ' . and /

The shell's defau1.t actJ.ons on the rernafnlng subst.i.t.u- tj.ons can be controlled by the use of these quotatj-on marks.

Their rneantngs are as foll.ows:

11 Any metacharacters which are candldares £07 fi1.e-

name substitution or 110 redirect-on lose this meaning

when enclosed w4.t.h double quotes. A command I.i.ne argu-

ment which contains whi re space (spaces, tabs, or

newl.i.nes) can also be enclosed to force f.ts j.nt.erpreta-

tion as a sing1.e argument. However, vari.ab1.e subs t i.tu-

tion does occur.

\ The single quote prevents interpretat4.on of a1.3.

shell metacharacters.

' The backwards quote mark is used to perform command

substitution, by executj-ng the enclosed command and

replacing It with Its output.

The Backstash Character

The backslash character, " \" is used to prevent the shell's interpretation of the metacharacter whf.ch fo11.ows

it. One of the most important features of any command language is the control. which the programmer may exercise over the l.anguagel s manipul.ation of variab3.e~. The csh com- nand interpreter all.ows a wide range of such control, as described below:

variab1.e processing

After the shel.3. parses the input line and performs

checks for possib1.e aliases, words preceeded by "$"

are treated as candl-dates for variable substitu-

ti-on. Thjs substi.t.utl.on may be control.led by the

backslash and quotations characters mentjoned

above. Input and output redirecti.ons are acted on

before varj.ab1.e~ are expanded. Unl.ess quoted by

doub1.e quotatj-on marks or modified by the :q

modffier, varJ.ab1.e~ ate subject to filename and

command substl.tutl.ons. Shell variable names may be

up to 20 characters long and must begi-n wlth an

alphabetic character a1.though numeric characters

a re al.l.owed.

$name

S {name)

In the firsr form, the "$" character causes the

shell to substitute the value represented by "name"

before reading f t as input. The second Enrm's cur1.y braces are used when the user wishes to

append characters to the substituted value. These

braces prevent the she1.1. from 1.nterpret1.ng these

characters as part of the variab1.e name 1.tsel.f.

$I/ [name]

This operation returns a numeric value which equals

the number of words in the variable "name".

$number

This form .is a shorthand for accesslng element

"number" from the argv vari.ab1.e array.

A1.1. of the above variable substj.t.utions may be modified by uslng a shell. construct known as the mndJ.fler. In the programmJ.ng work which follows, only the ":rW modifier I.s used. The effect of this modifl.er is to remove the ".xxx" portion of the filename (known as the file extenslon).

The foll.owfng variab1.e substi.tuti.ons are exempt from the effects of modtflers:

$$ Substitutes the process number (in decimal) of the

(parent) she1 1 process. ($0Substitutes a 1:l.ne from the standard input wi.thout

further substitut1.on.

Command Substftution

As prevlous3.y mentioned, enclosing a command i nsl.de of the back quote marks causes the she1.L to subst1.tute the out- put from the command. An addi.tl.ona1 feature may be j.mp3.e- mented by also enc1.osing a command substI.tut1.on with the double quote marks. Thls causes words to be separated wl.th new]-ine only; blanks and tabs are preserved with1.n a word.

Filename Substitution

An additional set of rnetacharacters are interpreted by the shell. as requests for filename substl.tut1on. These may be any of the foll.owing:

This character matches all. characters and i.s thus

expanded to all. fi1.e~in the current directory. If

proceeded by a path spec1.f icatj.on, all files wi.thin

the directory located by that path are subst1.tuted.

This chatacter mat-ches any single character of a

filename. Otherwise, i.ts operation i.s 1dentlca.l. to

the "*". The tilde charact.er Is a shorthand Eot the user's home directory (given by the she3.1. variable

"home"). APPENDIX B: SCALDSYSTEM PROGRAM AND FILE LISTINGS

This appendix sectton provides descriptions of those programs modified or created on the SCALDsystem. It a1.so presents 1lstings of the command and startup fj.3.e~created, and an examp1.e of a desJ.gn file modified by SCALDsystem programmj.ng for usage on by VAX system design software.

Most of the programs have aJ.ready been described i.n some deta.i.1 in previous chapters.

Before reading the programs in this secrion, the reader shou1.d fitst fami.J.iarlse themse1.ves with the materj.al. Jn appendi.~A. This material. has been condensed from the csh manual. section espec.i.al.3.y for thi.s purpose.

B.l SCALDsystem Program Listi.ngs

.l.ogj.n (SCALDsystem)

This is a modified version of the .login she3 1 program used on the SCALDsystem. As previously explained, this program is used by the shell to perform actions on behalf of

the user during the she1 1's initialization. The flrst seven commands define the user's environlnent (ie., their terminal character4 stics, name, directories to be searched for com- mands and mail, and their shell type. The next variable,

terminal, is set using a history substitution to determine Fob 8 17:46 1986 .losin (SCRLUouotrm) Pcsr I

# rcsidCl='$Haadert .los~n~v7.4 81/12/10 12143t31 root EXP $*/ f sccsidLl=*QO).lomin 1,3 (Valid) Heleacc 7.25 12/17/84*1 f # nodifled to check for users comuunicatina through VnX ttu t line. Bob Nobles Ohio Univorsit+j 1/30/86 rttr nou crt set me a ('uhoaa1') retenv USER SnuC13 setenv PATH ta/bint/usr/localt/u~r/bi~ srtenv HAIL /uO/srool/r~il/$USER setenv HOnE " setenv EXINIT 'set sh=/bin/cshe set teralnal='ttv\ if (6teralnal == /dev/ttra) then sttu dec tandem tabs echo ** ucho *$$* Uulcomm to thu VAX/VALID Surtum I#** vrtd i f the rty line t.he user is usjng. If the 1.1.ne is ttya, the user i.s using a vax communi.cati.ons ].ink, and the terminal. characterist1.c~are set to that of the DEC vt series of ter- minal.~. The next. two arguments, tandem and tabs, are used to enable the SCALDsystem's abi.1.ity to control. handshaking through the issuance of XON/XOFF characters and to expand the asc tab character Into spaces. Thl.s tab expansi.on J.s used so that files transferred to the VAX system wil.1 not be condensed, thus keeping the number of bytes reported for the

fi1.e the same on both systems. Thi-s Is simp3.y an error

checking mechanism. After settf-ng these terminal. charac-

teristCcs, the program issues the prompt:

*** We1.come to the VAXIVALID System *** whi.ch verifies I.ts recognl.tion of the VAX 1.l.ne.

.l.ogj.n (for the fict.i.ti.ous user "p1.ot term)

Thl.s shel.3. script i.s used for the j.nitl.al.i.zatj.on of the

fict.i.tl.ous user named "pl.otter" (see section 5.3). It first

checks to make sure that this user i.s 3.oggi.ng i.n on t.he t.er-

minal. port used for plottlng equipment (ttyc). If the port

is not correct, the user Is noti.fi.ed and the program logs

out. If the port is correct, the program uses the stty(1)

command to enable the SCALDsystemls Cssuance of the XON/XOFF

signals and warns the user to di.sconnect the terminal. from Feb 9 20t00 1986 .loam (for 'rlotter*)

4 rcsidCJ='SHeader~ .loSinrv 7.4 84/12/10 12:43131 root EXP $'i 4 r~coidCJ=~O(#)~losinlb3 (Valid) Ncle~cc7.25 12/17/84'1 sttv neu crt set me = ('whoaai') setenv USER SmeC13 retenv PATH tU/binl/u~r/locsl:/u~r/bin:/bin setenv HAIL /uO/s~ool/m3il/SUSER setenv HOHE " svtenv EXINIT 'set shr/ban/csh' set termrnal='ttu' it ($terminal 1s /dev/ttvc) then echo *' echo This **usere*should loain on ttvc ONLY1 losout else sttr tandea echo echo Uisconnect this terainzl from ttvc and reconnect echo to the \X line or 3nothcr SCALDsustem port. er~dif

#sake sure that users can read/uritc throuah /dev/ttmc the port and to reconnect. i.t t.o e1.ther the VAX 1.i.ne or another port. The she].]. scri.pt then sets the mode (see (8)) of the /dev/ttyc f1.l.e so that all. users may access it: for wrjti.ng (mode=666). Normal3.y the /dev/ttyc fi.J.els mode i.s read/wr.i.te Eor the owner and read on3.y for a1.1. others (modez644). The hpl. program wi.l.1. check for the existence of the user "p1.ot.ter" before a1.1,owJ.ng users t-o access thts 1.J.ne.

checkterm

This shell. script Is used to reset termina3. charac- teristj-cs for the VAX/SACLDS~S~.~IUcommuni.cations ].Ink. In form, this script i.s the same as the mndificatl.on made to the .l.ogin program discussed earJ.ier. The reason for thi.s i-s that. for some reason, the SCALDsystemls csh shel.1. ~51.1. reset terminal. characteri.stI.cs without noti.ce upon the exe- cutJ.on of a shel.1. script. Durtng the actual. execution of a she].]. script, this 1.s not an i.mportant matter. However, once the script Is fi.ni.shed and the user agai.n has c.ont.rol. of the shel.1, t-hei.r terminal. shou1.d respond properly.

This program is used by SCALDsystem software which was developed for this thesis work, but may be used by any user

for software developed in the future. In fact, it was for

thls reason that the code used in checkterm was written as a Jan 26 14:41 1986 checkterm Ps2-l~ 1

4 This script is used to t~kecare of bus tn VALID'S UNIX. 4 Termtnal sotttrl$s oridinallt: ~ctbu c,tt?r uhcn the user 4 1036 into VALID Iron WAX 3re ncsatad. Thts scrl~tchecks 4 for the VAX HS232 connectton ~ndtf found rcscts thc tcrmtnzl. # set ttr=('ttu') tf ($ttu == /dov/ttr~) sttr dec tzndcm tzbs exit separate shell scripr and not direct.1.y encoded into the shel.1 scripts which use it.

This shell script is used for the recovery of those files which have been reconnected to the lost+found di rec- tory by the fsck(8) program (this process is described in more detail in appendix D). These files are given filenames by the fsck program which begin with the "#" character, followed by the node number of the fjJe (see reference [3]).

To use the program the user changes t.he!.r di.rectory to

the l.ost+found directory and types:

The program begi.ns by using the UNIX fil.e(l) command to

garner a 1.ist.ing of a1.1. the files and rheir content types.

The fi1.e program produces an output of the Form:

Filename: type

where type may be one of the fol.1.owfng:

asci.J. rext

cnmmands text

data

di.rectory Jan 18 19:35 1986 fsckfilefx Page 1

Thas shell script is used to recover flies re-linked bu fsck to the losttfound directories. The user should call thls proaram uith losttfound 3s the present uorklnd directors. The user is shown a long lirting of ezch file and given its content type laaediatolr balou. If the user decides to oove the file they are asked for the ouner's nzmc and fsckfilefx roves that file (or director*^) lnto the ouner's home directory,

Bob Nobles Ohio Universltr 1/19/86 set arav=('filo 1') sot fn=$arsvEll shift set arts rot ouner set Inn . uhileO#arav > 0) set ans set our~er set i=SarsvClI if (Si == directoru) then set fnn='echo *Sfn8 I tr -d :' 1s -1 Sfnn echo " echo -n 'dir found,, move? ' set an$= ($<) if ($an5 == r) then echo -n 'owner? * set owner=($<) akdi r /uO/$owner/$fnn crtree $fnn /uO/$owner/$fnn -r Sfnr~ endif shift

set fn=$arrvC13 shift continue endlf If Oi == mmrtu) then set fnn='echo *$fnm 1 tr -d :' Jan 19 19135 1986 fsckfilefx

rm Sfnn shift set fn=SaravClI shift continue undi f

if ($i == data) then shift set fnaSarsvC11 shift continue endif

if ($1 == commands) then set fnn='echo 'Sfn' 1 tr -d 1' cat Sfnn echo '* echo -r~ 'remove? set ans=(S<) if (Sans == r) then rm Sfnn e 1 se echo '* echo -n 'move to: ' set owner=( S.:)

shift shift set fn=$ardvE13 shift continue endif

if 01=a ascii) then set fnn='echo 'Sfn' 1 tr -d 1' cat $fnn echo echo -n 'remove? a set arts=($<) if ($ans == Y) then re Sfnn Jan 19 19335 1986 tcckfrlefx Page 3

else echo '' echo -n 'hove to: ' sot ouner=(S,:) Stnn /uO/Souner/$fnn endif

shift shift set tn=SarrdvE13 shirt continue endlf and exit empty

executab1.e image

The fsckflJ.efx program does not check for the executab3.e type fi3.e~. The system manager shou1.d first scan for ~hese fI.les and remove them l.f found, si-nce the3.r Integrity J.s quest3.onabJ.e. As for the other types of files, these may be complete enough that the user may scan them for integrity and sal.vage as much as possib1.e.

Once the argv variable array has been set to the output of the file command (via rommand substitution) the program sets the variable fn (filename) to the first element in argv, which will be a filename. The argv array is then shifted to bring the file type reported by file jnto the argv[l] posi- tion. Next, the program moves into a while loop which checks to see if the argv array has any elements left to process before executing the rest of the code within the loop. If elements do exist, the loop begins be reseting the ans and owner variables to the null character. The file type is checked to see if it is a directory. If the check is positive, a new variable, inn, is set to the filename minus the rolon. This fs done by using the echo command to

pipe the fn variable through the UNIX tr(1) (translate)

program, which removes the colon. The program then performs

a long listing on the directory's contents (which will show the owner of the fiJ.es withf.n), and di.sp1.ays the resu1.t.s.

The user is then asked whether the di.rectory is to be moved or not. If it is, the owner's name is requested, and the program rei.nsta1.1.s the di.rectory In that owner's df.rectory.

The directory is removed from the l.ost+found directory. The program then shi-fts the argv var.i.ab1.e to brl.ng the next f i.3.ename into the argv[l ] posit.ion and resumes executi.on at the begl.nnj.ng of the whj.1.e loop.

'If a directory fi1.e type j.s not found, the program then checks for the "empty" ff.1.e type. The co1.on is again removed, and the tesu1.ting fnn var3.abI.e i.s used to remove the fi.3.e w5.thout question. The argv var.iab1.e 1,s shlfted to move the next fi.1.ename into the first element posi.sti.on and execution continues at the beginning of the whj.1.e 1.oop.

If both of the fi.rst two checks have fatled, the program checks fot a "commands text" file type. Agaln, the colon i.s

removed. The program then types the file on the user's screen and asks whether the ft1.e shou1.d be removed. If the answer is no, the program then asks where to move the fiJ.e

and p1.aces Jt 3.n the spec.i.fied owner's dtrectory. The argv

varjab1.e .s then shf fted t.wi.ce (the fi1.e type f.s two words:

commands text) and returns to the begi.nnlng of the whf le

1.00~. The final check made 1.s for the "asc.i.I text" fjJ,e type.

If positJ.ve, the program again removes the coJ.on and types the fC1.e on the user's screen. The user is then asked i.f the fi.3.e shou1.d be removed. Agai.n, j.f the answer I.s no, the user is then asked the owner of the file and the fi.3.e J.s moved to that directory.

Thjs program was orj.gina3.J.y named hpfil.ter.pas, and was created by VALID L0gf.c Inc. to filter the plot database pro- duced by the makep3.ot program. The output of the hpfllter program drives the hp75xx series of Hewlett-Pakard pen p3.ot- ters. The modified version of thfs program, hp7470.pas was created for this thesis project to drive the sma3.3.er hp7470 two-pen pJ.otter. It i.s th1.s modifi.ed version which J.s described here.

This program is i.nvoked by the command J.ine:

hp7470 p1.otf ile output- devtce where the pJ.otfi1.e is the fi3.e containing pl.ot data produced by the makeplot program and outpur- devi.ce Is the terminal. to whf.ch trans1.ated p3.ot data i.s to be sent (norma3.1.y

/dev/ttyc).

The main program begtns by checking the number of argu- Jan 19 23:43 1986 h~7470,~as Page 1

Cconverts a VALID tormat plot file to HP .-en plotter cooaands. Hoderatelr brainless, only eats correct forozt3

CUrltten by LKS) CHodified bu SA, 12/14/83, to do patterned lines3 inodified bu LCF, 10/?6/841 to do rotated text uith uindou cll~~insand flx patterned lines buss3 Ctlodified bm SA, 12/17/64, to do filled dots (nesative radius on an arc) and expanded tho T line to include fontr rotation# Justification I etc. Also took out 'UNKNOWN COnnfiNU' if forozt is bosus.3

Cnodified br Bob Nablcs~Ohio Univcrsit9jr 1/14/86 to drive the HP7470 series of plotters. nods include an added rotation of -90 dcsrecrt x a n d ti translat~onsto center rlot, direct 1/0 oFerations uith the rlotfile and teroinalt and ~rocessinsof coooand line 3rsurents. Additional cod e is added to alert the user to ren chanses and to sive the user a chance to alter the pen velocitr.) const rccrtr='QO)h~filter~~as 1.2 (Valid) Release 8,Ostzr 5/10/85'i tmpe point = record xl intederi mt integer; end i

transform = arrauC1+,311..33 of rezli i I a b cl 1x1 Ixl 1 d e f1 IYI = lul I 0 0 11 111 0 111 3

sccridl strinsiL803i ~enveltrtrindt103i (used to set Pen velocitr3

Pen-At t po~r~ti Ctells where the pen is ~t arlu alven tlgre, If the pen is UP, or the position is UNKNOUN, set t 0 Jan 19 23143 1986 h~7470,~as Paae 2

HAXINT3 comrandr Csinsle character command for the main loop3 ansuer: char; Cused if transfora command is found in the plot? 1 le since trartsforms are not surrorted uith this rr osraa)

tform t transformi Ctransform to use uhile plottins dizgram) ?lot-filer Cfile variable for plot data3 terminal : texti Cfile variable for plotter port3 lastpent intoaer) Cused to restrict unnecessarr pen chanses3 function Ea-Pnt(rtltrt2f point): boolcani

itellr if tuo points are eoual3 besin €9-Pnt := (rt1.x = pt2.x) AND (rt1.r = rt2,r)i end) rrocsdure Convert(ours: pointi VAK theirs: ~oint)i

Cconverts a point in our coordinate system (1/500 of an inch) to s point in their sustem (0.025au)> {Additional codina added to rotate the entire plot imaae -90 desreesr and to ~ro~erlroffset the plot on the rade.3 const HAGIC-NUMBER a 2,032; (1/500 t 25.4 / 0,0253 va r xru ~OXVOY:real; beain x I= tformClt1ILours.x t tfor~C1t21tour~~rt tformClr3li M := tformC2tlItour~.x t tformC2121tours~~t tforaC2r33i OX 1s -u t 2472803 OU 11 x t 2186.03 theirsex fa round(ox L nAGIC-NUnbEK); theirs.~:= round(or L HAGIC-NUHBER); end i rrocedure Go-to(~tt roint) i

€does to a neu point, then sets Pen-At) Jan 19 23t43 1986 hr7470.~ac, Page 3

Ccoordlnates in plotter units)

{The HP command torainator 'i' added for proper oFeration,)

Pmn-at t= P~J end i rrocedure Pen-Upi Crai~esthe pen3 basin urito(teruina1~'PUi')i C"' r added. end I rrocedure Pen-Douni Cruts the pen back on the paper) baain urite(ternina1r'PDi')i C'i' added.) end i procedure line-Trre(varaa: 1r1teSer)i Cchanges the llne pattern tnpe3 bmain urite(termina1~'LT')i if rrraa <> 0 then besin urite(termina1~'-')i urite(termina1traram:l)i urite(terminal~'~0,S')i mnd i writs(terrinalr'i')i end 8 rrocedure Plot-Linei J8n 19 23:43 1986 h~7470.pas Pase 4

€turns one line lnto HP format)

VIr rlcp21 point; ltl integer; stule-each-line t booleani

if NOT ooln(~1ot-file) then begin C See if stole each line > read(~lot-filerlt)l if (It > 6) OR (It < 1) then befin if It a -1 then It := 0 wlse if It = 273 then It :a 2 else if It = 682 then It 1= 3 else if It = 2175 then It := 4 else if It = 3135 then It := 5 else if It = 4383 then It := 6 else It 1= Oi end i rtule-each-line := THUEi if It 0 0 then line-tu~e(1t)l end else 8tule-each-1 ine := FALSE) if €0-Pnt(p1rPen-At) then 00-To (~2) 0188 if Eo-Pnt(~Z?Pen,At) then 00-to(r1) elso berlin Pen-UP i Oo,to(~l)i Pen-Doun i Oo-to(p2)D end i Jan 19 23:43 1986 hp7470,ras if stule-each-ltne then line-tu~e(O)i end) procedure Plot-Arci

€?lots an arc) const DEG-TO-HAD = 0,0174533i C21~1/180.0) ve r center : ~ointi (center of the arc) mtartt point5 Cstartinr point) tempt point; ifor calculztions in plotter coordinates) radius! intederi thetalttheta2: reali (beginning and endins angles, in deGrees) cue~tt reali {number of dedrecs swept b*~the arc) Procedure draw-cl rclei beain

startex := centerox t round(rad1us 8 cos(theta1 t UEG-TO-RAU))i starten t= center.9 t round(rad1us t sin(thet~1L DEG-TO-RAD)); convert(startttem~)i writs(terminalt'PUiPA',teur.x:lt'~'~teur~:l~i'i {'i's added,) suept I= theta2 - thetali it muept C 0 then ruept I= suept t 360.0i convert(centor~tea~)I uriteln(terminal~'PUIAA'~tem~~xt1t't'1te~~~s~l~'t'tsuevt~6~2~'i'~1 end i rerd(~lot-tiletcenter~x1cerIter~~tradi~s~thetal~theta2)i it radius < 0 then besin radius 11 IOi draw-circle1 rodiuu 1.1 Si drau,crrcleS end l 1 so drau-cl rclei rrocedure Plot-Textl 4ttodified to rotate all text an addtional 90 dedrees counter-clockwi~ob3 C~lotsa chunk of text on the plottzr € ANOLEt 0 t rotate 0 degrees counter-clockw~se 1 t rotate 90 dedrees counter-clockwise 2 t rotate 180 degrees counter-clockwise 3 t rotate 270 degrees counter-clockuise > conrt CONVERT-TO-Ctl = 0.00508i Cconverts 1/500 inch units to cr) v.r tt t point4 Cuhere text is to be plotted) angle! intederi slant: inteaerl ~izet integer) Cin our units) Justification: integari font t integer4 temrl, temp2: integer; temp t point) Ctext orisin? in their units3 height: real l {plotter onlr takes sizes in cm) widtht reall C2/3 of the hci5ht.p since char cell 1.5 1 width) auote-char: chsri Cbedinnina ch3r of ouoted string, e9 ' or ') ch t charl store: packed arrarC1..2563 of char; Cfor storrn5 label3 i t O.bZJ6i {number of chars in ~uotedstring) bedin mndle t= 08 slant 1= 0) Justification to Of font 1- Oj read(rlot-file~~t.x~~t.~)1 if NOT eoln(~1ot-file) then begin road(~lot-file~size)i rrreat read(~1ot-filorouote-char); until (ouote-char IN C"","'I) OR eoln(p1ot-file); if eoln(r1ot-file) then besin ouote-char t= chr(l)l Jan 19 23:43 1986 hr7470,ras Past, 7

readln(~lot,tlle)i end l end else besin readln(~lot,fale)i readln(p1ot-fileranglen slantt sizct tearlt tea~r?); readln(p1ot-t~lo~Justificationtfont)) auote-char := chr(1)i end i convert(pttterp)i heaaht 11 size t CONVERT-TO-CH t tforrEltl3i width heiaht 8 0.6666671 €now set the characters and plot then)

rereat it NOT eoln(~lot-file) then brain read(p1ot-fi1etch)i i t= i t II storeCi1 t= chi end) if ch auate-char then bedin i i- i - li iassuae ouote as not doubled) it NOT eoln(p1ot-file) then besin read(rlot,tile~ch)i if ch = ouoto-char then be91n {double ouotes -> auote char) ch := ' 'I i i t 1i iue uere uron9.. . admit it3 end else ch t= ouote-char! Creallu the end of strins3 end I end I until (ch ouote-char) OH (eolnfplot-fi1e))i if not eoln(~lot,file) then Coat rest of llnet it an U) re~dln(~lot,t~le)i itoreCitl3 := chr(3)i Cetx terminates strinas tor the plotter) urite(term1nal~'PUIPA'ttem~~~::11~t'~te~~~~:lt~i')~ write(termina1r'DI')~ care anale of 0141 urite(term~nalr'0~lS')f lr5l urite(terminalrB-lt0i')i 2t6t write(terminalt'0,-ii')t Jan 19 23143 1986 hp7470.r~~

3r7I write(ternir~alt'lr0i')i otherwise! urite(tersino1r'i')i end l if andle > 3 then uidth I=-width) uriteln(terminaAt'SIf~width:5:2t't'~hei~ht:5t2~'j')i

if ~urtification= 2 then write(terminalr'L07i')i wrrte(tmraina1,'LB')i tor J I- 1 to it1 do write(terainaltrtoreCj3)s uriteln(tormina1)) if Jurtification = 2 then writmln(terainal~'L0~')i rmn,at.x t= HAXINT) mnd 1 rrocoduro Plot-Rotate-Mirror-Texti Crlots a chunk of text on the plotter) iilodifiod to rotate text an additior~al 90 desrees counter-clockuise.> const CONVERT-TO-Ctl 0,00508i iconvcrts 1/500 inch units to cu> VPr rotation I intoserl rt t point? (where text is to be plotted3 size t inteaeri {in our units) temp : point1 (text origin, in their units3 height: real) {plotter only takes sizes in cm3 uidth: reali i2/3 of the heiahtr since char cell 1.5 $ uidth) ouote-chart chari ibeitinning ch3r of auoted string, og ' or '3 ch I chari store; packed arrarC1,.2563 of chari Cfor storins label3 i,J : 0..256) {number of chars in auoted strind) besin read(~lot-filet~t~xt~t.~tsize~rotation)~ convert(~t~tem~)i heidht I= size 8 CONVERT-TO-Ctf t tforuC1,13i width t= height 8 0.6666671

C rotation :a Jan 19 23343 1986 hr7470.r~~ Pase 9

rotate 0 dearees counter-clockuiso rotate 90 degrees counter-clockwise rotate 180 degrees counter-clockuise rotate 270 degrees counter-clockwise mirror about Y axis, then rotate 0 dedrees counter-clockuise mirror about Y axis? then rotate 90 drdrees counter-clockwise mirror about Y axis, then rotate 180 dearees counter--clockwioe m1 rror about Y axis, then rotate 270 desrees counter-clockuiso

mirror first (flip, ie, the string *.Us flipped looks like this1 *Wea), then rotate. > write(tsr~in~l~'PUiPA~~tea~~x:l~~t'~te~~mtl~iDI~i('5' added.) cere rotation of 01 urite(tsrminalt'0~l')i 11 write(terminalrl-lrO1)i 21 urite(terminalt'0~-14)j 31 urite(terminalrll~O~i 41 bediri writo(teruinal,'0t11)5 uidth := -uidthi end i St bedin urite(teruinal9'-l10')i uidth 1s -uidthl end 1 68 be#in write(teruinal,'O,-l')i uidth I= -uidthi end i 71 besiin write(terainal~'1,O')i uidth t= -uidthi end l otheruise:urite(teruinal~'l~O')i endi uriteln(ter~inal~'iSI1~uidth:S:2t'~',heiaht:5:2~'5'~5

Cnou det the characters and plot them) rereat read(~10t-file,ouote-char)i until ouote-char IN C'"'r"' 3 1 i t- Oi rorert read(p1ot-frle~ch)i i I- i t li rtoreCi1 I= chi if ch = auote-char then begin i ;= i - 18 {assume cauote is not doubled) if NOT eoln(p1ot-file) then bedin read(~1ot-fi1etch)l rf ch = ctuote-char then beain {double auotes -> auoto char) ch := ' 'i i :a i t ti Cue uere wrens.., admit it3 end else ch t= auote-charl Croallu the end of strind) end i end l until (ch = cauote-char) i if not eoln(~1ot-file) then (eat rest of line* if an u > readln(p1ot-fi1e)i storeCitl1 i= chr(3)i Cetx terminates otrinas for the plotter) write(termina11'LB')i tor J I=1 to ~t1do urite(terminal~storeCJ1)i writeln(termina1)b pen-atex t= HAXINTi end l r rocedure Ini t i (Do ansthind necessary to initialize the ~lotterrand oct the rnitial the pen position3

VIr escape i chari ir~tintoserl (for initiializins transform) beain for i 1- 1 to 3 do for J 17 i to 3 do tforaCirJ3 t= 01 tCormCltl1 I= i.Oi tformC2r23 t= l00f Jan 19 23143 1986

Cnour urite the prefix uhich turns the plotter ont and set handshakina to CNKL-S = XOFF, CNTRL-Q = XON3

(The followin9 llne has been modified to be cou~atibleuith the HY74701s smaller buffer size. XOFF is nou signaled ~t 128 bytes.) uriteln(ter~inal~esca~et'~I128IOil7f')i uriteln(terrinal1esca~e1'~NOi19:')~ uriteln(terminal~'SP1i')i iselect rcn 13 end) rrocodure Uindu~i

Cturns the plotter back off) var esca~etchari beain uriteln(terainalt'SP0iDFiJ)i .scare chr(27)i uriteln(terminal~ercapetl.Z')i end i r rocedure Change-pen;

Creadr a pen number and changes the plotter pen to that number3

CHodifiad to lnclude 3 'pause' so th~tthe user has time to chanse pens? arid to identify uhich pen to revlace. Also included code to to allou user to sot the pen velocity. > var pent line-style* realpen~pen-num t intesori C used to id the actual pen number for t he rlot stulesize I ~ntegrri < /t in GED units I/ 3 beain Yen-UP 6 < Don't put neu pen doun at 1 Pen-At.x := HAXINTi < old pen's last spotlll > read(~lot-t~le~ren~line-~t~1~~i rerlrmn 1- 21 Jan 19 23t43 1986 hp7470,rac

it lastpen 0 pun then besin lastpen t- pen) it odd(pen) then realpen t= li uriteln('P1otter ready to chansie to Pen 'I Pentlt' (pen 'trealpen:ltl on 7470A)')i ur~te('Hit the return key uhen readr,,t')i reedln end l uriteln(terminalt'SP't~ent1t'f')i it line-style = 7 then uriteln(teraina1t'LTi') elsa bedin urite(termina1t'LT'11ine~~t~let1~'~'~i it aoln(p1ot-tile) then uriteln(terrina11'0,4i') else bedin read(~1ot-tiletstr1esize)i uriteln(termin~lr(st~1e~~zot 0,4):3:2r'l')i end i endl endl rrocedure Set-Uindoui var llrurtneull~neuur t ~ointi c t char1

{Tho follouina line should not be coded due to problems caused by rotati on * uriteln(terainelt'IU'~r~eu1l.x:lt'~'tncull,~~lt't'tnewur,x:l~~~'~n~uur. wtlv8b1> end i Procedure Get-Transformi

Cresds s transform record from the input file) beain read(rlot-f~lertformC1rl31tformC1t2lttformCl~3l~tformC2tllttformC2t2l~tf ormC2~3) end) Jan 19 23143 1986

procedure Identifu-Prodr3mi bedin writeln(stderrc'VAL1U Lodic Svrtevo Vector-to-HP converter. 8.0d (14 hAR 85) 1 uriteln(stderre'Re1e~se: 'c'Q(e)h~filter.~as 1.2 (Valid) Release 8.0s tar 5/11 endl rrocedure Check-Versioni const CORRECT 8.01 var version : reali ch t chari besin version 1= 0101 read(p1ot-fi1urch)i if not(eof(p1ot-file) or eoln(p1ot-file)) then beain read(rlot-file~version)l mndi if ((version > CORRECT) or (version <= 0,O)) then bedin Identifu-Prosram) writeln(stderr~'Prosram/data version uiceatch.')i uriteln(stderrt'Proar3a version: 'JCORRECT:~:~)~ uriteln(stderr~' Data versiorl: 'cversion:3:l)i wr~teln(stderrt'Uill attempt to continue*'); endi end i bedin CHP Filter3 sccsid := sccstr1 if ardc <> 3 then bedin uriteln('1r~rorer command line srntaxl)i halt end l

resot(p1ot-file~arsvC23~)iCopen 1/0 channels as su~rliedbr the command line.) reset(term~nal~ar~vC31~~~ Jan 19 23:43 1986 h~7470.prr Paae 14

wrlteln('Do mou ulsh to set pen vulocitm? (u/r1)')3 roadln(answer) l if ensuer 'm' then besin write('Enter a value >.38 and i38.1: '1; readln(penvo1)i ur~teln(torminal~'VS'~~er~vel~'i')i end l

rmadtrlot-ti1o~command)l it Command = 'L' then Plot-Line else if Command 'A' then Plot-Arc else if Coumand = 'T' then Plot-Text else if Command = 'K' then Plot-Rotate-Mirror-Text else if Command = 'W' then Set-Uindow else if coumrnd = '13' then Oet-trans for^ else if command = 'P' then Chande-Pen else if coumand = 'X' then Identify-Prodram else if command = 'V' then Check-Version else if Comaand i> 'Q' then C writeln(rtd~rr~'UnknounCoroand')i > i if command <> 'Q' then readln(p1ot-file); until (command a 'QO OR eof(r1ot-file); v 1 ndup l end ments suppl.1.ed on its command 3.j.ne. If this number i.s j.ncorrect, the program signa1.s this and qui.ts. If the proper number of arguments J.s recleved, the program then sets the lastpen variable (as explained i.n secti.on 5.3) and

"resets" the pl.otterls terminal port and the pl.ot data fi1.e. the program then inI.tia1.J.zes the p1.otter ( using procedure inj-t), setting the input buffer size to 128 bytes and setting the "programed on" optfon (see ref [15]). The plot- ter's hanshake protocal. i.s set to the ascii XON/XOFF sequence usi.ng the asci.l DC1 and DC3 characters. The f.I.na1. actlon of this procedure is to select pen number 1. The program then asks the user whether the pen vel.oclty shnu3.d be changed and if so, a1.l.o~them to enter the value for this parameter. This value must be greate than 0.38 but less than 38.1, and a real. number. Thj,s input from the user is ten used di.rect1.y in a software command to the p1.otter to effect the change.

The next sequence of code i.s a pascal. "repeat" 1.oop which reads one character of text at the begi.nnJ.ng of the p1.ot data file 1.1.nes. Thi.s chatact.er is assumed to specify a command to be executed on the pl.otter and may be any one of the f oJ.J.owing:

COMMAND SYMBOL ACTUAL COMMAND (Procedure) Pl.ot- Lfne Pl.ot- Arc Pl.ot- Text Plot- Mirrored - Text Set.- Window (Dfsab1.ed i.n hp7470) Get- Transform Change- Pen

1denti.f~-Program Check- Version

Unknown command

The characters are tested usi.ng the if-else c3.ause. The

command symbol. "Q" has spec3.al. meani.ng, apparent1.y. If thl.s

command appears, the program terminates. The program a1.so

terminates if the read statement produces an EOF condi.t3,on.

Each of the commands are executed by a procedure which

takes care of retrieving those var.i.ab1.e~ which may fo1.Jow a

command symbol. (such as text str.ings, address and or1.en-

tation parameters). Each of the addresses J.ocated 3.n a com-

mand are first passed to a procedure named "Convert". this

procedure is used to convert from the GED and LED ~rograms'

bastc unit (1/500 inch) to the plotter's (0.025 millimeter).

One of the most important modifications made to this program

was implemented as a part of this procedure. This modifica-

tion rotates the design 90 counter-clockwise to orient the

plot output properly onto the length of the paper (see

section 5.3 for details). In addition to the commands Jisted above, there are several other command to position the pen (procedure Go-To), to raise the pen (procedure Pen- Up), and to Jower the pen

(procedure Pen- Down).

The purpose of thJ.s she3.1. script J.s to coord1.nat.e pro- cesses whJ.ch are invoJ.ved in the pI.o~t3.ng of design data.

The program 3.s used wl.th the EoJ.l.ow.ing command line:

The p1.otEil.e argument. i.s opCi.ona1.. If i.t 1.s not gi-ven, fhe defau3 EiJ.ename is "hpp3.ot .darn.

This is the sheJ.1 scrj.pt which users use to access

either the hpfi3,tet or hp7470 program to plot their

drawl-ngs. Upon i.ts i.nvocatJ.on, hpl. ~.ni.tJ.aJ.Izes two

variables: flag and pJ.otfi3.e. The variable p3.otEil.e i.s set

to the defau1.t fiJ.ename, hpp1.ot .dat. If the program detects

that. an argument. has been suppl l.ed on i.ts command II.ne, it

interprets this as another name for the pT.otfil.e, and sets

the pl.otft1.e varJ.ab1.e to thCs name. The program then sets

the var.tab1.e users to the command output of the who(1) com-

mand. A foreach loop then runns through thi.s Ji-st to deter-

mine i.f one of the words in It is p1.otter. If this word is Use this csh script to plot dr~uinascraated bu makeplot. The script accepts one commsnd line zrsuaent namind the the rlotfile to be plotted, def~ult~nsto *h~~lot.dat~if the ardurent is missins. Code also checks for the existence of the fictitous user named 'rlotterm, If not f'oundr the user is notified. usase: hrl Crlotfilel Bob Noblcs Ohio Univercitu 12/8/85 set f last10 set rlotfile=h~~lot.dat

if (I -e Srlotfile) then echo '$8 $plotfile not found' checktero exit 1 endi f set users=(\who') foreach 1 (%users) if (Si == plotter) set flasrl er~d it (Sflas == 0) then echo plotter not lo~sicd in\l checkterm exit 1 ondif echo -n 'Are sou usinc the HP7470A plotter? (s/n) * set ans=($i) start: if (Sans == r) then /uO/editor/lib/hp7470 *~lotfilc/dcv/ttuc else /uO/editor/lib/h~filtcr i S~lotfile> /dev/ttuc endif echo 'Plot the saae file asain? (v/n) ' set repeata00 if Orereat == u) aoto start checktera present (ie., the user "pI.otter" is 1.ogged on) the program sets fl.ag=l. The program then checks to see i.f the flag has been set. If flag-0, the pl.otter is not logged in and the program warns the user before exl.ting. If "p1.otter" is logged i.n, the program asks the user if they are using the hp7470 plotter type and useses the hp7470 program I.f they are. Otherwise, the or1.gj.nal hpfi1.ter program 1s cal.1.ed.

Upon the compl.et1.on of a plot program, the shel.1 script asks if the user wjshes to make another plot. If so, the program returns to the po.i.nt where the p1.ot program Is run and checks for the user's prevjous answetr to determine which plot program to cal.1..

The val.id2vax program 1.s used to convert LED-outputted

CIF format design files into a CIF format suitab1.e for the rnextra circuit extraction program on the VAX system. Its usage ts:

val.i.d2vax [-c control.- f l.l.e] desI.gn- f l.1.e (s) where the optionaJ. control.- file argument I.s a f1J.e wh1.c.h contai.ns a 1.ist of E1.1.e~ to processed. The design- fCIe(s) argument also desf-gnates des-ign fiJ.es to be processed and is optional, if the control.- fl1.e argument. .s used. If the conkrol,- fi1.e argument ls nor used, then the desi-gn-fI.J.e(s)

argument must be present. Feb 9 33i10 1986 val id2vox Page 1

# This csh script is usod to removo some nJstAc3 loft lurkina in # VALID-produced CIF files such os lager ~rcfixcsattached to node 4 names and rot~tecomm~nda uhich uon't he interrrctad bu mextra. # These rotates are aluaus included b*~VALID uhethcr the called # cells are rot~tcdor not. Ho~cfullrthe user h3s swashed ann # cells uhich uere rotztcd more thzn 0 dcsrecs, If thcv haven't # then u~llh~ve to do so. This scrirrt J~GOu~tchcs for occurences 4 of vdd and snd definitions and chznscs thcv to Vdd! and GNDl for t coup~t~bilit~uith ractra Jnd ~ro3r~n1susins the sis file produced # bu mextra, 4 # usase: # valid2vax C-c control-filcl dccinn,files(s) 4 # control-file This filc contains a list of filcc to # to be processed bu v~lid2vax. # 4 desi$n,file(s) A couuand-line list of files to be proco SSC~* # Notc thzt if a control-file is s~ccifiod these filcs are optional.

8 bob Noblcs Ohio Univcrsitv 11/23/85 set f lar=O if (S#arav == 0) then echo 'usa9ul valid2vcx C-c control-file3 dcsian-filcts)' checkterm ex1t(l) end i f #remove any .lis or ,105 files from previous runs if (-e ~311d2~3~~103)re v~lid3vax~loa if (-e valld2vax.lis) ru valid2vax.lis t define the list of filcs to be ~rocessed if ($1 == -c) then if (! -e $2) then echo control-filc $2 r~ot found checktar. f?Xit(l) end i f 50t C-files=('cat $2') shift shift Fob 9 73:10 1986 val I d2vax

1f ($(arjv I= 0) thcn set files=Oc-files Sarzlv) else set files=($c,filcs) er~dif else set files=(Sarnv) ondil foreach i (Stiles) # Process tho filc list

echo *&& $i not found' 1 tcc -2 validZvax*l~S echo " set flasal continue er~dif onintr - # disable interrupt rccronse

sed -e 's/ H 1 0 / /st' /tmr/$Stemp > $1

sed -e 's/CvVlCdDlCdDlCl J/Vddl /Aa Si > /tsp/SStebp

sed -e 's/CsG3CnNlCdUlCI ]/GNU! /S' /tap/S$tear > $i

onintr 4 restore intcrrurt action

if (Sflas == 1) echo 'tt error susuarv in v~lid2vax.lom'

~Ch0" echo 'Lt success suuoars in vzlid2vzx.lis' The program begins by setting a variab1.e named flag

(used l.ater to fI.ag errors). The she].]. script then checks for a lack of arguments on Its command l..i.ne and .i.ssues a

"usage" message to the user €f so. If not, the program pro- ceeds to check for the existence of two files: vaJ.l.d2vax.l.og and valid2vax.l.l.s. These fi1.e~list unprocessed and pto- cessed design f.il.es respect.i.ve1.y. If either one 1.s found from a previous run, it 4.s removed to avoid confusl.on.

The next phase of the program f.s to check command l.-i.ne arguments. The first check Is for a "-c" argument (or switch) whl.ch 1.ndicat.e~that a control. fi1.e which contains a

I.-i.st of des.i.gn files to be processed is to be read. If the control fi1.e is not found, the program cal1.s checkterm and exits. If the control. fi1.e 4.s present, the program uses the cat command and command subst.i.tuti.on to set "c- fj.1.e~" to the list of files in the control. fi1.e. The program then shifts argv twice and checks to see -1.f any more elements exCst

(design files which may have been expI.1c.i.tl.y J.Isted on the command I.i.ne) If found, they are added to that 1.3.st obtained from the control. fj.1.e.

The program then enters the actual. processi.ng loop. As e1.ement i.s accessed during the foreach I.oop, the user's fi.1.e

system i.s checked to see if the design fi1.e spec.fied

exists. If i.t does not, the program doesn't terminate, bur instead sets the fl.ag to one (to signal. an unprocessed fi.J.e) and goes on to the next element.. If the desf-gn fi.l.e does exi.st, the program first disab3.e~ the shel.3.'~ response to

Interrupts (to keep the serles of sed(1) commands from being i nterrupted and 3.eavl.ng the des gn f i3.e l.n an undetermi.ned state). The sed commands which fo3.J.o~are used to stream- edi.t the design fi1.e to remove a1.J. Jayet prefixes (eg., P:,

M:, D:) and rotatj.on statements of the form: R 1 0 (acfua3.J.y a "rotation" of 0 ) The next two sed commands rep3.ar.e two strings wf.th the letters "vdd" and "gnd" (in any combi.nati.on of case) with Vdd! and GND!. This is done since VAX si.mu-

J.at1.on programs wi1.J. J.ook for these J.abe3.s on the power and ground lines respectIvel.y, and comp3.af.n i.f they are not

found. The "!" i.s added for mextra's benefi.t. This i.ndjca-

tes that these are "gl.oba3." si.gnal.s, that Is, they are the smae s1.gnaJ. whether or not they appear on more than one

1-ayer. If they are not marked as gl.obaJ., mextra attempts to make each one unf.que by aff 4-xing a "#n" (where n Is a

number). Note that duri.ng these edi tLng operati.ons, the out-

put of the sed command i.s by default the s~dout "fC1.e".

Thi.s output has been red1.rected to a temporary ft3.e name

/tmp/$$t.ernp (the shel.1. substt.r-utes t-he i.ts process number

for the "$$"), and the cornmands alternate their input from

the ortgi-nal design fi1.e and this one. Thls Fi1.e is rernrlved

at the end of the process. In its compJ.et-I.on phase, the sheJ.1. scri.pt checks the flag and 1f it. is found to be set, not.i.fies the user that they may check the vaJ.i.d2vax.J.og fi3.e for a 1.s of unpro- cessed programs. The program also notifi-es the user of the exI.stence of the vaI.-i.d2vax.l.ts ftl.e, which contains a sum- mary of processed fi3.e~. Fi.naJ.J.y, the program caJ.1~check- term and exists. vax2vaJ id (SCALDsystem )

Th!.s sheJ.1. script 5.s used to process desi.gn fi.1.e~which have been downloaded Etom the VAX system. Its mai.n purpose is to install a 1.isti.ng of these files into rhe the user's working directory and to create a design subdi.rectory for them to 3.nhabi.t. Its usage i.s as foJ.J.ows:

vax2vaJ.id [-c control- fj.1.e ] des i.gn-f1.J.e (s)

The arguments used are the same as those for the vaJ.j.d2vax program.

The program begins by setting the flag variable (used for marking errors which may occur during the script's execution). The program then checks for arguments on its command line and if none are found, notifies the user with a

"usage" message, calls checkterm and exits. As with the vaJ id2vax program, previous versions of vax2vaJ id. lis and Feh 23 14:4R 1986

end i f shift shift

if ($#arqv I= 0) then set files=($c-files bargv) else set filer-(Cc-files) endi f e 1 se set f i lesr(Sargv) endif echo -n 'working direct-orr nzme? * set wdir=($r.)

~f (1 P Cwdir) then echo '*S uorklr~qdlr $udir not fovnd.. , cr~silrlr<' echo " echo 'FILE-TYPE = LOGIC-DIP;' evd~r echo 'END.' - budir endif foreach i ($files)

set ans=r lf (1 - e $1) then echo 'Tj: $1 not fOIJnda 1 tee -a va~:lv,?lirl.lo* echo " set flag=l conti nl~e endif

if (! -d $i:r) then echo '*$ dlr $i:r not f0lJnd8, , cr~atinq' echo " mv $1 /tmp/Sbv'v mkdlr Si:r mv /tm~/$lv,3v $1: r/ltfoa~t+ I. 1 ~lseif (-e S1:r/lrout_bln,?.') then echo -n *$t'$1: r/l~~oajt_blr1+7.a1 rradt: e:,lstr r rsr lace (r/n)?" set ans-(Si) end i f Feh 23 14:18 1986 va.;5vslid ( SCALDsvstcu~) l'c~::t. I

# This shell rcr1:-,t is zlsed to tr~nsforncVLSI dvzi~r-Ifiles dounloa ded f ronr # VAA for uhe hr LED. File- surt hzve bcrn converted to CrrESER ad tabsse # usinr the VAX csh scrl~t'vc::2vslid'. # NOTE: The user should he u3rned that file.; dounloaded uhlcrl have the # sake filendme as an already-e::istins drzuins directoru will csus e a # conflict unless tner have a f iletu~eiuffi,.eo. #

# control-file This fllc contains L list of files t 0 a be rrocesssd by v;::T'vclid. Files a 1 readr # rroccsc,cd hu va;:2vr31id 011 the WAX s rstrm # rroduce this file under the r~dr~e: # v3;:2valld* 115. # # desirn-file(s) A colmmland-11nc list of ur~cor nrorr f I les to bc processed. Note thst if a co

# i i le has a1rezds heen siven, these f 1 les # dre o~tional. # # # Bob Noble> Ohlo U~~lvrr~.itv11/17/ 8 3

It' ( **'II .rv - ,. 0) I Ilull a!# 111) 'lIL~d;b~!~\'.l,s..'~Jl 1~1 1 I 1 l)lat, 1'111 f 1144 1 I(&'!, I'll0 f I lu<'.) ' 1.l1cc.L t.a!I.lll c,,.i t t 1 ) ~11~11f

1r ($1 4 ) I ilthl,

bl.1 C t I IC, ( %I "t 6.' ) II ( I u $2) tt\rn echo ' echo '4S $2 rlut t'ul~rr~~' check term cr. 1t t 1 ) Feh 23 14:48 15'86 va::-7vzl id (t)CALlbssstea)

IP (Sans == r) then if 1-e Si:r/l~out.7.?) rm $i:r/l~out.~'.? mv $1 $i:r/l-~out.l+l if (-e Si:r/lrout-bin,?.?) ra %i:r/l~out-bin.?.?

else it' ($ans == n) then echo 'XY $1 not ~rocec,r,ed' 1 tee -;vz::3v~lld.los echo " CO~I~llllJY etsd I P

echo '$1' 1 tee -2 vi::?vdlid.lls echo "

set ute~~~i-='ccho$1: r 1 t~.J-2 ii-L' set temrl=\'Suten.-\' set lten~r=Si: r set teur?=\'$l te111t\'\i sed -e 's/END. /$terrl $tru~~'.r~EF(~~./s'Suulr /t~~~r/$Jtdlr rm Sud I r /tm~=/SStdir ludir echo 'Si:r entered in bwdir' echo " cont 1nue

if (Sflas == 1) echo '1* error rua~marvin vs::2v~lld.los' echo *' echo *$a success 5u1102rr ir~vz::3vil id. 11,' rm /tmr/SStdi r checkter~nt exit vax2vaJ.ld.3.og files are removed. Agai.n, as 4.n t.he valid2vax program, vax2vaIid cor~stru(:ts a J.ist of fiJ.es from an optional. control file and command l.i.ne arguments.

The next step of the program i.s to ask the user the name of their working directory. The wd4.r var3.abJ.e is set to the answer and the exi.stence of the "df.rectory" is checked. If i.t is not found, the script echos the standard header and endtng statement i-nto the named fi3.e.

The script then begins the processing of each of the named deslgn files (using the foreach statement). As before, if a f.iJ.e is not found, the scrj-pt echos a warnlng to the user and Cnto the vax2val.id.l.og file and set the flag variable. The script then returns to the beginn-i.ng of the foreach statement. If the fi.1.e 3.s found, the scrl.pt checks for a directory of the same name (minus the fi.J.ename exten- sion, wh5.ch shou1.d be present) and 1.f it 1s not found the script notlfles the user and creates one. In thfs case, the desi.gn fi1.e i.s copied ro a safety file (/tmp/$$v2v) and then moved i.nto the directory under the LED name

"lyout.l.l", whjch is used for design files 1.n the asciJ format. Next, the program echos the deslgn fi J.els name to the user and f.nro the vax2valid.l.i.s fi.3.e. The program then performs the fol.Jowing steps to enter the design file's name

Into the work1ng di.rectory: 1. Create an uppercase version of the design ff.J.eVs name

(minus extensl-on) using the UNIX transJate command.

2. Prepend and append quote marks to thi.s (note the use

of the backslash character to prevent the she1.I from

interpreting the quote marks).

3. P3.ar.e quote marks and a final. semi.-co1.on around the

origtnal filename (minus extension).

4. Use the sed command to rep3.ar.e the "END." statement

of the working directory w3.t-h a l.1ne consistI.ng of the

two f1J.ename strings, a newl.-i.ne ( n), and the "END."

statement.

Agal.n, note the use of the temporary fi1.e /tmp/$$tdir, used for the I/o redirection of the sed command's output.

The program then continues wI.th the top of the foreach

1.oop and the next design fi1.e on the 1.j.st.

If a directory is found, the script checks for the exi.stence of the I.yout .l .l file (using filename substltutl.on wj.th "?" to catch aJ.1. versions bestdes version 1). If thJ.s f i1.e I.s found (and i.n thi.s case i.t probably ~11.1.) the program asks the user if they wish to rep3.ac.e it. If not, the fi3.e Is not replaced and the program echos thJ.s to the user and vax2val.j.d.l.og and continues wlth the next file. If the user wj.shes to replace the fi.1.e the scrl.pt removes al.1 versions of the J.yout fi1.e (and l.yout- bin, 1.f it exists) and copies the new file into the subdi.rectory. The sheJ.1. scrj-pt then echoes the file's name to the user and to vax2vali.d.l.i~ and performs the operatl.ons given above to enter the name into the working directory.

Once the shell. script is I-nterrupted or comes to a nor- ma3. compl.etI.on, the flag Is checked to see i.f it has been set and i.f so, the user i.s notified to check vax2vaJ.id.J.og.

The sheJ.3. then n0tj.fj.e~the user about vax2val3.d.J.i.s, remo- ves any temporary fj.3.e~ used by the sed command, ca1J.s checktetm, and exits.

The scale program is used to alJ.ow the user to scale their designs from design ruJ.es based on one factor to another. This program 1.s actua1J.y intended for those users who wish to access J.J.brary desi.gns from the "celJ." library

(see section 5.5) wh3.c-h are based on a J.ambda of 2.5 microns, for use i.n designs whjch are based on a different

value of 1.ambda.

The program first checks for the proper number of argu- ments on the command .l.Cne. If there are no arguments, scale

issues the "usage" message, ca1.l.s checkterm, and exits. The

scri.pt then sets a vari.ab1.e named "fact" ro the first argu- Fob 10 00125 1986 scs 1 c 1

# This shell script 1s used to scale vlsi dcsisns to a # new desion rule factor (lambda). Thc scale factor is # determined b*~tho follouin3 eou~tion: b b scale-factor = new-lzubdz / old-lzmbda # # # I) b scale scale-factor C-c control-filcl decidn-file(c) # # scale-factor s rational rcal~nafzctor dcrrvcd bu div idlna # desircd Asabda scale vsluo bu tho curren t # larbdz scale value. b # control-file filc contalnins a listins of deslan file S # to be transformed, Usuallv rroduccd bu # VfiX S-JS~EP'S~3>:2~~lid scri~t* # # desisn-file(s) one or oorc dcsisrt files to be transform ed. # Notc that if control-file 1s s~ccifled* the # desisn-f ile list is orationzl # b # Bob Nobles Ohio Unlverzitu 12/31/85 b lf ($#arsv == 0) then echo 'usase: scale scalc-factor C-c control-file3 dc~i$n-file(~) I checkte 1-11) ei:it(l) or~dif set fact=Sl shift

# form a listins of filcs to rroccrs if ($1 == -c) then set c-files=('czt $2') shift shift if (Slarsv I= 0) then set filcs=(Sc-files Sar3v) e 1 he set flies-Oc-file%) scale

endi f else set filer-(Ssrav) end i f set f las=0

6 remove previous scale~errfile if (-e scale.err) rm scale.crr foraach i ($files) # process the file list

if (I -e Silr/lrout-bln.l.1) then echo " echo 'ii could not $itr/luout-bin.l.1' I tee -a sca set fl~s=l continue endi f

/uO/larout/rotate $~:r/lsout-bin.l.1 /tmr/S$.scale \ 'i (fact 0.0 0.0 0.0 $fact 0.0' 0.1

if ($status :>= 0200) then echo 'tl rotate failed on $i' echo 'L1; cor~tinuind uith next dcsirn' set f 123-1 contirlue vrtdl f

rm Si:r/lrout-bin,?.'? /uO/larout/utils/ascii2binarr i /tm~/$$,scalc > $i/lrout-bin.t.l echo " echo 'ri $1 rrocessed'

end

# if flar=l~errors were encountered durins ~rorc~sindsnd the user shou 1d # check the ~cale~errfile. if (Sfla3 == 1) then echo " echo 'LY check scalelerr for s list of rroccscine errors' echo '' echo '$1 make sure that all flles dounlosded from the VAX' echo '$4 s~stcmhave been ed~tedbr LED to produce LED\'s8 echo 'Yt binary formst before scalir~a. chockterm RHlt(1) rndif 4 normal exit condit~on e~it ment on the is, which i.s the scale factor. Argv j.s then shl.fted to move the desl.gn ff1.e I.ist. arguments l.nto place for processing. The rest of the command 1.l.ne is the same as the one used by the vax2vali.d and valid2vax programs. The scale program checks for the opt.i.ona1 control. fi1.e and possib1.e command line listi.ngs of other design files. Once

the list of files to process has been compl.eted, sca1.e checks for a file name "scale.err". If it exl.sts, it l.s removed to prevent confusion wJ.th a previous run of the

sca1.e program.

Sca1.e then begins Its processfng of the design fl.1.e ].$.st wl.th a foreach statement. The exi.stence of lyout- bl.n.l.1 i.n

the design fI1.e subdirecCory is checked and if j.t does not

exist a message i.s wt.t.ten to the user and to sca3.e.err.

The program then sets the flag and contl.nues wi.th the next

desfgn fi1.e on the lj.st.

If the fi1.e I.s found, sca3.e ca1l.s the rotate program.

Since the rotate program I.s not documented, its arguments

are listed here:

rotate infi1.e outff1.e "T a b c d e f" margin

where lnfI7e is the input file, outfile is the output file,

and the arguments a-f are the elements of a transformation

matrix (see section 5.3 for its form). Margin is the error tolerance used by the rotate program when transforming a non-manhat tan deslgn. The effect of caI1.i.ng the rotate program as the sca3.e program does is to si.mp1.y mu3.ti.pJ.y all. coordinate points by a factor.

The output fi1.e of the sca1.e program is a temporary fi.3.e name /tmp/$$.scal.e. Thi.s i.s an intermedi-ate fi.3.e needed because rotate wr.i.tes its output in asci.3. instead of the needed binary format. Thj.s fj3.e wiJ.1 later be fiJ.tered into the b.i-nary format by the ascf.i2binary program.

Once the rotate program returns control. to the shel.1 script, the staus varj.ab1.e i.s checked to see i.f the porgram comp1.eted normal.1.y. This precaution is taken s3.nce the rotate program unexpectedl.~bombs out on occasion. The sta- tus val.ue wi.J.1. be greater than octal 200 If thJ.s should hap- pen. If it does happen, the user is notified and thls notice i.s al.so written into the scal.e.err fJ.1.e.

The final phase of the scale program is to check the faJg variable to see if errors have occured during pro- cessing. If so, the user is notified to check scaJe.err and a possible explnation of the event is offered. Scale then caJ 1s checkterm and exits.

B.2 SCALDsvstem File LCstJnes The foI.1.owi.ng fi3.e~are those whlch were modi.fSed or created for the proper operat..on of SCALDsystem software.

Al-so inc1.uded are files which ill.ustrate the processi.ng done by several. of the fil.ters created for this thesis project.

This is the output from the LED program of the bas.ic

ce1.1. SHREG (from the Stanford library). Th.i.s j.s the same

ceJ.1. whj.ch i.s 1.1l.ustrated i.n sectj.on 6 .2.

shif treg. c1.f (~rocessedbv val.i.d2vax)

As t.he tit1.e impl.ies, thI.s is the shlftreg.ci.f design

fi1.e shown after processing by the valid2vax program. This

1.s the fi.1.e which i.s transmitted to the VAX system for

further ana1.ysj.s (see sectton 4.2.2).

shif treg.J.og, shif treg.nodes, shif treg. sim

These are the output fi.1.e~ from the mextra program, pro-

duced by the processing of shif treg.ci.f. The shi f treg.al.

fC1.e was absent since no al.i.ases were produced.

defaul t. tech

This Js the modifi.ed versl.on of the LED technol.ogy fi.3.e

(see sectl.on 5.2). Fob 8 17:33 1986 rhiftrea.cif (unrrocoosed) Parre 1

( Created on a VALID SCALD~~J~s-~stea. Lambda = 0.01 micron hi DS 11 4i 9 SHIFTREG1 L NPI B 4800 800 5200 328001 b 1200 800 3400 32000i b 3200 400 2000 30600; B 3600 400 2200 30200i b 1600 1200 3200 294001 b 1600 1200 7200 238003 B 800 6000 7600 202001 B 2800 800 6600 16800i B 2400 5600 6400 136001 B 1600 400 6400 106001 b 3200 800 4000 84001 B 1600 1600 5200 7200i B 3200 800 6400 48001 b 1200 800 5400 40001 b 1600 400 1200 26200; B 2800 6400 1400 32800i 800 2400 2400 184001 B 2400 aoo 1600 168001 b 800 13600 800 96003 B 4800 800 2800 24001 b 800 2000 4800 1000; L t4Di E 2000 1600 2200 324001 B 800 2000 1600 30600i B 2000 800 1000 29200i b 2800 800 8200 292001 k 800 3200 7200 272003 B 1600 1600 7200 24800i B 1600 1600 6400 35200i B 800 2400 6400 332003 b 7000 800 5800 31600i B a00 2000 5300 298001 b 2400 800 4400 280001 B 5200 800 3000 272001 k 800 21600 3600 lbOOOi B 1600 800 1200 264001 E 800 6800 1200 22600) B 1600 1600 800 184001 b 2000 800 4200 48001 6 1600 800 4400 4000i b 1000 1600 6000 184001 Fub 8 17:33 1906 shiftres.clt

B 800 6800 6400 14200i 6 1600 1600 6400 lOOOOi b 800 7600 6800 54001 P 1600 1600 6800 8OOi L NHi b 9600 1600 4800 352003 B 2400 1600 2800 324001 B 9600 1200 4800 298001 B 1600 400 3200 290001 B 1600 2400 1200 264001 B 1600 2400 7200 244003 B 9600 1600 4800 18400i 6 1600 2400 6400 104001 B 9600 1200 4800 74001 b 1600 400 5200 66001 B 2400 1600 4800 44001 B 9600 1200 4800 lOOOi B 1600 400 6800 2001 L NIi 6 2400 8400 1200 230001 B 2400 8400 6400 13800i L NCi k 800 800 6400 352003 B 1600 800 2800 324001 B 800 BOO 3200 296001 B 800 1600 1200 264003 B 800 1600 7200 244001 b 800 800 6000 184001 kj 800 800 800 184001 B 800 1600 6400 104001 B 800 800 5200 72001 B 1600 800 4800 4400i B 800 800 6800 8001 94 HtGND 200 lOOOi 94 PISELECT-bar 4600 Oi 94 ntPhiZ 9000 7400i 94 H:Vdd 8800 182001 94 D:DAThOUT 9200 290001 94 n:rhil 6800 302001 94 D:UATAIN 600 290004 94 H:GND 400 352001 UF i C li Er~d ( Created on a VALID SCALDstar s*~stem* L~mbda= 0.01 m~cron)i US 1141 9 SHIFTREGi L NPi b 4800 800 5200 32800) B 1200 800 3400 32000; b 3200 400 2000 306001 b 3600 400 2200 302001 b 1600 1200 3200 294009 b 1600 1200 7200 238001 b 800 6000 7600 202001 b 2800 800 6600 160001 B 2400 5600 6400 136009 b 1600 400 6400 106001 b 3200 800 4000 84001 b 1600 1600 5200 7200; b 3200 800 6400 48001 b 1200 800 5400 4000) k 1600 400 1200 262001 b 2800 6400 1400 228001 B 800 2400 2400 184001 D 2400 800 1600 168001 k 800 13600 800 96001 8 4800 800 2800 24001 B 800 2000 4800 1OOOi L NDi B 2000 1bOO 2200 32400; B aoo 2000 1500 306001 B 2000 800 1000 292001 b 2800 800 8200 292001 6 800 3200 7200 27200; B lS00 1600 7300 248004 LI lo00 1600 6400 JS200l 6 800 2400 6400 332008 k 2000 800 5800 316001 b 000 2800 5200 298001 B 2400 800 4400 280001 b 5?00 800 3000 272001 b 800 21600 3600 l6OOOi b 1600 800 1200 264001 B 800 6800 1200 226001 b 1600 1600 800 18400; 6 2000 800 4200 48001 b 1600 800 4400 40001 B 1600 1600 6000 184001 Feb 8 17:45 1986 shittres.cit (processed bu valid2vsx) Paas 2

b 800 6800 6400 14200; b 1600 1600 6400 100001 B 800 7600 6800 54001 b 1600 1600 6800 8001 L NHi b 9,500 1600 4800 35200; b 2400 1600 2800 32400; b 9600 1200 4800 298001 b 1600 400 3200 29000; b 1600 2400 1200 264001 B 1600 2400 7200 244001 b 9600 1600 4800 184001 b 1600 2400 6400 104001 B 9600 1200 4800 74001 0 1600 400 5300 66001 b 2400 1600 4800 44001 b 9600 1200 4800 1OOOi b 1600 400 6800 2001 L NIi b 2400 8400 1200 23000; b 2400 8400 6400 138001 L NCI b 800 800 6400 352003 B 1500 800 2800 32400i B 800 800 3200 296001 b 800 1600 1200 26400i b 800 I600 7200 244001 b 800 800 6000 184001 b 800 800 800 184001 b 800 1600 6400 10400i b 800 800 5200 72001 b 1600 800 4800 44001 B 800 800 6800 8001 94 GND! 200 lOOOi 94 SELECT-bar 4600 Oi 94 Phi2 9000 7400i 94 Vddl 8800 18200i 94 UATAOUT 9200 290001 94 Phil 8800 30200i 94 DATAIN 600 29000i 94 GNU! 400 352001 llF i C li End Uindout 0 2400 0 9000 the rlobal label 'GND' has 2 occurrarlccr 2 depletion 4 enhartcornant 10 nodes Feb 8 17i59 1986 shift redenodes

94 GND 1500 Oi 94 SELECT-bar 1100 Oi 94 GND 1500 Oi 94 4 900 9001 94 4 1200 900; 94 4 900 9005 94 DATAOUT 1600 1300; 94 Phi2 1100 1600i 94 Phi2 1100 16001 94 SELECT-bar 800 22001 94 DATAOUT 1400 23001 94 DATADUT 1400 2600i 94 Vdd 1500 4300; 94 Vdd 0 44001 94 Vdd 0 44001 94 DATAOUT 1600 58001 94 DATAOUT 1600 6lOOl 94 SELECT-bar 100 6300; 94 SELECT-bar 100 66001 94 Phil A00 72OOi 94 Ph~l600 7300; 94 DATAIN 0 72003 94 23 300 7700i 94 23 400 7900; 94 23 700 79001 94 GND 1500 8300i 94 GNU 0 8600; Feb 8 17:59 1986 6hiftr~9~51m

1 units: 1 tech: nmoo e 23 GND SELECT-bar 200 200 1500 8100 e Phil 23 DATAIN 200 200 300 7500 d SELECT-bar SELECT-bar Vdd 1650 200 200 4900 d DATAOUT Vdd DATAOUT 1650 200 1400 2600 e Phi2 SELECT-bar 4 200 200 800 2000 e 4 DATAOUT GND 200 200 1600 1100 Jan 24 22106 1986 nao~i /uO/la~out/def~ult 100 0.5 1 rol~silicon0 solld 1 elf-lnare = 'L NP' wire-uldth = 2 'refix = P b diffusion 0 6011d 2 cif-lnare = 'L ND' ulre-width 7 2 prefix = D I netal ffff solid 4 cit-Inane a 'L NH' wire-width - 4 ~rcfix= H I in~lanttfff solid 8 2004 2004 0007 1008 810 7cO 430 420 420 420 7cO 810 1008 0007 2004 2004 cif-lnaae a 'L NI' i enhancerent ffff stirrle 32 8000 4000 2000 1000 0 0 0 0 80 40 20 10 0 0 O 0 elf-1na.e = 'L NENH' i de~letlonffff stiprle 8 0 0 0 0 10 20 40 80 0 0 0 0 1000 2000 4000 8000 cif-lnaae 'L NDEP* 4 cut ffff cross 16 cif-lnaae = 'L NC' i burled-contact ffff stlrrle 8 0 6060 6060 0 0 606 606 0 0 6060 6060 0 0 606 606 0 elf-lnane = 'L Nb' I oversflass ffff sti~rle1 240 240 240 420 810 1008 c007 0 0 c007 1008 I310 420 240 240 240 cif-lnaae - 'L NGo i boundaru ffff stir~le1 180 0 0 0 0 0 0 8001 8001 0 0 0 0 0 0 180 cif-lnamo 'L NbND* i pin-area ffff stirrle 16 8080 4040 2020 1010 101 202 404 808 8080 4040 2020 1010 101 202 404 808 i networks 0 stirrle 33 0 6060 6ObO 0 0 606 606 0 0 6060 6060 0 0 63a 606 0 I drcl O.r_md

Thl.s is the Drc/Ext.ract program's command fi l.e, used for checking desl-gns based on 1.ambda = 1.0 mjcron (see sect1.on

5.1).

Thl.s is the Drc/Extract program's command fj.J.e, used for checking designs based on 1.ambda = 2.5 mlcron (see section

5.1).

B.3 VAX System Program Ll.stl.ngs

The VAX system design software did not requl.re wide- spread modifications for cotrect operatI.on. Its documen- tation has proved to be adequate and very few bugs were detected In any of the programs' operations. The software which was created for this system Is primarily concerned wi.th the SCALDsystem communf.cat3.ons I.l.nk and the preparatl.or.

of data for transmission. The only other software developed

is used to ease the preparat.i.on of PLA desf-gns for use on

the SCALDsystem.

make ~1.a

Th5.s she3.3. sctipt is used to process a fJ.nlte state

machj-ne descrjptlon used as an input t.o the peg program. Jpn 24 21 :5Y 1Y86 drcl-O.c~d Pase 1

<< f1los >> directorv /uO/vour-nzme/dlrectoru-r~z~e lib cell

i> diffusion rolurilicon .eta1 cut implant over~lrss tran-ristor et ran dtrsn nr 1 us subst rate bcontact nbcontact bcdiff bc~olm bcsrea dcor~tact rcontact rt ran1 rtrrn2 test~olr tear1 temp2 tear3 temp4 ctrsn ct ranex cdtran cetran ii extract :..? prefix *~:'~ol~silicon rrefix 'vt'setal rrefix "rolrsalicon diffuraon vctzl and diffusion rolrcilicon trzn-slctor and tran-slstor irrl~ntdtran andnot tran-cistor iarlznt ctrzn andnot d~ffu5lonpolrsilrcon nrlu~ nplus cut touch rolvsilicon cut touch metal cut touch cut metal rolusilicor~ n~.lus touch subst rate tranrirtor NHOS ENH etran n~lusrolscilicor~ ~utrstrate transistor NHOS DEPL dtran nplus ~ol~~slllcon~ubstr~te ca~acltartcepoltrsllicor~ 120.0E-6 4.OE-4 ca~acltar~cemetal 50.0E-6 2.OE-6 capacitance cut 0,O 0.0 capacitance n~lus77.015-6 15.OE-6 urnt-cap-tables (The follouins tuo commands scnerztc the ~im-cr1~1.lfile for use uith the SCALDsystem sibulator) simulator NHOS ENH ~zsstrcncictor simul~torNHOS DEPL resistor

<< check% ;I> donut-sire 3,0 expand-cell-size 6.0

i diffusion > width diffusion 2.0 *diffusion < 2 uidc' spacing diffusion dzffusion 2,O 'diffusion < 2 apart* C ~olvsilicon3 uxdth ~olvsilicon2.0 'rols < 2 uidc' rpacina rolusilicon ~ol*~silicon2.0 *polv (; 2 a~~rt' < metal > uidth metal 3*0 'mctzl < 3 uidc' r~acinsmetal met31 3.0 'mzt~1 < 3 apartm C cut 1 and diffusion rolrsilicon ctran and ctr~ncut temp1 exrand tevrl 2.0 tc11~2 and cut tei11~2bcont~ct uidth bcontact 2.0 'butting contzct 2rc3 <:2 uidc* area bcontact 8.0 'buttinn contact area .;8' uidth temp1 1.0 '~olv- ovcrlzr uidth~

andnot cut tear2 nbcont~ct and nbcontact diffusion dcontact and nbcontact ~olrsilicon contact enclosure pcontact ~olssilicon1,O 'rolv surrounds cut bu (1' enclosure dcontact diffusion 1.0 'diff surrounds cut br (1' enclosure cut metal 1.0 'rnctcl surrounds cut bu

< tr~n-slstors 3 andnot diffusion ~olusilicontcmr3 width tca~32.0

eh~andctran -1 $0 rtranl expand rtranl 1.0 rtran? andnot polr~iliconrtran2 tc~tr.01~ uldth tcstpolv 2,0 'pol2 overhand (2' ar~d rtrar12 ia~lantcdtrar~ enclosure cdtran ib~lznt1.5 expand ctran 1,O ctrancx andnot diffusion ctrsnex tcu~4 Jan 24 21:59 1986 drcl-0,cud

andnot rtr~n2lm~lant cctran sraclr19 cctran im~lant1.5 *it,~lar~t<1.5 frou trznsistor' spaclna cctran dcontact 2.0 'contact <2 from tr~ri~i~tor' << end >> Jan 23 17116 1986

<< files >> dlroctorm /uO/mour-r~ame/diroctor.~-n;ue lib cell << layers >;. difturlon rolmcilicon metal cut iarlant overslass tran-sistor etran dtran nrlus substrate bcontact nbcontact bcdi f t bcrolv bcarea dcontact rcontact rt ran1 rt ran2 testpols temp1 tomr2 tear3 tear4 ctran ct ranel; cdt ran cetran << extract .::) ?refix 'P:'PO~YS~~LCO~ rretix 'm:'metal rrotix "~olrsilicon diffusion metal and drffusion ~olssilicontran-sistor and tran-sistor ia~lantdtran andnot tran-sistar implant etrdn andnot diffusion rolrsilicon nrlus touch n~luscut Jan 23 17:16 1906 touch ~olusiliconcut touch metal cut touch cut metal rolrsilicon nrlus touch substrate caracitance rolvsilicon 240.OE-6 8.0E-4 caracitance metal 100.OE-6 4,OE-6 capacitance cut 0.0 0.0 caracitance nplur 154,OE-6 30.0E-6 transibtor NHOS ENH etran npluc rolrzilicon substrate transistor NHOS DEPL dtran n~lus~olrsilicon substrate

€The poll ow in^ tuo commands generate the siu-cn,l,l Pile for use with the SCALDsrstea siuulator) simulator NMOS ENH passtrar~sistor si~ulstorNMOS UEPL resistor << checks >:> donut-sire 7.5 expand-cell-size 15.0

< diffusion > width diffusion 5.0 'diffusion < 2 wide' rracsna diffu6ion diffusion 7.5 'diffusion < 3 apart' C ~olrsilscon3 usdth ~olrsilicon5.0 'PO~Y < 2 uide* oracina ~olrsslscon~olrsilicon 5.0 'polw < 2 apart' C metal 3 uidth retal 7,s 'metal < 3 widc' sraclna metal metal 7.5 'metal i 3 apart' i cut 3 rnd diffusion rolr~iliconctran and ctran cut teapl expand teurl 5,0 tear2 and cut temp2 bcontact uidth bcontact 5.0 'buttins contact area (2 uids' area bcontact 50r0 'buttins contact area (8' uidth temp1 2.5 'rolu-dirt overlar widths (1' area temp1 12.5 'pols-diff overlap area (2' andnot bcontact ~olrs~liconbcdiff enclosure bcdiff diffusion 2.5 Jan 23 17;16 1986

uldth bcdiff 5.0 'contact to diff <.2 ulde' urea bcdiff 25,O 'contact to diff area <4* and bcontact ~olrsllicor~bcrolr u~dthbc~olr 5,0 *contact to rolr <:2 wlde* area bc~olr25.0 'contact to rolr (4 area' or diffusion ~olrsiliconbczrea enclosure bcontact bcarea 2,s 'huttlns contact enclo~edbu (1' andnot cut temr2 nbcont~ct and nbcontact dlffusion dcontact and nbcontact ~olvsiliconpcontact enclosure rcontact rolrsllicon 2*5 'rolu surrounds cut br il* enclosure dcontact dlffusion 2.5 'diff surrounds cut br il* enclosure cut metal 1.5 'metal surrounds cut hu (1' width nbcontact 5.0 'nbcontact (2 wide' area nbcontact 35.0 'nbcontact (4 area' oraclna contact pcontact 5.0 'contact-contact spaclnrt C' sraclng dcontact dcontact 5,O 'contact-contact spacing (2'

C tran-sistors > andnot dlffuslon rolrsilicon tear3 uldth temp3 5.0 'dlff-rolr (2 wide'

uxrand ctran -2,s rtranl expand rtranl 2.5 rtran2 andnot rolrsilicon rtran2 testrolr uidth test~olr5.0 'rolr overhand <.2' and rtran2 implant cdtran enclosure cdtran implant 3,75 'iurlant enclosure C1.5' expand ctran 2.5 ctranoa andnot diffusion ctranex teur4 spac~nstemp4 ~olrsilicon2.5 Jan 23 17:16 1986 drc2-5,cad Page 4 andnot rtran2 implant cetran spacing cetran implant 3.75 'iurlant .5 from transistor' spacing cetr~ndcontact 5.0 'contact (2 froa transistor' << end >> Jar. 16 21t12 1986 make-rlo page 1

b This csh script is used to siarlifm the Process of croatinsl # pla lamouts from pes descriptions. Host of the heavr outo- b mation producina proper output from t~lafor the VALID smstem. # In particulart trla does not correctly handle the loabda suitch # for its default caesar output. This script forces t~lato ouput # J cif desian uith lambda = 2.5 lvicrons. This insures that the # result will be compatible uith pla cells available in the VALID # cell library ( the most noteuorthr of these being the LSSD cells). This output 1s then processed by ciffl~ttcnto remove unnecess3ru C heirarchr and then by cif2ca to uake it palatable to LED* # # usade: make-rla C-s ~:st~leiIrcs-inrut-file outfile # #