ch10.09.htm

来自「介绍asci设计的一本书」· HTM 代码 · 共 744 行 · 第 1/3 页

HTM
744
字号
plus one</TD></TR>

<TR>

<TD><P CLASS="TableLeft"><A NAME="pgfId=570766"></A><CODE>T'PRED(X)</CODE></TD>

<TD><P CLASS="Table"><A NAME="pgfId=570768"></A>F</TD>

<TD><P CLASS="Table"><A NAME="pgfId=570770"></A>discrete</TD>

<TD><P CLASS="Table"><A NAME="pgfId=570772"></A>base(T)</TD>

<TD><P CLASS="Table"><A NAME="pgfId=570774"></A>base(T)</TD>

<TD><P CLASS="TableLeft"><A NAME="pgfId=570776"></A>Value of position X in T

minus one</TD></TR>

<TR>

<TD><P CLASS="TableLeft"><A NAME="pgfId=570778"></A><CODE>T'LEFTOF(X)</CODE></TD>

<TD><P CLASS="Table"><A NAME="pgfId=570780"></A>F</TD>

<TD><P CLASS="Table"><A NAME="pgfId=570782"></A>discrete</TD>

<TD><P CLASS="Table"><A NAME="pgfId=570784"></A>base(T)</TD>

<TD><P CLASS="Table"><A NAME="pgfId=570786"></A>base(T)</TD>

<TD><P CLASS="TableLeft"><A NAME="pgfId=570788"></A>Value to the left of X in

T</TD></TR>

<TR>

<TD><P CLASS="TableLeft"><A NAME="pgfId=570790"></A><CODE>T'RIGHTOF(X)</CODE></TD>

<TD><P CLASS="Table"><A NAME="pgfId=570792"></A>F</TD>

<TD><P CLASS="Table"><A NAME="pgfId=570794"></A>discrete</TD>

<TD><P CLASS="Table"><A NAME="pgfId=570796"></A>base(T)</TD>

<TD><P CLASS="Table"><A NAME="pgfId=570798"></A>base(T)</TD>

<TD><P CLASS="TableLeft"><A NAME="pgfId=570800"></A>Value to the right of X

in T</TD></TR>

<TR>

<TD><P CLASS="TableLeft"><A NAME="pgfId=570802"></A><CODE>A'LEFT[(N)]</CODE></TD>

<TD><P CLASS="Table"><A NAME="pgfId=570804"></A>F</TD>

<TD><P CLASS="Table"><A NAME="pgfId=570806"></A>array</TD>

<TD><P CLASS="Table"><A NAME="pgfId=570808"></A>UI</TD>

<TD><P CLASS="Table"><A NAME="pgfId=570810"></A>T(Result)</TD>

<TD><P CLASS="TableLeft"><A NAME="pgfId=570812"></A>Left bound of index N of

array A</TD></TR>

<TR>

<TD><P CLASS="TableLeft"><A NAME="pgfId=570814"></A><CODE>A'RIGHT[(N)]</CODE></TD>

<TD><P CLASS="Table"><A NAME="pgfId=570816"></A>F</TD>

<TD><P CLASS="Table"><A NAME="pgfId=570818"></A>array</TD>

<TD><P CLASS="Table"><A NAME="pgfId=570820"></A>UI</TD>

<TD><P CLASS="Table"><A NAME="pgfId=570822"></A>T(Result)</TD>

<TD><P CLASS="TableLeft"><A NAME="pgfId=570824"></A>Right bound of index N of

array A</TD></TR>

<TR>

<TD><P CLASS="TableLeft"><A NAME="pgfId=570826"></A><CODE>A'HIGH[(N)]</CODE></TD>

<TD><P CLASS="Table"><A NAME="pgfId=570828"></A>F</TD>

<TD><P CLASS="Table"><A NAME="pgfId=570830"></A>array</TD>

<TD><P CLASS="Table"><A NAME="pgfId=570832"></A>UI</TD>

<TD><P CLASS="Table"><A NAME="pgfId=570834"></A>T(Result)</TD>

<TD><P CLASS="TableLeft"><A NAME="pgfId=570836"></A>Upper bound of index N of

array A</TD></TR>

<TR>

<TD><P CLASS="TableLeft"><A NAME="pgfId=570838"></A><CODE>A'LOW[(N)]</CODE></TD>

