ch09.5.htm
来自「介绍asci设计的一本书」· HTM 代码 · 共 315 行
HTM
315 行
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML EXPERIMENTAL 970324//EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="Adobe FrameMaker 5.5/HTML Export Filter">
<TITLE> 9.5 CFI Design Representation</TITLE></HEAD><!--#include file="top.html"--><!--#include file="header.html"-->
<DIV>
<P>[ <A HREF="CH09.htm">Chapter start</A> ] [ <A HREF="CH09.4.htm">Previous page</A> ] [ <A HREF="CH09.6.htm">Next page</A> ]</P><!--#include file="AmazonAsic.html"--><HR></DIV>
<H1 CLASS="Heading1">
<A NAME="pgfId=4672">
</A>
9.5 <A NAME="26618">
</A>
CFI Design Representation</H1>
<P CLASS="BodyAfterHead">
<A NAME="pgfId=4680">
</A>
The <A NAME="marker=4679">
</A>
<SPAN CLASS="Definition">
CAD Framework Initiative</SPAN>
(<A NAME="marker=31264">
</A>
<SPAN CLASS="Definition">
CFI</SPAN>
) is an independent nonprofit organization working on the creation of standards for the electronic CAD industry. One of the areas in which CFI is working is the definition of standards for <A NAME="marker=4686">
</A>
<SPAN CLASS="Definition">
design representation </SPAN>
(<A NAME="marker=4689">
</A>
<SPAN CLASS="Definition">
DR</SPAN>
). The CFI 1.0 standard [<A NAME="CFI, 1992">
</A>
CFI, 1992] has tackled the problems of ambiguity in the area of definitions and terms for schematics by defining an <A NAME="marker=4691">
</A>
<SPAN CLASS="Definition">
information model</SPAN>
(<A NAME="marker=4693">
</A>
<SPAN CLASS="Definition">
IM</SPAN>
) for electrical connectivity information.</P>
<P CLASS="Body">
<A NAME="pgfId=31268">
</A>
What this means is that a group of engineers got together and proposed a standard way of using the terms and definitions that we have discussed. There are good things and bad things about standards, and one aspect of the CFI 1.0 DR standard illustrates this point. A good thing about the CFI 1.0 DR standard is that it precisely defines what we mean by terms and definitions in schematics, for example. A bad thing about the CFI DR standard is that in order to be precise it introduces yet more terms that are difficult to understand. A very brief discussion of the CFI 1.0 DR standard is included here, at the end of this chapter, for several reasons:</P>
<UL>
<LI CLASS="BulletFirst">
<A NAME="pgfId=4706">
</A>
It helps to solidify the concepts of the terms and definitions such as cell, net, and instance that we have already discussed. However, there are additional new concepts and terms to define in order to present the standard model, so this is not a good way to introduce schematic terminology.</LI>
<LI CLASS="BulletLast">
<A NAME="pgfId=4708">
</A>
The ASIC design engineer is becoming more of a programmer and less of a circuit designer. This trend shows no sign of stopping as ASICs grow larger and systems more complex. A precise understanding of how tools operate and interact is becoming increasingly important.</LI>
</UL>
<DIV>
<H3 CLASS="Heading2">
<A NAME="pgfId=4712">
</A>
9.5.1 CFI Connectivity Model</H3>
<P CLASS="BodyAfterHead">
<A NAME="pgfId=4720">
</A>
The CFI connectivity model is defined using the <A NAME="marker=4716">
</A>
<SPAN CLASS="Definition">
EXPRESS language</SPAN>
and its graphical equivalent <A NAME="marker=4719">
</A>
<SPAN CLASS="Definition">
EXPRESS-G</SPAN>
. EXPRESS is an International Standards Organization (ISO) standard [<A NAME="Express, 1991">
</A>
EXPRESS, 1991]. EDIF 3 0 0 and higher also use EXPRESS as the internal formal description of the language. EXPRESS is used to define objects and their relationships. <A HREF="#18979" CLASS="XRef">
Figure 9.11</A>
shows some simple examples of the EXPRESS-G notation.</P>
<TABLE>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableFigure">
<A NAME="pgfId=7159">
</A>
<IMG SRC="CH09-13.gif" ALIGN="BASELINE">
</P>
</TD>
</TR>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableFigureTitle">
<A NAME="pgfId=7162">
</A>
FIGURE 9.11 <A NAME="18979">
</A>
Examples of EXPRESS-G. (a) Each day in January has a number from 1 to 31. (b) A shopping list may contain a list of items. (c) An EXPRESS-G model for a family.</P>
</TD>
</TR>
</TABLE>
<P CLASS="Body">
<A NAME="pgfId=28939">
</A>
The following EXPRESS code (a <SPAN CLASS="Definition">
schema</SPAN>
<A NAME="marker=14643">
</A>
) is equivalent to the EXPRESS-G family model shown in <A HREF="#18979" CLASS="XRef">
Figure 9.11</A>
(c):</P>
<P CLASS="ComputerFirst">
<A NAME="pgfId=4733">
</A>
SCHEMA family_model;</P>
<P CLASS="Computer">
<A NAME="pgfId=4735">
</A>
ENTITY person</P>
<P CLASS="Computer">
<A NAME="pgfId=4737">
</A>
ABSTRACT SUPERTYPE OF (ONEOF (man, woman, child));</P>
<P CLASS="Computer">
<A NAME="pgfId=4739">
</A>
name: STRING;</P>
<P CLASS="Computer">
<A NAME="pgfId=4741">
</A>
date of birth: STRING;</P>
<P CLASS="Computer">
<A NAME="pgfId=7192">
</A>
END_ENTITY;</P>
<P CLASS="ComputerFirst">
<A NAME="pgfId=7194">
</A>
ENTITY man</P>
<P CLASS="Computer">
<A NAME="pgfId=14656">
</A>
SUBTYPE OF (person);</P>
<P CLASS="Computer">
<A NAME="pgfId=14657">
</A>
wife: SET[0:1] OF woman;</P>
<P CLASS="Computer">
<A NAME="pgfId=14658">
</A>
children: SET[0:?] OF child;</P>
<P CLASS="Computer">
<A NAME="pgfId=4755">
</A>
END_ENTITY;</P>
<P CLASS="ComputerFirst">
<A NAME="pgfId=4759">
</A>
ENTITY woman</P>
<P CLASS="Computer">
<A NAME="pgfId=4761">
</A>
SUBTYPE OF (person);</P>
<P CLASS="Computer">
<A NAME="pgfId=4763">
</A>
husband: SET[0:1] OF man;</P>
<P CLASS="Computer">
<A NAME="pgfId=4765">
</A>
children: SET[0:?] OF child;</P>
<P CLASS="Computer">
<A NAME="pgfId=4767">
</A>
END_ENTITY;</P>
<P CLASS="ComputerFirst">
<A NAME="pgfId=4771">
</A>
ENTITY child</P>
<P CLASS="Computer">
<A NAME="pgfId=4773">
</A>
SUBTYPE OF (person);</P>
<P CLASS="Computer">
<A NAME="pgfId=4775">
</A>
father: man;</P>
<P CLASS="Computer">
<A NAME="pgfId=4777">
</A>
mother: woman;</P>
<P CLASS="Computer">
<A NAME="pgfId=4779">
</A>
END_ENTITY;</P>
<P CLASS="ComputerLast">
<A NAME="pgfId=4781">
</A>
END_SCHEMA;</P>
<P CLASS="Body">
<A NAME="pgfId=4789">
</A>
This EXPRESS description is a formal way of saying the following:</P>
<UL>
<LI CLASS="BulletFirst">
<A NAME="pgfId=14604">
</A>
“Men, women, and children are people.”</LI>
<LI CLASS="BulletList">
<A NAME="pgfId=14605">
</A>
“A man can have one woman as a wife, but does not have to.”</LI>
<LI CLASS="BulletList">
<A NAME="pgfId=14606">
</A>
“A wife can have one man as a husband, but does not have to.”</LI>
<LI CLASS="BulletList">
<A NAME="pgfId=14610">
</A>
“A man or a woman can have several children.”</LI>
<LI CLASS="BulletLast">
<A NAME="pgfId=14607">
</A>
“A child has one father and one mother.”</LI>
</UL>
<P CLASS="BodyAfterHead">
<A NAME="pgfId=14611">
</A>
Computers can deal more easily with the formal language version of these statements. The formal language and graphical forms are more precise for very complex models.</P>
<P CLASS="Body">
<A NAME="pgfId=14603">
</A>
<A HREF="#19355" CLASS="XRef">
Figure 9.12</A>
shows the basic structure of the CFI 1.0.0 <A NAME="marker=4785">
</A>
<SPAN CLASS="Definition">
Base Connectivity Model</SPAN>
(<A NAME="marker=4788">
</A>
<SPAN CLASS="Definition">
BCM</SPAN>
). The actual EXPRESS-G diagram for the BCM defined in the CFI 1.0.0 standard is only a little more complicated than <A HREF="#19355" CLASS="XRef">
Figure 9.12</A>
(containing 21 boxes or types rather than just six). The extra types are used for bundles (a group of nets) and different views of cells (other than the netlist view).</P>
<TABLE>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableFigure">
<A NAME="pgfId=7203">
</A>
</P>
<DIV>
<IMG SRC="CH09-14.gif">
</DIV>
</TD>
</TR>
<TR>
<TD ROWSPAN="1" COLSPAN="1">
<P CLASS="TableFigureTitle">
<A NAME="pgfId=26128">
</A>
FIGURE 9.12 <A NAME="19355">
</A>
The original “five-box” model of electrical connectivity. There are actually six boxes or types in this figure; the Library type was added later.</P>
</TD>
</TR>
</TABLE>
<P CLASS="Body">
<A NAME="pgfId=14546">
</A>
<A HREF="#19355" CLASS="XRef">
Figure 9.12</A>
says the following (“presents” as used in <A HREF="#19355" CLASS="XRef">
Figure 9.12</A>
is the Express jargon for “have”): </P>
<UL>
<LI CLASS="BulletFirst">
<A NAME="pgfId=14570">
</A>
“A library contains cells.”</LI>
<LI CLASS="BulletList">
<A NAME="pgfId=14573">
</A>
“Cells have ports, contain nets, and can contain other cells.”</LI>
<LI CLASS="BulletList">
<A NAME="pgfId=14571">
</A>
“Cell instances are copies of a cell and have port instances.”</LI>
<LI CLASS="BulletList">
<A NAME="pgfId=14572">
</A>
“A port instance is a copy of the port in the library cell.”</LI>
<LI CLASS="BulletList">
<A NAME="pgfId=14581">
</A>
“You connect to a port using a net.”</LI>
<LI CLASS="BulletList">
<A NAME="pgfId=14582">
</A>
“Nets connect port instances together.”</LI>
</UL>
<P CLASS="Body">
<A NAME="pgfId=26106">
</A>
Once you understand <A HREF="#19355" CLASS="XRef">
Figure 9.12</A>
you will see that it replaces the first half of this chapter. Unfortunately you have to read the first half of this chapter to understand <A HREF="#19355" CLASS="XRef">
Figure 9.12</A>
.</P>
</DIV>
<HR><P>[ <A HREF="CH09.htm">Chapter start</A> ] [ <A HREF="CH09.4.htm">Previous page</A> ] [ <A HREF="CH09.6.htm">Next page</A> ]</P></BODY>
<!--#include file="Copyright.html"--><!--#include file="footer.html"-->
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?