⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ch14.2.htm

📁 介绍asci设计的一本书
💻 HTM
📖 第 1 页 / 共 5 页
字号:
if</B>

 ( TMS = '1' ) <B CLASS="Keyword">

then</B>

 S_i := T(S_i, 1); <B CLASS="Keyword">

else</B>

 S_i := T(S_i, 0); <B CLASS="Keyword">

end</B>

 <B CLASS="Keyword">

if</B>

; </P>

<P CLASS="ComputerLabel">

<A NAME="pgfId=47490">

 </A>

<B CLASS="Keyword">

	end</B>

 <B CLASS="Keyword">

if</B>

; S &lt;= S_i; -- update signal with already updated internal variable</P>

<P CLASS="ComputerLabel">

<A NAME="pgfId=42471">

 </A>

<B CLASS="Keyword">

end</B>

 <B CLASS="Keyword">

process</B>

;</P>

<P CLASS="ComputerLastLabel">

<A NAME="pgfId=42472">

 </A>

<B CLASS="Keyword">

end</B>

 behave;</P>

<P CLASS="Computer">

<A NAME="pgfId=117349">

 </A>

&nbsp;</P>

</TD>

</TR>

<TR>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="TableFigureTitle">

<A NAME="pgfId=117340">

 </A>

FIGURE&nbsp;14.7&nbsp;<A NAME="13574">

 </A>

The TAP (test-access port) controller state machine.</P>

</TD>

</TR>

</TABLE>

<P CLASS="Body">

<A NAME="pgfId=52172">

 </A>

<A HREF="CH14.2.htm#41221" CLASS="XRef">

Table&nbsp;14.5</A>

 shows the output control signals generated by the TAP state machine. I have taken the unusual step of writing separate entities for the state machine and its outputs. Normally this is bad practice because it makes it difficult for synthesis tools to extract and optimize the logic, for example. This separation of functions reflects the fact that the operation of the TAP controller state machine is precisely defined by the IEEE 1149.1 standard&#8212;independent of the implementation of the register cells and number of instructions supported. The model in <A HREF="CH14.2.htm#41221" CLASS="XRef">

Table&nbsp;14.5</A>

 contains the following combinational, registered, and gated output signals and will change with different implementations:</P>

<UL>

<LI CLASS="BulletList">

<A NAME="pgfId=49551">

 </A>

<SPAN CLASS="BodyComputer">

reset_bar</SPAN>

. Resets the IR to IDCODE (or BYPASS in absence of IDCODE TDR). </LI>

<LI CLASS="BulletList">

<A NAME="pgfId=49555">

 </A>

<SPAN CLASS="BodyComputer">

selectIR</SPAN>

. Connects a register, the IR or a TDR, to <SPAN CLASS="BodyComputer">

TDO</SPAN>

.</LI>

<LI CLASS="BulletList">

<A NAME="pgfId=49556">

 </A>

<SPAN CLASS="BodyComputer">

enableTDO</SPAN>

. Enables the three-state buffer that drives <SPAN CLASS="BodyComputer">

TDO</SPAN>

. This allows data to be shifted out of the ASIC on <SPAN CLASS="BodyComputer">

TDO</SPAN>

, either from the IR or from the DR, in states <SPAN CLASS="BodyComputer">

shift_IR</SPAN>

 or <SPAN CLASS="BodyComputer">

shift_DR</SPAN>

 respectively. </LI>

<LI CLASS="BulletList">

<A NAME="pgfId=49557">

 </A>

<SPAN CLASS="BodyComputer">

shiftIR</SPAN>

. Selects the serial input to the capture flip-flop in the IR cells.</LI>

<LI CLASS="BulletList">

<A NAME="pgfId=49549">

 </A>

<SPAN CLASS="BodyComputer">

clockIR</SPAN>

. Causes data at the input of the IR to be captured or the contents of the IR to be shifted toward <SPAN CLASS="BodyComputer">

TDO</SPAN>

 (depending on <SPAN CLASS="BodyComputer">

shiftIR</SPAN>

) on the <SPAN CLASS="Emphasis">

negative</SPAN>

 edge of <SPAN CLASS="BodyComputer">

TCK</SPAN>

 following the <SPAN CLASS="Emphasis">

