最近忙着模拟实验数据,所以就没有时间更新。今天马上开始进入新的内容吧。内存的最基本功能的实现起源于双稳态电路(bistable)。什么是双稳态?看示意图:

054556673.png。(a)中I1的输出Q反馈给I2,由于I2是NOT门输出~Q然后再输入Q。。。。。。无限循环下去。发现什么了?如果初始值Q=1那么这个回路只要不发生意外,永远都会保留有1这个数据,如果Q=0,结果就是储存0(自己分析一遍)----这不就是能存储1位数据的内存么。对的!所以Q=0和1的时候回路输出都处于稳定状态,所以叫做双稳态电路。

再看图(b)不要被眼睛骗了,和(a)一摸一样,只是多了两个输出,一个Q一个Q的互补。(**这是理论上可行的!最简单的证明就是你抛一枚硬币猜正反面,当你看到正面,就一定知道下面是反面--信息量并没有增加!--虽然是废话,但是这个经典现象和量子纠缠态有深厚的渊源,如果有时间回给大家详细说来)。 所以--(注意总结能力)N稳态电路就会有log2N(以2为底N的对数)位数据。

那么和我们一般所需要的内存对比一下。。。貌似缺少了什么。是的,我们没有办法控制输入!并且第一次给信号的时候很可能让这个回路处于 亚稳态(metastable)因为一般第一次输入的时候,都会产生不均匀的峰值或低谷。所以我们要想办法,让这个回路能受我们的控制。于是乎--我们就发明了SR锁存器。

060649955.pngS=Set(设定),R=Reset(复原)。看到这个感觉脑袋转不过来?别慌,拿出我们的分析利器,无穷列举法--列出所有可能的输入和相应的输出。这里我就不用了,大家不懂得就要自己动手。熟练了就偷工减料了~~~。

首先观察,N1和N2都是NAND门。所以只有输入都是0的时候结果为1.显而易见,R=1,无论S是什么,Q一定为0;S=1,无论R是什么,,~Q一定是0;而R=0,S=1则Q=1;S=0,R=1则~Q=1也就是Q=1。而R=0,S=0状态输出值跟随之前的Q值(特别重要,这如果不懂就不要往下看!!不懂得人自己列表,一步一步推直到能总结为之)。总结:R=1也就是reset=1输出Q=0(这就是为什么叫做Reset输入的原因),Set这个回路就会让其处于Q=1状态。这里体现了我们能够控制初始值了!--------------------------真的动手做了么?如果列出真值表的同学就会发先,我在瞎说!!!------------------------------------主要是R=1和S=1的时候怎么办?输出逻辑错误,但是不违背电路原理所以输出都是0(Q=~Q。。。)。顺带给出SR图的块图,就是把它封装起来准备以后使用和改造:

063529664.png

那么我们怎么解决那个逻辑错误?还有虽然我们能够控制初始值,但是我们还不能控制数据的存储。(SR锁当然可以存储数据,但是经过上面的分析,我们的数据必须是给R和S,这样 完全没有办法控制什么时间要存什么数据)。所以我们又想办法搞了一个D锁相器(D latch)。下一小部分见我们的Dlatch~