基于5221码的同步十进制加法计数器

(1)首先进行逻辑抽象。

计数器的工作特点是在时钟信号作用下自动地依次从一个状态转为下一个状态,所以它没有输入逻辑变量,只有进位输出信号。因此,计数器是属于穆尔型的一种简单时序电路。

取进位符号为输出逻辑变量C,同时规定有进位输出时C=1,无进位输出时C=0

十进制计数器应当有是10个计数状态,分别用 S0、S1 、S2 、S3 、S4 、S5 、S6 、S7 、S8 、S9 表示,根据题意可画出如下图所示的状态转换图。(word 做出来的图,大家将就着看吧)

计数器变量换行在Python中怎么写 计数器的状态转换表_自启动

由于需要10种状态 23<10<24 ,所以至少要用4位D触发器,将10种状态列出可得到状态转换表。

计数器变量换行在Python中怎么写 计数器的状态转换表_状态方程_02

(2)由于电路的次态 Q3n+1 Q2n+1 Q1n+1 Q0n+1  和进位输出C唯一地取决于电路现态Q3QQQ0的取值,可根据状态转换表画出表示次态逻辑函数和进位输出函数的卡诺图,如下图所示,因为计数器正常工作时有6种无效状态,将这6种状态作约束项处理,在卡诺图中用X表示。

计数器变量换行在Python中怎么写 计数器的状态转换表_状态方程_03

(3)将上面的卡诺图分为五个卡诺图分别来表示 Q3n+1 Q2n+1 Q1n+1 Q0n+1 和C五个逻辑函数,并由这些卡诺图得到电路的状态方程。

计数器变量换行在Python中怎么写 计数器的状态转换表_自启动_04

计数器变量换行在Python中怎么写 计数器的状态转换表_计数器变量换行在Python中怎么写_05

计数器变量换行在Python中怎么写 计数器的状态转换表_计数器变量换行在Python中怎么写_06

计数器变量换行在Python中怎么写 计数器的状态转换表_计数器变量换行在Python中怎么写_07

计数器变量换行在Python中怎么写 计数器的状态转换表_自启动_08

从这些卡诺图可以得出电路的状态方程

计数器变量换行在Python中怎么写 计数器的状态转换表_自启动_09

电路的输出方程   C=Q3Q1

选用D触发器组成这个电路,将上面的状态方程变换成D触发器的特性方程的标准形式,Qn+1=D可以得到驱动方程

计数器变量换行在Python中怎么写 计数器的状态转换表_计数器变量换行在Python中怎么写_10

(4)验证一下电路的逻辑功能,将0000作为初始状态代入状态方程依次计算次态值,所得结果与状态转换表相同。

(5)检查电路能否自启动。将0100、0101、1111、1000、1011、1010分别代入状态方程计算次态,可以得到下面的状态转换图,由图可知,每个无效状态最终都能回到有效状态,所以该电路具有自启动的能力。

计数器变量换行在Python中怎么写 计数器的状态转换表_自启动_11

(6)用Quartus仿真的电路图和波形文件截图

计数器变量换行在Python中怎么写 计数器的状态转换表_自启动_12

计数器变量换行在Python中怎么写 计数器的状态转换表_触发器_13

第一次写博客,不太熟,大家先凑合着看哈。