当前位置:
文档之家› 8触发器_第五章(latch_flipflop)
8触发器_第五章(latch_flipflop)
•
•
所以,为了使电路正常工作,必须: – 禁止锁存器,直到+将新值准备好。 – 锁存器只需要在很短的时间使能,以便更新数据. 两个问题: 如何知道新值已准备好? 加入新的信号,当该信号变为1时,锁存器知道 +计算已完成,可 以 将新数据存入。
如何使能,然后迅速禁止latches? 使用触发器
28
Current Q Q‟ 0 1 0 1 0 1 1 0 1 0 1 0
Next Q Q‟ 0 1 0 0 1 1 1 0 1 1 0 0
17
SR latches 是时序电路!
• • •
注意到 SR = 00, Q 的 次态可能为“0”,也可能为 “1”,依赖于 Q 的现态. 同样的输入产生了不同的 输出,与锁存器的当前状 态有关。 与组合电路不同。
•
Qnext = Q’next = 1 返回到 NOR 输入端,使 得: Qnext = (0 + 1)’ = 0 Q’next = (0 + 1)’ = 0
0
0
• • •
电路进入到一个无限循环,Q , Q’ 不断在 0 和 1 之间变化。 所以要求 不能出现SR=11! 总结:当有效电平同时撤消时,次态不确定。 所以 SR=0 为或非门SR锁存器的约束条件。
8
什么是存储器(单元,内存)?
存储单元应有三个性质: 1. 能够保存值. 2. 能够将保存的值读出. 3. 能够写入新值. 一个一位存储单元: 1. 能够保存一位二进制数, 0 或者 1. 2. 能够读. 3. 能够写: – Set:写 1 置位 – Reset, 或 clear:写 0. 复位
9
16
SR latche 存储单元!
• • •
如右图,或非门SR锁存器高电平有效. 输出 Q 代表锁存器保存的数据,称为锁 存器的状态. 下图称为状态表state table, 包含输入, 现态,次态。
S 0 0 1 R 0 1 0 Q No change 0 (reset) 1 (set)
Inputs S R 0 0 0 0 1 1 0 0 1 1 0 0
•
clห้องสมุดไป่ตู้ck :特殊的设备,连续周期性地输出 0,1.
时钟周期 (clock period)
• • • •
时钟周期 (clock period, or clock cycle time.) 时钟频率 ( clock frequency) : hertz. Clocks 通常用于同步电路。 – 依赖连续的,可预期的0,1 触发电路中某种事件,例如写入锁存器 – 如果若干电路模块共享时钟,则可以协调它们之间的行为。 正如人类.
0
1
0
1
19
S’R’ latch
• •
SR锁存器的其它形式: 用 NAND 取代 NOR 成为 S’R’ latch.
S‟ 1 1 0 0 R‟ 1 0 1 0 Q No change 0 (reset) 1 (set) Avoid!
在任何时刻,输入都能直接影响输出的状态。 没有控制信号!!!
20
3. 锁存器状态保持稳定直到S , R 发生变化。
R
Q Q‟
15
复位(置0): SR = 01
• •
S = 0 且 R = 1? 当 R = 1: Qnext = (1 + Q’current)’ = 0 Q 的新值加到NOR 门,此时 S = 0. Q’next = (0 + 0)’ = 1
•
• • •
• • •
Qnext = Q’next = 0 与 Q , Q’ 互补的假设相反。 若此时SR同时变化, S = 0 且 R = 0 ,则: Qnext = (R + Q‟current)‟ Q‟next = (S + Qcurrent)‟
0 0
Qnext = (0 + 0)’ = 1 Q’next = (0 + 0)’ = 1
14
Latch 的延迟
• •
时序图对理解时序电路非常有用 下面是 SR=10 的时序图.
0. 假设初始状态, Q = 0 and Q’ = 1.
1. 当 S=1, Q’在1个门延迟后从 1 变到 0。 2. Q’的变化以及 R=0, 使得Q在1个门延迟后 变为1 . Qnext = (R + Q‟current)‟ Q‟next = (S + Qcurrent)‟ 0 S 1 2 3 4
3
Clocks 在数字系统中普遍使用
• 处理器在一个内部时钟下工作. – 当代处理器芯片的时钟 3.2 – 时钟周期为0.31 ns!
• •
GHz.
内存模块也以时钟作为分类: —如 “PC133” , “DDR400” 注意:高的时钟不一定运行更快! – 还应该考虑在一个clock cycle 里究竟完成了那些工作
S 0 0 1
R 0 1 0
Q No change 0 (reset) 1 (set)
Inputs S R 0 0 0 0 1 1 0 0 1 1 0 0
Current Q Q‟ 0 1 0 1 0 1 1 0 1 0 1 0
Next Q Q‟ 0 1 0 0 1 1 1 0 1 1 0 0
18
SR = 11?
组合电路 (Combinational circuits )
Inputs 组合电路 Outputs
组合电路: • 任何时候,相同输入 产生 相同输出.
•
•
类似于数学函数,每个输入有唯一的,确定的输 出。
在程序设计领域,组合电路类似于没有参数和赋 值功能的“子函数” 。
1
时间?
2
Clocks 和同步
C 0 1 1 1 1 S x 0 0 1 1 R x 0 1 0 1 S‟ 1 1 1 0 0 R‟ 1 1 0 1 0 Q No change No change 0 (reset) 1 (set) Avoid!
电平触发
在CLK 1期间,Q和Q可能随S、R变化多次翻转
22
D latch
•
6
时序电路设备的实例
– 密码锁. – 电梯控制器 – 交通灯的控制
计算机本身也是时序电路: 当你按下键盘和鼠标时,计算机的响应不同, 这取决于当前运行的程序和程序所处的状态。
7
时序电路 :具有记忆功能的硬件电路.
学习内容 : – 基本的记忆单元. – 时序电路的分析与设计. – 常用的时序部件.
• •
• •
总之:SR = 10, Q’next = 0 , Qnext = 1.
此状态称为锁存器的“1”状态 ,实现了写“1” ,即置位 “set” 。S称为置位端。 注意:当S为1 至 Qnext =1 ,有两级门延迟。 但一旦 Qnext 成为1 ,输出不再变化,成为稳定 状态stable state.
•
•
即当 SR = 00, Qnext = Qcurrent. 为何值,它将保存该值. 这就是锁存器的存储store功能 .
所以不论 Q
Qnext = (R + Q’current)’ Q’next = (S + Qcurrent)’
13
置位: SR = 10
• • •
S = 1 且R = 0? 因为S = 1, 所以: Q’next = (1 + Qcurrent)’ = 0 所以: Qnext = (0 + 0)’ = 1 Qnext = (R + Q‟current)‟ Q‟next = (S + Qcurrent)‟
带有控制端的 SR 锁存器
C 0 1 1 1 1
S x 0 0 1 1
R x 0 1 0 1
S‟ 1 1 1 0 0
R‟ 1 1 0 1 0
Q No change No change 0 (reset) 1 (set) Avoid!
控制信号C作为使能信号
注意:有效电平为高电平
21
动作特点:在CLK=1的全部时间里,S和R的变化都将引起输出状态的变化。导致空翻 。
30
触发器Flip-Flops
•
锁存器的问题? – 何时使能锁存器. – 应该快速地禁止锁存器. – 即锁存器的定时 所以,引入: 时钟clocks,触发器 flip-flops – Clocks 解决何时写入的问题. – Flip-flops 保证在精准的时刻快速地将数据写入。
26
•
当+ 完成运算,使能锁存器 ,C=1, 将新值存入锁存器。
+1 0001 Q Latches S X + G 0001 D
C
1
• 迅速禁止锁存器,以免在+完成 0001+1= 0010. 之前将 0001 再次装入锁存
器。
+1 0001 Q Latches S X
+
G
0010 D C 0
27
•
使用 clock 同步锁存器和 +. – 时钟信号送入 C. – 用时钟信号控制锁存器,当其为1时,使能锁存器,可使其写入。
+1 S X Q
+
G
Latches
D
C
• •
时钟周期必须仔细设计 : – 不能太短,否则在+完成运算之前,就会开始写入旧值。 – 不能太长,否则 + 可能“意外”存入一个新值。 如果 + 运行更快,则时钟周期可以更短。
存储的基本思想
• • •
如何让一堆门具有 “记忆” ? 基本的想法是设计一个回路,电路的输出也是输入. 如下:
•
是记忆单元? – 能够记忆 Q,. – 能够读. – 但是不能写Q!