<TD><P CLASS="Table"><A NAME="pgfId=570840"></A>F</TD>

<TD><P CLASS="Table"><A NAME="pgfId=570842"></A>array</TD>

<TD><P CLASS="Table"><A NAME="pgfId=570844"></A>UI</TD>

<TD><P CLASS="Table"><A NAME="pgfId=570846"></A>T(Result)</TD>

<TD><P CLASS="TableLeft"><A NAME="pgfId=570848"></A>Lower bound of index N of

array A</TD></TR>

<TR>

<TD><P CLASS="TableLeft"><A NAME="pgfId=570850"></A><CODE>A'RANGE[(N)]</CODE></TD>

<TD><P CLASS="Table"><A NAME="pgfId=570852"></A>R</TD>

<TD><P CLASS="Table"><A NAME="pgfId=570854"></A>array</TD>

<TD><P CLASS="Table"><A NAME="pgfId=570856"></A>UI</TD>

<TD><P CLASS="Table"><A NAME="pgfId=570858"></A>T(Result)</TD>

<TD><P CLASS="TableLeft"><A NAME="pgfId=570863"></A>Range A'LEFT(N) to A'RIGHT(N)

<A HREF="#pgfId=570862" CLASS="footnote">5</A></TD></TR>

<TR>

<TD><P CLASS="TableLeft"><A NAME="pgfId=570865"></A><CODE>A'REVERSE_RANGE[(N)]</CODE></TD>

<TD><P CLASS="Table"><A NAME="pgfId=570867"></A>R</TD>

<TD><P CLASS="Table"><A NAME="pgfId=570869"></A>array</TD>

<TD><P CLASS="Table"><A NAME="pgfId=570871"></A>UI</TD>

<TD><P CLASS="Table"><A NAME="pgfId=570873"></A>T(Result)</TD>

<TD><P CLASS="TableLeft"><A NAME="pgfId=570875"></A>Opposite range to A'RANGE[(N)]</TD></TR>

<TR>

<TD><P CLASS="TableLeft"><A NAME="pgfId=570877"></A><CODE>A'LENGTH[(N)]</CODE></TD>

<TD><P CLASS="Table"><A NAME="pgfId=570879"></A>V</TD>

<TD><P CLASS="Table"><A NAME="pgfId=570881"></A>array</TD>

<TD><P CLASS="Table"><A NAME="pgfId=570883"></A>UI</TD>

<TD><P CLASS="Table"><A NAME="pgfId=570885"></A>UI</TD>

<TD><P CLASS="TableLeft"><A NAME="pgfId=570887"></A>Number of values in index

N of array A</TD></TR>

<TR>

<TD><P CLASS="TableLeft"><A NAME="pgfId=570889"></A><CODE>A'ASCENDING[(N)]</CODE></TD>

<TD><P CLASS="Table"><A NAME="pgfId=570891"></A>V</TD>

<TD><P CLASS="Table"><A NAME="pgfId=570893"></A>array</TD>

<TD><P CLASS="Table"><A NAME="pgfId=570895"></A>UI</TD>

<TD><P CLASS="Table"><A NAME="pgfId=570897"></A><CODE>BOOLEAN</CODE></TD>

<TD><P CLASS="TableLeft"><A NAME="pgfId=570902"></A>True if index N of A is

ascending <A HREF="#pgfId=570698" CLASS="footnote">4</A></TD></TR>

<TR>

<TD><P CLASS="TableLeft"><A NAME="pgfId=570904"></A><CODE>E'SIMPLE_NAME</CODE></TD>

<TD><P CLASS="Table"><A NAME="pgfId=570906"></A>V</TD>

<TD><P CLASS="Table"><A NAME="pgfId=570908"></A>name</TD>

<TD><P CLASS="Table"><A NAME="pgfId=570910"></A>&nbsp;</TD>

<TD><P CLASS="Table"><A NAME="pgfId=570912"></A><CODE>STRING</CODE></TD>

<TD><P CLASS="TableLeft"><A NAME="pgfId=570914"></A>Simple name of E <A HREF="#pgfId=570698" CLASS="footnote">4</A></TD></TR>

<TR>

<TD><P CLASS="TableLeft"><A NAME="pgfId=570916"></A><CODE>E'INSTANCE_NAME</CODE></TD>

<TD><P CLASS="Table"><A NAME="pgfId=570918"></A>V</TD>

