|
Claims  |
|
|
Having thus described the invention, I claim:
1. A method for recording, as representations of objects, geometries which
are located using a coordinate system, comprising the steps of:
a. designating the location with respect to said coordinate system of at
least one of said geometries;
b. recording, in an instruction file a record associated with each said at
least one geometry for which a location has been designated, each record
including the location with respect to said coordinate system of said at
least one geometry;
c. with respect to at least one other geometry, designating as associated a
previously designated geometry for which a record has been recorded, said
previously designated geometry being a locater geometry;
d. designating the location of each said other geometry relative to said
associated locater geometry, said other geometry being a relative
geometry; and
e. recording in said instruction file a record associated with each said
relative geometry, said record including the location of said relative
geometry relative to said associated locater geometry.
2. The method of claim 1, further comprising the step of recording, in a
datafile, a record associated with each said geometry, each said record
including the location with respect to said coordinate system of said
geometry.
3. The method of claim 2 further comprising the step of storing said
instruction file in a permanent medium.
4. The method of claim 2 further wherein said geometries are defined at
least in part with respect to at least one point wherein said designating
the location of each at least one geometry step comprises the step of
sequentially designating the locations of each point defining said at
least one geometry.
5. The method of claim 4 wherein said recording in said datafile step
comprises the step of recording a record identifying each point and the
location of each point.
6. The method of claim 5 wherein said designating as associated a geometry
step comprises the step of designating, for each said relative geometry,
at least one of said points defining said locater geometry, said point
being an associated locater point.
7. The method of claim 6 wherein said associated locater point designating
step comprises the step of, for each point defining said relative
geometry, designating as corresponding an associated locater point, each
said point defining said relative geometry being a relative point.
8. The method of claim 7 wherein said coordinate system is an x-y Cartesian
coordinate system, further wherein said recording in an instruction file
the relative location step, for each relative point, comprises the steps
of:
a. retrieving from said datafile the location with respect to said
coordinate system of said corresponding, associated locater point;
b. calculating a displacement in the Cartesian x direction between said
relative point and said corresponding, associated locater point;
c. calculating a displacement in the Cartesian y direction between said
relative point and said corresponding, associated locater point; and
d. creating a command in said instruction file identifying said
corresponding, associated locater point and specifying the calculated
displacements in the Cartesian x and y directions between said relative
point and said corresponding, associated locater point.
9. The method of claim 7 wherein said recording in an instruction file the
relative location step, for each relative point, comprises the steps of:
a. retrieving from said datafile the location with respect to said
coordinate system of said corresponding, associated locater point;
b. calculating a displacement between said relative point and said
corresponding, associated locater point; and
c. recording a command in said instruction file identifying said
corresponding, associated locater point and specifying the displacement
between said relative point and said corresponding, associated locater
point.
10. The method of claim 9 wherein said calculating the displacement step
comprises the steps of:
a. calculating the magnitude of the displacement between said relative
point and said corresponding, associated locater point; and
b. calculating the direction of the displacement between said relative
point and said corresponding, associated locater point.
11. A method for recording, as representations of objects, geometries
defined, at least in part, with respect to at least one point which is
located using a coordinate system, comprising the steps of:
a. designating the location with respect to said coordinate system of at
least one of said geometries by sequentially designating the locations of
each said defining point;
b. recording in an instruction file a record associated with each said at
least one geometry for which a location has been designated, each record
including the location with respect to said coordinate system of each said
defining point of said at least one geometry;
c. with respect to at least one other geometry, designating as associated
at least one of said defining point of said previously designated geometry
for which a record has been recorded, said defining point being a locater
point and said previously designated geometry being a locater geometry;
d. designating the location of each said other geometry relative to at
least one associated locater point, said other geometry being a relative
geometry; and
e. recording in said instruction file a record associated with each said
relative geometry, said record including the location with respect to said
coordinate system of said relative geometry.
12. The method of claim 11, further comprising the step of recording, in a
datafile, a record associated with each said defining point, each record
including the location with respect to said coordinate system of said
point.
13. The method of claim 12 wherein said coordinate system is an x-y
Cartesian coordinate system, further wherein, for each point defining said
relative geometry, each said point defining said relative geometry being a
relative point, said recording in an instruction file the relative
location step comprises the steps of:
a. designating as corresponding an associated locater point;
b. retrieving from said datafile the location with respect to said
coordinate system of said corresponding, associated locater point;
c. calculating a displacement in the Cartesian x direction between said
relative point and said corresponding, associated locater point;
d. calculating a displacement in the Cartesian y direction between said
relative point and said corresponding, associated locater point;
e. creating a command in said instruction file identifying said
corresponding, associated locater point and specifying the calculated
displacements in the Cartesian x and y directions between said relative
point and said corresponding, associated locater point.
14. The method of claim 12 wherein, for each point defining said relative
geometry, each said point defining said relative geometry being a relative
point, said recording in an instruction file the relative location step,
comprises the steps of:
a. designating as corresponding an associated locater point;
b. retrieving from said datafile the location with respect to said
coordinate system of said corresponding, associated locater point;
c. calculating a displacement between said relative point and said
corresponding, associated locater point; and
d. recording a command in said instruction file identifying said
corresponding, associated locater point and specifying the calculated
displacement between said locater point and said corresponding, associated
locater point.
15. The method of claim -4 further comprising the steps of:
a. altering the location included in the record associated with at least
one locater geometry; and
b. executing the instructions in the instruction file as instructions for
recording, as representations of objects, the geometries, whereby the
relative displacement between each altered locater geometry and the
relative geometry with respect to which the altered locater geometry is
associated remains unchanged.
16. An apparatus for recording, as representations of objects, geometries
which are located using a coordinate system, comprising:
a. means for designating the location with respect to said coordinate
system of at least one of said geometries;
b. means for recording, in an instruction file, a record associated with
each said at least one geometry for which a location has been designated,
each record including the location with respect to said coordinate system
of said at least one geometry;
c. means for, with respect to at least one other geometry, designating as
associated a previously designated geometry for which a record has been
recorded, said previously designated geometry being a locater geometry;
d. means for designating the location of each said other geometry relative
to said associated locater geometry, said other geometry being a relative
geometry; and
e. means for recording in said instruction file a record associated with
each said relative geometry, said record including the location of said
relative geometry relative to said associated locator geometry.
17. The apparatus of claim 16, further comprising means for recording, in a
datafile, a record associated with each said geometry, each said record
including the location with respect to said coordinate system of said
geometry.
18. The apparatus of claim 17 further comprising means for storing said
instruction file in a permanent medium.
19. The apparatus of claim 17 further wherein said geometries are defined,
at least in part, with respect to at least one point wherein said means
for designating the location of each at least one geometry comprises means
for sequentially designating the locations of each of the point defining
said at least one geometry.
20. An apparatus for recording, as representations of objects, geometries
defined, at least in part with respect to at least one point, which is
located using a coordinate system, comprising:
a. means for designating the location with respect to said coordinate
system of at least one of said geometries using means for sequentially
designating the locations of each said defining point;
b. means for recording in an instruction file a record associated with each
said at least one geometry for which a location has been designated, each
record including the location with respect to said coordinate system of
each said defining point of said at least one geometry;
c. means for, with respect to at least one other geometry, designating as
associated at least one of said defining points of said previously
designated geometry for which a record has been recorded, said defining
point being a locater point and said previously designated geometry being
a locater geometry;
d. means for designating the location of each said other geometry relative
to at least one associated locater point, said geometry being a relative
geometry; and
e. means for recording, in said instruction file, a record associated with
each said relative geometry, said record including the location with
respect to said coordinate system of said relative geometry.
21. A method for a user to interactively record, as representations of
objects constituting elements making up a semiconductor chip having at
least one layer, geometries, defined, at least in part, with respect to at
least one point, which is located using a coordinate system, comprising
the steps of:
a. designating the location with respect to the coordinate system of at
least one of the geometries by sequentially designating the locations of
each defining point;
b. recording, in an instruction file, a record associated with each
geometry for which a location has been designated, each record including
the location with respect to the coordinate system of each defining point
of the geometry;
c. with respect to at least one other geometry; designating as associated
at least one of the defining points of a previously designated geometry
for which a record has been recorded, the defining point being a locater
point and the previously designated geometry being a locater geometry;
d. designating the location of each other geometry relative to at least one
associated locater point, the geometry being a relative geometry;
e. recording in the instruction file a record associated with each relative
geometry, the record including the location relative to the associated
locater point of the relative geometry;
f. altering the location included in the record associated with at least
one locater geometry and
g. executing the instructions in the instruction file as instructions for
recording, as representations of objects, the geometries, whereby the
relative displacement between each altered locater geometry and the
relative geometry with respect to which the altered locater geometry is
associated remains unchanged.
22. The method of claim 21, further comprising the step of recording, in a
datafile, a record associated with each geometry, each record including
the location with respect to the coordinate system of the geometry after
conducting the step of executing the instructions in the instruction file,
the datafile designated an executed macro datafile.
23. The method of claim 22 further comprising the steps of:
a. providing a means for a visible display;
b. displaying, upon the display means, a graphical representation of the
coordinate system;
c. providing means for prompting the user to input instructions; and
d. providing means for accepting instructions input by the user.
24. The method of claim 23 wherein the step of providing instruction
accepting means further comprise the step of providing means for locating
a cursor with respect to the representation of the coordinate system.
25. The method of claim 24, wherein the step of designating the location of
a locater geometry comprises the steps of:
a. inputting a user instruction by sequentially locating the cursor with
respect to the coordinate system at the location of each point defining
the locater geometry; and
b. displaying the locater geometry with the display means.
26. The method of claim 25, wherein spatial design rules exist with respect
to the relative locations between relative geometries and locater
geometries, further comprising the steps of:
a. evaluating the locations of the geometries to confirm conformance with
the spatial design rules; and
b. conducting the following steps i-iii until confirming conformance with
the spatial design rules:
i. altering the location included in the record associated with a locater
geometry;
ii. executing the instructions in the instruction file as instructions for
recording, as representations of objects, the geometries, whereby the
relative displacement between each altered locater geometry and the
relative geometry with respect to which the altered locater geometry is
associated remains unchanged; and
iii. evaluating the locations of the geometries to confirm conformance with
the spatial design rules.
27. The method of claim 26 wherein each evaluating the locations of
geometries step comprises:
a. providing a real time design rule checker; and
b. running the real time design rule checker.
28. The method of claim 25 further comprising the steps of:
a. providing a process definition file containing records, each record
defining a representation of a specified object type as a group of at
least one object, each object of the group represented by a separate
geometry, each separate geometry being a construct geometry; and
b. for at least one located geometry, designating as associated an object
type for which a record exists in the process definition file.
29. The method of claim 28 wherein the step of designating an object type
comprises inputting a user instruction specifying the object type.
30. The method of claim 29, wherein the semiconductor chip has more than
one layer and the providing a process definition file step comprises
providing at least one record defining a representation of an object type,
as a group of objects wherein at least two objects of the group are
located on different layers of the semiconductor chip.
31. The method of claim 29, further comprising the step of, for each object
having an associated object type, displaying the group of construct
geometries.
32. The method of claim 31, further comprising providing means associated
with said display means for displaying geometries representing objects
located on different layers of the semiconductor chip.
33. The method of claim 25, wherein the step of designating an associated
locater geometry comprises inputting a user instruction by locating the
cursor at a location associated with the locater geometry.
34. The method of claim 33, wherein the step of designating the location of
the relative geometry comprises the steps of:
a. inputting a user instruction by sequentially locating the cursor with
respect to the coordinate system at the location of each point defining
the relative geometry; and
b. displaying the relative geometry with the display means.
35. The method of claim 34 wherein the providing means for accepting
instructions input from the user step comprises the step of providing a
computer terminal keyboard.
36. The method of claim 35, wherein the providing means for accepting
instructions input from the user step further comprises the step of
providing a hand operated computer mouse, having at least one control
input mechanism associated therewith.
37. A method for recording, as representations of objects, geometries which
are located using a coordinate system, comprising the steps of:
a. designating the location with respect to said coordinate system of at
least one of said geometries;
b. recording, in an instruction file a record associated with each said at
least one geometry for which a location has been designated, each record
including the location with respect to said coordinate system of said at
least one geometry;
c. with respect to at least one other geometry, designating as associated a
previously designated geometry for which a record has been recorded, said
previously designated geometry being a locater geometry;
d. designating with an interactive graphics display the location of each
said other geometry relative to said associated locater geometry, said
other geometry being a relative geometry; and
e. recording in said instruction file a record associated with each said
relative geometry, said record including the location of said relative
geometry relative to said associated locater geometry.
38. An apparatus for recording, as representations of objects, geometries
defined, at least in part with respect to at least one point, which is
located using a coordinate system, comprising:
a. means for designating the location with respect to said coordinate
system of at least one of said geometries using means for sequentially
designating the locations of each said defining point;
b. means for recording in an instruction file a record associated with each
said at least one geometry for which a location has been designated, each
record including the location with respect to said coordinate system of
each said defining point of said at least one geometry;
c. means for, with respect to at least one other geometry, designating as
associated at least one of said defining points of said previously
designated geometry for which a record has been recorded, said defining
point being a locater point and said previously designated geometry being
a locater geometry;
d. an interactive graphics display for designating the location of each
said other geometry relative to at least one associated locater point,
said geometry being a relative geometry; and
e. means for recording, in said instruction file, a record associated with
each said relative geometry, said record including the location with
respect to said coordinate system of said relative geometry. |
|
|
|
|
Claims  |
|
|
Description  |
|
|
BACKGROUND OF THE INVENTION
This invention relates generally to the field of computer aided design of
systems modeled by groups of objects located using a coordinate system and
displayed, typically, on a computer monitor screen. As used below,
"object" shall refer to an actual, real thing, including a zone of
semi-conductor material, a printed logic symbol, a printed flow-chart box,
a door or window in an architectural layout, etc. "Geometry" shall refer
to a model or representation of an object located in a coordinate system.
The model may be, for example, a data structure maintained in computer RAM
or non-volatile memory. "Geometry" shall also refer to a representation of
the object on a computer screen. In particular, the invention relates to a
method and an apparatus for recording and automatically modifying the
representation of geometries within the data structure, so that upon
changing the size, shape, orientation or location of one geometry, other
geometries automatically relocate to maintain preselected spatial
relationships with the modified geometry, and with other geometries
modified as a result of the modification to the first geometry.
Designers of different sorts of layouts now often use computers to aid the
design. This type of design is known as "CAD" for "computer aided design".
The term "CAE" refers to the related field of "computer aided
engineering". Designers use CAE tools frequently in designing layouts for
printed circuit boards, logic circuits, semiconductor chips, semiconductor
mask-works, very large scale integrated circuits ("VLSI's"), architectural
layouts, etc.
Typically, these tools accept input from the designer, either as cursor key
strokes and/or mouse motions, or as a data file. The user's inputs define
a growing group of geometries. Representations of the geometries are
displayed on a computer screen as rectangles, circles, polygons, standard
logic shapes, etc. Users of these CAE tools face problems when they want
to change the size, shape, orientation or location of a geometry. In known
devices, the data record described and keeps track of each geometry
relative to the origin of a fixed coordinate system. The record(s)
associated with each geometry is (are) independent of records of all other
geometries. If a geometry is enlarged, so that its computer monitor
representation overlaps another geometry, the user must manually move one
or the other of the geometries to avoid the overlap. Similar problems can
arise if the user reduces the size of the geometry, or changes the shape,
orientation or location of a geometry.
In the field of semiconductor, chip design, a related and acute problem
arises. Semiconductor chips are multi-layer devices, each layer including
many objects, such as transistors, metal runs, load transistors and
contacts. Some objects also occupy several layers, with different sized
elements on each layer. In the chip design, not only must the designer
insure that different elements do not collide or overlap, but the designer
must also maintain minimum clearances between elements. The clearances are
dictated by the physics governing the close location of very small
electrical or semiconductor elements. These clearances must be maintained
both between elements on the same layer, and between elements on different
layers. Thus, even though change of a geometry location, etc., might not
bring it into collision with another, the change might bring two
geometries into an unacceptable proximity.
Many of the techniques of integrated circuit manufacture are photographic
in nature. Actual hard copies of the layout are copied and reduced and
then etched according to methods well known in the art. The hard copies
may be generated by CAD equipment, using the same information that the
designer used while designing the device. Thus, the problems encountered
in designing an integrated circuit device also arise in connection with
preparing the mask-works for their manufacture.
OBJECTS OF THE INVENTION
It is therefore an object of the invention to provide a method and an
apparatus that permits maintaining preselected relative clearances between
geometries even though some geometries are moved, enlarged, shrunken or
reoriented. It is a further object of the invention to provide a method
and an apparatus that permits easily testing several variations of a basic
geometry layout, without having to manually replace each geometry due to
relocation or alteration of one geometry upon which the locations of other
geometries depend.
SUMMARY OF THE INVENTION
The method of the invention overcomes the problems of known methods by
specifying the location of the geometries in the model according to both
an absolute and a relative technique. The model may be stored on a
permanent memory medium and may be used at a later time to generate
representations of the group of objects. In this description, the
permanent model will be referred to as the GEOMETRY LOCATION DATABASE. The
relative positioning technique of the method features the steps of
recording instructions for adding new geometries to the GEOMETRY LOCATION
DATABASE according to the new geometry's relative distance from previously
placed, geometries. The method features prompting the user to select the
geometry or geometries from which he wishes to locate the new geometry as
the user defines a new geometry. Below, points, vertices and geometries,
from which other points, vertices or geometries are located, will be
referred to as "locater points, vertices or geometries." Points, vertices
or geometries that are located from locater points, vertices or geometries
are referred to as "relative points, vertices or geometries." A geometry
may also be a single point.
The user may also wish to locate a geometry relative to one of a set of
locater vertices, where the chosen locater vertex has the greatest or
least x or y coordinate of the set of locater vertices. The invention also
provides this comparison locater vertex feature.
The method features generating a temporary table of records as the user
generates instructions for creating geometries. The temporary table of
records is referred to below as the GEOMETRY R-CELL VERTEX TABLE. The
method features using the GEOMETRY R-CELL VERTEX TABLE to determine the
locations of the relative vertices or geometries relative to the already
placed locater vertices or geometries. With respect to groups of
geometries bound together as a construct having geometries on multiple
layers, the method features generating a GEOMETRY LOCATION DATABASE which
includes all of the information necessary to generate a layer by layer
graphic representation of the created construct. The graphic
representation may be on a computer monitor, paper copy or mask work mask.
The apparatus of the invention for maintaining relative clearances between
geometries even though some geometries are moved, enlarged, shrunken or
reoriented, features an input device for accepting instructions from the
user for locating geometries. The input device may include a mouse and
mouse buttons, either combined with a keyboard and cursor keys, or alone.
The mouse and cursor keys may be used to select items from menues of
possible instructions.
The apparatus of the invention overcomes the problems of known devices by
providing means for specifying the location of the geometries in the model
according to both an absolute and a relative scheme. The apparatus permits
specification of the location according to a relative scheme by providing
means for recording instructions for adding new relative geometries to the
GEOMETRY LOCATION DATABASE according to the new relative geometry's
location from previously placed, selected locater geometries. When the
user defines instructions for creating a new geometry, the apparatus
prompts the user to select the locater vertex or geometry relative to
which he wishes to locate the new geometry. The apparatus also includes
circuitry that permits the comparison locater feature described above with
respect to the method of the invention. The apparatus features circuitry
for generating a GEOMETRY R-CELL VERTEX TABLE as the user generates
instructions for creating geometries. The apparatus features means for
using the GEOMETRY R-CELL VERTEX TABLE of records to compare the locations
of the newly created geometries to the already located geometries relative
to which the new relative geometry is located. With respect to groups of
geometries located in multiple layers, the apparatus generates a GEOMETRY
LOCATION DATABASE which includes all of the information necessary to
generate a layer by layer graphic representation of the created groups of
objects.
BRIEF DESCRIPTION OF THE FIGURES OF THE DRAWING
FIG. 1 comprised of FIGS. 1a-1c is a schematic representation of a simple
MOS load transistor having an n.sup.+ path, a polysilicon path and a path
on the buried contact layer.
FIG. 2 comprised of FIGS. 2a-2d is a schematic representation showing a
known method for recording the location of geometries, and the effect upon
the stored GEOMETRY LOCATION DATABASE and displayed geometries caused by
stretching a placed geometry.
FIG. 3 comprised of FIGS. 3a-3d is a schematic representation showing the
illustrated method of the invention for recording the location of
geometries, and the effect upon the stored GEOMETRY LOCATION DATABASE and
displayed geometries caused by stretching a placed geometry.
FIG. 4 is a general circuit diagram of a preferred embodiment of the
apparatus of the invention.
FIG. 5 is a general flow diagram of a preferred embodiment of the method of
the invention, representing the general steps of building a Macro
instruction file, executing the Macro instruction file, and generating a
graphical representation of the group of objects.
FIG. 6 comprised of FIGS. 6a-6c is a detailed flow diagram of a preferred
embodiment of the method of the invention, representing the step of
building a Macro file that provides instructions for creating a GEOMETRY
R-CELL VERTEX TABLE and a GEOMETRY LOCATION DATABASE from which the
locations and types of objects in the model can be determined.
FIG. 7 comprised of FIGS. 7a-7b is a detailed flow diagram of a preferred
embodiment of the method of the invention, representing the step of
recording placement of a vertex in a relative locater mode, while building
a Macro file, such as would be built according to the flow diagram of FIG.
6.
FIG. 8 comprised of FIGS. 8a-8b is a detailed flow diagram of a preferred
embodiment the method of the invention, representing the step of executing
a Macro file, such as would be built according to the flow diagram of FIG.
6, to create a GEOMETRY LOCATION DATABASE from which the locations of
types of objects can be determined.
FIGS. 9a and b are two representations of the GEOMETRY R-CELL VERTEX TABLE
data structure, used in connection with building and executing a Macro
file.
The apparatus and the method of the invention will be more easily
understood by reference to the foregoing figures in connection with the
discussion below.
DETAILED DESCRIPTION OF A PREFERRED EMBODIMENT OF THE INVENTION
In accordance with the invention, the method and apparatus can be
implemented in either hardware, software, or a combination of both. In the
illustrated embodiment first discussed below, the method and apparatus of
the invention have been implemented in a hardware configuration.
An object of the invention is to facilitate rearranging representations of
objects defined using the coordinate system and displayed, for instance,
on a computer monitor. FIG. 1 is a schematic representation of a
multilayer object, a MOS transistor, by a group of geometries. In FIG. 1,
a rectangular geometry 12 represents the n.sup.+ layer; a geometry 14
represents the polysilicon layer of the transistor; and a geometry 16
represents the buried contact window. FIG. 1b shows each of the layers
superimposed in a geometry group 18 (the object), as the transistor might
be represented on a display device of the apparatus of the invention, as
shown in FIG. 4. In the actual device, the layers stack upon each other,
as shown in the cross-sectional view (FIG. 1c) taken along the lines c--c
of FIG. 1b.
FIG. 4 shows an apparatus 40 for recording and automatically rearranging
representations of objects defined using a coordinate system. The
apparatus includes a device 42 for accepting input from the designer. The
input device typically includes a keyboard having cursor keys for
directing the location of a cursor on a computer monitor, such as a
display 46. The input device also typically includes a mouse, which mouse
may include several special keys for sending preselected signals to a
controller 44.
The input device 42 receives input commands from the user. These commands
define locations on the screen that correspond to locations in the
coordinate system where the user wishes to locate points (vertices) and
geometries, commands identifying what type of a geometry the user wishes
to be located at a certain location and commands identifying locater
geometries or vertices from which the user wishes to locate the relative
vertices and geometries. It should be noted that the user places points,
but the points typically become associated into geometries defined by
polygons and are thus frequently referred to below as vertices.
It is of course possible to define geometries by points and/or structures
that are not vertices of polygons. For example, a circle may be defined by
a central point and a radius, and a rectangle may be defined by a central
point, a length and a width. The apparatus and method of the invention may
be practiced by using these additional types of defining points or
s | | |