entry</SPAN>

 to the states <SPAN CLASS="BodyComputer">

shift_IR</SPAN>

 or <SPAN CLASS="BodyComputer">

capture_IR</SPAN>

. This is a dirty signal.</LI>

<LI CLASS="BulletList">

<A NAME="pgfId=49562">

 </A>

<SPAN CLASS="BodyComputer">

updateIR</SPAN>

. Clocks the update sequential element on the <SPAN CLASS="Emphasis">

positive</SPAN>

 edge of <SPAN CLASS="BodyComputer">

TCK</SPAN>

 at the same time as the <SPAN CLASS="Emphasis">

exit</SPAN>

 from state <SPAN CLASS="BodyComputer">

update_IR</SPAN>

. This is a dirty signal.</LI>

<LI CLASS="BulletLast">

<A NAME="pgfId=49563">

 </A>

<SPAN CLASS="BodyComputer">

shiftDR</SPAN>

, <SPAN CLASS="BodyComputer">

clockDR</SPAN>

, and <SPAN CLASS="BodyComputer">

updateDR</SPAN>

. Same functions as corresponding IR signals applied to the TDRs. These signals may be gated to the appropriate TDR by the instruction decoder.</LI>

</UL>

<P CLASS="Body">

<A NAME="pgfId=49535">

 </A>

The signals <SPAN CLASS="BodyComputer">

reset_bar</SPAN>

, <SPAN CLASS="BodyComputer">

enableTDO</SPAN>

, <SPAN CLASS="BodyComputer">

shiftIR</SPAN>

, and <SPAN CLASS="BodyComputer">

shiftDR</SPAN>

 are registered or clocked by <SPAN CLASS="BodyComputer">

TCK</SPAN>

 (on the positive edge of <SPAN CLASS="BodyComputer">

TCK</SPAN>

). We say these signals are <SPAN CLASS="Definition">

clean</SPAN>

 (as opposed to being dirty gated clocks). </P>

<TABLE>

<TR>

<TD ROWSPAN="1" COLSPAN="17">

<P CLASS="TableTitle">

<A NAME="pgfId=125786">

 </A>

TABLE&nbsp;14.5&nbsp;<A NAME="41221">

 </A>

The TAP (test-access port) control.<A HREF="#pgfId=125785" CLASS="footnote">

1</A>

</P>

</TD>

</TR>

<TR>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="TableFirst">

<A NAME="pgfId=125825">

 </A>

&nbsp;</P>

<DIV>

<IMG SRC="CH14-8.gif">

</DIV>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="TableLeft">

<A NAME="pgfId=125827">

 </A>

<SPAN CLASS="BodyComputer">

Reset </SPAN>

</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="TableLeft">

<A NAME="pgfId=125829">

 </A>

<SPAN CLASS="BodyComputer">

Run_Idle</SPAN>

</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="TableLeft">

<A NAME="pgfId=125831">

 </A>

<SPAN CLASS="BodyComputer">

Select_DR</SPAN>

</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="TableLeft">

<A NAME="pgfId=125833">

 </A>

<SPAN CLASS="BodyComputer">

Capture_DR</SPAN>

</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="TableLeft">

<A NAME="pgfId=125835">

 </A>

<SPAN CLASS="BodyComputer">

Shift_DR</SPAN>

</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="TableLeft">

<A NAME="pgfId=125837">

 </A>

<SPAN CLASS="BodyComputer">

Exit1_DR</SPAN>

</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="TableLeft">

<A NAME="pgfId=125839">

 </A>

<SPAN CLASS="BodyComputer">

Pause_DR</SPAN>

</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="TableLeft">

<A NAME="pgfId=125841">

 </A>

<SPAN CLASS="BodyComputer">

Exit2_DR</SPAN>

</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="TableLeft">

<A NAME="pgfId=125843">

 </A>

<SPAN CLASS="BodyComputer">

Update_DR</SPAN>

</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="TableLeft">

<A NAME="pgfId=125845">

 </A>

<SPAN CLASS="BodyComputer">

Select_IR</SPAN>

</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="TableLeft">

<A NAME="pgfId=125847">

 </A>

<SPAN CLASS="BodyComputer">

Capture_IR</SPAN>

</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="TableLeft">

