电路相关知识–读<<继电器是如何成为CPU的>>
*/-->
*///-->
*///-->
电路相关知识–读<<继电器是如何成为CPU的>>
Table of Contents
1 引言
先赞一下BIT祝威 发表的关于继电器如何成为CPU 的博文, 在阅读的过程中, 发现因为缺乏一些基本的电路知识, 因此在此处对于一些在第一篇文章继电器如何成为CPU(1) 阅读过程中遇到的问题, 进行了一个简单得说明.
两篇文章的地址如下:
http://www.cnblogs.com/bitzhuwei/p/from_relay_to_tiny_CPU.html
2 异或门怎么由简单的逻辑电路门组成的?
从其第一篇文中, 能够很容易的理解非门(Not), 与门(And), 以及或门(Or)的实现, 但是异或门(Xor)则复杂了很多. 那么如何轻松的搞定异或门的实现呢? 常见的思路就是利用已有的知识推出未知的知识, 也就是利用非门, 与门, 或门来推出异或门, 这里先借用了真值表来清楚的反应它们之间的关系:
A | B | Not A | Not B | A Or B | A And B | A Xor B |
---|---|---|---|---|---|---|
1 | 1 | 0 | 0 | 1 | 1 | 0 |
1 | 0 | 0 | 1 | 1 | 0 | 1 |
0 | 1 | 1 | 0 | 1 | 0 | 1 |
0 | 0 | 1 | 1 | 0 | 0 | 0 |
从真值表中可以很容易的得到,
A Xor B = ((Not A) Or (Not B)) And (A or B)
3 加法器怎么由基本逻辑门实现的?
根据wikpedia中的解释, 加法器是一种用于执行加法运算的数字电路部件, 是构成CPU算术逻辑单元的基础. 在这些电子系统中, 加法器主要负责计算地址, 索引等数据, 也是二进制数乘法器的重要组成部份. 当A, B为两个加数, Cin为进位数, S为和, Cout为输出的进位数, 则加法器的真值表如下:
A | B | Cin | S | Cout | |
---|---|---|---|---|---|
0 | 0 | 0 | 0 | 0 | |
1 | 0 | 0 | 1 | 0 | |
0 | 1 | 0 | 1 | 0 | |
1 | 1 | 0 | 0 | 1 | |
0 | 0 | 1 | 1 | 0 | |
1 | 0 | 1 | 0 | 1 | |
0 | 1 | 1 | 0 | 1 | |
1 | 1 | 1 | 1 | 1 |
假设用"\(\bullet\)"表示And, 用"+"表示Or, 用"\(\oplus\)"表示Xor, 用"\(\overline{}\)"表示Not, 则从真值表中可以推得:
$$S = A \oplus B \oplus C_{in}$$
$$C_{out} = (A \bullet B) + (A \bullet C) + (B \bullet C)$$
也就是加法器具有三个输入和两个输出, 如果要进行多位运算的话, 只要串着连起来就可以了, 如文章(1)中所示.
4 触发器是什么?
在各种复杂的数字电路中, 不但需要对二值信号进行算术运算和逻辑运算, 还经常需要将这些信号和运算结果存储起来. 为此, 需要使用具有记忆功能的基本逻辑单元. 能够存储1位二值信号的基本单元电路统称为触发器.
触发器具有两个特点:
- 具有两个能自行保持的稳定状态, 用来表示逻辑状态的0和1, 或二进制数的0和1.
- 根据不同的输入信号可以置成1或0状态.
5 R-S触发器和D触发器具体的真值表?
文中图中的R-S触发器是由两个或非门组成的, 同时断开的时候就相当于将数值进行保存了. 真值表如下:
R | S | Q |
---|---|---|
0 | 0 | 保持 |
0 | 1 | 1 |
1 | 0 | 0 |
1 | 1 | 0 |
给R-S触发器加一个控制信号, 就称为了D触发器, 如下:
它的真值表如下:
D | CP | Q |
---|---|---|
0 | 0 | 保持状态 |
1 | 0 | 保持状态 |
0 | 1 | 0 |
1 | 1 | 1 |
可见, CP控制了数据的存入.
Date: 2014-04-22 Tue
Author: Zhong Xiewei
Org version 7.8.11 with Emacs version 24