1 题目
设计实现一个加/减法器,该电路在M控制下进行加、减运算。当$M=0$时,实现全加器功能;当$M=1$时,实现全减器功能。
2 前言
网上看了一些现有的回答都是很玄学的,要么就默认你已经掌握了整个流程直接给出结果(不是我们如果知道了为什么还要看你的帖子,自己没有笔记吗可恶);还有一些全加和全减是分开的,没有用一个控制电路合起来。
老师上课其实讲过取补码的方法,但是实验器械过于简陋,==只给了非门、与非门和异或门==,每个两片,真的要按这种思路来做步子迈大了容易扯到淡。
本位和差的结果
$$ A_{i} \oplus B_{i} \oplus C_{i-1} $$下面只讨论进位的那个部分,本位和与差可以看全加全减器_哔哩哔哩_bilibili,更加详细
3 解答
按照==(数字电路逻辑设计(第三版)学习指导书, 2018),p37==的指导
3.1 变量定义
先定义一下一些变量的含义
被减数$A_{i}$,减数$B_{i}$,来自低位的进位或者借位$C_{i-1}$,向高位的进位$C_{i}$,本位和或差$S_{i}$
3.2 真值表
这个算的有讲究的,比如减法你要先考虑来自低位的借位,借完之后再考虑本位有没有比减数来得大,要不要往前面借位
| A | B | $C_{i-1}$ | $M$ | $C_{i}$ |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 0 | 1 | 0 | 0 |
| 0 | 1 | 0 | 0 | 0 |
| 0 | 1 | 1 | 0 | 1 |
| 1 | 0 | 0 | 0 | 0 |
| 1 | 0 | 1 | 0 | 1 |
| 1 | 1 | 0 | 0 | 1 |
| 1 | 1 | 1 | 0 | 1 |
| 0 | 0 | 0 | 1 | 0 |
| 0 | 0 | 1 | 1 | 1 |
| 0 | 1 | 0 | 1 | 1 |
| 0 | 1 | 1 | 1 | 1 |
| 1 | 0 | 0 | 1 | 0 |
| 1 | 0 | 1 | 1 | 0 |
| 1 | 1 | 0 | 1 | 0 |
| 1 | 1 | 1 | 1 | 1 |
4 绘制卡诺图
这里0比较少,而且我们最后要用到与或门,直接圈0比较方便
| $C_{i-1},M$\ $A_i,B_{i}$ | 00 | 01 | 11 | 10 |
|---|---|---|---|---|
| 00 | 0 | 0 | 0 | |
| 01 | 0 | 0 | 0 | |
| 11 | 0 | |||
| 10 | 0 |

简单读取一下
$$ \begin{align} \overline{C_{i}} & = \overline{B_{i}}\,\overline{C_{i-1}} + \overline{A_{i}}\,\overline{C_{i-1}}\,\overline{M} + A\,\overline{C_{i-1}}\,M+A_{i}\,\overline{B_{i}}\,M+\overline{A_{i}}\,\overline{B_{i}}\,\overline{M} \\ & = \overline{B_{i}}\,\overline{C_{i-1}}+\overline{C_{i-1}}\,\left(A_{i}\,M+\overline{A_{i}}\,\overline{M}\right)+\overline{B_{i}}\,\left(A_{i}\,M+\overline{A_{i}}\,\overline{M}\right) \\ & =\overline{B_{i}}\,\overline{C_{i-1}}+\left(\overline{B_{i}}\,+\overline{C_{i-1}}\right)\left(A_{i}\,M+\overline{A_{i}}\,\overline{M}\right) \\ & =\overline{B_{i}}\,\overline{C_{i-1}} + \overline{B_{i}\,C_{i-1}}\left(A_{i}\,\odot\,M\right) \\ & =\overline{\left(\overline{\overline{B_{i}}\,\overline{C_{i-1}}}\right)} + \overline{B_{i}\,C_{i-1}}\,\overline{\left(A_{i}\,\oplus\,M\right)} \end{align} $$这样就做完啦哈哈哈,可以用异或门和与非门还有非门来实现了
还有个建议就是 本位和差S单独用一个异或芯片 ,高位进位借位单独用一个,不然连错了拆起来不方便。。
5 参考资料
- 数字电路逻辑设计(第三版)学习指导书. (2018). http://books.google.co.jp/books?id=OlOgzgEACAAJ&dq=isbn:9787040506242&hl=&source=gbs_api
- 全加全减器_哔哩哔哩_bilibili