存储元件与阵列
时间:2023-04-19 23:37:01
第九章存储元件和阵列
为了进一步计算,大多数数字系统需要具备记忆二进制变量值的能力。
这种能力是通过一种叫做存储单元的数字电路来实现的。存储单元允许用户使用二进制变量数
存储值,必要时调用。虽然存储单元可以独立使用,但它们通常被称为存储
器的字长大小组,或作为一个巨大的阵列,可以存储成千上万的数据。
9.1 一般属性
存储元件是能够保持系统所需的二进制变量值的电路。
在图9 - 1.描述了一个基本的存储单元。在最常见的术语中,
描绘单元特征的操作有三种。
? 数据位码D的值(0或1)写入一个写入操作
放置在输入中,并被元件输入
所接受。
? 尽管输入可能会发生变化,但保持存储在写入操作中的D值。
? 读出操作为输出变量提供存储位码的值Q。
E n a b l e使能控制位可能存在于某个设计中, Enable = 和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 = 能够在单元中保持。
几种锁存器可以用简单的逻辑门组成。
输入(写)
图9-1 一般存储单元
输出(读)
使能
9.2.1 SR锁存器
置位复位( S R)锁定器是一种对输入变化敏感的双稳态元件。SR 锁存
设备分别标注S和SR两个输入和一个标记为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所示。 这个术语定
这意味着一个或非门的输出连接到另一个或非门的输入,反之亦然
然而。这在术语中也被称为反馈网络,因为每扇门的输出都被反馈成为另一扇门的输出
进入。有必要建立一个能够保存两个逻辑值的双稳态电路。 - 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 = 它也是正确的。
输入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跳到0Q = 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现在被指定为低输入有效。
第九章存储元件,阵列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 = 并交叉耦合
保持合并网络。D = 1.上方或非门的输出被强制为
-Q
= 0,也就是另一种稳态。
图9-8 基本的D 型锁存器
9.3 时钟与同步
在一个复杂的数字系统中,我们必须仔细控制数据流,以确保每个部分都需要正确的信息
可以在必要时获得。控制网络中数据传输最简单的方法是通过时钟信号等预定义的参考
同步系统的操作。虽然时钟已经在第一章中介绍过了,但请快速回顾其基本原理。
时钟是从0到1返回0周期性变化的控制信号,如图9所示 - 9所示。我们通常使用符号(t)或
者C L K标记时钟。它最重要的特点是每秒重复一次,即众所周知的周期。时钟的频率定义为
( 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读兆赫茨意味着每秒100万个周期。它是现代台式计算机中最常见的时间
钟单位。
246 数字系统设计基础教程
下载
a) 元件b) 操作c) 逻辑图解
输入输出
t[秒]
例9 - 1
假设时钟频率为50 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 =