throbber
.
`
`Unlted States Patent [19]
`Corbin, II et al.
`
`US005097422A
`
`[11] Patent Number:
`[45] Date of Patent:
`
`5 097 422
`9
`,
`Mar. 17, 1992
`
`[54] METHOD AND APPARATUS FOR
`
`4,500,963 2/1985 Smith et a1. ....................... .. 364/488
`
`DESIGNING INTEGRATED CIRCUITS
`
`[75] Inventors: Ludlow V. Corbin, II; Steven G.
`Danielson, both of Seattle; Richard E.
`Oettel, Bellevue; Mark E, Rossman,
`Redmond; James E_ Thiele’ Seattle’
`
`an of wash
`
`[73] Assignee; Cascade Dgsign Automation
`Corporauon’ Benevue’ Wash‘
`[21] App], No,; 374,435
`[22] Flled:
`Jun. 29’ 1989
`.
`
`[63]
`
`Related US. Application Data
`Continuation of Ser. No. 917,917, Oct. 10, 1986, aban-
`dual
`
`[51] Int. Cl.5 ............................................ .. G06F 15/60
`[52] US. Cl. .................................. .. 364/491; 364/490;
`_
`364/489; 364/488
`[58] Field of Search ............. .. 364/488, 489, 490, 491,
`364/200
`
`[56]
`
`References Cited
`Us. PATENT DOCUMENTS
`
`4,234,332 111/1985 Otten . . . . . . . . . . . . . . .
`4,
`,
`/1986 Dunlo et al. ..
`4,580,228 4/1986 Note . . . . . . . . . . . . .
`4,584,653 4/ 1986 Chih et a1. ........ ..
`4,630,219 12/1986 DiGiacomo et al.
`4,635,208 1/ 1987 Coleby et a1. . . . . . . .
`
`. . . .. 364/491
`364/491
`. . . .. 364/300
`364/491
`364/488
`. . . _. 364/491
`
`. . . .. 364/488
`4,656,603 4/1987 Dunn . . . . . . . . . . . . . . .
`364/300
`4,667,290 5/1987 Goss et al. .... ..
`4,700,317 10/1987 Watanabe et al. ................ .. 364/488
`Primary Examiner—Parshotam S. Lall
`Assistant Examiner-V. N. Trans
`orney Agen or zrm Seed and Berry
`Att
`,
`t,
`F‘ —
`[57]
`ABSTRACT
`A method and apparatus for determining integrated
`cum!“ layouts fr°m a virtual circlm de§criPFi°n and
`speci?cation of a technology. Starting wlth high-level
`descriptions of a circuit, a virtual geometric description
`of the circuit is developed using a virtual grid described
`in terms of reference points relative to a Substrate Sur,
`face. The relationships among the reference points are
`expressed as fractions of variables that can also be used
`to de?ne the design rules. When the technology is speci
`?ed, the relationships among the reference points is
`determ' d, 'thl t fth '
`'
`'.
`me as in e ayou o
`e mtegrated circuit
`
`H 354 10/1987 Rubin .................................... .. 364/491
`
`16 Claims, 9 Drawing Sheets
`
`> usER
`INTERFACE
`
`GEONETRY
`GEN ERATOR
`
`BY DESIGN Ru1.E SETS
`‘ TO GENERATORS
`
`CREATE LAYER-BY-LAYER
`I SCRIPTION OF PHYSICAL
`
`WRiTE LAYER-BY-LAYER
`DESCRIPTION TO SSTIF
`
`Page 1 of 23
`
`IP Bridge Exhibit 2019
`TSMC v. IP Bridge
`IPR2016-01246
`
`

`

`U.S. Patent
`US. Patent
`
`Mar. 17, 1992
`Mar. 17, 1992
`
`Sheet 1 of 9
`Sheet 1 of 9
`
`5,097,422
`5,097,422
`
`IE‘KGO l
`]E‘]IG. II
`
`Page 2 of 23
`
`Page 2 of 23
`
`

`

`US. Patent
`
`Mar. 17, 1992
`
`Sheet 2 of 9
`
`5,097,422
`
`mOULE
`SPECIFICATION
`
`2O
`
`l
`
`GATE-LEVEL
`ORAHING
`
`/22
`
`s4
`/
`
`52
`I/
`GQTREQ‘EE'QEL
`
`
`
`SCHEMATIC gFe'XPv?’hs
`
`2?
`
`DEVICE-LEVEL
`DRAHING
`+
`
`26
`/
`mamas
`
`se
`Y j
`
`_ SHELL
`souacs cons
`
`64
`Y r
`scasmnc
`SYMBOL
`souacs cons
`
`e2
`+
`/
`sxmmma
`NOEL
`souacz cons
`
`&
`
`so
`r
`
`GEOMETRY
`souRcE cons
`
`Y
`
`66
`
`c COHPILER
`unx EDITOR
`
`/68
`
`EXECUTABLE MODULE
`COHP ILER
`
`IFKGO 2
`
`Page 3 of 23
`
`

`

`U.S. Patent
`
`Mar. 17, 1992
`
`Sheet 3 of 9
`
`5,097,422
`
`”'
`
`28
`
`52
`
`30
`
`]F’1[G° 3
`
`INPUT
`
`OUTPUT
`
`INPUT
`
`CLKINOT
`
`CLKZNOT
`
`Page 4 of 23
`
`Page 4 of 23
`
`

`

`U.S. Patent
`US. Patent
`
`Mar. 17, 1992
`Mar. 17, 1992
`
`Sheet 4 of 9
`Sheet 4 of 9
`
`5,097,422
`5,097,422
`
`FIG, 5
`
`Page 5 of 23
`
`Page 5 of 23
`
`

`

`US. Patent
`
`Mar. 17, 1992
`
`Sheet 5 of 9
`
`5,097,422
`
`SPECIFY MODULE NAME
`
`SPECIFY DESIGN RULE SET
`
`SPECIFY NUMBER OF BITS
`
`72
`A
`
`[73
`
`74
`
`USER
`* INTERFACE
`
`PASS SPECIFICATIONS
`35%“???‘6? Ns‘I‘1MsETAoND
`GENERATORS
`
`76
`'I5Ass RULE SETS AND PROCESS
`PARAMETER TABLES REFERENCED
`BY DEsIeN RULE sETs
`TO GENERATORS
`
`I
`INITIATE SETUP OF
`Ic MODULE DATABASE
`
`J
`/77 \
`
`[78
`‘
`CALL GEOMETRY GENERATOR
`
`$ INITIALIzATION
`
`_____ _ _ _ _ _ _ _ _ _ _ __J_ _ _§I—I_I_E_LL
`
`GEOMETRY
`GENERATOR
`
`ACCEPT PARAMETERS
`FROM UsER INTERFACE
`
`CREATE LAYER-BY-LAYER
`DESCRIPTION OF PHYSICAL
`MODULE
`I
`CREATE ssTIF
`
`wRITE LAYER-BY-LAYER
`DESCRIPTION TO ssTIF
`
`EXTRACT FOOTPRINTs
`FROM ssTIF FILER
`
`fvs
`
`/ISO
`
`/I52
`
`I54
`/
`
`/'56
`
`‘
`sToRE FOOTPRINT INFO
`
`/l58
`
`FIG‘, 7
`
`Page 6 of 23
`
`

`

`US. Patent
`
`Mar. 17, 1992
`
`Sheet 6 of 9
`
`5,097,422
`
`w
`
`3. mm.
`609mm . .
`
`.OV_ Q: Om
`
`@ 6Q;
`
`.zOOml
`
`
`
`
`
`II N: 5 am a.
`
`m
`
`_
`
`O:
`
`APwmwJDIv
`
`Page 7 of 23
`
`

`

`US. Patent
`
`Mar. 17, 1992
`
`Sheet 7 of 9
`
`5,097,422 ‘
`
`mDxUu>
`
`13 +
`
`b FDmhDO Q
`
`<4 102w
`
`41x49
`
`Oh
`
`@QFH:
`
`Page 8 of 23
`
`

`

`' U.S. Patent
`' US. Patent
`
`Mar. 17, 1992
`Mar. 17, 1992
`
`Sheet 8 of 9
`Sheet 8 of 9
`
`5,097,422
`5,097,422
`
`E
`
`31%
`ILT1—I!.'-SIZZ-.9. j—.——..ZII=»'.lI——
`l:LE"£IllII£E' """i'jfi]||I
`E Q
`9
`Eiliii-ifl
`
`__
`
`__
`
` - EC I
`I02I04I08I06 Ialiuijrzl
`
`m9 m9 vO_
`
`NO.
`
`fi
`I
`
`E]
`Z}£_
`I
`‘—I.'-"-'.IZ1—:_-— --9--ZI!=EI—_
`
`'E3;'|!l*§' -"E,iT§'I!I
`-'-E..
`
`El
`
`'
`
`Page 9 of 23
`
`Page 9 of 23
`
`

`

`US. Patent
`
`Mar. 17, 1992
`
`Sheet 9 of 9
`
`5,097,422
`
`8
`
`102‘
`
`FIG, 11GB
`
`Page 10 of 23
`
`

`

`METHOD AND APPARATUS FOR DESIGNING
`INTEGRATED CIRCUITS
`
`CROSS-REFERENCE TO RELATED
`APPLICATION
`This application is a continuation of U.S. application
`Ser. No. 06/917,917 ?led Oct. 10, 1986, now aban
`donned.
`
`5
`
`TECHNICAL FIELD
`This invention relates to integrated circuit design
`tools. More particularly, this invention relates to a sym
`bolic and dynamic method for designing integrated
`circuits and an apparatus for implementing such
`method.
`
`25
`
`40
`
`BACKGROUND ART
`A monolithic integrated circuit is a combination of
`20
`interconnected circuit elements inseparably associated
`on or within a continuous substrate. Typically, the cir
`cuit elements are conventional components-transis
`tors, diodes, capacitors, and resistors—fabricated in situ
`within or on a single crystal of semiconductor material
`with the capability of performing a complete electronic
`circuit function.
`In practice, an integrated circuit is designed in a top
`down method by ?rst designing a logic level drawing
`and a transistor level drawing. These drawings then are
`used to design the more detailed integrated circuit lay
`out, which shows the IC layers (i.e., metal, polysilicon,
`active, and the ways they interrelate to form transistor
`gates, wires, contact points, etc.). The integrated circuit
`layout, often referred to as “geometry,” is used to gen
`erate the integrated circuit tooling, which is a series of
`35
`masks, each representing a layer for the integrated cir
`cuit. The tooling is then used by manufacturers to fabri
`cate an integrated circuit.
`Typically, monolithic integrated circuits are fabri
`cated by a process of photolithography, doping, and
`material deposition. Photolithography is any technique
`whereby light or other electromagnetic rays are shown
`through a mask to create a pattern on a silicon wafer
`coated with a photosensitive ?lm. Doping includes
`those techniques for treating the exposed areas in the
`pattern to take on n- or p-type characteristics to form
`components of transistors and diodes. “Material deposi
`tion” refers to the growth or deposit of photoresist,
`insulating oxide, metal, polysilicon, and other materials
`that form the topology of the circuit.
`In one method for fabricating an integrated circuit, a
`layer of photoresistive material is deposited on a semi
`conductor wafer. A mask for the integrated circuit is
`then placed over the layer of photoresistive material
`and light is shown through the mask to activate parts of
`55
`the photoresistive material, thereby leaving a predeter
`mined pattern of conductors on the wafer and exposed
`areas of the wafer between the conductors. Transistors
`and diodes are then formed by doping portions the
`exposed areas of the wafer with a chemical doping
`agent. A second mask can then be used. to generate
`another pattern of conductors and exposed areas which
`are, once again, doped. Additional doping layers may
`also be used. After each doping step, the photoresistive
`material is chemically removed from the wafer. When
`65
`the ?nal doping layer has been completed, a pattern of
`exposed areas of the wafer is once again formed by
`exposing a layer of photoresist on the wafer through a
`
`45
`
`50
`
`1
`
`5,097,422
`
`2
`mask. A layer of metal or other suitable conductor is
`then deposited onto portions of the exposed areas of the
`semiconductor wafer to form the desired interconnec
`tions between components on the wafer. Though there
`are many fabrication technologies, fabrication tech
`niques, and integrated circuit materials, fabricating the
`design for the integrated circuit through one or more
`masks is used consistently.
`'
`Depending on the fabrication technologies and tech
`niques, and the materials used, different con?guration
`constraints apply. These constraints are commonly re
`ferred to as “geometric design rules” or “design rules.”
`Design rules include, for example, specifications for
`minimum spacing between transistors and minimum
`separation between conductors to prevent shorting,
`speci?cations for minimum metal width, and speci?ca
`tions for maximum metal heights and slopes of walls
`which form metal junctions.
`With the continued improvement of fabrication tech
`nologies and techniques and the development of new
`materials used in de?ning electronic circuits, design
`rules are changing to allow for smaller and smaller
`spacings between materials on an integrated circuit and
`to allow smaller and smaller substrate areas. Thus de
`sign rules may change during the development process
`of any particular circuits. Because increases in the die
`size of a mask by 15% typically result in a doubling of
`the cost of an integrated circuit, minimal substrate areas
`are desired
`One of the most commonly used methods for chang
`ing integrated circuit layouts to account for these de
`sign rules or changes in these design rules is called the
`“manual compaction method.” If the substrate area
`specification is reduced during the middle of the design
`process, the designer, using the manual compaction
`method, manually varies each of the spacings shown in
`the integrated circuit layout. Because the relative move
`ment of any component impacts the spacing of all adja
`cent components, the adjacent components may also
`have to be moved. As a result, this manual process is
`very tedious and time-consuming. It consequently limits
`the circuit complexity that integrated circuits designed
`in this manner can achieve, and precludes the develop
`ment of a market for most custom-integrated circuits.
`Another method used to make changes in integrated
`circuit layouts is the virtual grid compaction method,
`developed at Bell Laboratories. In this method, a virtual
`grid of typical worst-case component spacing is de?ned
`and the circuit components are relatively positioned on
`the grid using an automatic post-processing algorithm.
`Each grid line is then sequentially moved closer to
`another grid line until a design rule is violated. A prob
`lem with this approach is that the design rule constraint
`must apply to the entire grid line, thereby impacting
`neighboring devices which may have allowed for less
`spacing and thus more compaction.
`Typically, the manual compaction processes have
`been the expensive and time-consuming processes used
`for minimizing the area and cost of an integrated circuit.
`A turnaround time of six months or more has been
`common. There has long been a need for a versatile and
`simple compaction method that can accommodate the
`various design rules and constraints from different fabri
`cation techniques and materials and achieve compac~
`tion results comparable to manual methods.
`
`Page 11 of 23
`
`

`

`5,097,422
`
`4
`and the methodology for using such subset combine to
`be the preferred embodiment of the method of this
`invention. The computer system is used to automate the
`design process and might include additional software
`tools for integrating modules, simulating integrated
`circuit performance, printing geometries, and creating
`tooling (such as masks).
`BRIEF DESCRIPTION OF THE DRAWINGS
`FIG. 1 is an isometric view of an embodiment of the
`apparatus for designing integrated circuits.
`FIG. 2 is a ?ow chart for designing an integrated
`circuit module compiler using the apparatus of FIG. 1.
`FIG. 3 is a sample gate level schematic of one cell of
`a clocked dynamic shift register.
`FIG. 4 is a sample discrete device level schematic of
`one cell of a clocked dynamic shift register.
`FIG. 5 is a sample hand-drawn geometry layout of a
`clocked dynamic shift register.
`FIG. 6 is a sample schematic symbol for an eight-bit
`clocked dynamic shift register.
`FIG. 7 is a ?ow chart showing the steps performed
`by the compiler-link editor when generating an execut
`able module compiler for producing the integrated cir
`cuit layout geometry.
`FIG. 8 is a schematic diagram showing the directory
`?le organization for a clocked dynamic shift register of
`unspeci?ed length.
`FIG. 9 is a layout of the geometry generated from the
`source code of Table 2.
`FIGS. 10A and 10B are layouts of a shift register cell,
`expressing the cell in two distinct technologies.
`
`15
`
`20
`
`25
`
`3
`DISCLOSURE OF THE INVENTION
`An object of this invention is to provide a method and
`an apparatus for designing integrated circuits which are
`independent of the design rule constraints of conven
`tional materials and fabrication technologies and tech
`niques.
`Another object of this invention is to provide a
`method and an apparatus for designing integrated cir
`cuits which minimize the area of a circuit layout for any
`given electronic circuit design, including highly com
`plex, custom~designed integrated circuits.
`A further object of this invention is to provide a
`method and an apparatus for designing integrated cir
`cuits that automate the design process so that highly
`complex, custom-integrated circuits can be economi
`cally produced in a relatively short time.
`A still further object of this invention is to provide a
`method and an apparatus for designing integrated cir
`cuits which can be used to create electronic circuit
`design “building blocks,” which in turn can be used for
`designing highly complex integrated circuits.
`Yet another object of this invention is to provide a
`method and an apparatus for designing integrated cir
`cuits which require minimal integrated circuit design
`expertise in operation.
`These and other objects of the invention are accom
`plished by a method for designing layouts using a dy
`namic virtual grid and a set of design rule variables. The
`grid is de?ned in relative terms, such that an origin
`,30
`along an x axis and an origin along a y axis are used to
`de?ne reference points from which all positions on the
`grid are de?ned. These reference points are relative
`positions de?ned in terms of the origin or other refer
`ence points along the same axis, and/or one or more
`35
`design rule variables. Integrated circuit components
`(contacts, gates, wires, etc.), then, are de?ned as one or
`more polygons, in a speci?c layer, using the reference
`points and design rule variables. A speci?c layout is
`de?ned by specifying values for the design rule vari
`ables, thereby ?xing the positions of the integrated cir
`cuit components. If the fabrication process for manufac
`turing the chip changes or the technology changes to
`allow for smaller dimensions, thereby changing the
`layout position constraints (a part of the design rules),
`the design rule variables are changed accordingly and a
`new geometry is de?ned. Designing integrated circuits
`in this manner thus achieves design rule independence.
`Though the method described refers to relatively
`positioning integrated circuit components and to design
`rule variables corresponding to positioning constraints
`for various fabrication technologies and techniques, the
`method could also be used for relatively positioning
`other objects and for design rule variables correspond~
`ing to other positioning constraints.
`Typically, the method is used for designing subpor
`tions of an integrated circuit which are then integrated
`to form an entire integrated circuit layout database. The
`database is used to form tooling and/or masks for con-=
`ventional fabrication processes. The subportions may be
`strategically designed by function, so the geometry may
`be used as an interchangeable module for various inte
`grated circuit layouts or as a building block in highly
`complex integrated circuits. Thus, the method is com
`monly referred to as “module compilation.”
`One apparatus for implementing this invention is a
`computer system used to host software tools for design
`ing integrated circuits. A subset of the software tools
`
`50
`
`BEST MODE FOR CARRYING OUT THE
`INVENTION
`Hardware
`Referring to FIG. 1, the preferred embodiment of the
`apparatus for designing integrated circuits 10 is a con
`ventional computer system including a computer 12,
`terminal 14, printer 16, and plotter 18. In one embodi
`ment, the computer is a VAX l l/ 785, model no. 1l-785
`AA, manufactured by Digital Equipment Corporation
`(DEC); the terminal is an AED 767 monitor terminal
`manufactured by Advanced Electronic Design, Inc.;
`the printer may be any one of a large number of avail
`able models; and the plotter is an HP 7475A manufac
`tured by Hewlett-Packard, Inc. The VAX 11/785 uses
`a UNIX version 4.2 operating system and includes an
`interface program for the AED 767 monitor called
`“Caesar version 7,” developed at the University of Cali
`fornia at Berkeley, and a “C” program language com
`piler, developed by Bell Laboratories. In the preferred
`embodiment, the method for designing integrated cir
`cuits is embodied within a Compiler Development Sys
`tem (CDS).
`
`Software
`The computer system 10 includes a set of software
`tools for designing integrated circuit module compilers,
`each consisting of source code and executable code.
`The integrated circuit module is an array of cells. Each
`cell, in turn, is the geometric de?nition of the required
`integrated circuit components. Every module can be
`combined, like a building block, with other modules in
`order to create a complete geometric description of an
`integrated circuit and a corresponding mask work.
`
`45
`
`55
`
`65
`
`Page 12 of 23
`
`

`

`10
`
`25
`
`5,097,422
`5
`The preferred embodiment of the method is, in effect,
`the implementation of a high level software language
`referred to as the “Silicon Compiler Software Lan
`guage for Integrated Circuits” (SLIC). Each SLIC
`command comprises, in one embodiment, a set of “C”
`language function calls. Thus, the preferred embodi
`ment is a language for writing source code which is to
`be compiled to generate executable code. Execution of
`the executable code results in a speci?c geometry lay
`out.
`The module compiler, developed using CDS, may be
`used with other module compilers or alone to develop
`an integrated circuit layout. Typically, the software
`tools for developing module compilers are used with
`other software in packages such as the ConcordeTM
`VLSI Compiler produced by Seattle Silicon Technol
`ogy, Inc. These other software tools include programs
`for interconnecting modules, such as the Pride/Auto
`Route TM software tool within the Concorde TM pack
`age.
`Typically, a modular approach is used for designing a
`complex integrate circuit. In this approach, the circuit
`for each module is designed, tested, and debugged be
`fore it is integrated with other modules to form the
`complete integrated circuit layout and mask work.
`Although the preferred embodiment of the method is
`a software embodiment designed to run on the VAX
`11/785 having a Unix Version 4.2 operating system and
`a "C” compiler, other embodiments of the method
`could be software programs designed to run on com
`puter systems using other computers, terminals, print
`ers, and plotters with another operating system and
`programming language. Still other embodiments of the
`method need not take the form of a computer program
`or be implemented through a computer system.
`SLIC is an extension language of the “C" program
`ming language. SLIC is used to write geometry genera
`tor source code for generating a layout. A second exten
`sion language, GSSLIC, may be used to write simula
`tion model source code for simulating the performance
`of the layout design. A third extension language,
`SSSLIC, may be used to write schematic symbol gener
`ator source code for deriving a schematic symbol for
`the module under development (e.g., the logic symbol
`for an ‘OR’ gate with inputs and outputs).
`
`40
`
`6
`The design will be implemented in CMOS PWELL
`technology, with Vdd above, +5 volts, GND below,
`0.5 volts. The input will be placed on the left, the output
`on the right. Each cell (or bit) of the shift register will
`delay an input signal one clock cycle. The number of
`bits, and thus the number of delays, is determined by the
`designer. There is to be no limit to the number of bits
`allowed.
`Referring to FIG. 3, the gate level schematic (draw
`ing 22 in FIG. 2) for one cell of the serial-in, serial-out
`clocked dynamic shift register speci?ed above consists
`of two clocked inverters 28, 30, which together have
`the effect of delaying an input signal one clock cycle.
`Referring to FIG. 4, a single cell at the discrete device
`level (drawing 24 in FIG. 2) for the serial-in, serial-out
`clocked dynamic shift register speci?ed above com
`prises two identical buffers, each consisting of a basic
`inverter circuit of transistors 32, 34, 36, 38 and 32', 34’,
`36’, 38’.
`Referring to FIG. 5, the preliminary, manually drawn
`layout (drawing 26 in FIG. 2) for one cell of the serial
`in, serial-out clocked dynamic shift register is shown,
`comprising its component metal 40, polysilicon 42, and
`active (diffusion) region 44, PWELL 46, P+ region 48, '
`and N+ regions 50. The input, output, clock signals
`(CLKI, CLKZ), inverted clock signals (CLKlNOT,
`CLKZNOT), power voltage (V dd), and ground con
`nections (GND) are all labeled.
`The designer strategically identi?es reference points
`(Xl-XS, Y1-Y9) for forming a dynamic virtual grid.
`Each reference point is de?ned along an X axis or a Y
`axis. In this case, the reference points are de?ned as all
`horizontal rows and vertical columns that contain at
`least one contact (speci?ed by an “X” in FIG. 5). These
`reference points can be de?ned with respect to other
`landmarks, such as transistor gates, the center of a wire,
`or other geometric features.
`The positions of these reference points will be de?ned
`using SLIC source code as mathematical functions of an
`origin, another reference point, and/or one or more
`design rule variables, electrical rule variables, or other
`constraints. The relationships among the reference
`points can be referred to as virtual geometric relation
`ships. Design rule variables are variables specifying
`con?guration constraints, such as metal width, polysili
`con width, metal spacing, etc. A sample of design rule
`variables, by no means a complete list, is included below
`in Table 1.
`By de?ning the reference points in this manner, the
`virtual grid may be abstracted from the reference points
`to consist of lines crossing each other, wherein the spac
`ing between lines is not determined. The grid is not part
`of the layout, but instead is a virtual grid for dynami
`cally de?ning relative integrated circuit feature posi
`tions. The virtual grid is superimposed on a ?xed grid of
`centi- micron units, using the X origin and Y origin as
`the link between the two grids. The ?xed grid de?nes
`the precision designed into the geometry generator for
`relatively positioning components on the virtual grid.
`After designing the preliminary layout and labeling
`the reference points, the designer may wish to design a
`modi?ed gate level drawing 52 (see FIG. 2) as a result
`of the discovery of advantageous gate level changes
`that can be made. For example, an alternative way of
`realizing a given logic function could be discovered at
`this point. As a preliminary step, the designer also de
`fines a schematic symbol drawing 54 to be used to rep
`resent the module in an overall schematic diagram of an
`
`45
`
`METHODOLGY: MANUAL DRAWINGS
`Referring to FIG. 2, the following is a description of
`the methodology used to design integrated circuit mod
`ule compilers. As a preliminary step, the designer iden
`ti?es the module speci?cation 20, including the technol
`ogy to be used (e.g., CMOS or BIPOLAR), the func
`tional characteristics of the circuit, a connection dia
`gram, the approximate dimensions, and the end user
`55
`input options for the integrated circuit module. The
`designer then develops preliminary high-level drawings
`of the integrated circuit. One drawing, typically, is a
`gate level drawing 22 specifying the circuits with stan
`dard gates and interconnections. At the next level, the
`gates are reduced to their discrete devices (i.e., transis
`tors) in a device level drawing 24. From the device
`level drawing, a preliminary layout drawing 26 is then
`derived, translating the discrete devices into a physical
`geometry of layers and components, such as wires,
`contacts, etc.
`As an example, a clocked dynamic shift register
`might be speci?ed as follows:
`
`65
`
`60
`
`Page 13 of 23
`
`

`

`7
`. integrated circuit using the shift register. Referring to
`FIG. 6, a schematic symbol 56 for an eight-bit clocked
`dynamic shift register is shown.
`TABLE 1
`Daign Rule variables
`_ Below is a sample list of design rule variables
`de?ning minimum valuevconstraints between material edges
`for a typ‘ca] CMOS process‘
`Description
`Active area width
`Active area spacing (N + Active to N+
`Active or P+ Active to P + Active)
`N+ active area to P+ active area
`(in PWELL' different pommials)
`Minimum PWELL width
`PWELL overlap of N+ active inside PWELL
`P 01y width
`P 01y spacing
`Cut width
`Cut spacing
`Active overla of contact
`Mew ovle?appof Contact
`g
`P+ mlsk width
`N+ mask width
`Pad-to-Pad spacing (giass-to-glass)
`zg‘t‘tfimdth
`PWELL Spacing, Same potential
`Center of p+ active Contact to center
`of substrate contact
`5:31:12;
`fo;°0°f°:;;l"f Poly
`Center of active contact to center of
`poly-metal comm in the dim?on of
`metal _
`_
`gflfaaigl‘iii’yntitic‘z'fgg center Ora
`minimum wid‘h zen-v: wire must diverge
`from the ccnm of ,, comcnwidth activc
`Wirc '0 achicvc ‘:1 common cdgc
`P°iylwire "Ft" ‘° P°]Y wi'" "m"
`width assumcd)
`to center of poly wmnct, poly Contact
`not in direction of metal
`
`5,097,422
`
`mcZmc
`bmzb
`dpyc
`
`I'D
`
`acZgt
`
`nacZpac
`
`bm
`mw
`gtx2
`
`pyoc
`
`Pyw
`pwopac
`pwonac
`noac
`
`5
`
`10
`
`15
`
`In
`
`ween CCU Cl'S O 1 me Wll'CS
`
`8
`Metal wire center to metal wire center,
`pgss?ible contains asiugiied ml _
`D2; game by which the “Mir ofa
`minimum width poly wire must diverge from
`th;i center of a contzgtewidth poly wire to
`antee‘i'eoii'ggiilxzxhntaiet to center of gate
`region
`Center of n+ active contact to center of
`p+ active contact
`Bi? ,meml width ,
`.
`Mmunum metal width
`Center of gate region to poly extension
`beyond gate mums i poly width.
`.
`Poly overlap of contact not in direction
`“PM
`.
`.
`M‘mmm 1”” w‘d‘h
`Pwell overlap of p+ active cut
`Pwell overlap of n+ active cut
`N+ mask overlap of active cut
`
`20
`
`METHODOLOGY: MODULE COMPILER
`_ Using the design rule variables in Table l, the de
`signer can write a computer program using the well
`known “C” programming language and SLIC com
`mands to generate a design rule-independent layout rule
`25 module compiler. Using the module speci?cation 20 (‘in ,
`FIG. 2), the designer may write shell source code 58 in
`the “C” programming language to de?ne the module»
`may include a ?le of design rules, and may also develop
`an interactive menu to make the completed module
`30 comPller “uscr'fnendly""
`_
`Using the layout drawing 26 (in FIGS. 2 and 5) for
`reference, the designer includes SLIC commands as
`geometry generator source code
`This source code
`de?nes the dynamic virtual grid in terms of the refer
`35 ence points shown in FIG. 5. Referring to Table 2,
`below, an example of SLIC source code used to de?ne
`the reference points for one cell of the clocked dynamic
`shift register speci?ed above is shown in program lines
`81-85 and 88-96. This example also includes shell
`40 source code 58.
`
`‘
`
`'
`
`‘
`
`'
`
`‘
`
`Name
`aw
`as
`
`napasi
`
`pww
`pwona
`pyw
`pys
`cw
`cs
`aoc
`me
`:3
`ppw
`nnw
`pds
`:a
`pwss
`pacZsbc
`
`azpycm
`acZpycm
`
`2::
`
`PYZPY
`pyzpyc
`
`TABLE 2
`
`l /****i*iri*************?t*****k*?*********k************
`2
`vi
`3
`* Module : Dynamic Shift Reg .. Shell & Geometry Generator
`*
`g ******************?****************?****************‘k/
`6
`7
`8
`
`.
`
`9 /*****************************************************7
`l0
`COMP ILER SHELL
`ll Mimum*********************************************ik/
`l 2
`l 3
`l 4
`l5 # include (stdio . h>
`l6 # include "/u9/exp/include/slic . h"
`17
`18
`19 ma in ( argc , argv)
`20 INT32 argc;
`21 char *argvl ]:
`
`Page 14 of 23
`
`

`

`9
`
`I
`INT32 nbits;
`char modname[80l ;
`
`5,097,422
`
`10
`
`printf ("\nDYNAMIC SHIFT REGISTER MODULE COMPILER\r§l‘) 7
`printf ("\nModule Name? ") :
`scanf (“%s" , modname) ;
`printf ("\nNumber of Bits? “) ;
`scanf ("%d", &nbits) ;
`printf ("\nCreating Module %s. . .\n\n" ,modname) ;
`
`cfInit();
`initialize(argc, argv) ;
`
`dsrlyout(nbits,modname) ;
`1
`
`GEOMETRY GENERATOR
`****k'k***********************************k*k*?~k**k*k*/
`
`dsrlyout(nbits,modname)
`INT32 hbits;
`char *modname;
`
`rtend;
`
`(
`INT32
`INT32
`INT32
`INT32
`INT32
`UPORTRECORD pp;
`char lastl80], nowl80];
`char templ80] ,instl80];
`char commandIBO];
`xorigin=0; yorigin=07
`
`.
`
`/**********************ki**************i************tk
`Define the Subcell
`t***?*******************i************************ii*?/
`
`.define("SRsubcell");
`
`rtend=MAX(nac2pwc,pac2sbc)7
`
`landmark("xl",xl,xorigin):
`landmark("x3",x3,xl+rtend);
`
`Page 15 of 23
`
`

`

`/**********iz******i*
`
`*******?*k***k****/
`
`104 layer("metal");
`
`/***********k****
`
`108
`109
`110 wire(bm,x1,yl) zx(x5+rtend) ;v
`111 wire('bm,xl,y9) ;x(x5+rtend) ;
`112
`113
`
`/*************k******
`
`115
`116
`
`122
`
`.
`
`/*************
`
`124
`125
`126 wire(bm,x3,y4) ;y(y6) :
`127 wire(bm,x3,y4) ;y(y6) ;
`128
`129
`
`/******************
`
`131
`132 ,
`133-~ 1ayer("act.ive") ;
`134
`
`137 wire(2*hac,x5,yl) ;y(y4) 7
`138 wire(2*hac,x5,y6) ;y(y9) ;
`139
`140
`
`/*******************
`
`142
`
`****************/
`
`*****'k************/
`
`************k/
`
`§**************tk*/
`
`'A'******************/
`
`Page 16 of 23
`
`

`

`13
`
`5,097,422
`
`14
`
`C-shaped Gates
`
`/**'k*'k************** Clock Gates
`
`*****kk******tk***/ _
`
`/********** Stage to Stage Interconnects **f*******/
`
`ADD SUBSTRATE AND PWELL CONTACTS
`
`PwCON(x1,yl) 7
`SUBCON(x1,y9);
`
`/*************
`
`ADD ALL OTHER CONTACTS
`
`*************/
`
`143
`144
`145
`146
`147
`148
`149
`150
`151
`
`152
`
`153
`154
`155
`156
`157
`158
`159
`160
`161
`162
`163
`164
`165
`166
`167
`168
`169
`
`170
`171
`172
`173
`174
`175
`176
`1:77
`178
`179
`180
`181
`182
`183
`
`185
`186
`187
`188
`189
`190
`191
`192
`193
`194
`195
`196
`197
`198
`199
`
`Page 17 of 23
`
`

`

`15
`PYM(x3,y5,"NS");
`PYM(x5,y5,"NS")7
`
`5,097,422
`
`16
`
`/'k***k************
`
`N+ ACTIVE LAYER
`
`****k**k********/
`
`layer("nplus"):
`
`/*********?*****~k*
`
`P+ ACTIVE LAYER
`
`*******k*kkk***k/
`
`layer("pplus“);
`
`/***************1’
`
`PWELL LAYER
`
`***************k*****/
`
`layer(“pwel1");
`box(x1-pwopac,yl-MAX(pwopac,pwonac),x5+mc2mc+bm/2,
`y4+pwonac);
`
`/**************k***
`
`ADD THE PORTS
`
`***************ir*/
`
`port("GND_LR",x5+rtend,yl,"metal",NONE);
`port("CLK_R",xS+rtend,y2,"metal",NONE);
`port(”CLKl_R",x5+rtend,y3,"metal",NONE);
`port(“OUTPUT",x5+rtend,y5,"poly",NONE);
`port("CLKlNOT_R",x5+rtend,y7,"metal",NONE):
`port("CLK2NOT_R“,xS+rtend,y8,"metal",NONE);
`port("Vdd_UR",x5+rtend,y9,"metal“,NONE);
`port("GND_ll“,xl,yl,"metal",NONB);
`port("CLK2_L",xl,y2,"metal",NONE);
`port("CLKl_L",xl,y3,"metal",NONE);
`port("INPUT",xl,y5,"poly",NONE);
`port("CLK1NOT_L",xl,y7,"metal",NONE);
`port("CLK2NOT_L",xl, 8,"metal",NONE);
`port("Vdd_UR",xl,y9,"metal",NONE);
`port(“STlOUT“,x5—py2pyc,y5,“poly",NONE);
`
`enddef();
`
`/***************************i*************************
`Define the Module
`*************i*k*k***********************************/
`
`define(modname);
`
`200
`201
`>202
`203
`204
`205
`206
`207
`208
`209
`210
`211
`212
`213
`214
`215
`216
`217
`218
`219
`220
`221
`222
`223
`224
`225
`226
`227
`
`228
`229
`230
`231
`231
`233
`234
`235
`236'
`237
`238
`239
`240
`241
`242
`243
`244
`245
`246
`247
`248
`249
`250
`2

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket