8触发器_第五章(latch_flipflop)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4
记忆?
5
时序电路(Sequential circuits)
Inputs 组合电路 Outputs
存储单元
• 存储单元是有记忆功能的单元。 • 输出不仅依赖于输入,还有state状态有关,所谓状态即 • • •
存储单元的当前内容 相同输入下,可能产生不同的输出,与当前存储单元的内 容相关。 电路工作时可以改变存储单元的内容。 需要掌握分析和设计时序电路的一些新的技术.
8
什么是存储器(单元,内存)?
存储单元应有三个性质: 1. 能够保存值. 2. 能够将保存的值读出. 3. 能够写入新值. 一个一位存储单元: 1. 能够保存一位二进制数, 0 或者 1. 2. 能够读. 3. 能够写: – Set:写 1 置位 – Reset, 或 clear:写 0. 复位
9
30
触发器Flip-Flops
•
锁存器的问题? – 何时使能锁存器. – 应该快速地禁止锁存器. – 即锁存器的定时 所以,引入: 时钟clocks,触发器 flip-flops – Clocks 解决何时写入的问题. – Flip-flops 保证在精准的时刻快速地将数据写入。
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
•
• • •
• •
• •
总之:SR = 10, Q’next = 0 , Qnext = 1.
此状态称为锁存器的“1”状态 ,实现了写“1” ,即置位 “set” 。S称为置位端。 注意:当S为1 至 Qnext =1 ,有两级门延迟。 但一旦 Qnext 成为1 ,输出不再变化,成为稳定 状态stable state.
•
D latch 的状态图,输入为 CD.
0x/0 11/1 10/0
0x/1
Q=0
Q=1
24
•
用锁存器作为 (+1)的存储器件 :
+1 S X Q + G D C
Latches
•
假设:锁存器存有被加数: – + 读锁存器的当前值,即被加数. – 作G = X + 1 运算 – 结果存回锁存器.
?锁存器是否从+中取到了陈旧的数.(采样太快) ?是否需要在必要的时候禁止锁存器。 采样过慢则工作效率低
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?
•
•
Q , Q’ 不仅是输出,也是内部输入! 外部输入为R 、 S 。
Qnext = (R + Q’current)’ Q’next = (S + Qcurrent)’
12
存储: SR = 00
• •
S = 0 且 R = 0? 方程: Qnext = (0 + Q’current)’ = Qcurrent Q’next = (0 + Qcurrent)’ = Q’current
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
•
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 的现态. 同样的输入产生了不同的 输出,与锁存器的当前状 态有关。 与组合电路不同。
3
Clocks 在数字系统中普遍使用
• 处理器在一个内部时钟下工作. – 当代处理器芯片的时钟 3.2 – 时钟周期为0.31 ns!
• •
GHz.
内存模块也以时钟作为分类: —如 “PC133” , “DDR400” 注意:高的时钟不一定运行更快! – 还应该考虑在一个clock cycle 里究竟完成了那些工作
•
•
即当 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)‟
存储的基本思想
• • •
如何让一堆门具有 “记忆” ? 基本的想法是设计一个回路,电路的输出也是输入. 如下:
•
是记忆单元? – 能够记忆 Q,. – 能够读. – 但是不能写Q!
没有输入的时候也有输出! !!!!!
10
基本的记忆单元 锁存器(Latches)
11
SR latch 锁存器
•
SR latch:用 NOR 代替 反相器inverters.
组合电路 (Combinational circuits )
Inputs 组合电路 Outputs
组合电路: • 任何时候,相同输入 产生 相同输出.
•
•
类似于数学函数,每个输入有唯一的,确定的输 出。
在程序设计领域,组合电路类似于没有参数和赋 值功能的“子函数” 。
1
时间?
2
Clocks 和同步
所以 SR = 01, Qnext = 0 , Q’next = 1.
此状态称为锁存器的“0”百度文库态, 此操作称为复 位 reset或 clear清0 . R 端称为复位端 “reset.” R端有效至输出为“0”( Q’next 为1)需要两 级门延迟。
Qnext = (R + Q‟current)‟ Q‟next = (S + Qcurrent)‟
•
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锁存器的约束条件。
D latch: D (“data输入”) , C (“control控制输入”). – C = 0, S‟ = R‟=1, 保存. – C = 1, Q =D.
C 0 1 1
D x 0 1
Q No change 0 1
•
输入不会出现禁止组合.
23
时序电路与状态图
state diagram: • 每个节点表示一个状态,一个锁存器有两个状态: Q=0 , Q=1. • 箭头上标有 “input/state” 、“input/output” ,表示在特定”输入“ 下,状态迁移以及输出。
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
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
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
•
•
所以,为了使电路正常工作,必须: – 禁止锁存器,直到+将新值准备好。 – 锁存器只需要在很短的时间使能,以便更新数据. 两个问题: 如何知道新值已准备好? 加入新的信号,当该信号变为1时,锁存器知道 +计算已完成,可 以 将新数据存入。
如何使能,然后迅速禁止latches? 使用触发器
28
•
使用 clock 同步锁存器和 +. – 时钟信号送入 C. – 用时钟信号控制锁存器,当其为1时,使能锁存器,可使其写入。
+1 S X Q
+
G
Latches
D
C
• •
时钟周期必须仔细设计 : – 不能太短,否则在+完成运算之前,就会开始写入旧值。 – 不能太长,否则 + 可能“意外”存入一个新值。 如果 + 运行更快,则时钟周期可以更短。
• • •
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
• • •
25
•
•
假设: – 4个锁存器存入初始值0000. – 利用 + 将其加为 0001. 这段时间,应禁止锁存器,避免不需要的“偶而“进入到锁存器,即: – + 将 0000加为 0001. – 但是新的值还不能存入锁存器。C=0
+1 0000
S X Q
+
G
0001
Latches D C 0
29
Latches的局限性
+1 S X Q + G
Latches
D
C
•
何时应该禁止锁存器?应该足够长,使得+已经完成了计算,但不能太长会 影响系统的工作速度。 – 但是不同的 + 完成不同运算所需的延迟时间不同,例如算术运算乘和加 用时差别很大。 通常很难确定操作需要的时间,锁存器需要使能和禁止时间
•
clock :特殊的设备,连续周期性地输出 0,1.
时钟周期 (clock period)
• • • •
时钟周期 (clock period, or clock cycle time.) 时钟频率 ( clock frequency) : hertz. Clocks 通常用于同步电路。 – 依赖连续的,可预期的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
带有控制端的 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的变化都将引起输出状态的变化。导致空翻 。
6
时序电路设备的实例
– 密码锁. – 电梯控制器 – 交通灯的控制
计算机本身也是时序电路: 当你按下键盘和鼠标时,计算机的响应不同, 这取决于当前运行的程序和程序所处的状态。
7
时序电路 :具有记忆功能的硬件电路.
学习内容 : – 基本的记忆单元. – 时序电路的分析与设计. – 常用的时序部件.
记忆?
5
时序电路(Sequential circuits)
Inputs 组合电路 Outputs
存储单元
• 存储单元是有记忆功能的单元。 • 输出不仅依赖于输入,还有state状态有关,所谓状态即 • • •
存储单元的当前内容 相同输入下,可能产生不同的输出,与当前存储单元的内 容相关。 电路工作时可以改变存储单元的内容。 需要掌握分析和设计时序电路的一些新的技术.
8
什么是存储器(单元,内存)?
存储单元应有三个性质: 1. 能够保存值. 2. 能够将保存的值读出. 3. 能够写入新值. 一个一位存储单元: 1. 能够保存一位二进制数, 0 或者 1. 2. 能够读. 3. 能够写: – Set:写 1 置位 – Reset, 或 clear:写 0. 复位
9
30
触发器Flip-Flops
•
锁存器的问题? – 何时使能锁存器. – 应该快速地禁止锁存器. – 即锁存器的定时 所以,引入: 时钟clocks,触发器 flip-flops – Clocks 解决何时写入的问题. – Flip-flops 保证在精准的时刻快速地将数据写入。
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
•
• • •
• •
• •
总之:SR = 10, Q’next = 0 , Qnext = 1.
此状态称为锁存器的“1”状态 ,实现了写“1” ,即置位 “set” 。S称为置位端。 注意:当S为1 至 Qnext =1 ,有两级门延迟。 但一旦 Qnext 成为1 ,输出不再变化,成为稳定 状态stable state.
•
D latch 的状态图,输入为 CD.
0x/0 11/1 10/0
0x/1
Q=0
Q=1
24
•
用锁存器作为 (+1)的存储器件 :
+1 S X Q + G D C
Latches
•
假设:锁存器存有被加数: – + 读锁存器的当前值,即被加数. – 作G = X + 1 运算 – 结果存回锁存器.
?锁存器是否从+中取到了陈旧的数.(采样太快) ?是否需要在必要的时候禁止锁存器。 采样过慢则工作效率低
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?
•
•
Q , Q’ 不仅是输出,也是内部输入! 外部输入为R 、 S 。
Qnext = (R + Q’current)’ Q’next = (S + Qcurrent)’
12
存储: SR = 00
• •
S = 0 且 R = 0? 方程: Qnext = (0 + Q’current)’ = Qcurrent Q’next = (0 + Qcurrent)’ = Q’current
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
•
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 的现态. 同样的输入产生了不同的 输出,与锁存器的当前状 态有关。 与组合电路不同。
3
Clocks 在数字系统中普遍使用
• 处理器在一个内部时钟下工作. – 当代处理器芯片的时钟 3.2 – 时钟周期为0.31 ns!
• •
GHz.
内存模块也以时钟作为分类: —如 “PC133” , “DDR400” 注意:高的时钟不一定运行更快! – 还应该考虑在一个clock cycle 里究竟完成了那些工作
•
•
即当 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)‟
存储的基本思想
• • •
如何让一堆门具有 “记忆” ? 基本的想法是设计一个回路,电路的输出也是输入. 如下:
•
是记忆单元? – 能够记忆 Q,. – 能够读. – 但是不能写Q!
没有输入的时候也有输出! !!!!!
10
基本的记忆单元 锁存器(Latches)
11
SR latch 锁存器
•
SR latch:用 NOR 代替 反相器inverters.
组合电路 (Combinational circuits )
Inputs 组合电路 Outputs
组合电路: • 任何时候,相同输入 产生 相同输出.
•
•
类似于数学函数,每个输入有唯一的,确定的输 出。
在程序设计领域,组合电路类似于没有参数和赋 值功能的“子函数” 。
1
时间?
2
Clocks 和同步
所以 SR = 01, Qnext = 0 , Q’next = 1.
此状态称为锁存器的“0”百度文库态, 此操作称为复 位 reset或 clear清0 . R 端称为复位端 “reset.” R端有效至输出为“0”( Q’next 为1)需要两 级门延迟。
Qnext = (R + Q‟current)‟ Q‟next = (S + Qcurrent)‟
•
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锁存器的约束条件。
D latch: D (“data输入”) , C (“control控制输入”). – C = 0, S‟ = R‟=1, 保存. – C = 1, Q =D.
C 0 1 1
D x 0 1
Q No change 0 1
•
输入不会出现禁止组合.
23
时序电路与状态图
state diagram: • 每个节点表示一个状态,一个锁存器有两个状态: Q=0 , Q=1. • 箭头上标有 “input/state” 、“input/output” ,表示在特定”输入“ 下,状态迁移以及输出。
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
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
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
•
•
所以,为了使电路正常工作,必须: – 禁止锁存器,直到+将新值准备好。 – 锁存器只需要在很短的时间使能,以便更新数据. 两个问题: 如何知道新值已准备好? 加入新的信号,当该信号变为1时,锁存器知道 +计算已完成,可 以 将新数据存入。
如何使能,然后迅速禁止latches? 使用触发器
28
•
使用 clock 同步锁存器和 +. – 时钟信号送入 C. – 用时钟信号控制锁存器,当其为1时,使能锁存器,可使其写入。
+1 S X Q
+
G
Latches
D
C
• •
时钟周期必须仔细设计 : – 不能太短,否则在+完成运算之前,就会开始写入旧值。 – 不能太长,否则 + 可能“意外”存入一个新值。 如果 + 运行更快,则时钟周期可以更短。
• • •
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
• • •
25
•
•
假设: – 4个锁存器存入初始值0000. – 利用 + 将其加为 0001. 这段时间,应禁止锁存器,避免不需要的“偶而“进入到锁存器,即: – + 将 0000加为 0001. – 但是新的值还不能存入锁存器。C=0
+1 0000
S X Q
+
G
0001
Latches D C 0
29
Latches的局限性
+1 S X Q + G
Latches
D
C
•
何时应该禁止锁存器?应该足够长,使得+已经完成了计算,但不能太长会 影响系统的工作速度。 – 但是不同的 + 完成不同运算所需的延迟时间不同,例如算术运算乘和加 用时差别很大。 通常很难确定操作需要的时间,锁存器需要使能和禁止时间
•
clock :特殊的设备,连续周期性地输出 0,1.
时钟周期 (clock period)
• • • •
时钟周期 (clock period, or clock cycle time.) 时钟频率 ( clock frequency) : hertz. Clocks 通常用于同步电路。 – 依赖连续的,可预期的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
带有控制端的 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的变化都将引起输出状态的变化。导致空翻 。
6
时序电路设备的实例
– 密码锁. – 电梯控制器 – 交通灯的控制
计算机本身也是时序电路: 当你按下键盘和鼠标时,计算机的响应不同, 这取决于当前运行的程序和程序所处的状态。
7
时序电路 :具有记忆功能的硬件电路.
学习内容 : – 基本的记忆单元. – 时序电路的分析与设计. – 常用的时序部件.