<A NAME="pgfId=125849">

 </A>

<SPAN CLASS="BodyComputer">

Shift_IR</SPAN>

</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="TableLeft">

<A NAME="pgfId=125851">

 </A>

<SPAN CLASS="BodyComputer">

Exit1_IR</SPAN>

</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="TableLeft">

<A NAME="pgfId=125853">

 </A>

<SPAN CLASS="BodyComputer">

Pause_IR</SPAN>

</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="TableLeft">

<A NAME="pgfId=125855">

 </A>

<SPAN CLASS="BodyComputer">

Exit2_IR</SPAN>

</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="TableLeft">

<A NAME="pgfId=125857">

 </A>

<SPAN CLASS="BodyComputer">

Update_IR</SPAN>

</P>

</TD>

</TR>

<TR>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="TableLeft">

<A NAME="pgfId=125859">

 </A>

<SPAN CLASS="BodyComputer">

reset_bar</SPAN>

</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="Table">

<A NAME="pgfId=125861">

 </A>

<SPAN CLASS="BodyComputer">

0R</SPAN>

</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="Table">

<A NAME="pgfId=125863">

 </A>

&nbsp;</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="Table">

<A NAME="pgfId=125865">

 </A>

&nbsp;</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="Table">

<A NAME="pgfId=125867">

 </A>

&nbsp;</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="Table">

<A NAME="pgfId=125869">

 </A>

&nbsp;</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="Table">

<A NAME="pgfId=125871">

 </A>

&nbsp;</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="Table">

<A NAME="pgfId=125873">

 </A>

&nbsp;</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="Table">

<A NAME="pgfId=125875">

 </A>

&nbsp;</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="Table">

<A NAME="pgfId=125877">

 </A>

&nbsp;</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="Table">

<A NAME="pgfId=125879">

 </A>

&nbsp;</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="Table">

<A NAME="pgfId=125881">

 </A>

&nbsp;</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="Table">

<A NAME="pgfId=125883">

 </A>

&nbsp;</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="Table">

<A NAME="pgfId=125885">

 </A>

&nbsp;</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="Table">

<A NAME="pgfId=125887">

 </A>

&nbsp;</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="Table">

<A NAME="pgfId=125889">

 </A>

&nbsp;</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="Table">

<A NAME="pgfId=125891">

 </A>

&nbsp;</P>

</TD>

</TR>

<TR>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="TableLeft">

<A NAME="pgfId=125893">

 </A>

<SPAN CLASS="BodyComputer">

selectIR </SPAN>

</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="Table">

<A NAME="pgfId=125895">

 </A>

<SPAN CLASS="BodyComputer">

1</SPAN>

</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="Table">

<A NAME="pgfId=125897">

 </A>

<SPAN CLASS="BodyComputer">

1</SPAN>

</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="Table">

<A NAME="pgfId=125899">

 </A>

&nbsp;</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="Table">

<A NAME="pgfId=125901">

 </A>

&nbsp;</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="Table">

<A NAME="pgfId=125903">

 </A>

&nbsp;</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="Table">

<A NAME="pgfId=125905">

 </A>

&nbsp;</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="Table">

<A NAME="pgfId=125907">

 </A>

&nbsp;</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="Table">

<A NAME="pgfId=125909">

 </A>

&nbsp;</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="Table">

<A NAME="pgfId=125911">

 </A>

&nbsp;</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="Table">

<A NAME="pgfId=125913">

 </A>

<SPAN CLASS="BodyComputer">

1</SPAN>

</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="Table">

<A NAME="pgfId=125915">

 </A>

<SPAN CLASS="BodyComputer">

1</SPAN>

</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="Table">

<A NAME="pgfId=125917">

 </A>

<SPAN CLASS="BodyComputer">

1</SPAN>

</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="Table">

<A NAME="pgfId=125919">

 </A>

<SPAN CLASS="BodyComputer">

1</SPAN>

</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="Table">

<A NAME="pgfId=125921">

 </A>

<SPAN CLASS="BodyComputer">

1</SPAN>

</P>

</TD>

<TD ROWSPAN="1" COLSPAN="1">

<P CLASS="Table">

<A NAME="pgfId=125923">

 </A>

<SPAN 

⌨️ 快捷键说明

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