ch02.d.htm

来自「介绍asci设计的一本书」· HTM 代码 · 共 72 行

HTM
72
字号
<HTML>

<HEAD>

  <META NAME="GENERATOR" CONTENT="Adobe PageMill 2.0 Mac">

  

  <TITLE> 2.4.4&nbsp;&nbsp;&nbsp;Exclusive-OR Cell</TITLE>

</HEAD><!--#include file="top.html"--><!--#include file="header.html"-->





<P><A NAME="pgfId=8379"></A><HR ALIGN=LEFT></P>



<P><A HREF="CH02.9.htm">Chapter&nbsp;&nbsp;start</A>&nbsp;&nbsp;&nbsp;<A

HREF="CH02.c.htm">Previous&nbsp;&nbsp;page</A>&nbsp;&nbsp;<A HREF="CH02.e.htm">Next&nbsp;&nbsp;page</A></P>



<H2>2.4.4&nbsp;&nbsp;&nbsp;Exclusive-OR Cell</H2>



<P><P CLASS="BodyAfterHead"><A NAME="pgfId=53548"></A>The two-input <B>exclusive-OR</B>

(<B> XOR</B> , EXOR, not-equivalence, ring-OR) function is</P>



<P><P CLASS="EqnNmbrdAlign"><A NAME="pgfId=54093"></A>&nbsp;&nbsp;A1<SPAN CLASS="White">&nbsp;</SPAN><SPAN CLASS="Symbol">

</SPAN> <SPAN CLASS="White">&nbsp;</SPAN>A2<SPAN CLASS="White">&nbsp;</SPAN>=<SPAN CLASS="White">&nbsp;</SPAN>XOR(A1,&nbsp;A2)<SPAN CLASS="White">&nbsp;</SPAN>=<SPAN CLASS="White">&nbsp;</SPAN>A1<SPAN CLASS="White">&nbsp;</SPAN>&middot;<SPAN CLASS="White">&nbsp;</SPAN>A2'<SPAN CLASS="White">&nbsp;</SPAN>+<SPAN CLASS="White">&nbsp;</SPAN>A1'<SPAN CLASS="White">&nbsp;</SPAN>&middot;<SPAN CLASS="White">&nbsp;</SPAN>A2.(2.32)</P>



<P><P CLASS="Body"><A NAME="pgfId=54107"></A>We are now using multiletter

symbols, but there should be no doubt that A1' means anything other than

NOT(A1). We can implement a two-input XOR using a MUX and an inverter as

follows (2 gates):</P>



<P><P CLASS="EqnNmbrdAlign"><A NAME="pgfId=54153"></A>&nbsp;&nbsp;XOR(A1,&nbsp;A2)<SPAN CLASS="White">&nbsp;</SPAN>=<SPAN CLASS="White">&nbsp;</SPAN>MUX[NOT(A1),&nbsp;A1,&nbsp;A2],(2.33)</P>



<P><P CLASS="BodyAfterHead"><A NAME="pgfId=54158"></A>where</P>



<P><P CLASS="EqnNmbrdAlign"><A NAME="pgfId=54179"></A>&nbsp;&nbsp;MUX(A,

B, S)<SPAN CLASS="White">&nbsp;</SPAN>=<SPAN CLASS="White">&nbsp;</SPAN>A<SPAN CLASS="White">&nbsp;</SPAN>&middot;<SPAN CLASS="White">&nbsp;</SPAN>S<SPAN CLASS="White">&nbsp;</SPAN>+<SPAN CLASS="White">&nbsp;</SPAN>B<SPAN CLASS="White">&nbsp;</SPAN>&middot;<SPAN CLASS="White">&nbsp;</SPAN>S<SPAN CLASS="White">&nbsp;</SPAN>'.(2.34)</P>



<P><P CLASS="BodyAfterHead"><A NAME="pgfId=54148"></A>This implementation

only buffers one input and does not buffer the MUX output. We can use inverter

buffers (3.5 gates total) or an inverting MUX so that the XOR cell does

not have any external connections to source/drain diffusions as follows

(3 gates total):</P>



