ch09.4.htm
来自「介绍asci设计的一本书」· HTM 代码 · 共 1,773 行 · 第 1/4 页
HTM
1,773 行
are contained in the <SPAN CLASS="BodyComputer">
property</SPAN>
form. </P>
<P CLASS="Body">
<A NAME="pgfId=34364">
</A>
An attribute string follows the name of the property in the <SPAN CLASS="BodyComputer">
string</SPAN>
form. In this example <SPAN CLASS="BodyComputer">
port Pin_2</SPAN>
has a property <SPAN CLASS="BodyComputer">
Cap</SPAN>
whose value is 22. This is the input capacitance of the inverter, but the interpretation and use of this value depends on the tools. In ASIC design pins do not have pin numbers, so <SPAN CLASS="BodyComputer">
designator</SPAN>
is not used. Instead, the pin names use the <SPAN CLASS="BodyComputer">
property</SPAN>
form. So <SPAN CLASS="BodyComputer">
(property NetName (string "1"))</SPAN>
would replace the <SPAN CLASS="BodyComputer">
(designator "1")</SPAN>
in this example on <SPAN CLASS="BodyComputer">
Pin_2</SPAN>
. The <SPAN CLASS="BodyComputer">
interface</SPAN>
form may also contain attributes of the symbol. </P>
<P CLASS="Body">
<A NAME="pgfId=3731">
</A>
Symbol attributes are similar to pin attributes. In this example the property name <SPAN CLASS="BodyComputer">
Value</SPAN>
has an attribute <SPAN CLASS="BodyComputer">
string "45"</SPAN>
. The names occurring in the <SPAN CLASS="BodyComputer">
property</SPAN>
form may be referenced later in the <SPAN CLASS="BodyComputer">
interface</SPAN>
under the <SPAN CLASS="BodyComputer">
symbol</SPAN>
form to refer back to the <SPAN CLASS="BodyComputer">
property</SPAN>
. </P>
<P CLASS="ComputerFirst">
<A NAME="pgfId=3735">
</A>
(symbol</P>
<P CLASS="Computer">
<A NAME="pgfId=3737">
</A>
(boundingBox (rectangle (pt 0 0) (pt 76 -32)))</P>
<P CLASS="Computer">
<A NAME="pgfId=3739">
</A>
(portImplementation Pin_1</P>
<P CLASS="Computer">
<A NAME="pgfId=3741">
</A>
(connectLocation (figure NORMAL (dot (pt 60 -16)))))</P>
<P CLASS="Computer">
<A NAME="pgfId=3743">
</A>
(keywordDisplay designator</P>
<P CLASS="Computer">
<A NAME="pgfId=3745">
</A>
(display NORMAL</P>
<P CLASS="Computer">
<A NAME="pgfId=3747">
</A>
(justify LOWERCENTER) (origin (pt 60 -14)))))</P>
<P CLASS="Computer">
<A NAME="pgfId=3749">
</A>
(portImplementation Pin_2</P>
<P CLASS="Computer">
<A NAME="pgfId=3751">
</A>
(connectLocation (figure NORMAL (dot (pt 0 -16)))))</P>
<P CLASS="Computer">
<A NAME="pgfId=3753">
</A>
(keywordDisplay designator</P>
<P CLASS="Computer">
<A NAME="pgfId=3755">
</A>
(display NORMAL</P>
<P CLASS="Computer">
<A NAME="pgfId=3757">
</A>
(justify LOWERCENTER) (origin (pt 0 -14)))))</P>
<P CLASS="Computer">
<A NAME="pgfId=3759">
</A>
(keywordDisplay cell</P>
<P CLASS="Computer">
<A NAME="pgfId=3761">
</A>
(display NORMAL (justify CENTERLEFT) (origin (pt 25 -5))))</P>
<P CLASS="Computer">
<A NAME="pgfId=3763">
</A>
(keywordDisplay instance</P>
<P CLASS="Computer">
<A NAME="pgfId=3765">
</A>
(display NORMAL</P>
<P CLASS="Computer">
<A NAME="pgfId=3767">
</A>
(justify CENTERLEFT) (origin (pt 36 -28))))</P>
<P CLASS="Computer">
<A NAME="pgfId=3769">
</A>
(keywordDisplay designator</P>
<P CLASS="Computer">
<A NAME="pgfId=3771">
</A>
(display (figureGroupOverride NORMAL (textHeight 7))</P>
<P CLASS="Computer">
<A NAME="pgfId=3773">
</A>
(justify CENTERLEFT) (origin (pt 13 -16))))</P>
<P CLASS="Computer">
<A NAME="pgfId=3775">
</A>
(propertyDisplay Value</P>
<P CLASS="Computer">
<A NAME="pgfId=3777">
</A>
(display (figureGroupOverride NORMAL (textHeight 9))</P>
<P CLASS="Computer">
<A NAME="pgfId=3779">
</A>
(justify CENTERRIGHT) (origin (pt 76 -24))))</P>
<P CLASS="Computer">
<A NAME="pgfId=3781">
</A>
(figure ... )</P>
<P CLASS="ComputerLast">
<A NAME="pgfId=3805">
</A>
)</P>
<P CLASS="Body">
<A NAME="pgfId=25241">
</A>
The <SPAN CLASS="BodyComputer">
interface</SPAN>
contains a <SPAN CLASS="BodyComputer">
symbol</SPAN>
that contains the pin locations and graphical information about the icon. The optional <SPAN CLASS="BodyComputer">
boundingBox</SPAN>
form encloses all the graphical data. The x- and y-locations of two opposite corners of the bounding rectangle use the <SPAN CLASS="BodyComputer">
pt</SPAN>
form. The scale section of the <SPAN CLASS="BodyComputer">
numberDefinition</SPAN>
from the technology section of the library determines the units of these coordinates. The <SPAN CLASS="BodyComputer">
pt</SPAN>
<A NAME="marker=25240">
</A>
construct is used to specify coordinate locations in EDIF. The keyword <SPAN CLASS="BodyComputer">
pt</SPAN>
must be followed by the x-location and the y-location. For example: <SPAN CLASS="BodyComputer">
(pt 100 200)</SPAN>
is at x = 100, y = 200.</P>
<UL>
<LI CLASS="BulletFirst">
<A NAME="pgfId=3813">
</A>
Each pin in the symbol is given a location using a <SPAN CLASS="BodyComputer">
portImplementation</SPAN>
. </LI>
<LI CLASS="BulletList">
<A NAME="pgfId=26397">
</A>
The <SPAN CLASS="BodyComputer">
portImplementation</SPAN>
refers back to the port defined in the <BR>
<SPAN CLASS="BodyComputer">
interface</SPAN>
. </LI>
<LI CLASS="BulletList">
<A NAME="pgfId=26398">
</A>
The <SPAN CLASS="BodyComputer">
connectLocation</SPAN>
defines the point to connect to the pin. </LI>
<LI CLASS="BulletList">
<A NAME="pgfId=26399">
</A>
The <SPAN CLASS="BodyComputer">
connectLocation</SPAN>
is specified as a <SPAN CLASS="BodyComputer">
figure</SPAN>
, a dot with a single <SPAN CLASS="BodyComputer">
pt</SPAN>
for its location.</LI>
</UL>
<P CLASS="ComputerFirst">
<A NAME="pgfId=30993">
</A>
(symbol </P>
<P CLASS="Computer">
<A NAME="pgfId=31040">
</A>
( ...</P>
<P CLASS="Computer">
<A NAME="pgfId=31016">
</A>
(figure WIDE</P>
<P CLASS="Computer">
<A NAME="pgfId=31017">
</A>
(path (pointList (pt 12 0) (pt 12 -32)))</P>
<P CLASS="Computer">
<A NAME="pgfId=31018">
</A>
(path (pointList (pt 12 -32) (pt 44 -16)))</P>
<P CLASS="Computer">
<A NAME="pgfId=31019">
</A>
(path (pointList (pt 12 0) (pt 44 -16))))</P>
<P CLASS="Computer">
<A NAME="pgfId=31020">
</A>
(figure NORMAL</P>
<P CLASS="Computer">
<A NAME="pgfId=31021">
</A>
(path (pointList (pt 48 -16) (pt 60 -16)))</P>
<P CLASS="Computer">
<A NAME="pgfId=31022">
</A>
(circle (pt 44 -16) (pt 48 -16))</P>
<P CLASS="Computer">
<A NAME="pgfId=31023">
</A>
(path (pointList (pt 0 -16) (pt 12 -16))))</P>
<P CLASS="Computer">
<A NAME="pgfId=31024">
</A>
(annotate </P>
<P CLASS="Computer">
<A NAME="pgfId=31025">
</A>
(stringDisplay "INV" </P>
<P CLASS="Computer">
<A NAME="pgfId=31026">
</A>
(display NORMAL </P>
<P CLASS="Computer">
<A NAME="pgfId=31027">
</A>
(justify CENTERLEFT) (origin (pt 12 -12)))))</P>
<P CLASS="ComputerLast">
<A NAME="pgfId=31028">
</A>
)</P>
<P CLASS="Body">
<A NAME="pgfId=30991">
</A>
The <SPAN CLASS="BodyComputer">
figure</SPAN>
form has either a name, previously defined as a <SPAN CLASS="BodyComputer">
figureGroup</SPAN>
in the <SPAN CLASS="BodyComputer">
technology</SPAN>
section, or a <SPAN CLASS="BodyComputer">
figureGroupOverride</SPAN>
form. The <SPAN CLASS="BodyComputer">
figure</SPAN>
has all the attributes (<SPAN CLASS="BodyComputer">
pathWidth</SPAN>
, <SPAN CLASS="BodyComputer">
borderWidth</SPAN>
, and so on) that were defined in the <SPAN CLASS="BodyComputer">
figureGroup</SPAN>
unless they are specifically overridden with a <SPAN CLASS="BodyComputer">
figureGroupOverride</SPAN>
. </P>
<P CLASS="Body">
<A NAME="pgfId=3821">
</A>
Other objects that may appear in a <SPAN CLASS="BodyComputer">
figure</SPAN>
are: <SPAN CLASS="BodyComputer">
circle</SPAN>
, <SPAN CLASS="BodyComputer">
openShape</SPAN>
, <SPAN CLASS="BodyComputer">
path</SPAN>
,<SPAN CLASS="BodyComputer">
polygon</SPAN>
, <SPAN CLASS="BodyComputer">
rectangle</SPAN>
, and <SPAN CLASS="BodyComputer">
shape</SPAN>
. Most schematic editors use a grid, and the pins are only allowed to occur <SPAN CLASS="Definition">
on grid</SPAN>
<A NAME="marker=25386">
</A>
. </P>
<P CLASS="Body">
<A NAME="pgfId=3825">
</A>
A <SPAN CLASS="BodyComputer">
portImplementation</SPAN>
can contain a <SPAN CLASS="BodyComputer">
keywordDisplay</SPAN>
or a <SPAN CLASS="BodyComputer">
propertyDisplay</SPAN>
for the location to display the pin number or pin name. For a <SPAN CLASS="BodyComputer">
GATE</SPAN>
or <SPAN CLASS="BodyComputer">
COMPONENT</SPAN>
, <SPAN CLASS="BodyComputer">
keywordDisplay</SPAN>
will display the <SPAN CLASS="BodyComputer">
designator</SPAN>
(pin number), and <SPAN CLASS="BodyComputer">
designator</SPAN>
is the only keyword that can be displayed. For a <SPAN CLASS="BodyComputer">
BLOCK</SPAN>
or <SPAN CLASS="BodyComputer">
CELL</SPAN>
, <SPAN CLASS="BodyComputer">
propertyDisplay</SPAN>
will display the <SPAN CLASS="BodyComputer">
NetName</SPAN>
. The <SPAN CLASS="BodyComputer">
display</SPAN>
form displays text in the same way that the <SPAN CLASS="BodyComputer">
figure</SPAN>
displays graphics. The <SPAN CLASS="BodyComputer">
display</SPAN>
must have either a name previously defined as a <SPAN CLASS="BodyComputer">
figureGroup</SPAN>
in the <SPAN CLASS="BodyComputer">
technology</SPAN>
section or a <SPAN CLASS="BodyComputer">
figureGroupOverride</SPAN>
form. The <SPAN CLASS="BodyComputer">
display</SPAN>
will have all the attributes (<SPAN CLASS="BodyComputer">
textHeight</SPAN>
for example) defined in the <SPAN CLASS="BodyComputer">
figureGroup</SPAN>
unless they are overridden with a <SPAN CLASS="BodyComputer">
figureGroupOverride</SPAN>
. </P>
<P CLASS="Body">
<A NAME="pgfId=25269">
</A>
A <SPAN CLASS="Definition">
symbolic constant</SPAN>
<A NAME="marker=25268">
</A>
is an EDIF name with a predefined meaning. For example, <SPAN CLASS="BodyComputer">
LOWERLEFT</SPAN>
is used to specify text justification. The <SPAN CLASS="BodyComputer">
display</SPAN>
form can contain a <SPAN CLASS="BodyComputer">
justify</SPAN>
to override the default <SPAN CLASS="BodyComputer">
LOWERLEFT</SPAN>
. The <SPAN CLASS="BodyComputer">
display</SPAN>
can also contain an <SPAN CLASS="BodyComputer">
orientation</SPAN>
that overrides the default <SPAN CLASS="BodyComputer">
R0</SPAN>
(zero rotation). The choices for orientation are rotations (<SPAN CLASS="BodyComputer">
R0, R90, R180, R270</SPAN>
), mirror about axis (<SPAN CLASS="BodyComputer">
MX, MY</SPAN>
), and mirror with rotation (<SPAN CLASS="BodyComputer">
MXR90, MYR90</SPAN>
). The <SPAN CLASS="BodyComputer">
display</SPAN>
can contain an <SPAN CLASS="BodyComputer">
origin</SPAN>
to override the default <SPAN CLASS="BodyComputer">
(pt 0 0)</SPAN>
. </P>
<P CLASS="Body">
<A NAME="pgfId=3833">
</A>
The symbol itself can have either <SPAN CLASS="BodyComputer">
keywordDisplay</SPAN>
or <SPAN CLASS="BodyComputer">
propertyDisplay</SPAN>
forms such as the ones in the <SPAN CLASS="BodyComputer">
portImplementation</SPAN>
. The choices for <SPAN CLASS="BodyComputer">
keywordDisplay</SPAN>
are: <SPAN CLASS="BodyComputer">
cell</SPAN>
for attribute <SPAN CLASS="BodyComputer">
Type</SPAN>
, <SPAN CLASS="BodyComputer">
instance</SPAN>
for attribute <SPAN CLASS="BodyComputer">
InstName</SPAN>
, and <SPAN CLASS="BodyComputer">
designator</SPAN>
for attribute <SPAN CLASS="BodyComputer">
RefDes</SPAN>
. In the preceding example an attribute window currently mapped to attribute <SPAN CLASS="BodyComputer">
Value</SPAN>
is displayed at location (76, –24) using right-justified text, and a font size is set with <SPAN CLASS="BodyComputer">
(textHeight 9)</SPAN>
.</P>
<P CLASS="Body">
<A NAME="pgfId=3837">
</A>
The graphical data in the symbol are contained in <SPAN CLASS="BodyComputer">
figure</SPAN>
forms. The <SPAN CLASS="BodyComputer">
path</SPAN>
form must contain <SPAN CLASS="BodyComputer">
pointList</SPAN>
with two or more points. The <SPAN CLASS="BodyComputer">
figure</SPAN>
may also contain a <SPAN CLASS="BodyComputer">
rectangle</SPAN>
or <SPAN CLASS="BodyComputer">
circle</SPAN>
. Two points in a <SPAN CLASS="BodyComputer">
rectangle</SPAN>
define the opposite corners. Two points in a <SPAN CLASS="BodyComputer">
circle</SPAN>
represent opposite ends of the diameter. In this example a <SPAN CLASS="BodyComputer">
figure</SPAN>
from <SPAN CLASS="BodyComputer">
figureGroup WIDE</SPAN>
has three lines representing the triangle of the inverter symbol. </P>
<P CLASS="Body">
<A NAME="pgfId=3841">
</A>
Arcs use the <SPAN CLASS="BodyComputer">
openShape</SPAN>
form. The <SPAN CLASS="BodyComputer">
openShape</SPAN>
must contain a curve that contains an arc with three points. The three points in an arc correspond to the starting point, any point on the arc, and the end point. For example, <SPAN CLASS="BodyComputer">
(openShape (curve (arc (pt - 5 0) (pt 0 5 ) (pt 5 0))))</SPAN>
is an arc with a radius of 5, centered at the origin. Arcs and lines use the <SPAN CLASS="BodyComputer">
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?