<TD><P CLASS="Table"><A NAME="pgfId=570920"></A>name</TD>

<TD><P CLASS="Table"><A NAME="pgfId=570922"></A>&nbsp;</TD>

<TD><P CLASS="Table"><A NAME="pgfId=570924"></A><CODE>STRING</CODE></TD>

<TD><P CLASS="TableLeft"><A NAME="pgfId=570926"></A>Path includes instantiated

entities <A HREF="#pgfId=570698" CLASS="footnote">4</A></TD></TR>

<TR>

<TD><P CLASS="TableLeft"><A NAME="pgfId=570928"></A><CODE>E'PATH_NAME</CODE></TD>

<TD><P CLASS="Table"><A NAME="pgfId=570930"></A>V</TD>

<TD><P CLASS="Table"><A NAME="pgfId=570932"></A>name</TD>

<TD><P CLASS="Table"><A NAME="pgfId=570934"></A>&nbsp;</TD>

<TD><P CLASS="Table"><A NAME="pgfId=570936"></A><CODE>STRING</CODE></TD>

<TD><P CLASS="TableLeft"><A NAME="pgfId=570938"></A>Path excludes instantiated

entities <A HREF="#pgfId=570698" CLASS="footnote">4</A></TD></TR>

</TABLE>

<P CLASS="Body"><A NAME="pgfId=340975"></A>The attribute <CODE>'LEFT </CODE>is

important because it determines the default initial value of a type. For

example, the default initial value for type<CODE> BIT </CODE>is<CODE> BIT'LEFT</CODE>

, which is <CODE>'0'</CODE> . The predefined attributes of signals are listed

in Table&nbsp;10.15. The most important signal attribute is <CODE>'EVENT</CODE>

, which is frequently used to detect a clock edge. Notice that <CODE>Clock'EVENT</CODE>

, for example, is a function that returns a value of type <CODE>BOOLEAN</CODE>