<P><P CLASS="EqnNmbrdAlign"><A NAME="pgfId=56615"></A>&nbsp;&nbsp;XOR(A1,&nbsp;A2)<SPAN CLASS="White">&nbsp;</SPAN>=<SPAN CLASS="White">&nbsp;</SPAN>NOT[MUX(NOT[NOT(A1)],&nbsp;NOT(A1),&nbsp;A2)].(2.35)</P>



<P><P CLASS="Body"><A NAME="pgfId=54279"></A>We can also implement a two-input

XOR using an AOI21 (and a NOR cell), since</P>



<P><P CLASS="EquationAlign"><A NAME="pgfId=54280"></A>&nbsp;&nbsp;XOR(A1,&nbsp;A2)<SPAN CLASS="White">&nbsp;</SPAN>=<SPAN CLASS="White">&nbsp;</SPAN>A1<SPAN CLASS="White">&nbsp;</SPAN>&middot;<SPAN CLASS="White">&nbsp;</SPAN>A2'<SPAN CLASS="White">&nbsp;</SPAN>+<SPAN CLASS="White">&nbsp;</SPAN>A1'<SPAN CLASS="White">&nbsp;</SPAN>&middot;<SPAN CLASS="White">&nbsp;</SPAN>A2<SPAN CLASS="White">&nbsp;</SPAN>=<SPAN CLASS="White">&nbsp;</SPAN>[<SPAN CLASS="White">&nbsp;</SPAN>(A1<SPAN CLASS="White">&nbsp;</SPAN>&middot;<SPAN CLASS="White">&nbsp;</SPAN>A2)<SPAN CLASS="White">&nbsp;</SPAN>+<SPAN CLASS="White">&nbsp;</SPAN>(A1<SPAN CLASS="White">&nbsp;</SPAN>+<SPAN CLASS="White">&nbsp;</SPAN>A2)'

]'</P>



<P><P CLASS="EqnNmbrdAlign"><A NAME="pgfId=197508"></A>&nbsp;&nbsp;=<SPAN CLASS="White">&nbsp;</SPAN>AOI21[A1,

A2, NOR(A1, A2)],(2.36)</P>



<P><P CLASS="BodyAfterHead"><A NAME="pgfId=197509"></A>(2.5 gates). Similarly

we can implement an exclusive-NOR (XNOR, equivalence) logic cell using an

inverting MUX (and two inverters, total 3.5 gates) or an OAI21 logic cell

(and a NAND cell, total 2.5 gates) as follows (using the MUX function of

Eq.&nbsp;2.34):</P>



<P><P CLASS="EquationAlign"><A NAME="pgfId=54094"></A>&nbsp;&nbsp;XNOR(A1,

A2)<SPAN CLASS="White">&nbsp;</SPAN>=<SPAN CLASS="White">&nbsp;</SPAN>A1<SPAN CLASS="White">&nbsp;</SPAN>&middot;<SPAN CLASS="White">&nbsp;</SPAN>A2<SPAN CLASS="White">&nbsp;</SPAN>+<SPAN CLASS="White">&nbsp;</SPAN>NOT(A1)<SPAN CLASS="White">&nbsp;</SPAN>&middot;<SPAN CLASS="White">&nbsp;</SPAN>NOT(A2)</P>



<P><P CLASS="EquationAlign"><A NAME="pgfId=54453"></A>&nbsp;&nbsp;=<SPAN CLASS="White">&nbsp;</SPAN>NOT[NOT[MUX(A1,

NOT (A1), A2]]</P>



<P><P CLASS="EqnNmbrdAlign"><A NAME="pgfId=54458"></A>&nbsp;&nbsp;=<SPAN CLASS="White">&nbsp;</SPAN>OAI21[A1,&nbsp;A2,&nbsp;NAND(A1,&nbsp;A2)](2.37)</P>



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



<P><A HREF="CH02.9.htm">Chapter&nbsp;&nbsp;start</A>&nbsp;&nbsp;&nbsp;<A

HREF="CH02.c.htm">Previous&nbsp;&nbsp;page</A>&nbsp;&nbsp;<A HREF="CH02.e.htm">Next&nbsp;&nbsp;page</A>

</BODY>



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

⌨️ 快捷键说明

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