基于可编程计数器的时序逻辑电路设计
摘 要:介绍了基于MSI可编程计数器74LS161的时序逻辑电路设计技术,目的是探索MSI可编程计数器实现一般时序逻辑电路的扩展应用方法,即以计数器Q3,Q2,Q1,Q0端的代码组合表示时序逻辑电路的各个状态,由输入变量控制计数器的EP,ET及LD端,综合利用计数、置数、保持功能,使计数器的状态变化满足所要求的时序,用计数功能实现“次态=现态+1”的二进制时序关系,用置数功能实现“次态=预置数”的非二进制时序关系,用保持功能实现“次态=现态”的自循环时序关系。所述方法的创新点是提出了MSI可编程计数器改变应用方向的逻辑修改方法。
关键词:可编程计数器; 二进制时序; 非二进制时序; 逻辑设计
中图分类号:TN79 文献标识码:A
文章编号:1004-373X(2010)11-0167-04
Design of Sequential Logic Circuits Based on Programmable Counter
REN Jun-yuan
(Department of Physics, Bohai University, Jinzhou 121000, China)
Abstract: The design technique of the sequential logic circuits based on MSI programmable counter 74LS161 is presented. The purpose is to investegate a common method to realize the sequential logic circuits. In thedesign, the code combination of Q3, Q2, Q1 and Q0 is taken to denote the states of the sequential logic circuit, the input variables are adopted to control the EP, ET andports of LD, and the data-setting, counting and keeping functions are used to allow the change of the counter state to meet the requirement of the sequence, which means that the counting function is used to realize the binary sequential relation(″next state=present state+1″), the data-setting function is used to achieve the non-binary sequential relation(″next state=setting data″), and the keeping function is used to carry out the self-looping sequential relation(″next state=present state″). This is a new method for MSI programmable counter to change its application direction.
Keywords: programmable counter; binary sequence; non-binary sequence; logic design
0 引 言
各种MSI中规模数字集成电路都有自己的主要特性和应用目标,如果进行非常规使用,则改变它的使用方向,就可进一步发挥其功能和作用。扩展专用集成电路的应用领域是一项有实际意义的研究。本文研究了MSI可编程计数器改变应用方向的逻辑修改方法及时序逻辑电路的设计技术。
1 基本原理
74LS161是可编程中规模同步4位二进制加法计数器,图1为其图形符号[1-10]。其中,Q3,Q2,Q1,Q0为计数状态输出端;C为进位输出端;EP,ET为计数控制端;LD为预置数控制端;D3~D0为预置数输入端;RD为异步置零控制端;CP为计数脉冲输入端。
图1 74LS161可编程计数器图形符号
表1为可编程计数器74LS161的功能表[1-10] 。
表1 74LS161可编程计数器的功能表
输 入
RD
LDEPETCPD3D2D1D0
输 出
Q3Q2Q1Q0
逻辑功能
0××××××××0000置零
10××↑ d3 d2d1d0d3d2d1d0预置数
1111↑××××二进制加法计数计数
110××××××保持保持
11×0×××××保持(C=0)保持
由表1可知,在RD=1条件下,74LS161可编程计数器由EP,ET及LD控制具有计数、预置数和保持三种功能。
用74LS161可编程计数器Q3Q2Q1Q0端的代码组合表示时序逻辑电路的各个状态,由输入变量控制EP,ET及LD端,综合利用计数、置数、保持功能,使计数器的状态变化满足所要求的时序,即用计数功能实现“次态=现态+1”的二进制时序关系,用预置数功能实现“次态=预置数”的非二进制时序关系,用保持功能实现“次态=现态”的自循环时序关系,可实现一般时序逻辑电路[1]。
1.1 可编程计数器状态转换对控制函数的要求
由表1所示的功能表,可确定74LS161可编程计数器各种状态转换时对控制函数的要求,如表2所示。
表2 74LS161可编程计数器不同状态转换对控制函数的设置要求
现态 Qn3Qn2Qn1Qn0
次态 Qn+13
Qn+12
Qn+11
Qn+10
控制函数设置说 明
Qn3Qn2Qn1Qn0
Qn3Qn2Qn1Qn0+1EP=ET=1LD=1
无输入变量作用按二进制时序进行状态转换。
Qn3Qn2Qn1Qn0
Qn3Qn2Qn1Qn0+1
EP=ET=×
LD=0
无输入变量作用,按非二进制时
序转换到预置状态D3D2D1D0。
Qn3Qn2Qn1Qn0M/
Qn3Qn2Qn1Qn0+1
EP=ET=M
LD=1
输入变量M=1有效时按二进制时
序进行状态转换;M=0无效时状
态不变。
Qn3Qn2Qn1Qn0M/
D3D2D1D0
EP=ET=0
LD=M
输入变量M=1有效时按非二进制
时序转换到预置状态D3D2D1D0;
M=0无效时状态不变。
Qn3Qn2Qn1Qn0
M1/
M2/
Qn3Qn2Qn1Qn0+1
D3D2D1D0
EP=ET=M1
LD=M2
输入变量M1=1有效时按二进制时序
进行状态转换;M2=1有效时按非二
进制时序转换到预置状态D3D2D1D0;
M1,M2均无效时状态不变。
1.2 基于可编程计数器时序逻辑电路的基本形式
用1个74LS161可编程计数器和2个16选1数据选择器可构成多输入时序逻辑电路的基本形式[1],如图2所示。
图2 74LS161可编程计数器和16选1数据选择器
构成多输入时序电路的基本形式
图2中,74LS161计数器的现态输出Qn3~Qn0作为数据选择器的选择控制变量,数据选择器的Y输出作为74LS161可编程计数器的EP,ET计数控制信号及LD预置数控制信号,数据选择器的输入端D0~D15作为所构成时序网络的外部信号输入端。
74LS161可编程计数器处于不同现态时通过数据选择器选择不同的外部输入信号作用于EP,ET及LD端,对74LS161可编程计数器的基本工作时序进行修改,在时钟脉冲CP的作用下,使计数器的输出状态按所要求的时序关系进行改变,即可实现状态个数不超过16个的一般时序逻辑电路。
74LS161可编程计数器的EP,ET及LD控制函数可写成如下矩阵形式:
EP=ET=[Qn3 Qn2 Qn1 Qn0]
D0D1D15
(1)
LD=[Qn3 Qn2 Qn1 Qn0]D0D1D15
(2)
如果所实现的时序逻辑电路其状态个数不超过8个,可使用74LS161可编程计数器的低3位和2个8选1数据选择器进行组合。
如果所实现的时序逻辑电路其状态个数不超过4个,可使用74LS161可编程计数器的低2位和2个4选1数据选择器进行组合。
由状态转换关系,依表2确定式(1),式(2)中输入矩阵的参数。
1.3 时序逻辑电路的输出函数
所设计的时序逻辑电路为Mealy型时,输出是现态及输入变量的函数,可写成式(3)所示的矩阵形式并用数据选择器实现,由各状态的输出要求确定式(3)中输入矩阵的参数。
Z=[Qn3 Qn2 Qn1 Qn0]D0D1D15
(3)
所设计的时序逻辑电路为Moore型时,输出仅是现态的函数:
Z=f(Qn3Qn2Qn1Qn0)
(4)
用卡诺图化简求出最简输出逻辑表达式,用逻辑门实现。
当每态对应一个不同的输出函数时,可用二进制译码器实现输出函数。
1.4 基于可编程计数器时序逻辑电路的设计
一般设计步骤:
(1) 作出状态图
使用MSI可编程计数器及数据选择器设计时序逻辑电路时,状态的简化通常不会简化电路结构,一般不进行状态简化,直接使用原始状态图进行设计,可使各个状态所表示的含义清楚,电路与所实现的逻辑功能之间的对应关系较为明确。
(2) 状态分配
进行状态分配时,尽量使用不需进行预置数的二进制时序,尽量对非二进制时序作相邻分配,以利于预置数的简化。
(3) 求出EP,ET及LD的矩阵式,用卡诺图化简求出预置数最简逻辑表达式,求出输出函数逻辑表达式。
(4) 画出逻辑图。
2 设计举例
一个同步时序逻辑电路,输入信号为M1,M2。当M1连续输入4个或4个以上的1时,然后M2输入1个1时,输出Z为1,M1,M2不同时输入1。
由设计要求作出原始状态图如图3所示。其中,S0状态表示起始;S1状态表示M1输入了1个1;S2状态表示M1输入了2个1;S3状态表示M1输入了3个1;S4状态表示M1输入了4个或4个以上的1。
图3 设计举例的原始状态图
图3中有S0 ~ S4 共5个状态,使用74LS161可编程计数器的低3位代码进行状态分配,按尽量使用二进制时序的分配原则,状态分配关系为:
S0: 000;S1: 001;S2: 010;S3: 011;S4: 100。
状态分配后的状态图如图4所示。
由图4及表2,写出74LS161计数器的EP,ET及LD矩阵方程式:
EP=ET=[Qn2 Qn1 Qn0]
M1M1M1M10111
(5)
LD=[Qn2 Qn1 Qn0]1M2M2M2M2111
(6)
其中,不使用的101,110和111状态,将EP,ET及LD均设置为1,使计数器处于二进制时序状态工作,能自启动。
图4 状态分配后的状态图
作出74LS161计数器预置输入变量的卡诺图及画包围圈化简如图5所示,各预置输入变量的最简逻辑表达式为:
D2=D1=D0=0
(7)
图5 预置输入变量的卡诺图及化简
由图4所示的状态图,写出输出函数Z的矩阵方程式:
Z=[Qn2 Qn1 Qn0]
0000M2000
(8)
其中,不使用的101,110和111状态的输出设置为0,亦可设置为1。
用1个74LS161可编程计数器,3个8选数据选择器74LS151按式(5)~(8)画出逻辑图如图6所示。
图6 设计举例的逻辑图
3 结 语
基于可编程计数器的时序逻辑电路设计技术,提出了设计一般时序逻辑电路的状态分配原则及设计步骤,具有实际应用意义。
需要指出,当用单片74LS161可编程计数器控制EP,ET及LD构成模数N<16的任意进制计数器时,
无输入变量,所用状态仅最后一个是非二进制时序,其余均为二进制时序。由功能表可知,需将EP,ET设置
为常数1且不需选择,可将图2所示的一般结构中控制EP,ET的数据选择器简化掉,而LD控制函数仅在最后状态为0,可用门简单控制。
参考文献
[1]任骏原,张凤云.电子线路专题研究[M].成都:西南交通大学出版社,1995.
[2]任骏原.电子线路与数字逻辑解题方法指导[M].沈阳:东北大学出版社,1996.
[3]华成英,童诗白.模拟电子技术基础[M].4版.北京:高等教育出版社,2006.
[4]杨素行.模拟电子技术基础简明教程[M].3版.北京:高等教育出版社,2006.
[5]胡晏如.模拟电子技术[M].2版.北京:高等教育出版社,2004.
[6]王佩珠.电路与模拟电子技术[M].南京:南京大学出版社,2001.
[7]付植桐.电子技术[M].北京:高等教育出版社,2000.
[8]康华光,陈大钦.电子技术基础(模拟部分)[M].4版.北京:高等教育出版社,1999.
[9]杨素行.模拟电子电路[M].北京:中央广播电视大学出版社,1994.
[10]余雄南.数字电路与系统[M].西安:西安电子科技大学出版社,1988.