, whereas the otherwise equivalent <CODE>not(Clock'STABLE)</CODE> , is a

signal. The difference is subtle but important when these attributes are

used in the <CODE>wait</CODE> statement that treats signals and values differently.

<TABLE BORDER="1" CELLSPACING="2" CELLPADDING="2">

<TR>

<TD COLSPAN="5"><P CLASS="TableTitle"><A NAME="pgfId=191692"></A>TABLE&nbsp;10.15&nbsp;&nbsp;&nbsp;&nbsp;Predefined

attributes for signals.</TD></TR>

<TR>

<TD><P CLASS="Table"><A NAME="pgfId=191702"></A><P CLASS="TableHeads">Attribute</TD>

<TD><P CLASS="Table"><A NAME="pgfId=191707"></A><P CLASS="TableHeads">Kind <A HREF="#pgfId=191706" CLASS="footnote">6</A></TD>

<TD><P CLASS="Table"><A NAME="pgfId=191709"></A><P CLASS="TableHeads">Parameter

T <A HREF="#pgfId=191712" CLASS="footnote">7</A></TD>

<TD><P CLASS="Table"><A NAME="pgfId=191718"></A><P CLASS="TableHeads">Result

type <A HREF="#pgfId=191717" CLASS="footnote">8</A></TD>

<TD><P CLASS="Table"><A NAME="pgfId=191720"></A><P CLASS="TableHeads">Result/restrictions</TD></TR>

<TR>

<TD><P CLASS="TableLeft"><A NAME="pgfId=191722"></A><CODE>S'DELAYED [(T)]</CODE></TD>

<TD><P CLASS="Table"><A NAME="pgfId=191724"></A>S</TD>

<TD><P CLASS="Table"><A NAME="pgfId=191726"></A><CODE>TIME</CODE></TD>

<TD><P CLASS="TableLeft"><A NAME="pgfId=191728"></A>base(S)</TD>

<TD><P CLASS="TableLeft"><A NAME="pgfId=191730"></A>S delayed by time T</TD></TR>

<TR>

<TD><P CLASS="TableLeft"><A NAME="pgfId=191732"></A><CODE>S'STABLE [(T)]</CODE></TD>

<TD><P CLASS="Table"><A NAME="pgfId=191734"></A>S</TD>

<TD><P CLASS="Table"><A NAME="pgfId=191736"></A><CODE>TIME</CODE></TD>

<TD><P CLASS="TableLeft"><A NAME="pgfId=191738"></A><CODE>BOOLEAN</CODE></TD>

<TD><P CLASS="TableLeft"><A NAME="pgfId=191740"></A>TRUE if no event on S for

time T</TD></TR>

<TR>

<TD><P CLASS="TableLeft"><A NAME="pgfId=191742"></A><CODE>S'QUIET [(T)]</CODE></TD>

<TD><P CLASS="Table"><A NAME="pgfId=191744"></A>S</TD>

<TD><P CLASS="Table"><A NAME="pgfId=191746"></A><CODE>TIME</CODE></TD>

<TD><P CLASS="TableLeft"><A NAME="pgfId=191748"></A><CODE>BOOLEAN</CODE></TD>

<TD><P CLASS="TableLeft"><A NAME="pgfId=191750"></A>TRUE if S is quiet for time

T</TD></TR>

<TR>

<TD><P CLASS="TableLeft"><A NAME="pgfId=191752"></A><CODE>S'TRANSACTION</CODE></TD>

<TD><P CLASS="Table"><A NAME="pgfId=191754"></A>S</TD>

<TD><P CLASS="Table"><A NAME="pgfId=191756"></A>&nbsp;</TD>

<TD><P CLASS="TableLeft"><A NAME="pgfId=191758"></A><CODE>BIT</CODE></TD>

<TD><P CLASS="TableLeft"><A NAME="pgfId=191760"></A>Toggles each cycle if S

becomes active</TD></TR>

<TR>

<TD><P CLASS="TableLeft"><A NAME="pgfId=191762"></A><CODE>S'EVENT</CODE></TD>

<TD><P CLASS="Table"><A NAME="pgfId=191764"></A>F</TD>

<TD><P CLASS="Table"><A NAME="pgfId=191766"></A>&nbsp;</TD>

<TD><P CLASS="TableLeft"><A NAME="pgfId=191768"></A><CODE>BOOLEAN</CODE></TD>

<TD><P CLASS="TableLeft"><A NAME="pgfId=191770"></A>TRUE when event occurs on

S</TD></TR>

<TR>

<TD><P CLASS="TableLeft"><A NAME="pgfId=191772"></A><CODE>S'ACTIVE</CODE></TD>

<TD><P CLASS="Table"><A NAME="pgfId=191774"></A>F</TD>

<TD><P CLASS="Table"><A NAME="pgfId=191776"></A>&nbsp;</TD>

<TD><P CLASS="TableLeft"><A NAME="pgfId=191778"></A><CODE>BOOLEAN</CODE></TD>

<TD><P CLASS="TableLeft"><A NAME="pgfId=191780"></A>TRUE if S is active</TD></TR>

<TR>

<TD><P CLASS="TableLeft"><A NAME="pgfId=191782"></A><CODE>S'LAST_EVENT</CODE></TD>

<TD><P CLASS="Table"><A NAME="pgfId=191784"></A>F</TD>

<TD><P CLASS="Table"><A NAME="pgfId=191786"></A>&nbsp;</TD>

<TD><P CLASS="TableLeft"><A NAME="pgfId=191788"></A><CODE>TIME</CODE></TD>

<TD><P CLASS="TableLeft"><A NAME="pgfId=191790"></A>Elapsed time since the last

event on S</TD></TR>

<TR>

<TD><P CLASS="TableLeft"><A NAME="pgfId=191792"></A><CODE>S'LAST_ACTIVE</CODE></TD>

<TD><P CLASS="Table"><A NAME="pgfId=191794"></A>F</TD>

<TD><P CLASS="Table"><A NAME="pgfId=191796"></A>&nbsp;</TD>

<TD><P CLASS="TableLeft"><A NAME="pgfId=191798"></A><CODE>TIME</CODE></TD>

<TD><P CLASS="TableLeft"><A NAME="pgfId=191800"></A>Elapsed time since S was

active</TD></TR>

<TR>

<TD><P CLASS="TableLeft"><A NAME="pgfId=191802"></A><CODE>S'LAST_VALUE</CODE></TD>

<TD><P CLASS="Table"><A NAME="pgfId=191804"></A>F</TD>

<TD><P CLASS="Table"><A NAME="pgfId=191806"></A>&nbsp;</TD>

<TD><P CLASS="TableLeft"><A NAME="pgfId=191808"></A>base(S)</TD>

<TD><P CLASS="TableLeft"><A NAME="pgfId=191813"></A>Previous value of S, before

last event <A HREF="#pgfId=191812" CLASS="footnote">9</A></TD></TR>

<TR>

<TD><P CLASS="TableLeft"><A NAME="pgfId=191815"></A><CODE>S'DRIVING</CODE></TD>

<TD><P CLASS="Table"><A NAME="pgfId=191817"></A>F</TD>

<TD><P CLASS="Table"><A NAME="pgfId=191819"></A>&nbsp;</TD>

<TD><P CLASS="TableLeft"><A NAME="pgfId=191821"></A><CODE>BOOLEAN</CODE></TD>

<TD><P CLASS="TableLeft"><A NAME="pgfId=191827"></A>TRUE if every element of

S is driven <A HREF="#pgfId=191826" CLASS="footnote">10</A></TD></TR>

<TR>

<TD><P CLASS="TableLeft"><A NAME="pgfId=191829"></A><CODE>S'DRIVING_VALUE</CODE></TD>

<TD><P CLASS="Table"><A NAME="pgfId=191831"></A>F</TD>

<TD><P CLASS="Table"><A NAME="pgfId=191833"></A>&nbsp;</TD>

<TD><P CLASS="TableLeft"><A NAME="pgfId=191835"></A>base(S)</TD>

<TD><P CLASS="TableLeft"><A NAME="pgfId=191840"></A>Value of the driver for

S in the current process <A HREF="#pgfId=191826" CLASS="footnote">10</A></TD></TR>

</TABLE>

</P>



<P><HR ALIGN="LEFT"><P CLASS="TableFootnote"><SPAN CLASS="footnoteNumber">

1.</SPAN> <A NAME="pgfId=570597"></A>T = Type, F = Function, V = Value,

R = Range.</P>



<P><P CLASS="TableFootnote"><SPAN CLASS="footnoteNumber"> 2.</SPAN> <A NAME="pgfId=570603"></A>any = any type or subtype, scalar = scalar type

or subtype, discrete = discrete or physical type or subtype, name = entity

name = identifier, character literal, or operator symbol.</P>



<P><P CLASS="TableFootnote"><SPAN CLASS="footnoteNumber"> 3.</SPAN> <A NAME="pgfId=570615"></A>base(T) = base type of T, T = type of T, UI = universal_integer,

T(Result) = type of object described in result column.</P>



<P><P CLASS="TableFootnote"><SPAN CLASS="footnoteNumber"> 4.</SPAN> <A NAME="pgfId=570698"></A>Only available in VHDL-93. For <CODE>'ASCENDING</CODE>

all enumeration types are ascending.</P>



<P><P CLASS="TableFootLast"><SPAN CLASS="footnoteNumber"> 5.</SPAN> <A NAME="pgfId=570862"></A>Or reverse for descending ranges.</P>



<P><P CLASS="TableFootnote"><SPAN CLASS="footnoteNumber"> 6.</SPAN> <A NAME="pgfId=191706"></A>F = function, S = signal.</P>



<P><P CLASS="TableFootnote"><SPAN CLASS="footnoteNumber"> 7.</SPAN> <A NAME="pgfId=191712"></A>Time T &gt;= 0 ns. The default, if T is not present,

is T = 0 ns.</P>



<P><P CLASS="TableFootnote"><SPAN CLASS="footnoteNumber"> 8.</SPAN> <A NAME="pgfId=191717"></A>base(S) = base type of S.</P>



<P><P CLASS="TableFootnote"><SPAN CLASS="footnoteNumber"> 9.</SPAN> <A NAME="pgfId=191812"></A>VHDL-93 returns last value of each signal in array

separately as an aggregate, VHDL-87 returns the last value of the composite

signal.</P>



<P><P CLASS="TableFootLast"><SPAN CLASS="footnoteNumber"> 10.</SPAN> <A NAME="pgfId=191826"></A>VHDL-93 only.</P>



<P><HR ALIGN="LEFT"></P>



<P><A HREF="CH10.htm">Chapter&nbsp;&nbsp;start</A>&nbsp;&nbsp;&nbsp;<A HREF="CH10.08.htm">Previous&nbsp;&nbsp;page</A>&nbsp;&nbsp;&nbsp;<A HREF="CH10.10.htm">Next&nbsp;&nbsp;page</A>

</BODY>



<!--#include file="Copyright.html"--><!--#include file="footer.html"-->

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?