数字逻辑第7章(3)分配和举例

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第三组
Q0
编码方案分析: •根据规则1,要求AB,AC相邻,第三组方案最好;
•根据规则2,要求CD,AC,BD,AB相邻,第三组方案最好;
•根据规则3,要求AB,AC、BC相邻,三组方案均可; •规则1优先级高于规则2,规则3优先级最低,第三组方案应该为最好。
Y
X
A B C D
1 0 C /0 D/0 C /0 A/0 B/0 D/0 A/1 B /1
D1 Q 1 X Q 1 Q 0 Q1Q0 X D0 Q 1 X Q0 X Q1 Q 0 X Z Q1 Q 0
Q1( t 1) Q0 ( t 1) / Z ( t )
Y
X
A B C D
1 0 C /0 D/0 C /0 A/0 B/0 D/0 A/1 B /1
Y( t 1) / Z ( t )
如何正确画出时序图? 先画时钟,有效沿 输入序列 触发器状态的改变与保持 输出序列
注意:Moore?Mealy?
2)基于MSI时序器件的电路分析
74LS163计数器——单片应用:M<16的计数器(跳越的概念及应用) 多片级联:较大模数计数器电路的分析 分频器电路的分析 以74LS163为核心的电路形式较多,例如163+逻辑门、163+151、 163+138、…… 重点是:画出状态转换图,分析功能
( 2 K )! NA ( 2 K n)!
例如:4个状态,需要有2个触发器。可以有24种分配方案。
( 2 K )! 22! NA 24 ( 2 K n)! ( 2 2 4 )!
24种状态编码方案见教材247页。最终可以归纳为以下 三个不等价的(完全独立)方案。 为了使状态之间的相邻关系一目了然,通常将卡诺图 作为状态分配的工具。
按照第二组编码方案设计(D触发器)
Q1
Q0
0 1
0 A D
1 C B
第二组
按照第二组方案,得到的二进制
状态表如下:
Q 1 Q0 X A 00 C 01 B 11 D 10
0 01 / 0 11 / 0 01 / 0 00 / 1
1 10 / 0 10 / 0 00 / 0 11 / 1
Q2( t 1)Q1( t 1) / Z( t )
2)按格雷码编码 Y
A B C D
Y X
A B C D
编码方式不同, 二进制状态表不同。
Q2 Q1
0 0 1 1 0 1 1 0
0 Q2Q1 00 11 / 0 01 11 / 0
11 01 / 0 10 00 / 1
X
1
10 / 0 00 / 0 10 / 0 01 / 1
Y0 Y0 / 0 Y1 / 0 Y1 Y2 / 0 Y1 / 0 Y2 Y0 / 0 Y3 / 0 Y3 Y2 / 0 Y0 / 1
S1011
S0 / 0
S1
/0
Y
X Y0 Y1
0 1 Y0 / 0 Y1 / 0 Y2 / 0 Y1 / 0
Q2 Q 1
编码
0 1 00 00 / 0 01 / 0 01 11 / 0 01 / 0 11 00 / 0 10 / 0 10 11 / 0 00 / 1
例1:设计一个“1011”序列检测器。(不可重)
0/0 S0 1/0 0/0
1/0
S10
1/1
1/0
S1
0/0
S101
0/0
S1011
1/0
0 1
0/0
S S0 S1
X
0 S0 / 0 S10 / 0 S0 / 0 S10 / 0 S1 S1
1 /0 /0
Y
X
化简
S10 S101
S101 / 0 S1011 / 1
Q2
Q1
0 1
0 1 A B D C
第一组
Q2
Q1
0 1
0 1 A C D B
第二组
Q2
Q1
0 1
0 1 A C B D
第三组
随着状态数的增加,编码方案的数量会大幅度增加,
目前没有成熟的方法给出确定的编码方案,往往需要设计
者的经验和方案之间的反复比较。
解决编码问题的一种常用方法——相邻状态分配法
相邻法的基本思想: 在选择状态编码时,尽可能使激励函数和输出函数 在卡诺图上的“1”方格处在相邻位置,从而有利于 激励函数和输出函数的化简,使所设计的电路最简。
Y( t 1) / Z ( t )
按照第一组编码方案设计(D触发器)
Q0 Q1
0 1
0 A D
1 B C
第一组
按照第一组方案,得到的二进制
状态表如下:
Q 1 Q0 X A 00 B 01 C 11 D 10
0 11 / 0 11 / 0 01 / 0 00 / 1
1 10 / 0 00 / 0 10 / 0 01 / 1
按照第三组编码方案设计(D触发器)
Q1 0 1
Q0
0 A B
第三组ห้องสมุดไป่ตู้
1 C D
按照第三组方案,得到的二进制 状态表如下:
Q 1 Q0 X A 00 C 01 D 11 B 10
0 01 / 0 10 / 0 00 / 1 01 / 0
1 11 / 0 11 / 0 10 / 1 00 / 0
细心体会!!!
设计的仿真验证
解决:同步化
问题? 组合逻辑特性引起!
问题? 组合逻辑特性引起!
为看状态变化而 引出 增加 z1
用clk对z同 步化产生z1
再次仿真
Z1为同步化 的输出
不可重设计 验证
在电路模型中用D触发器进行同步化处理
x now
z 组合 时序 next
D >clk
z1
reset clk
D1 Q 1Q0 Q 0 X D0 Q 1 X Q0 X Q1 Q 0 X Z Q1 Q 0
Q1( t 1) Q0 ( t 1) / Z ( t )
Y
X
A B C D
1 0 C /0 D/0 C /0 A/0 B/0 D/0 A/1 B /1
Y( t 1) / Z ( t )
Y( t 1) / Z ( t )
解:有4个状态,需要2位二进制, 即需2个触发器,设为 Q2Q1。 1)按二进制自然码编码 Y Q 2 Q1
A B C D
0 0 1 1
0 1 0 1
0 Q2Q1 00 10 / 0 01 10 / 0
11 01 / 0 10 00 / 1
X
1
11 / 0 00 / 0 11 / 0 01 / 1
1 0 C /0 D/0 C /0 A/0 B/0 D/0 A/1 B /1
Y( t 1) / Z ( t )
Q2( t 1)Q1( t 1) / Z( t )
求状态方程和输出方程, 用D触发器或JK触发器 实现。 也可用Verilog HDL建模。
下面有关7.4状态分配的介绍,不作 为教学要求,供学生自学时参考。
7.4 状态编码(状态分配)
对最小化状态表中用字符表示的状态进行编码
的过程,称为状态编码(状态分配)。
目的:构造卡诺图形式的二进制状态表。 用传统的 触发器+组合逻辑 实现。 用Verilog HDL建模。
例:对下列最小化状态表进行状态编码。
Y X
A B C D
1 0 C /0 D/0 C /0 A/0 B/0 D/0 A/1 B /1
相邻法状态编码规则
规则1:在相同输入条件下,次态相同,现态相邻。
(即:在相同输入条件下,具有相同次态的现态,应进行相邻编码)
A B C D
01 / Z 01 / Z
G
01 / Z 01 / Z
Q 2 Q1 Q 3 00 01 11 10 0 A C 1 B D
利用规则1,可改善次态卡诺图上列向1方
对电路进行同步化处理,不作为教学要求。
同步时序电路小结
一. 触发器逻辑符号(SR、JK、D、T),建立概念:
有效沿 状态方程(次态方程、特性方程) 功能表(特性表) 波形图
二. 同步时序电路的分析 1)基于触发器设计的时序电路分析 分析方法(步骤)
通过课件例题及作业,掌握步骤,灵活应用。
难点:由状态方程→状态表→状态图 记忆:函数与卡诺图的关系
1 01 / 0 01 / 0 10 / 0 00 / 1
Q2(t+1)Q1(t+1)/Z
x now
组合 时序 reset clk
z
next
module t_1011(reset,clk,x,z); input reset, clk, x; output z; parameter y0=2’b00, y1=2’b01, y2=2’b11, y3=2‘b10; reg z; reg [2:1] now, next; always @(x or now) case (now) y0 : if (x) begin next=y1;z=0;end else begin next=y0;z=0;end y1 : if (!x) begin next=y2;z=0;end else begin next=y1;z=0;end y2 : if (x) begin next=y3;z=0;end else begin next=y0;z=0;end y3 : if (x) begin next=y0;z=1;end else begin next=y2;z=0;end default : begin next=y0;z=0;end endcase
Q2(t+1)Q1(t+1)/Z
X
Y2 Y0 / 0 Y3 / 0 Y3 Y2 / 0 Y0 / 1
Q 2 ( t 1 ) Q 2 Q1 X Q 2 Q1 X Q 2 Q1 X
Q 2 Q 1 X Q 2 (Q 1 X Q 1 X ) Q 2 Q 1 X Q 2 (Q 1 X )
D1 Q 1 X Q0 X Q 1Q0 D0 Q 1 X Q 0 X Z Q1Q0
Q1( t 1) Q0 ( t 1) / Z ( t )
三种方案激励函数、输出函数比较
D1 Q 1 X Q 1 Q 0 Q1Q0 X D0 Q 1 X Q0 X Q1 Q 0 X Z Q1 Q 0
后续
x now
组合 时序 reset clk
z next
//续前 always @(posedge clk) if (!reset) now<=y0; else now<=next; endmodule
设计模型要点:
1)用parameter 进行状态编码 2)定义现态、次态变量 3)用一个always描述组合部分 4)用另一个always描述时序部分
例1: 选择图示最小化状态表的最佳状态分配方案
Y
X
A B C D
1 0 C /0 D/0 C /0 A/0 B/0 D/0 A/1 B /1
Y( t 1) / Z ( t )
Q0 Q1 0 1 0 A B 1 D C
第一组
0 1 Q1 0 A C 1 D B
第二组
Q0
0 1 Q1 0 A C 1 B D
7.4 状态分配 对最小化状态表中用字符表示的状态进行编码的过程, 称为状态分配。 设状态数为n,触发器个数为K,则n、K之间应满足下 列关系: K [ Log2 n]向上取整 选择编码方案 如果有两个状态,需要有一个触发器。可以有两个分配方案。 如果有n个状态,需要有K个触发器,可以有NA种分配方案:
第一组方案
第二组方案
D1 Q 1Q0 Q 0 X D0 Q 1 X Q0 X Q1 Q 0 X Z Q1 Q 0
第三组方案
D1 Q 1 X Q0 X Q 1Q0 D0 Q 1 X Q 0 X Z Q1Q0
与项少,与项中的变量数少,有公共与项。
7.5 一般同步时序电路设计举例
状态方程 用D触发器,画图?
用JK触发器,画图?
Q 1( t 1 ) Q 2 Q 1 Q 2 Q 1 X Q 2 Q 1 X (Q 2 X ) Q 1 Q 2 Q 1
Z Q 2 Q1 X
采用Verilog HDL建模
Q2 Q1
X
00 01
11 10
0 00 / 0 11 / 0 00 / 0 11 / 0
C
D
行向“1”方格的相邻情况,达到简
化激励方程的目的。
规则3:输出完全相同,现态相邻。 (即:在每一种可能的输入条件下,对输出完全相同的那些现态,
应进行相邻编码。)
利用规则3,可改善输出函数卡诺图上列向“1”
方格的相邻情况,达到简化输出方程的目的。
规则1的优先级高于规则2,如果没有大量的输出,规则3 的优先级最低。
格的相邻情况,达到简化激励方程的目的。
规则2:在相邻的输入条件下,同一现态,次态相邻。
(即:同一现态在相邻的输入条件下的次态,应进行相邻编码。)
00 / Z 01 / Z
G
A
B
11 / Z 10 / Z
Q 2 Q1 Q 3 00 01 11 10 0 A B C D 1
利用规则2,可改善次态卡诺图上
相关文档
最新文档