📄 ch13.3.htm
字号:
<TABLE BORDER="1"><CAPTION><P CLASS="TableTitle"><A NAME="pgfId=481"> </A>Table 13-2: List of valid operators in state dependent path delay expression</P></CAPTION><TR><TH ROWSPAN="1" COLSPAN="1"><P CLASS="CellHeading"><A NAME="pgfId=504"> </A>operator</P></TH><TH ROWSPAN="1" COLSPAN="1"><P CLASS="CellHeading"><A NAME="pgfId=507"> </A>description</P></TH><TH ROWSPAN="1" COLSPAN="1"><P CLASS="CellHeading"><A NAME="pgfId=509"> </A>operator</P></TH><TH ROWSPAN="1" COLSPAN="1"><P CLASS="CellHeading"><A NAME="pgfId=510"> </A>description</P></TH></TR><TR><TD ROWSPAN="1" COLSPAN="1"><P CLASS="CellBody"><A NAME="pgfId=522"> </A>~</P></TD><TD ROWSPAN="1" COLSPAN="1"><P CLASS="CellBody"><A NAME="pgfId=526"> </A>bit-wise negation</P></TD><TD ROWSPAN="1" COLSPAN="1"><P CLASS="CellBody"><A NAME="pgfId=529"> </A>&</P></TD><TD ROWSPAN="1" COLSPAN="1"><P CLASS="CellBody"><A NAME="pgfId=530"> </A>reduction and</P></TD></TR><TR><TD ROWSPAN="1" COLSPAN="1"><P CLASS="CellBody"><A NAME="pgfId=531"> </A>&</P></TD><TD ROWSPAN="1" COLSPAN="1"><P CLASS="CellBody"><A NAME="pgfId=532"> </A>bit-wise and</P></TD><TD ROWSPAN="1" COLSPAN="1"><P CLASS="CellBody"><A NAME="pgfId=533"> </A>| </P></TD><TD ROWSPAN="1" COLSPAN="1"><P CLASS="CellBody"><A NAME="pgfId=534"> </A>reduction or</P></TD></TR><TR><TD ROWSPAN="1" COLSPAN="1"><P CLASS="CellBody"><A NAME="pgfId=535"> </A>|</P></TD><TD ROWSPAN="1" COLSPAN="1"><P CLASS="CellBody"><A NAME="pgfId=536"> </A>bit-wise or</P></TD><TD ROWSPAN="1" COLSPAN="1"><P CLASS="CellBody"><A NAME="pgfId=537"> </A>^</P></TD><TD ROWSPAN="1" COLSPAN="1"><P CLASS="CellBody"><A NAME="pgfId=538"> </A>reduction xor</P></TD></TR><TR><TD ROWSPAN="1" COLSPAN="1"><P CLASS="CellBody"><A NAME="pgfId=539"> </A>^</P></TD><TD ROWSPAN="1" COLSPAN="1"><P CLASS="CellBody"><A NAME="pgfId=540"> </A>bit-wise xor</P></TD><TD ROWSPAN="1" COLSPAN="1"><P CLASS="CellBody"><A NAME="pgfId=541"> </A>~&</P></TD><TD ROWSPAN="1" COLSPAN="1"><P CLASS="CellBody"><A NAME="pgfId=547"> </A>reduction nand</P></TD></TR><TR><TD ROWSPAN="1" COLSPAN="1"><P CLASS="CellBody"><A NAME="pgfId=556"> </A>^~ ~^</P></TD><TD ROWSPAN="1" COLSPAN="1"><P CLASS="CellBody"><A NAME="pgfId=558"> </A>bit-wise xnor</P></TD><TD ROWSPAN="1" COLSPAN="1"><P CLASS="CellBody"><A NAME="pgfId=559"> </A>~|</P></TD><TD ROWSPAN="1" COLSPAN="1"><P CLASS="CellBody"><A NAME="pgfId=560"> </A>reduction nor</P></TD></TR><TR><TD ROWSPAN="1" COLSPAN="1"><P CLASS="CellBody"><A NAME="pgfId=561"> </A>==</P></TD><TD ROWSPAN="1" COLSPAN="1"><P CLASS="CellBody"><A NAME="pgfId=562"> </A>logical equality</P></TD><TD ROWSPAN="1" COLSPAN="1"><P CLASS="CellBody"><A NAME="pgfId=563"> </A>^~ ~^</P></TD><TD ROWSPAN="1" COLSPAN="1"><P CLASS="CellBody"><A NAME="pgfId=564"> </A>reduction xnor</P></TD></TR><TR><TD ROWSPAN="1" COLSPAN="1"><P CLASS="CellBody"><A NAME="pgfId=565"> </A>!=</P></TD><TD ROWSPAN="1" COLSPAN="1"><P CLASS="CellBody"><A NAME="pgfId=566"> </A>logical inequality</P></TD><TD ROWSPAN="1" COLSPAN="1"><P CLASS="CellBody"><A NAME="pgfId=567"> </A>{}</P></TD><TD ROWSPAN="1" COLSPAN="1"><P CLASS="CellBody"><A NAME="pgfId=568"> </A>concatenation</P></TD></TR><TR><TD ROWSPAN="1" COLSPAN="1"><P CLASS="CellBody"><A NAME="pgfId=571"> </A>&&</P></TD><TD ROWSPAN="1" COLSPAN="1"><P CLASS="CellBody"><A NAME="pgfId=579"> </A>logical and</P></TD><TD ROWSPAN="1" COLSPAN="1"><P CLASS="CellBody"><A NAME="pgfId=581"> </A>{ {} }</P></TD><TD ROWSPAN="1" COLSPAN="1"><P CLASS="CellBody"><A NAME="pgfId=583"> </A>replication</P></TD></TR><TR><TD ROWSPAN="1" COLSPAN="1"><P CLASS="CellBody"><A NAME="pgfId=584"> </A>||</P></TD><TD ROWSPAN="1" COLSPAN="1"><P CLASS="CellBody"><A NAME="pgfId=585"> </A>logical or</P></TD><TD ROWSPAN="1" COLSPAN="1"><P CLASS="CellBody"><A NAME="pgfId=586"> </A>?:</P></TD><TD ROWSPAN="1" COLSPAN="1"><P CLASS="CellBody"><A NAME="pgfId=587"> </A>conditional</P></TD></TR><TR><TD ROWSPAN="1" COLSPAN="1"><P CLASS="CellBody"><A NAME="pgfId=588"> </A>!</P></TD><TD ROWSPAN="1" COLSPAN="1"><P CLASS="CellBody"><A NAME="pgfId=589"> </A>logical not</P></TD><TD ROWSPAN="1" COLSPAN="1"><P CLASS="CellBody"><A NAME="pgfId=590"> </A></P></TD><TD ROWSPAN="1" COLSPAN="1"><P CLASS="CellBody"><A NAME="pgfId=591"> </A></P></TD></TR></TABLE><P CLASS="Body"><A NAME="pgfId=593"> </A>A conditional expression shall evaluate to true (<CODE CLASS="code">1</CODE>) for the state-dependent path to be assigned a delay value. If the conditional expression evaluates to <CODE CLASS="code">x</CODE> or <CODE CLASS="code">z</CODE>, it shall be treated as true. If the conditional expression evaluates to multiple bits, the least significant bit shall represent the result. The conditional expression can have any number of operands and operators.</P><P CLASS="SubSubSect"><A NAME="pgfId=594"> </A>Simple state-dependent paths</P><P CLASS="Body"><A NAME="pgfId=595"> </A>If the path description of a state-dependent path is a simple path, then it is called a <I CLASS="Emphasis">simple state-dependent path</I>. The simple path description is discussed in <A HREF="ch13.3.htm#describing module paths (& rules)" CLASS="XRef">See Simple module paths</A>.</P></DIV><DIV><H3 CLASS="Example"><A NAME="pgfId=596"> </A></H3><P CLASS="Body"><A NAME="pgfId=597"> </A>The following example uses state-dependent paths to describe the timing of an XOR gate.</P><P CLASS="Body"><A NAME="pgfId=599"> </A></P><DIV><MAP NAME="ch13-11"></MAP><IMG SRC="ch13-11.gif" USEMAP="#ch13-11"></DIV><P CLASS="Body"><A NAME="pgfId=600"> </A>In this example, first two state-dependent paths describe a pair of output rise and fall delay times when the XOR gate (<CODE CLASS="code">x1</CODE>) inverts a changing input. The last two state-dependent paths describe another pair of output rise and fall delay times when the XOR gate buffers a changing input.</P><P CLASS="Body"><A NAME="pgfId=601"> </A>The example below models a partial ALU. The state-dependent paths specify different delays for different ALU operations.</P><P CLASS="Body"><A NAME="pgfId=603"> </A></P><DIV><IMG SRC="ch13-12.gif"></DIV><P CLASS="Body"><A NAME="pgfId=604"> </A>In the preceding example, the first three path declarations declare paths extending from operand inputs <CODE CLASS="code">i1</CODE> and <CODE CLASS="code">i2</CODE> to the <CODE CLASS="code">o1</CODE> output. The delays on these paths are assigned to operations on the basis of the operation specified by the inputs on <CODE CLASS="code">opcode</CODE>. The last path declaration declares a path from the <CODE CLASS="code">opcode</CODE> input to the <CODE CLASS="code">o1</CODE> output.</P><P CLASS="SubSubSect"><A NAME="pgfId=605"> </A>Edge-sensitive state-dependent paths</P><P CLASS="Body"><A NAME="pgfId=607"> </A>If the path description of a state-dependent path describes an edge-dependent path, then the state-dependent path is called an<I CLASS="Emphasis"> edge-sensitive state-dependent path</I>. The edge-sensitive paths are discussed in <A HREF="ch13.3.htm#14683" CLASS="XRef">See Edge-sensitive paths</A>.</P><P CLASS="Body"><A NAME="pgfId=608"> </A>Different delays can be assigned to the same edge-sensitive path as long as the following criteria are met:</P><UL><LI CLASS="DashedList"><A NAME="pgfId=609"> </A>The edge, condition, or both make each declaration unique.</LI><LI CLASS="DashedList"><A NAME="pgfId=610"> </A>The port is referenced in the same way in all path declarations (entire port, bit-select, or part-select).</LI></UL></DIV><DIV><H3 CLASS="Example"><A NAME="pgfId=611"> </A></H3><P CLASS="Body"><A NAME="pgfId=613"> </A></P><DIV><IMG SRC="ch13-13.gif"></DIV><P CLASS="Body"><A NAME="pgfId=614"> </A>In this example, if the positive edge of <CODE CLASS="code">clock</CODE> occurs when <CODE CLASS="code">reset</CODE> and <CODE CLASS="code">clear</CODE> are low, a module path extends from <CODE CLASS="code">clock</CODE> to <CODE CLASS="code">out</CODE> using a rise delay of 10 and a fall delay of 8.</P><P CLASS="Body"><A NAME="pgfId=615">
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -