存储元件与阵列

下载
第9章存储元件与阵列
大多数的数字系统需要具备“记忆”二进制变量数值的能力,以对其作进一步的计算。
这种能力通过一类称为存储单元的数字电路予以实现。存储单元允许用户把二进制变量的数
值存储起来,在需要时再调用它。尽管存储单元能够被独立地使用,但它们通常以称为寄存
器的字长大小的组,或者作为能够存储成千上万位数据的巨大阵列的形式出现。
9.1 一般属性
存储元件是能够保持系统所需的二进制变量数值的电路。
在图9 - 1中,描绘了一个基本的存储单元。在最通用的术语中,
有三种操作刻画出该单元的特性。
• 写入在一个写入操作中,数据位码D的值(为0或者1)
置于输入,并被该元件
所接受。
• 保持在写入操作中所存储的D值被保持,尽管输入可能有所变化。
• 读出一个读出操作把存储位码的值提供给输出变量Q。
E n a b l e使能控制位可能存在于某个设计中, Enable = 0示意保存,而Enable = 1容许进行读
出或者写入操作。
数字系统采用不同类型的存储元件,它们的特性随应用而变化。一个分类方案基于该单
元设计提供了哪些操作。读/写存储器就是用户可以用来存储数值,保持它们一段不确定时期,
并在需要时再把该数值读出来的存储器。它可能是最一般类型的存储器,通常称为随机存取
存储器或者R A M。大多数的读/写存储器在掉电时丢失其内容。一类限制性更大的存储器称为
只读存储器(R O M)。对于R O M,信息在它置入电子系统之前就被永久地存储于器件之中。
用户可以读出R O M中的信息,但是不允许改变该数据。可编程R O M(P R O M)是R O M的一
个变种,用户可以在其中存储期望的数据,但是写入过程需要一个特别的电子装置,且它仅
能执行数次。
计算机围绕着一组称为寄存器的存储元件而设计。一个寄存器被设计来保存整个的n比特
字,而它在其他方面与R A M相同。不管具体的应用如何,所有的存储元件在数字逻辑方面有
着共同的基础。
9.2 锁存器
锁存器是能够跟随数据变化并传送这些变化到一根输出线的逻辑元件。图9 - 2是它的一个
简单表示。通常地,锁存器由两个主要的特性所刻画:
• 它是贯通的,因为输出Q(t)跟随上一时刻输入的变化;而且,
• 它使用双稳态电路实现存储,从而,不是Q = 0就是Q = 1能够在该单元中保持。
使用简单的逻辑门就可以构成几类锁存器。
输入(写)
图9-1 通用存储单元
输出(读)
使能
9.2.1 SR锁存器
置位复位( S R)锁存器是一个贯通的双稳态元件,它对于输入的变化是敏感的。SR 锁存
器具有分别标注为S与R的两个输入和一个标注为Q的输出;互补输出
-Q
也被提供。图9 - 3是其
一般的方框图表示。该元件的名称从它的两个基本操作的定义所得出。
图9-2 基本锁存器符号图9-3 SR锁存器符号
• 置位(S)操作,输出值被强制为Q = 1。
• 复位(R)操作,Q值被强制为Q = 0。
术语“置位”与“复位”十分通用,在数字系统中经常被用来描述条件。例如,如果我们说
我们想要“置位变量A”,这意味着我们强制A值为1。类似地,复位A意味着A→0。在这里,
我们将讨论两种基本S R锁存器电路。一种是基于两输入或非门N O R 2,另一种使用两输入与
非门N A N D 2逻辑。既然或非门和与非门互为对偶关系,那么它们的开关特性将是相反的。
或非门S R锁存器
S R锁存器能够由两个交叉耦合的或非门构成,如图9 - 4 a所示。“交叉耦合” 这个术语定
义了两个门的连接方式;它的意思是一个或非门的输出连接到另一个或非门的输入,反之亦
然。这在术语上也称为反馈网络,因为每一个门的输出都被“反馈”而成为另一个门的输
入。要建立一个能保存两个逻辑值的双稳态电路,反馈是必需的。图9 - 4 b中的状态表总结了
该锁存器的操作。我们必须关注其中对输入的解释,因为S R锁存器通过感知输入S和R的变
化来存储比特。这意味着,我们真正感兴趣的是S ( t )和R ( t ),以及它们对该锁存器状态的影
响。
现在,我们来分析一下S R锁存器的功能表。该状态表中的第一种输入称为保持操作,在
那里,维持着S = 0和R = 0;这意味着只要S= 0 =R,Q值就不会改变。为了理解这个性质,回
顾一下图9 - 5所示的或非门的真值表。或非门的功能可被解释为任意一个输入为1,都使得输
出为0;输出为1的唯一方式是两个输入皆为0值。现在假设S= 0与R= 0被应用到输入。如果Q =
0,那么下方的或非门(带输入S)的两个输入皆为0,这意味着
-Q
= 1。这就反过来作用到上方
244 数字系统设计基础教程
使能
输入输出
输入输出
操作
置位
复位
不使用
保持
图9-4 基于或非门的SR锁存器电路
a) 逻辑图解b) 功能表
下载
的或非门(带输入R),确保Q = 0被维持。如果代之以Q= 1,
那么仅仅是变元反向。这个分析的重要性在于这样一个事
实,保持Q值是可能的。交差耦合的或非门形成一个有两个
“稳定”状态的双稳态网络。这意味着该电路能够“保持”
数值Q = 0;对于另外一种可能性Q = 1,它同样地正确。
为了置位该锁存器,输入S从0上升到1,同时保持R = 0。
接下来,S又返回为0,使该锁存器回到保持状态。在该功能
表中,这个行为由S的一个脉冲输入表示。从或非门的真值
表可见,随着S = 1,输出
-Q
被强制为0。那么,上方的或非门有R = 0与Q = 0作用到它的输入,产
生一个输出Q = 1。这就导致了“置位”的动作。复位强制Q为0,可以用同样的方式去分析它。
在该功能表的第四种输入中, S和R的值同时设为逻辑1。从真值表可见,两个输出都被强
制为0。由于在这种情形下两输出不互补,我们就把它定义为S R锁存器“不使用”的输入组合。
这仅仅意味着,要避免两输入同时被脉冲所激励的情形。在数字系统中应用S R锁存器时,
必须考虑到它的这种行为。
与非门S R锁存器
如图9 - 6所示,也可以使用与非门构成S R锁存器。两与非门交叉耦合,产生必需的反馈而
形成双稳态网络。然而,它的性质与基于或非门的方案是相反的,保持的条件是R = 1且S = 1。
正如它的功能表指明的,使S从1下跳为0,该锁存器就可以置位Q = 1;使S回跳到1,就开始
保持。相反地,如果R从1下跳为0,该锁存器就被复位Q = 0。R再恢复为逻辑电平1,则保持
输出值。“不使用”的情形是, S与R同时下跳为0。
图9-6 基于与非门的SR锁存器
通过研究图9 - 7中与非门的真值表可以理解,为什么这
种锁存器的行为与基于或非门的电路的行为相反。与非门
的操作可以归纳为,只要有一个输入为逻辑0,就使得输出
为逻辑1。因为或非门在输入逻辑1时翻转,我们期望这两
种锁存器有类似的行为,但是这里要导致一个开关事件必
须是相反的输入电平。由于这一点发现,这种锁存器的符
号必须相对于图9 - 3所示的锁存器的符号有所修改,那里的
S和R现在都被指定为低输入有效。
第9章存储元件与阵列245
下载
图9-5 两输入或非门真值表
两输入都为1的条件可能导致一个不稳定状态,使该器件震荡。这种可能性依赖于信号通过门的延迟。
操作
不使用
置位
复位
保持
a) 逻辑图解b) 功能表
图9-7 两输入与非门真值表
9.2.2 D锁存器
D型锁存器只有单个作为输入数据位码的输入D。它的特性在于,它具有锁定D的值并追
踪其任何变化的能力。构造一个D锁存器的简单方式如图9 - 8所示。它采用了一个S R锁存器,
而用D和
-D
替换其输入。D的补是通过增加一个反相器得到的。D锁存器的操作能够用S R锁存
器的功能表来理解。当D = 0时,到下方或非门的
-D
输入为1。它强制输出Q = 0,并被交叉耦
合的网络所保持。如果D = 1,上方的或非门的输出被强制为
-Q
= 0,也就是另一个稳态。
图9-8 基本的D 型锁存器
9.3 时钟与同步
在一个复杂的数字系统中,我们必须仔细地控制数据流,确保每一部分正确的信息在需
要时能够得到。控制网络中数据传送最容易的方式,是通过一个预定义好的参考如时钟信号
来同步系统的操作。尽管在第1章中已经介绍了时钟,下面快速地回顾一下它的基本原理。
时钟是从0到1又返回0作周期性变化的控制信号,如图9 - 9所示。我们通常用符号ø(t)或
者C L K标注时钟。它最重要的特性是每T秒重复一次,即众所周知的周期。时钟的频率定义为
( 9 - 1 )
表示时钟在1秒钟内重复的次数。频率有精确的单位s-1,称为H z(赫茨)。在计算机中,
对T最常用的度量是微秒(简作ms),有
1ms = 10-6s
或者纳秒( n s),有
1ns = 10-9s
T = 1ms的频率是
( 9 - 2 )
图9-9 用于同步的时钟信号
这里, M H z读作兆赫茨,意思是每秒一百万个周期。在现代台式计算机中,它是最通用的时
钟单位。
246 数字系统设计基础教程
下载
a) 元件b) 操作c) 逻辑图解
输入输出
t[秒]
例9 - 1
假定时钟频率为5 0 0 M H z,与之对应的时钟周期T通过倒数关系计算出来
( 9 - 3 )
这是许多现代系统典型的时间量级。
使用时钟信号控制存储元件的操作,使我们能够指定把数据值存入该器件的时间。在数
据位码可载入时,产生的结果是存储元件被该部分时钟周期特性化。这涉及能以同步方式传
送数据的非常复杂的数字网络的设计。
9.3.1 时钟S R锁存器
时钟S R锁存器如图9 - 1 0 a所示。与图9 - 4相比较,时钟信号ø(t)分别同输入R、S相与,使交
叉耦合的或非门电路的输入有效值修改为
( 9 - 4 )
图9-10 时钟SR锁存器
图9-11 时钟D型锁存器
因为或非门锁存器的保持条件是( 0,0),所以,当ø = 0时,这种锁存器自动处于保持状态,
置位和复位操作仅当ø = 0时才能发生。这就定义了一个电平触发的或者电平敏感的锁存器,
在时钟ø = 1的任何时候,它允许输入。时钟S R锁存器的符号如图9 - 1 0 b所示。注意,它包含
了作为控制信号的时钟ø。
第9章存储元件与阵列247
下载
a) 逻辑图解b) 符号
a) 逻辑图解b) 符号
按照这样的处理,定义触发器为任何钟控存储元件,那它也称为触发器。
9.3.2 时钟D锁存器
时钟D锁存器能以同样的方式构成,如图9 - 11 a所示。再次,时钟信号ø和常规的输入相与,
得到有效输入为
D ' = D·ø ( 9 - 5 )
这就构成了一个电平敏感的锁存器,其符号如图9 - 11 b所示。如前面的时钟S R锁存器一样,仅
当ø = 1时,输入能起作用。由于时钟D锁存器在此期间的这种行为,经常把它称作贯通的锁
存器。时钟条件ø = 0保持输出Q和
-Q
的值。
在使数据流同步通过一个复杂系统方面,时钟锁存器是有效的。它们也赋予名称“锁存
器”以更多的意义,因为当它们被时钟信号激活时,能够形象化为“抓住”数据的电路。
9.4 主-从触发器和边沿触发器
触发器是时钟控制的非贯通的锁存器。这意味着该存储元件当前的输出值Q与当前的输入
值A无关。它有几种不同的变体,但是它们全都具有一个特性:在较早的时候由时钟电路确立
的输出Q(t)被存储起来。
主-从触发器网络的基本特征如图9 - 1 2所示。
如此命名这种存储元件,是由于它指定了两个内
部块,代表两个分离的锁存电路。主锁存器用于
接收输入数据位码A到触发器。这个值被保存在
主触发器里,在一定的时间后传送到从锁存器。
它们的输入由时钟信号ø(t)同步。
图9 - 1 3总结了主-从配置的操作。在图9 - 1 3 a
中,主电路的输入被激活, A值存储在那里。在此期间,从锁存器不活动(也就是,处于保持
状态),不能接受输入。下一操作阶段如图9 - 1 3 b所示。在此期间,主锁存器处于保持状态,而
从锁存器激活。然后,A值被从锁存器接受,该触发器输出端得到Q = A。因为此时主锁存器失
效,其输出端继续保持A值,即使输入变化为B。在此期间,该触发器是非贯通的。其重要的
特性是,输出值Q(t)与当前的输入(B)无关,而表示早些时候主锁存器激活时的输入值。
9.4.1 主-从D型触发器
主-从D型触发器(D F F)如图9 - 1 4所示。这种存储元件由层叠的两个时钟D型锁存器构成。
第一个锁存器指定为主电路,负责得到输入数据位D。第二个锁存器作为从锁存器,用来保持
它从主锁存器接收的数据位码的值。只要观察到主从电路被反相的时钟ø(t)所控制,就很
容易理解D F F的操作。因为
-ø应用到主触发器,所以当ø = 0时,主锁存器接受输入。另一方面,
从锁存器使用ø定时,这样当ø = 1时,它允许输入改变。
D F F操作的一个详细例子如图9 - 1 5所示。在图9 - 1 5 a中,当时钟ø = 0时,主锁存器激活,
输入数据位码D = 1被接受,并存储在第一个锁存器里。在此期间,从锁存器处于保持状态,
以致于它的内容在主锁存器载入时不受影响。当时钟变化到ø = 1时,主锁存器保持,它的输
出馈入现已被时钟激活的从锁存器,如图9 - 1 5 b所示。数据位码A传送到从锁存器,输出值为
Q= 1和
-Q
= 0。
248 数字系统设计基础教程
下载
图9-12 主-从结构
主从
图9-13 主-从操作
图9-14 D型触发器电路
图9-15 DFF操作细节
第9章存储元件与阵列249
下载
a) 主锁存器有效b) 从锁存器有效

(有效)

(有效)
从主






a) 载入主锁存器
b) 传送到从锁存器
图9-16 主-从DFF时序图解
现在,让我们使用时序图9 - 1 6来分析一下主-从D F F的操作。在图9 - 1 6中,时钟信号ø(t)
提供同步信息,从而ø = 0指明主锁存器接受输入D,而ø = 1意味着D F F输入失效,数据传送
到从触发器,可在输出端Q(t)处得到。
上面描述的主-从D F F被设计为在ø = 0的期间接受输入D。当时钟从ø = 0变化到ø = 1的时
刻,传送到从锁存器电路的值(这里是输出Q)就是主锁存器中的值。因为这个理由,主-从
配置被划分到边沿敏感器件一类。这意味着,当时钟从一个值跳变到另一个值时, Q值依赖于
主锁存器中的内容,对应于时钟波形的一个“边沿”。
一种相关的存储元件是边沿触发器。功能上,它似乎类似于边沿敏感的设计。然而,仅
当时钟跳变时,边沿触发器才允许载入输入数据D。这不同于主-从电路,那里,主锁存器在
半个时钟周期内是贯通的。按照我们的处理,我们不关心主-从电路和边沿触发电路之间的
内部差别。取而代之,我们认为任何触发器就像一个多路选择器一样,能够用来作为一个基
本的积木,我们仅仅分析该器件的总体特性。边沿触发D F F的符号如图9 - 1 7 a所示,时钟输
入增加了一个特别的标注,来指明一个正边沿触发行为,仅当时钟从ø = 0跳变到ø = 1 时输
入被接受。
图9-17 边沿触发DFF操作总结
图9 - 1 7 b中的总结表描述了边沿触发D F F的操作,它表明输出Q仅仅是输入D延迟一个时钟
周期后的值。该表中的标注使用时间变量t表示“当前”值,如D ( t ),这里t是时钟上升边沿的
250 数字系统设计基础教程
下载
[秒]
[秒]
[秒]
D触发器
a) 符号b) 操作总结
时刻。另一方面,输出写作Q(t+T),这里T是时钟周期。这意味着在下一个时钟周期,也就
是在(t+T)时,输出变量Q的值。该边沿触发D F F由下面的方程所表征:
Q(t+T)=D(t) ( 9 - 6 )
它表明输出值与上一时钟周期的输入相同。延迟是边沿触发D型触发器重要的一个方面,因为
它允许我们存储当前值,以在下一时钟周期使用。
对于数字设计中的许多应用,边沿触发D F F的延迟特性是足够的。然而,一些系统要求
我们具有保持一个数据位码几个时钟周期的能力。为了构建一个提供这种功能的电路,我们
必须把输出Q传送回输入D,然后用相同的值“重新载入”触发器。实现它的一个简单方式
是,使用如图9 - 1 8所示的2选1多路选择器。在这个方案中,载入信号L D控制输入,从而通
过把输出传送回输入, L D = 0 保持当前值。如果L D = 1,那么新的d值传送到D F F存储单元。
另一个时常有用的特征是触发器复位的能力,也就是强制Q为0。这个能力可以通过增加
如图9 - 1 9所示的与门来提供。在此种情形,控制信号是—R E S E T,这样
R E S E T = 0:使输入D = d,

R E S E T = 1:强制输入D = 0。
这里,在时钟跳变时, R E S E T的值起作用,如果想要修改逻辑,这个特征也能与载入操作相
组合。
图9-18 带数据载入控制的DFF 图9-19 带复位能力的DFF
D型存储元件的V H D L描述
对于一般的逻辑设计, D型锁存器与D型触发器是有用的。V H D L描述引入了新的思想,
值得详细解说。
首先考虑如图9 - 2 0所示的电平触发D锁存器。时钟输入用c l k表示,完全不同于ø。为描述
该锁存器的操作,我们首先必须注意到c l k的值控制着这个元
件的行为。当c l k = 0时,锁存器不允许改变Q的状态,仅当c l k
= 1时,才可以改变存储位码的值。下面的描述引入了V H D L进
程的思想。V H D L进程是一种允许包含定时关系的结构。
- - D锁存器的V H D L描述
- -结构体包含进程语句
第9章存储元件与阵列251
下载
输入
输出
输入
D触发器
图9-20 b型负存器
D锁存器
关键字p r o c e s s指明一组顺序语句的开始,它意味着命令以它们排列的顺序依次执行。这个进
程由下面的序列描述,
该序列按照它的理解准确地执行。换句话说,时钟值c l k =‘1’使得D传送到输出Q。
边沿触发器件要稍微复杂一些,因为我们必须写一个说明c l k值变化的进程。考虑图9 - 2 1
所示的正边沿触发的D F F模块。在V H D L中,描述信号变化的一个方式是使用‘ e v e n t指令。
语句
解释为一个布尔对象,其值为真或假。若c l k‘e v e n t为真,意味着信号c l k值已经改变,若c l k
没有改变,那么它返回假。为了描述正时钟边沿,它写作
因为c l k正在改变且c l k的值目前为1,它的计算结果为真。记住这样一点, D F F能够由下面的
程序清单描述。
图9-21 边沿触发DFF模块
- -边沿触发D F F的V H D L描述
- -结构体包含进程语句
252 数字系统设计基础教程
下载
如果我们希望描述负边沿触发器,那么我们只须改变进程命令来反映时钟最终的值c l k = 0。
- - D F F的V H D L描述
- -结构体包含进程语句
本章中所有其他时钟敏感元件的V H D L描述都能够使用该进程结构建立。
9.4.2 其他类型的触发器
其他的几种触发器能够使用基本逻辑门构成。每一种由一组独特的、对设计者有用的并
依赖于系统规范的特性所定义。我们将仅仅关注在时钟边沿接受输入的边沿触发器。
图9-22 SR触发器特性
S R触发器
S R触发器有着和D F F同样的基本结构,而由S R锁存器取代D F F的输入电路。它有两个独
立的输入S和R,由S = 0 = R定义它的保持状态。在S R锁存器的操作中, S和R同时为1的状态
禁用,记住这一点是重要的,以便在S R触发器中排除这种情况。边沿触发SR FF的符号如图9 -
2 2 a所示,图9 - 2 2 b是相应的操作表。它能够概述为
( 9 - 7 )
注意到,输入S ( t )和R ( t )皆等于1的情形没有定义。这是由于电路中使用了基本S R锁存器。
第9章存储元件与阵列253
下载
操作
保持
置位
复位
不使用
a) 符号b) 操作总结
J K触发器
J K触发器修改了SR FF 的电路,以使两输入同时跳变为1的情形引起切换操作
( 9 - 8 )
这意味着,若Q, - Q = R ( t ),那么该切换改变它们到(Q, - Q)=(0, 1 )。这个电路中的输入与S R
触发器是相同的,但它们有着并不相同的外部操作。图9 - 2 3总结了这些特性。J K触发器在以
往基于S S I集成电路的硬件设计中占据支配地位,目前在某些系统中,它仍然是常用的器件。
图9-23 JK触发器的特性
T触发器
切换触发器是有一个输入T的电路,在图9 - 2 4的逻辑符号中指明。T F F的操作恰如它的名
字所暗示:无论什么时候, T从0变化到1,输出就切换。这是一个相当特殊的器件,它没有上
面所讨论的触发器的多面性,但仍然很实用。
图9-24 T触发器的特性
9.5 寄存器
寄存器是一个用来存储nb i t二进制字的逻辑元件。几乎每一大型的数字系统都采用寄存器
来保持重要的数据,所以有必要对它进行详细地研究。它可以构造出几种变体,它们在数字
系统设计中各有其应用范围。
9.5.1 基本存储寄存器
我们可以并行方式简单地使用n个1 b i t存储单元,构成一个允许对全部单元同时读或者写
的寄存器。通常为了方便,以系统规范要求的字长大小来构成寄存器。
我们来测试一个8位寄存器,它能够存储一个字节的数据。为了建立这个寄存器,我们使
用如图9 - 2 5 a所示的独立存储单元来构成图9 - 2 5 b所示的电路。注意,我们选择了边沿触发存储
元件作为基本的单元。为了简单起见,我们仅仅指出了输入、输出和时钟端口。元件可能需
要的其他控制线,如载入( L D)信号,没有明确地表示出来。尽管每一位可以单独存取,该
寄存器作为所定义的一组,用于保持一个8 b i t的字,因此所有单元的读出或者写入操作同时执
254 数字系统设计基础教程
下载
a) 符号b) 操作总结
a) 符号b) 操作总结
操作
保持
置位
复位
转换
行。既然一直使用边沿触发存储单元,那么仅在时钟跳变时执行写入操作。一个简化的记号
如图9 - 2 6 a所示,这些单元简单地组合在一起,呈现为一个独立的单位。在图9 - 2 6 b中,我们把
寄存器表示为带8 b i t输入输出线和单个时钟控制的单一实体。在许多应用中,它理解为,寄存
器根据时钟信号ø(和任何其他条件)载入,即使它在图中被忽略掉。
图9-25 由独立的存储元件创建的寄存器
图9-26 用于表示8位寄存器的符号
这种类型的通用寄存器在计算机设计中被广泛地使用,在第11章计算机系统环境下,我
们将详细地讨论它。此处要记住的重要概念是,寄存器保持nb i t字作为一组,它自身能够当作
一个单独的由更小的单元所组成的数字元件来看待。
9.5.2 移位寄存器
移位寄存器被设计用于在时钟脉冲作用下传送它的位码到相邻单元。为了说明移位寄存
器的一般性质,让我们重复图9 - 2 7 a中的存储单元,建立如图9 - 2 7 b所示的串行链,在那里,每
个单元的输出作为它右边相邻单元的输入。总之,该电路有单个输入位D和单个输出位Q,组
成了一个8位移位寄存器。既然所有的单元由同一个时钟信号ø控制,因此它们同时载入。
图9-27 基本移位寄存器结构
图9-28 移位寄存器的简化符号
使用图9 - 2 8所示的简化符号,很容易理解移位寄存器的操作。这种示意图使我们可以形
第9章存储元件与阵列255
下载
输入字
输出字
输入
输出
a) 单个单元b) 8位寄存器
输入
输出
a) 独立单元b) 单个寄存器
a) 单个单元b) 串行载入移位寄存器
象地分析该单元的内容,跟踪数据在结构中的传送。即使没有明确地表示时钟ø,仍然如初始
电路一样,设定输入同步。
假设我们想要以比特序列
D0= 1,而
D1= 1,而
D2= 0,而
D3= 0,
等等载入寄存器,就如图9 - 2 9 a所示的移位寄存器的输入“ 0 , 1 , 0 , 1 , 0 , 0 , 1 , 1”。当我们使用这种
记号表示串行输入时,意味着右边的位码是将要进入部件或系统的下一位。因为在寄存器中
有8个单元,载入整个寄存器将花费8个时钟周期。根据图9 - 2 9 b中的时钟图解,就在时间7T之
后,正如前面所言,可得到第一个输入位D0= 1的输出。
图9 - 3 0提供的序列明确地表示出位码通过移位寄存器的进程。左边指出的时间隐含寄存
器在下一个载入事件发生之前的内容(因为单元由正时钟边沿触发)。数据传送笔直向前流动,
在第一个正时钟跳变时,单元d7装入T时刻
的D0= 1。下一个正时钟边沿使D0= 1移到下一
个单元d6,同时接受D1= 1进入单元d7。每个
子序列在正时钟跳变时接受下一位,使每一
个存储位码传送到右边的单元。在7T之后,
该字的末位装入单元d7,首位D0= 1在移位寄
存器的输出端得到。因为d0位先载入且先出
来,所以它称作F I F O(先进先出)电路。
对于某些类型的存储应用, F I F O极其有用。
图9-30 数据在移位寄存器内传送
256 数字系统设计基础教程
下载
F I F O按照音节读作f i - f o。
a) 内容清除
输入序列
b) 时钟周期
图9-29 串行数据输入移位寄存器
时刻输入队列
并行载入的移位寄存器允许用户在一个时钟跳变存储整个字,如图9 - 3 1所示。这个特定
的寄存器有两种移位操作,分别由信号S H R(右移)和S H L(左移)控制。两者的作用如图9 -
3 2所示。在图9 - 3 2 a中,寄存器的初始内容是字1 0 1 0 11 0 0(从左读到右)。通过设置SHR = 1启
动移位寄存器操作,每一位码向右移动一个位置(图9 - 3 2 b)。注意,最左边的位码(以斜体
表示)自动强制为0。图9 - 3 2 c表明,通过设置
控制位SHL = 1可实现左移操作。每一位码向
左移动一个位置,与右移操作恰恰相反。在这
种情形下,最右边的位码被强制为0。
在一个复杂的数据传送系统中使用移位寄
存器时,一般建立允许移动多位的电路。在
这种情形下,内容右移n个单元,命令写作如
下形式
SHR n

SHL m
表明内容左移m个位置的操作。
图9-32 移位操作总结
移位操作的一个直接应用是执行二进制码字的幂2乘除法。要理解它,让我们先看看二进
制字
N = 000111 0 0
它的十进制数值是2 8。我们执行一个SHL 1操作,结果为
NL 1 = 00111 0 0 0
它是十进制数5 6,也就是NL1 = 2N。以最初的字开始,调用SHL 2操作,得到
第9章存储元件与阵列257
下载
a) 初始条件
b) 在右移操作之后
c) 在左移操作之后
输入
输出
(载入)
图9-31 有并行载入功能的移位寄存器
NL2 = 0111 0 0 0 0
它等于11 21 0,于是NL2= 22N。因此,一般地,操作SHL n等价于寄存器的内容乘上2n
右移操作SHR m实现相反的效果。例如,若首先有
N = 000111 0 0
那么,SHR 1和SHR 2 操作得出
NR1 = 0000111 0
NR2 = 00000111
容易验证,
NR1 = N/ 2
NR 2 = N/22
对应于十进制数NR1= 1 4,NR2= 7。这表明SHR m能够使寄存器的内容与2m相除。
寄存器不仅有移位操作,还可以有循环操
作R O R(右循环)和R O L(左循环)的能力。
循环不丢失位码,它移出寄存器但传送到另一
边,除此之外,它们与相应的移位操作完全一
样。图9 - 3 3总结了这两种操作的结果。在图9 -
3 3 a中,显示内容1 0 1 0 11 0 0。通过设置控制位
ROR = 1,启动循环右移操作。它使每一位码
向右移动一个位置。最右边的位码被传送到寄
存器的左边。图9 - 3 3 b显示了通过置位ROL = 1
引起的循环左移操作。在这种情形下,每一位
码向左移动一个位置,左边单元的内容(最初
为1)传送到最右边的位置。对于移位操作,
通过改变组成寄存器的存储单元的接线,构建
一个允许多循环
ROR n和ROL m
的寄存器是可能的。
移位和循环操作对于许多种类的数字信号处理相当重要,它们作为基本的操作包含在所
有的计算机里。在第11章计算机体系结构的语境里,我们再详细地讨论它们。
9.6 随机存取存储器
随机存取存储器是适用于通用读/写存储单元的大型阵列的术语。R A M通常作为台式计算
机设备中的主系统存储器,它提供存储所有重要数据的能力,这些数据是计算机运行程序和
操作系统所必需的。
9.6.1 静态R A M单元
静态存储器能够保持所存储的数据位码,只要电源连接到该电子线路。
258 数字系统设计基础教程
下载
它仅仅精确地作用于十进制偶数。
a) 初始条件
b) 在右循环操作之后
c) 在左循环操作之后
图9-33 循环操作
如图9 - 3 4 a所示, S R A M 是基于两个级联的反相器所组成的闭环特性。它是一个双稳态
电路,A = 0或者A = 1皆能在环中保持。尽管乍一看它可能很陌生,但是它的操作等价于S R锁
存器。重画该电路如图9 - 3 4 b所示,使反相器交叉耦合,可以看出这一点。与图9 - 4中两输入
或非门锁存器相比较,我们看到,除单输入非门用于逻辑之外,结构是相同的。
图9-34 交叉耦合反相器形成双稳态电路
通过嵌入交叉耦合的反相器到一个与反
相器环相连的较大的网络,就构成一个存储
一位数据的静态R A M单元。图9 - 3 5表示一个
S R A M单元,它增加了两个由字线上的信号
W L控制的存取开关( S w)。这些开关由逻辑
控制, W L = 0使开关断开,而W L = 1闭合它
们。当W L = 0时,存储单元与外部影响隔离,
保存数据位码。若W L = 1,两个开关都闭合,
单元对应的两边分别与位线( D)和位线(
-D

连接。这就允许对单元进行写或者读。总之,
• W L = 0保存状态,而
• W L = 1允许进行读写操作。
当附加电路判定W L = 1时,执行实际的操作。
9.6.2 SRAM阵列
通常制造出S R A M,是为了可以轻易地存储nb i t二进制字,而不是单独的一位。这是一个
实用的考虑,起因于这样的事实:大多数应用的建立是如此设想的。一个m×nS R A M阵列由
m行、每行包含n个单元所组成。
让我们分析怎样才能构造一个很简单的存储8个字,每个字长8位的存储器,也就是说,
一个8×8阵列。首先,考虑一个8比特字的存储。它需要8个单元,每比特一个,如图9 - 3 6所
示。我们已经为字线使用了简化的标注,但它的意义仍然一样: W L = 0隔离单元,而W L = 1
提供存取,允许进行写或者读操作。为了保存8个字,我们再构造七个相同的电路,把它们堆
叠起来,如图9 - 3 7所示。为了选定所要求的行(字),我们包含一个3 / 8高电平有效的行译码器
电路,该译码器的输入是一个称为地址的3位二进制字
A2A1A0
因为它指明了存储器中特定字的位置。阵列的下方提供了接口电路,它们提供写入或者
第9章存储元件与阵列259
下载
S R A M读作S- ram 。
a) 基本电路b) 重画
图9-35 SRAM单元设计
位线
存储单元
位线
字线
读出阵列的每一行所必需的电路。E n a b l e是一个高电平有效的激活阵列的控制信号, R/W决定
是否进行读(R /W = 1),或者写(R/W = 0)。读/写控制信号R/W仅当E n a b l e = 1时有效。
图9-36 8位存储阵列
图9-37 8×8RAM阵列
让我们研究图9 - 3 8 a所示简化的读操作,来阐明该阵列的操作。多数连线已经被组合在一
起,以便我们能够专注于数据传送,而不被太多的细节转移目标。该图显示了每一行的内
容;图9 - 3 8 b总结了输入地址如何激活一个特定的工作线,该线反过来允许数据行被读出来。
260 数字系统设计基础教程
下载
读写操作接口电路
例如,如果地址是1 0 0,那么选定线4,结果是输出0 1 0 1 0 1 0 1。
图9-38 RAM阵列中的读操作
图9-39 64×8SRAM器件的方框图
第9章存储元件与阵列261
下载
输出
输出

