一个计数器引发的思考—1 问题的发现
概述:本文从异步清零计数器的故障出发,详细分析和测试了竞争和冒险。通过用同步置位的方法解决这个故障,引出了建立时间和保持时间的概念。这个实例看似简单,却引出了数字逻辑中常常要考虑的基本问题。为后续设计复杂的,健壮的数字电路、FPGA开发等工作打下基础,起到一个抛砖引玉的作用。
关键字:同步异步,竞争冒险,建立时间,保持时间
异步清零计数器的问题:
在一次实验中,用74HC161和74HC00设计一个从0计数到9的计数器,计数结果送数码管显示。一个简单的方法就是每当计数器计数到10的时候对计数器清零。这样计数器可见的计数是从0到9周期循环。
74HC161的清零端是低电平有效,将计数器输出的4位经过组合逻辑产生清零信号。所以计数值0到9都对应1,计数值10到15都对应0. 在multisim里写出真值表并转为逻辑门电路。
使用multisim的Logic converter工具将真值表转换为逻辑门。相当于用卡诺图化简。


可以看到最小项是 A'+B'C',(A是高位),然后转换为与非门电路。

将74HC161和74HC00在面包板上按原理图连接电路。CLR是异步清零管脚。74HC00一个芯片中有4个与非门。

实物图

使用硬木课堂仪器平台对这个计数器电路进行测试。首先打开电源给电路供电

然后将平台仪器的Dout0连接到74HC161的CLK管脚,给计数器提供时钟。打开主界面中的 StaOut来配置Dout0产生时钟信号


然后将74HC161的QA QB QC QD这4根数据线接硬木课堂仪器平台的Din0 Din1 Din2 Din3。用StaIn里面的数码管工具来测试计数器输出。


观察发现计数值从0到7循环,并不是设计中的0到9循环。问题出现了。