地址
a) 简化网络
b) 功能表
地址内容
可能
地址
可能
读/写
数据
a) 内部组织b) 符号
简化的操作图解和符号提供了一个简明的方式,以这种方式,一个复杂的数字单元的重
要特性能够明显地表示出来,而不使逻辑图解散乱。它们等效于在分级结构中更高层次上观
察该单元,对于描述一个复杂系统如计算机很有用处。要创建一个符号,我们必须定义它所
有相对于“外部世界”重要的特性。尽管内部电路本身可能有令人感兴趣之处,但是大部分
与用户无关。
考虑一个S R A M阵列。在用户层次,它是一个器件,允许我们对二进制字执行写、保持
和读操作。该阵列的容量告诉我们它能够存储多少字,寻址方案提供一种方式,使我们能够
明了每一个字定位于该阵列的哪一个位置。图9 - 3 9 a中的方框图总结了一个容纳6 4个8比特字
的器件的性质。进出这个存储设备的数据作为8比特字
b7b6b5b4b3b2b1b0
传送。地址给出每一个字的位置,由选择一个存储位置的6位字
A5A4A3A2A1A0
表明。如果Enable =1 激活了该设备,那么读写操作由R/W控制选定。在这个层次, R A M的内
部结构被描绘为一组存储位置,每个存储位置有唯一的地址。这就使我们可以阐明它的内容。
一个更精简的符号如图9 - 3 9 b所示。该设备的操作在各个方面都一样,但是内部细节没有表示
出来。这使它更易于在设计分级结构的系统级中使用。
9.6.3 动态R A M
动态存储器( D R A M)阵列和S R A M阵列相似,因为它们都允许我们使用单元寻址的概
念存储数据。两者不同之处在于自身单元的内部设计。动态R A M单元要简单得多,在硅片上
只需要更少的面积。这使D R A M的存储密度比S R A M要高得多,每一位的成本要低得多。因
为较低的价格,在需要大型存储阵列,成本重要的任何时候,通常使用D R A M。D R A M最大
的应用是作为台式计算机的主系统存储。使用“动态”存储的一个障碍是, D R A M比较简单
的单元设计导致电路显著变慢;读写时间都增加,这就限定了它们如何才能在大型系统中用
来存储数据。
MOS DRAM的细节和操作在9 . 9 . 2节叙述,在那里我们将看到,位存储技术的物理学即使
得D R A M密度高,又解释了为什么它们被称为“动态的”。
9.6.4 奇偶和错误检验码
可靠的数据存储是所有数字系统的关键。即使单个的错误位码就能导致整个程序崩溃,
或者数据库文件无用,所以提供一些技术,能够检测错误的存在,以及在某些情况下能够修
正那些错误,是非常重要的。对检错码( E D C)和纠错码( E C C)的详细研究超出了本书的
范围,但是它们的原理基于一些相当简单的概念,在这里予以介绍。
首先,让我们分析这样一个问题,我们要确保从一个存储位置读出的数据字节与写入
的数据字节相同。这将要求我们在存储数据字节之前记录一些有关它的信息,然后在读出
该数据字节之时使用这些信息来检查它。实现这个的一个简单方式是,引入奇偶位P的概
念。
假设最初数据字节写作
B=b7b6b5b4b3b2b1b0 ( 9 - 9 )
262 数字系统设计基础教程
下载
因为每个bn非1即0,我们能够计算该字中1的个数,用此定义一个奇偶位P,让它记录在包含
奇偶位P的组合字节中1的个数为偶还是为奇。若我们选择偶校验方案,那么奇偶位Pe v e n有如此
特性,
选择Pe v e n,使(B +Pe v e n)有偶数个1。
例如,若B1= 0 11 0 11 0 1,则Pe v e n= 1,因为B1包含5个1,这种选择使之具有偶数个1。反之,
字节B2= 1111 0 0 0 0要求Pe v e n = 0,因为B2已经有偶数(4)个1。奇校验恰恰相反。在这种情况下,
我们引入奇校验位Po d d,这样
(B +Po d d)有奇数个1。
对于B10 11 0 11 0 1,将要求Po d d = 0,类似地,若B2= 1111 0 0 0 0,则将有Po d d = 1。
图9-40 奇偶校验生成电路
一种生成奇偶位的容易的方式是使用如图9 - 4 0所示的异或操作。回忆一下,异或门实现
了奇功能。在这个逻辑图解里,我们已经定义了输出为
P = b7Åb6Åb5Åb4Åb3Åb2Åb1Åb0 ( 9 - 1 0 )
所以,该字中如果有奇数个1,那么P = 1,如果有偶数个1,那么P = 0。所以这样选择
P = Pe v e n ( 9 - 11 )
因为该字节加上P中1的全部数量有偶校验所要求的特性。如果我们使用异或非门代之,那么
输出将是奇校验位。
为了应用奇偶性的概念到检错问题,假设我们存储最初的数据字节以及奇偶位如图9 - 4 1 a
所示。由上面的讨论, P的选择代表偶校验。注意,这个方案要求存储位置宽度为( 8 + 1)= 9
位,以适应附加位。奇偶位P提供原始数据的信息。当字节读出存储器时,如图9 - 4 1 b所示,
我们获得数据段
( 9 - 1 2 )
它被用来计算新的奇偶位Pc,为
( 9 - 1 3 )
接下来,使用异或功能比较存储的奇偶值P和Pc,产生检验位C。若P = Pc,则存储的奇偶
值与计算的奇偶值相等, C = 0 。然而,若P≠Pc,那么两个奇偶位不同, C = 1 ,指示两
者有差异。这样, C = 1 表明错误已经发生,所以不是数据字节就是存储的奇偶位不正确。
检验位C通常放置在一个特别的称为标志的存储单元里,当C = 1 时,我们说标志被置位,
一个错误已经被检测到。检验位C = 0 不保证无错误发生,它仅仅意味该电路没有检出错
误。
第9章存储元件与阵列263
下载
(输入奇数个1)
(输入偶数个1)
输入字
图9-41 错误检测电路
9.7 只读存储器
只读存储器是用作永久数据存储的存储阵列。信息由R O M的生产者或者系统程序员存储。
用户依赖于特殊的设备具有有限的编程能力(或者根本没有)。R O M提供非易失性的存储,这
意味即使切断电源连接,数据仍然保持在该存储器中。非易失性的存储设备是许多系统应用的
关键。例如,每一台个人计算机有一个R O M ,加电时提供启动系统软件所必需的二进制码。
图9 - 4 2 a中的符号显示了一个小容量R O M的重要特性。整体上,它在操作方面与R A M很
类似。先指明地址,然后使芯片操作执行读,导致数据输出。图9 - 4 2 b所示的内部模型提供了
这种设备必需的细节。被存储的数据字作为所指明的地址位置的位组被查看。该地址字为:
A5A4A3A2A1A0
图9-42 ROM的符号和用户模型
264 数字系统设计基础教程
下载
存储字
输出字
a) 写操作
b) 读操作
它称为B I O S,表示基本输入输出系统。
地址
使能
数据输出
a) 符号b) 内部组织
存储
数据
使能
被送到一个行译码器,然后通过置位合适的字线为高来激活该字的存储位置。该数据字送到
由E n a b l e控制激活的输出电路,使得该数据字为:
b7b6b5b4b3b2b1b0
输出R O M。这种设备不支持写操作,这是只读存储器显著的特征。
9.8 CD ROM
紧凑圆盘( C D)R O M是一个复杂数字系统的有趣范例,它结合了电子学和光学,提供高
密度存储介质。CD ROM的基本格式和操作基于C D音频标准,但是比那些用来再现声音的
C D有着更迫切的市场需求。
CD ROM是一个由洁净的、一面铸造成小缺口的多碳酸塑料组成的圆形盘片。其上涂有
一层铝金属,然后覆盖另外一层塑料,再把标签印在最上层。如图9 - 4 3所示,C D的顶面有标
签,而洁净的底面有存储信息。在多碳酸塑料和铝之间的界面称为信息表面,因为这是数据
存储的地方。信息被记录在始于盘片中心,螺旋向外的单个轨道之上,如图9 - 4 4 a所示。为了
从盘片读数据,盘片旋转,越过一个包含在播放机械中的固定激光源。为了便于分析,把它
看作一个固定的盘片和一个跟随轨道移动的激光束,如图9 - 4 4 b所描绘。
图9-43 紧凑圆盘的结构
图9-44 CD信息轨道
图9 - 4 5显示了从洁净的塑料往铝涂层所看到的信息表面的一个特写。该表面的大部分平
整,称为平地(l a n d)区。而大量的小缺口称为凹口( p i t s),铸造在塑料里,然后被铝所覆
盖。沿着一条称为轨道的隐含线,提供一系列凹口和平地,实现数据存储。这些轨道相互间
距1 . 6mm,可以密集地存储。一张CD ROM能够存储大约540 MB有用数据,以正常速度可播
放6 0分钟。在制造盘片时,凹口和平地被冲压入塑料,不能改变,使得它成为只读设备。
第9章存储元件与阵列265
下载
a) 紧凑圆盘b) 横截面视图
顶层标签面
底层-信息面
钻涂层可见
钻层
信息表面
a) 底视图b) 数据轨道的可视化
超始
结束
由螺旋轨道
组成的信息
存储区激光束跟随
轨道
图9-45 CD信息表面的凹口和平地
当盘片自旋时,通过把一小束激光聚焦到轨道可以实现数据的读出。对于标准( 1倍)速
度播放器,光点以一个恒定的速度v = 1 . 2 5 m / s跟随轨道运动。跟踪从信息表面反射回的激光就
读出了存储信息。图9 - 4 6显示了一个轨道和它的横截面图。当激光束照射在一个平地区时,
铝涂层提供一个强反射。另一方面,如果光束扫描一个凹口,那么由于众所周知的光的散射
和干扰,反射的光束是很微弱的。凹口的深度和相对于凹口宽度的光点的大小都是很重要的。
图9-46 激光读信息轨道
当监视反射激光束的功率Pre f时,我们发现它依赖于激光束是否照射在凹口或者平地区而
变化。图9 - 4 7说明了这一点,它显示反射功率在高低电平之间变化。尽管我们用高电平表示
逻辑1,用低电平表示逻辑0,似乎显而易见,但出于系统设计过程中的物理考虑, C D标准选
择了不同的编码方案。这种用于C D的编码称为N R Z - i。它以如下方式定义逻辑电平:
• 逻辑0 持续的高或低电平
• 逻辑1 一个从高到低或者从低到高的跳变
266 数字系统设计基础教程
下载
轨道
凹口
扫描激
光束
平地
平地
平地
平地
平地
平地平地平地
光束点
凹口
凹口
平地
塑料
弱反射
强反射
标签覆盖
激光束
凹口
a) 信息表面
b) 横截面视图
这样,当激光扫描凹口或者平地区时,恒定的反射功率强度被翻译为逻辑0。仅当光束从平地
到凹口,或者从凹口到平地传送时,逻辑1发生。使用这种编码方案提供该图所示的逻辑翻译。
注意,这种技术的关键是,为一个逻辑位定义时间间隔T。对于1倍速播放器,串行数据读出
数率大约为1 5 0 K B / s(千字节每秒)。
我们之所以使用N R Z - i编码,是因为读盘进程产生不了该图所示的精密明确的反射光束。
由于不一致的激光照明、跟踪错误、振动和物理环境中其他干扰,反射功率强度看上去更像
如图9 - 4 8所示一样。尽管光束照射在凹口或者平地区时,它的强度发生变化,但是当激光束
从凹口移向平地,或者反之时, C D系统确保有一个仍然合理的改变。因此,这个编码方案滤
及一个信号可靠的输出,虽然并不理想。
图9-47 扫描表面时的发射激光功率
应用这种编码把数据存储在轨道上的方式,导致了其他的复杂性。如果我们比较凹口的
宽度、长度和激光束的直径(大约1mm),我们发现两个1在轨道上相邻是不可能的。事实上,
当在轨道上记录时,这产生一个规则
1必定至少被两个0分隔
这暗示我们不能直接在C D的轨道上存储“标准”编码数据!取而代之,数据服从一个调制方
案,它原则上类似于编码/译码过程。
紧凑盘片使用一个8到1 4调制( E F M)技术,一个8 b i t数据字被扩展为1 4 b i t的调制当量,
它不违反1之间的间隔规则。整个方案如图9 - 4 9 a所示。记录在盘片上的是调制位流,而不是
原始数据。实际的转换使用一个查询表定义,该表的一小段已经再现于图9 - 4 9 a中。数据读出
时,必须简单地把该表用作一个字典,解调数据以产生原始的8 b i t字。
图9-48 实际的发射信号变量
C D另一个有趣的方面在于,读盘以后对数据使用了检错码( E D C)和纠错码( E C C)。
C D制造工艺固有的偏差导致有相当高的可能性得到一个数据流错误。通常,它由误码率
(B E R)表明如下:
( 9 - 1 4 )
第9章存储元件与阵列267
下载
平地平地平地
位时间
凹口凹口
平地凹口平地凹口平地
图9-49 CD 8到14调制方案
这里,Ne为不正确的位数,NT为被考虑的位的总数。在C D音频应用中(C D标准的最初使用),
指明B E R最大值为R E R= 1 0-9。计算标准更加严格,最高可接受的值为B E R= 1 0- 1 2。为了确保C D
满足该值,在记录数据之前,一套复杂的E D C和E C C应用到数据之上。这导致另外一个数据
集记录在C D上。这个思想类似于在R A M阵列中使用奇偶位的概念,但是它要强大得多,因为
该代码可以( a )检错,以及( b )通过计算起初的码字来进行纠错。C D采用了一种算法,它包含
于一大类已知的R e e d - S o l o m o n码理论中,以一些数据字块来实现任务。它们是如此强有力,
以至于你能够真正地掩盖C D上一段大约长1 m m的轨道,它不影响被处理的数据输出。
紧凑盘片系统十分复杂,但它是现实数字系统的一个优秀的样例。其他光学记录和数据
存储的途径已经发展起来,而它们都趋向于被类似的物理限定所约束,且各自有独特的方面,
通过使用基本的准则说明一个数字设计如何能够解决复杂的系统设计问题。
9.9 CMOS存储器
C M O S是所有类型的存储器芯片的主导技术。因为M O S F E T很小,创建大容量的相当快
的存储器阵列就是可能的。在这一部分,我们将简要地分析一些有关使用C M O S技术创建存
储器单元的概念。
9.9.1 CMOS SRAM
单个的CMOS SRAM单元电路如图9 - 5 0所示。它包含两个交叉耦合的反相器(M n 1,M p 1,
M n 2,M p 2),作为存储单元,使用一对N沟道晶体管存取它们。这与图9 - 3 5所示的更基本的
原理图有着相同的结构,所以它们的操作是相同的。由于它有六个晶体管,在文献里称为一
个“6 T”设计。该6 T设计可能是制作C M O S存储器最普通的方法。使用四个M O S F E T和两个
电阻创建一个“4 T”单元也是可能的。
268 数字系统设计基础教程
下载
8位字
14b字到
光盘
14b字
读出
8位字
8位字14位长效值
a) EFM记录和读出方案
b) EFM 表的一部分
用来存取单元的简单方案能够扩展到多端口静态存储器,在这里,能够使用一对以上的
输入/输出线。一个双端口静态存储器如图9 - 5 1所示。它有两个独立的数据I / O通路,用D1和D2
表示。单元存取由两个独立的标注为W L 1和W L 2的字线控制。任意一个能够用作读或写操作。
所引起的一个问题是,我们必须实施排他性,即
W L 1·W L 2= 0 ( 9 - 1 5 )
确保一个输入不干扰另一个。它可通过使用片上逻辑仲裁每一个单元的存取来实现。多端口
存储器很有用,因为它们允许把共享存储器一次硬连到几个数字逻辑单元。
图9-50 CMOS SRAM单元
图9-51 双端口SRAM单元
9.9.2 动态存储器
描绘动态存储器的特征要更加复杂,但是它们广泛地被用作主存,因为它们能以比S R A M
高得多的密度构建。形容词“动态的”反映了这样一个事实,在一个保持操作期间,单元的
内容将随着时间改变。这使得动态存储器的设计更加复杂,但是现代的芯片通常对用户屏蔽
复杂性。D R A M主要的缺点是它们没有S R A M快。D R A M主要的优势是每b i t的花费很低,使
它在需要大阵列的系统设计上具有经济上的吸引力。
第9章存储元件与阵列269
下载
(字线)
位线
反码位线
端口2
端口1
端口1
端口2
D R A M单元的电路原理图如图9 - 5 2所示。一眼看去,简单
性是明显的:整个单元由单个n F E T和一个存储电容CS组成。
这便于相当高的集成密度,使构建有数百万个单元的单一芯片
成为可能;使用现代技术,每片2 5 6 M b和1 G b大小是可能的。
D R A M市场竞争的本质使它成为技术驱动器,许多公司使用
他们最先进的工艺技术制造D R A M。
在这个基本存储电路里, n F E T作为存取器件,由字线变
量W L控制导通。当W L = 1时,n F E T作为一个闭合的开关,允
许一个写或读操作。要写该单元,一个数据电压VD应用到数据
线,产生的电流充电存储电容CS到电压VS。如图9 - 5 3所示。存储位码的值由电容上的电荷定义
( 9 - 1 6 )
如果VS= V0= 0V,那么QS= 0,对应于逻辑0的值。另一方面,如果VS= V1是高电平,那么逻
辑1的电荷存储在电容上
QS = CSV1 ( 9 - 1 7 )
使字线W L = 0可得到一个保持状态,在数据线与存储电容器之间断开直接的导电通路。
理想地,晶体管将阻塞所有的电流,电荷QS将永久地保持。然而, n F E T并不能阻塞所有的电
流。即使对一个0门电压, F E T允许一个小的漏电流IL把电荷从电容器移走。泄漏通路的电路
效果如图9 - 5 4 a所示, 9 - 5 4 b中的示意图表明了晶体管中问题的物理起源,在那里, p n结存在
一个不能排除的反向电流IR。在这种情况下,我们可以记作
IL = IR ( 9 - 1 8 )
既然电荷能够从CS泄露掉,而数据位码的值依赖于电荷,所以数据位码仅仅能够保持一个较
短的时期。
图9-53 DRAM单元中的写操作
图9-54 DRAM保持状态和泄露问题
270 数字系统设计基础教程
下载
在实际的D R A M单元中,也存在其他几种漏电流。
输入
(逻辑0)
(逻辑1)

断开
漏电流
逻辑1电压将
渐变为0V
a) 电路模型b) 漏电流的起源
图9-52 CMOS动态RAM(DRAM)
单元设计
预估这个值能够保持的时间间隔是有价值的。假定我们在电容器上设置逻辑1电平VS=V1,
希望计算n F E T断开时电压能够保持在该单元上的时间。这能通过使用电流的定义来实现,记

( 9 - 1 9 )
这里,我们在第二行中使用了基本的关系
( 9 - 2 0 )
使用负号是因为电荷随时间减少。重新排列得到
( 9 - 2 1 )
所以,两边积分得到
( 9 - 2 2 )
这里,tH是保持时间。保持时间定义为电容器能够维持Vm i n以上电压的时间间隔, Vm i n是仍然译
作逻辑1值的最小电压。右边的下限V1表示t = 0时刻的初始存储的逻辑1电压。计算该积分,
重新排列保持时间为
( 9 - 2 3 )
为了理解时间间隔的意义,我们记存储电容为5 0 f F = 5 0×1 0-1 5F的量级,漏电流为1 p A(1 0-1 2A)
的量级。因为电压为1 V的量级,保持时间就大约为
( 9 - 2 4 )
也就是5 0毫秒( m s)。这是一个很短的时期。数
据必须周期地更新以确保在系统需要它时是有效
的。这称为刷新操作,在下面描述。
如图9 - 5 5表示了一个读操作。为了从该单元
检索数据,我们使W L = 1,闭合存取晶体管,允
许电流流向位线。一个放大器在输出端提供加强
的信号。该放大器是设计的关键部分,在设计过
程中被给予更多的关注。为了对数据提供快速存
取,读电路必须适当地快。
刷新操作就是,周期地对数据执行读出、放大及回写到单元。刷新电路包含在芯片中,
使该存储器似乎有长期的保持特性。因为最大保持时间是在1 0- 3秒数量级,所以最小刷新频率
的量级为
( 9 - 2 5 )
第9章存储元件与阵列271
下载
放大器
图9-55 DRAM单元中的读操作
从而,刷新率为数千赫兹的量级。记住重要的一点,每一个单元必须周期地刷新,所以该电
路被设计为循环通过整个阵列。
现代计算机技术中的许多进展能够回朔到R A M制造工艺的技术发展。因此,那是一个吸
引人的研究领域,即使你的兴趣在其他方面。
9.9.3 ROM
C M O S技术为大量要制造的R O M电路作了准备。尽管它们归属于“只读”器件,但允许
通过特别的电路技术输入用户数据。它们通常需要施加相当高的电压电平来操作芯片。因为
该器件能被编程,有时称它们为“主要读”器件。
E P R O M
E P R O M是Erasable-Programmable ROM的首字母的缩写词。这种类型的器件允许用户编
程(输入数据)和擦除数据。
用一个高电压传送电荷到一个“浮动的”电容器,就实现了编程。电荷存储在该电容器
上,在正常环境下不能逃逸。在这种器件里,把器件放在强烈的紫外线( U V)光源之下,能
够实现擦除。电子吸收光子(光能包),使它们有能量运动返回半导体中。尽管它们从前是用
户可编程R O M的主要类型,但已经被电可擦除可编程的器件所取代。
E2P R O M
这种存储器是电可擦除的( E2),代替了E P R O M的U V技术。它有这样的优势,数据可以
使用电子电路擦除,不需要芯片物理地从系统移开。因为这个特性,它在现代数字系统设计
中非常流行。
在管脚上加一个高电压,使电荷传送到电容器面板,实现编程。要擦除单元,使电压反
向,电荷向相反的方向移动。在一个基本阵列里,限制每次擦除一个单元。然而,更加新颖
的技术允许同时擦除大量的单元。这些器件称为闪烁E P R O M,这里的“闪烁”是指整个阵列
可以擦除的速度。
9.10 传输门电路
在集成电路设计中,传输门能够用来构建C M O S存储器元件。它们非常有用,因为T G的
行为就像一个理想的开关,能够断开和闭合。在一个存储电路的输入端使用一个T G,允许以
T G控制机制来控制锁存活动。
9.10.1 基本锁存器
图9 - 5 6表示了一个基本的锁存器电路,它使用了两个传输门T G 0和T G 1来控制数据
流;两个反相器提供双稳态存储。该电路的操作由载入控制位L D和它的补
—L D实现。注意,
到传输门T G 0 和T G 1的控制信号是以相反的方式应用的;当一个T G闭合时,另一个断
开。
为了理解该锁存器的操作,让我们首先分析L D = 1时的情况。T G 0断开和T G 1闭合,如
图9 - 5 7 a所示的条件。输入数据位码D能够进入电路,使第二个反相器的输出Q = D;这允许
我们载入(写)一个数据位码到该锁存器。注意,只要L D = 1,该锁存器就是贯通的,因为
输出将跟踪输入的变化。保持条件是如图9 - 5 7 b所示的L D = 0。断开T G 0,它反过来阻挡了新
272 数字系统设计基础教程
下载
数据的进入。传输门T G 1是一个闭合的开关,
产生双稳态的交叉耦合的反相器电路,能够维
持Q值。
基本的T G锁存器归属于电平敏感的器件,
因为它在L D = 1时接受输入。通过组合一个时
钟信号ø进入控制集,它能够用作一个时钟控制
的锁存器。在图9 - 5 8中,各处的L D(和
—L D)信
号已经用ø(和-ø)取代;这就使该锁存器在时
钟状态ø = 1时接受新的数据。
图9-57 TG锁存器操作
图9-58 时钟TG锁存器电路
图9-59 带控制载入的时钟锁存器
第9章存储元件与阵列273
下载
图9-56 TG锁存器电路
闭合断开
断开闭合
a) L D = 1 b) L D = 0(保持)
当ø = 1时D认可
a) 电路图解b) 时钟
a) 电路b) 控制逻辑
图9 - 5 9表示了另一种时钟控制输入的方法。在这种情况下,输入传输门T G 0由复合信号
L D·ø和
—L D·

控制。仅当L D = 1且ø= 1为真时,允许新数据输入。从而,这种电路的行为类
似于如图9 - 5 8中的时钟方式,除了L D对数据流提供一个附加的控制之外。图9 - 6 0的波形说明
了该电路时序的一个例子。总之,时钟信号ø(t)总是用作定时参考。在这种情况下,载入
信号L D仅在第一和第四个时钟周期为高。从而,复合信号L D·ø在此期间跟随时钟,在中间
的两个时钟周期为0。观察结果是,该锁存器将仅在第一和第四个周期接受数据。
图9-60 带载入控制的时钟TG锁存器的时序图解
9.10.2 TG触发器
一个主从触发器能够由级联的两个反相T G锁存器构建,如图9 - 6 1所示。第一个锁存器
(第一级)作为主触发器,第二个锁存器(第二级)作为从触发器。通过注意输入传输门由反
相时钟控制,可以看出这一点。当ø = 0时,主触发器有效并接受数据,而从触发器的输入需
要时钟ø = 1来容许新的信息。这在操作上与正边沿敏感的D F F是相同的。通过简单地交换时
钟信号ø和-ø,可得到一个负边沿敏感的D F F。该电路如图9 - 6 2所示。
图9-61 主从DFF电路
274 数字系统设计基础教程
下载
[秒]
[秒]
[秒]
阶段1 阶段2
图9-62 负边沿主从DFF电路
9 . 11 问题
1. 下面的置位( S)和复位(R)信号应用到一个S R锁存器。描绘出这个器件的输出Q(t)
的草图。
2. 下面的信号应用到图9 - 1 0中的时钟S R锁存器。描绘出输出Q(t)的草图。
3. 下面所示的数据信号D(t)应用到一个正边沿触发D F F的输入。描绘出这个器件的输
出Q(t)的草图。
第9章存储元件与阵列275
下载
阶段1 阶段2
4. 对于D(t)应用到一个负边沿触发D F F的输入,重做前一个问题。
5. 一个基于或非门的S R锁存器的复位(R)输入跳变为1,同时S = 0。画出它发生时的电
路,并在每一个节点标注逻辑值( 0或者1)。
6. 考虑基于与非门的S R锁存器。当S和R皆为0电平时,它的输出是什么?它为什么为
“不使用”的情形?
7. 考虑一个8位移位寄存器,起初,其中有二进制字0 1 0 111 0 0。在下面的操作已经执行之
后,该寄存器的内容是什么?对于每一种情况,假设初始状态由上面给出。
(a) SHR 2
(b) SHL 1
(c) ROL 3
(d) ROR 2
8. 一个8位移位寄存器,有十进制8 6的二进制等效值存储于其中。在下面的操作已经执行
之后,该寄存器十进制的等效内容为多少?对于每一种情况,假设被赋予相同的初始状态。
(a) SHR 1
(b) SHL 1
(c) SHR 2
(d) ROR 2
9. 一个1 6位寄存器包含0 x 4 A 3 5的二进制等效值。在下述操作已经执行之后,得出该寄存
器十进制的等效内容。对于每一种情况,假设被赋予相同的初始状态。
(a) SHR 6
(b) SHR 3
(c) SHL 8
(d) SHL 16
10. 考虑图9 - 3 7中的8×8 S R A M阵列。每一行的内容由下述列表给定:
行0:1010 1111
行1:1010 1111
行2:1010 1111
行3:1010 1111
行4:1010 1111
行5:1010 1111
行6:1010 1111
行7:1010 1111
当下述地址被应用到行译码器时,输出的十进制值是多少?
(a) A2A1A0 = 101
(b) A2A1A0 = 011
(c) A2A1A0 = 100
(d) A2A1A0 = 11 0
11. 使用图9 - 3 8中的示意图作为一个基础,画出一个1 6×4 S R A M的方框图。
12. 考虑图9 - 3 9所示的6 4×8 S R A M。该器件将作为创建一个大小为6 4 b×3 2 b的大型存储
276 数字系统设计基础教程
下载
器阵列的基础。构造这个大型存储器的方框图。
13. 考虑图9 - 3 9所示的6 4×8 S R A M。你想要使用该器件来设计一个包含2 5 6个3 2 b i t字的存
储器阵列。构造该存储器阵列的方框图。你可能考虑想要给每一个器件增加一个片选输入C S,
控制每一芯片,使得C S = 0使该器件失效,而C S = 1使它有效,容许读和写数据。
14. 在最近的报纸或者计算机杂志上寻找计算机广告,找到你所能够找到的关于S R A M和
D R A M芯片或者模块的最佳价格。然后,计算每种类型的每一b i t价格。这两类存储器在价格
上的百分比差异是多少?
15. 研究杂志或者报纸上的计算机广告。你能够找到多少种S R A M在个人计算机上的具体
应用?
16. 考虑3 b i t数据字b2b1b0。各位用于生成一个偶校验位p。那么,有3 + 1 = 4位被存储在存储
器中。当从存储器中读数据时,我们得到下面所列的结果。判决该数据是否满足奇偶校验检
查,或者存在一个错误。
(a) p b 2b1b0= 0111
(b) p b 2b1b0= 11 0 1
(c) p b 2b1b0= 0100
(d) p b 2b1b0= 11 0 1
(e) p b 2b1b0= 0000
17. 假设我们想要在一个紧凑盘片的表面上存储1 0 2 4个1 6 b i t数据字。实际上,在该盘的信
息表面上将要存储多少位?
18. CD ROM强有力的纠错能力是通过记录包含足够信息的大量数据来重构任何错误的输
出而获得的。因为这不是用户可存取的数据,所以称之为开销,它减少了有用存储的数量。
C D上的信息被划分为一些数据块,使目录简单化。每一块包含2 3 5 2个字节,其中2 0 4 8个
字节是真实的数据。一张标准C D可能的最长“播放时间”是7 4分钟,对应于3 3 3 , 0 0 0个块。
(a) 对于7 4分钟的播放时间,计算用户字节的总量。
(b) 开销占全部存储数据的百分之多少?
(c) 如果播放时间减少到6 0分钟,可利用的用户字节为多少?
(该C D在存储和播放时间之间存在线性关系。)
19. 一个数据传输系统的B E R确定为1 0-1 0。假设该系统以每秒1 0 0 M b的速率传输数据。该
系统能够传输数据而不发生错误的平均时间是多少?在真实世界环境中,我们怎样才能克服
该问题?
20. 考虑一个处于保持状态的动态R A M(D R A M)单元。它的存储电容的值为CS=6 0 f F,
而漏电流估计为IL= 0 . 2 p A。对于逻辑1状态,电压特性已知为V1= 3V,Vm i n=1 . 2 V。求出该单元
的保持时间。
21. 一个动态R A M(D R A M)单元的存储电容为CS=5 5 F,漏电流估计为IL= 0 . 1 4 p A。该电
容器上的最大电压为V1=3 V,最小逻辑1的电压为Vm i n=1 V。
(a) 该单元能够保持逻辑0状态多久?
(b) 逻辑1状态的保持时间为多少?
22. DRAM中的软错误是这样的情形,一个a粒子撞击硅,导致电荷的流动。这能够改变
该单元的内容。你能否想起一个D R A M环境,在那里,它可能是特别的重要?
第9章存储元件与阵列277
下载 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值