ionicons-v5-f

集成计数器的验证与应用

实验题目:集成计数器的验证与应用

1. 课程简要信息

课程名称:数字电子技术
课程学时:理论 48 学时 $^ +$ 实验 16 学时
适用专业:电子信息科学与技术
学生年级:大学本科二年级第一学期或第二学期

2.实验内容与任务(限 500 字,可与“实验过程及要求”合并)

通过多种手段对比探究,验证集成计数器( $( 7 4 \mathrm { x x } 1 6 0 / 1 \colon \mathrm { x x }$ 代表“LS”或“HC”)的逻辑功能;并通过“口袋实验板”和“FPGA开发板”完成N进制计数器的设计与验证。

2.1 基本要求:

1)对照 $7 4 \mathrm { x x } 1 6 0 / 1$ 的数据手册,使用“计数器应用综合实例”口袋实验板或实验台验证集成计数器(74xx160/1)的逻辑功能。
2)使用 Proteus/Multisim 虚拟仿真软件验证集成计数器(74xx160/1)的逻辑功能。
3)在 Quartus II 13.0 软件中通过调用 74160 模型符号,采用原理图方式仿真集成计数器(74xx160)的逻辑功能。
4)参照 $7 4 \mathbf { x } \mathbf { x } 1 6 0$ 的数据手册,在 Quartus II 13.0 软件中通过硬件描述语言编写程序,并仿真其逻辑功能。
5)使用“计数器应用综合实例”口袋实验板(74xx160/1)实现教师现场指定的 N进制计数器。(注:N为5——15 进制的任意值;计数初始状态不一定为 0;完成一次计数周期时产生进位信号。)

2.2 提高要求:

1)使用“计数器应用综合实例”口袋实验板(74xx161/160)实现教师现场指定的 N 进制计数器。(注:N 为 17——100 进制的任意值;优先设计 60、24 进制计数器。)【本要求可视2.1基本要求 5)的完成情况灵活处理】2)使用“FPGA 开发板”基于中规模集成数字器件模型设计 24 进制或 60 进制计数器。时钟信号由开发板上无锁按键提供,并完成按键消抖;将计数值

显示在开发板的七段数码管上。

3.实验过程及要求

3.1实验课前准备阶段

1)查阅74xx160/1、20、48等集成块的数据手册,熟悉其逻辑功能及引脚排列。

2)撰写预习报告,设计实验记录表格。

3)分别在个人计算机上,使用虚拟仿真软件(Proteus/Multisim)中验证
74LS160 的逻辑功能。

4)绘制描述 74xx160 的逻辑功能的 VerilogHDL 程序流程图。

3.2实验课上(1人/组)

1)分别通过实物、虚拟仿真(Proteus/Multisim)、Quartus II 13 功能仿真三种手段验证 74xx160 的逻辑功能(异步清零,同步置数,保持,计数,产生进位,自启动)。查验六个无效状态的次态;查验进位产生的条件。

2)使用“计数器应用综合实例”口袋实验板实现教师现场指定的 N进制计数器;使用“FPGA开发板”实现 24进制或 60进制计数器。

记录实验结果,完成验收,进行简单提问答辩。

3.3 实验课后

1)撰写实验报告。分析验证 $7 4 \mathrm { x x } 1 6 0$ 逻辑功能的实验数据,总结使用软件中提供的模型的注意事项;系统总结 N 进制计数器的实现策略和方法;总结实验过程中遇到的问题及解决方法。

2)鼓励学生实验课后继续进行拓展实验,教师应将学生完成拓展实验情况,纳入实验平时成绩考核范畴。开通在线上传通道,鼓励学生把优秀作品上传交流。

4.相关知识及背景

该项目是《数字电子技术实验》课程的一个典型时序逻辑电路实验。近年来,虚拟仿真技术和 EDA 技术逐渐深入融进《数字电子技术》课程的教学之中,传统的验证实验理应拓展为:典型数字器件逻辑功能验证和常用软件中对应数字器件模型的验证。然后方可在虚拟仿真软件中或 EDA 软件中应用被验证过的可靠

模型完成给定的设计任务。

5.实验环境条件

“计数器应用综合实例”口袋实验板(含 74xx160/1、20、48)、FPGA 开发板(含下载器,以 EP4CE10E22C8 为核心,可替换)、计算机、Proteus 8.8SP1、Multisim 14、quartus II 13.0.156[注:所有软件版本可替换]、数字电子技术实验台(非必需)、面包板(口袋实验板级联时使用)、5V电源(充电宝、或计算机 USB口供电)。

6.教学目标与目的

本实验教学目标是:1)使学生掌握验证集成计数器和集成计数器模型的操作方法;2)使学生掌握 N 进制计数器的设计方法;3)培养学生模块化的电路设计思维,通过“逻辑单元电路”的设计、“逻辑单元电路”的级联,构建复杂的逻辑电路的方法。4)培养学生“求真务实”的实验作风。

7.实验设计与实施进程

在实验过程中,教师主要起引导作用,鼓励学生在实践中学真知。教师可利用学习平台(如学习通)发布学习资源,为学生提供个性化学习场景,教师在实验过程中主要以讨论的方式个别指导,本实验的教学实施过程如表 1所示

表 1《集成计数器的验证与应用》实验实施进程表

进程教学手段教学内容
任务安排课程网站推送布置实验任务和预习要求
预习自学课程网站1、复习集成计数器的工作原理及理论课学习内容;2、查阅74xx160/1数据手册;3、Proteus/Multisim验证74LS160 逻辑功能;4、画出74xx160 逻辑功能程序流程图。
现场教学阶段性验收1现场验收提问、交流查看演示、检查实验记录;1、验收虚拟仿真验证结果(Proteus/Multisim)2、验收实物验证结果(实验台或实验板);3、考查实物设计N(5~15)进制计数器。
现场操作阶段性验收2现场验收提问、交流查看演示、检查实验记录1、验收功能仿真时序图(Quartus II);2、验收基于EDA技术实现24(64)进制计数器。(可据学生实验情况适当调整)
撰写实验报告报告批阅实验课外集体或个别交流反馈

在执行过程中,与本实验项目相关的指导内容有:

1)环节1中:实物验证 74LS160 的逻辑功能(异步清零,同步置数,保持,计数,产生进位,自启动)。查验六个无效状态的次态;查验进位产生的条件。

2)环节2中(要求学生在实验准备阶段完成):在仿真软件中验证 74LS160的逻辑功能。查验六个无效状态的次态;查验进位产生的条件。

现场引导学生对比实验记录,得出结论:Multisim 和 Proteus 软件中的74LS160 模型都不完全正确。

注:学生完成后需经教师现场验收实验记录表并正确回答教师所提问题后进入环节 3、环节 4。

备选问题:

a)1010、1011、1100、1101、1110、1111 中某一状态的次态是什么?

b)74xx160 能否自启动,为什么?

c)进位产生的条件是什么?请写出逻辑表达式。

d)同步与异步有什么区别,请现场演示两者的区别。

3)环节 3 中:在 Quartus II 13.0 软件中通过调用 74160 符号模型,执行功能仿真,用时序图完备地描述 74160的逻辑功能。

引导学生对比实验记录,得出结论:Quartus II 13.0 中的 74160 模型部分无效状态条件下的进位有错。

4)环节 4:在 Quartus II 13.0 软件采用 Verilog HDL 描述 74xx160 的逻辑功能,执行功能仿真,并用时序图完备地描述 $7 4 \mathrm { x x } 1 6 0$ 的逻辑功能。

注:学生完成后需教师现场验收,向教师展示正确的功能仿真图后进入环节

5、环节 6。

【教学备要】教师在执行实验环节 1、2、3、4 时,应引导学生注意验证集成计数器逻辑功能的完备性,即除验证计数器异步清零、同步置数、保持、计数功能外,还要验证产生进位条件、自启动特性等功能;引导学生正确理解计数器同步置数与异步置数的区别;引导学生在使用虚拟仿真软件或 EDA 软件中的模型设计逻辑电路前,应验证模型是否完全正确。也应通过 EDA 功能仿真实验环节加强学生通过时序图分析时序逻辑电路的能力。

5)环节 5 中:使用“计数器应用综合实例”口袋实验板(74xx161)实现教师现场指定的 N 进制计数器。(注:计数初始状态不一定为 0;完成一次计数周期时产生进位信号。)

备选问题(示例):

a)基于“计数器应用综合实例”口袋实验板(集成计数器使用 74xx160)设计一个从 2 开始的 8 进制加法计数器。
b)基于“计数器应用综合实例”口袋实验板(集成计数器使用 74xx161)设计一个 8 进制加法计数器,并用 74xx161 进位输出端指示是否完成计数周期。

【教学备要】在实验环节 5 指导学生设计 N 进制(加法)计数器的策略与方法,要点如下(详细原理请看 8.4 节):

a)若 $\mathbf { N } { = } \mathbf { M }$ (计数器的模),选用现有集成计数器。b)若 $\mathbf { N } { < } \mathbf { M }$ ,且对计数状态无要求,则取集成计数器的最后一个状态为N进制计数器的最后一个状态,集成计数器进位端产生进位信号。c)若 $\mathbf { N } { < } \mathbf { M }$ ,且对计数状态有要求,则采用清零法或置数法产生归位逻辑,并设计进位逻辑。d)若 $\mathbf { N } { > } \mathbf { M }$ ,且对计数状态无要求,则先级联,取集成计数器的最后一个状态为N进制计数器的最后一个状态,集成计数器进位端产生进位信号。e)若 $\mathbf { N } { > } \mathbf { M }$ ,且对计数状态有要求,则采用清零法或置数法产生归位逻辑,并设计多个进位逻辑。

6)环节6:使用“FPGA开发板”实现 24进制或60进制计数器。通过开发板上的按键控制,在(四位)七段数码管上显示计数的过程。

本环节验收要点:

a)工程项目是否完备?(含文件管理是否合理规范?程序编写或原理
图绘制是否合理规范?)
b)是否正确且完整的显示计数周期?
c)按键是否消抖?
d)若选用动态扫描显示,显示是否稳定?

【教学备要】在实验环节 6中,应注意引导学生灵活应用集成计数器实现分频,将 FPGA 开发板上晶振产生的 20M 时钟信号转变为按键消抖所需的时钟脉信号;指导学生应用上一实验所学的边沿 D 触发器设计按键消抖电路,使前后知识点呼应。本课程应侧重基于中规模集成块设计逻辑电路,而非使用自顶向下的方法通过硬件描述语言编写程序实现整体功能。

总之,在设计过程中,指导学生设计逻辑电路的可靠性和规范性:包括逻辑器件与器件仿真模型的可靠性;绘制电路图的规范性、实验报告撰写的规范性、代码编写的规范性、焊接及调试电路的规范性等。引导学生培养独立分析问题解决问题的能力,引导学生培养合作能力和协作精神。

8.实验原理与方案

8.1“计数器应用综合实例”口袋实验板的设计与制作

如果口袋实验板设计合理,可比基于实验台或面包板的连接更高效稳定,可以让学生将更多的精力花在原理的理解与任务的设计上,减小因连线故障引起的低技术难度的重复劳动上,故设计“计数器应用综合实例”口袋实验板。

由于 74xx160、161、162、163 的排列引线图相同,功能端口相同。本案例以 74xx161 为例说明。“计数器应用综合实例”原理图如图 1 所示,以一片 74xx161和一片 $7 4 \mathrm { x x } 2 0$ 为核心构成了基本的“逻辑单元电路”。


图 1 基本计数逻辑单元

SW1-同步置数使能:
上:高电平(VCC);
下:归零逻辑。
SW2-异步清零使能:
下:归零逻辑。
SW3-Q0使能:
SW4-Q1使能:
SW5-Q2使能:
SW6-Q3使能:
SW7-归零信号选择:
上:Q3210与非;
下:RCO设计N进制。
SW8-保持使能
左:来源于前级;
SW9-RCO归零选择:
上:Q3210与非,用于级联;下:RCO设计N进制。

计数逻辑单元的印刷电路板如图 2 所示。“计数器综合应用实例”口袋实验板布局如图 3 所示。


图2电路板


图3口袋实验板布局示意图

8.2 虚拟仿真软件中验证集成计数器的方法

8.2.1 在 Proteus(版本 8.8sp1)中验证 74LS160 的方法

验证 74LS160 的逻辑功能的原理图如图 4 所示。


图4Proteus中绘制的逻辑原理图

在验证时,采用虚拟端子提供高低电平,为了实验观测方便,用端子的低电平变为高电平模拟时钟脉冲的上升沿。计数状态用带驱动的七段数码管显示,进位输出用虚拟探针指示。

特别注意,Proteus(版本 8.8sp1)中的 74LS160 模型有误,当 74LS160 出现无效状态(1100~1111 中的任意一)后,再次进入计数状态,74LS160 出现逻辑混乱,Q3210 从 0000 到 1111 依次变化,且 RCO 端始终为 0。

8.2.2 在 Multisim(版本 14.1.0)中验证 74LS160 的方法

验证 74LS160 的逻辑原理图如图 5 所示。


图 5 Multisim 中绘制的逻辑原理图

在验证时,采用“交互数字常量”提供高低电平,为了实验方便,用交互数字常量的低电平变为高电平模拟时钟脉冲的上升沿。计数状态用带驱动的七段数码管显示,进位输出用虚拟探针指示。

特别注意,Multisim(版本 14.1.0)中的 74LS160N 模型有误,当 74LS160N计数状态为 1001 时,在 $\mathrm { E N T } { = } 1$ , $\mathrm { E N P { = } 0 }$ ,进位输出 RCO 端应为高电平 1,而模型显示为0,因此,使用该模型进行仿真是应当谨慎!

8.3EDA 软件(quartus II 13.0.156)中验证集成计数器的方法

8.3.1 通过调用软件库符号验证集成计数器

验证 74160的逻辑原理图如图 6所示。


图 6 quartus II 13.0.156 中绘制的逻辑原理图

使用 EDA 软件综合后执行功能仿真,时序图如下图 7 所示。


图 7 quartus II 13.0.156 中 74160 模型的时序图

特别注意,EDA 软件(quartus II 13.0.156)中的 74160 模型有误,部分无效状态进位有错,具体来说,当状态为 1111、1101、1011 时进位输出本应为 0,而软件提供74160模型功能仿真值为 1。因此,使用该模型为基本宏模块进行设计时是应当谨慎!

8.3.2 通过调用编写 VerilogHDL 程序验证集成计数器

描述 $7 4 \mathrm { x x } 1 6 0$ 的逻辑关系如图 8 所示。


图 8 $7 4 \mathbf { x } \mathbf { x } 1 6 0$ 的逻辑关系示意图

描述 $7 4 \mathrm { x x } 1 6 0$ 的逻辑功能的流程图如图 9 所示。


图 9 74xx160 的逻辑功能的流程图


描述 74xx160 逻辑功能的 VerilogHDL 程序如图 10 所示。


图 10 描述 $7 4 \mathbf { x } \mathbf { x } 1 6 0$ 的逻辑功能的 VerilogHDL 程序将程序用 EDA 软件综合后执行功能仿真,时序图如下图 11 所示
图 11 程序的功能仿真时序图

自编程序的逻辑功能虽然在无效状态自启动时与中规模集成块 74LS160 有稍许差别,但都可顺利进入有效循环,并不影响正常使用。因此,在后续设计中,可将该程序模块化,作为基本宏模块使用。

8.4 基于 MSI 集成计数器设计 N 进制计数器

8.4.1 第一类任意进制计数器( $\mathbf { N }$ 小于 M)的设计

计数器是记录时钟脉冲个数的器件, $_ \mathrm { N }$ 进制的计数逻辑电路实现了 N 个状态间按一定次序转换,对具体状态并未特别要求。例如要实现 5 进制计数器,状态在 $0 0 0 1 { } 0 0 1 0 { } 0 0 1 1 { } 0 1 0 0 { } 0 1 0 1$ 这五个状态间依次转换和在 $1 0 1 1 \substack { } 1 1 0 0 \substack { }$ $1 1 0 1 { } 1 1 1 0 { } 1 1 1 1$ 这五个状态间依次转换在逻辑功能上并无本质差异。 $_ \mathrm { N }$ 进制计数器的 N 个状态转换完一个周期后产生进位信号。计数器记录上升沿所用的状态转换及进位输出如图 12 所示。


图 12 计数器状态示意图

以 74xx161 为基础,结合基本的门电路可以实现 16 以内任意进制的计数器其实现满足含进位的 N 进制加法计数器的思路如下:

a) 为了更方便的产生进位信号,我们将 N 进制的最后一个确定为 1111 状态。
b) 计数的初始状态 16-N 所对应的 8421 码,如实现三进制计数器,初始状态为 1101,设定步骤为: $1 6 - 3 = 1 3$ ,13 对应的 8421 码为 1101,三进制计数器在状态 $1 1 0 1 { } 1 1 1 0 { } 1 1 1 1$ 间转换,状态为 1111 时产生进位。
c) 清零法无法设置非 0000 的初始状态,所以需采用同步置数法实现。

【例】用 74X161 实现 8 进制计数器。

第一步:设定计数状态。

为了用 74x161 的进位输出端 RCO 产生进位信号, $Q _ { 3 } Q _ { 2 } Q _ { 1 } Q _ { 0 }$ 须含 1111 状态。

第二步:产生置数信号。

在 $Q _ { 3 } Q _ { 2 } Q _ { 1 } Q _ { 0 }$ 为 1111 状态是产生置数信号,由 74X161 的功能表可以,置数端(LOAD)为低电平时实现置数功能。可用进位端经非门后接入置数端。

第三步:设定并行置数值。

$Q _ { 3 } Q _ { 2 } Q _ { 1 } Q _ { 0 }$ 最后一个状态为 1111 状态,由于 74X161 为同步置数,在置数信号出现后的下一下时钟沿时, $Q _ { 3 } Q _ { 2 } Q _ { 1 } Q _ { 0 } = D _ { 3 } D _ { 2 } D _ { 1 } D _ { 0 }$ , $D _ { 3 } D _ { 2 } D _ { 1 } D _ { 0 }$ 的取值设置方法为 $1 6 { \cdot } \mathrm { N } { = } 1 6 { - } 8 { = } 8$ ,十进制 8 的 8421 码为 1000,故 $D _ { 3 } D _ { 2 } D _ { 1 } D _ { 0 } = 1 0 0 0$

第四步:仿真验证设计出的 8 进制计数器。

可按如图 13 所示电路在仿真软件中验证设计结果。


图13 计数器逻辑原理图

添加电压探针,进行仿真,得到如图 14 所示波形图。


图 14 计数器逻辑原理图

下面采用异步清零的方法来实现 8 进制计数器,并对比同步置数和异步清零两种设计方法的特点。

采用异步清零法来实现 N 进制加法计数器,首先可确定计数的初始状态为$" 0 0 0 0 ^ { \prime \prime }$ ,由于74xx161异步清零,即清零端信号出现后立即返回“0000”状态,所以最后一个状态为 N 对应的 8421 码,计数状态为 $" 0 0 0 0 ^ { \prime \prime }$ 到“N-1 对应的 8421码”,N 对应的 8421 码并不是计数状态。若设计 8 进制计数器,计数状态为“0000”“0001” “0010” “0011” “0100” “0101” “0110” “0111”八个状态。由于清零端为低电平时异步清零,状态为“1000”时产生清零信号,将 $Q _ { 3 }$ 经非门即可产生清零信号。如图 15 所示。


图15 计数器逻辑原理图

在 $Q _ { 3 } Q _ { 2 } Q _ { 1 } Q _ { 0 }$ 端添加电压探针,如图所示,执行仿真,产生如图 16所示时序图,由仿真图可知,状态在 0000到0111间循环,但状态从 0111转换为 1000过程中产生了毛刺,这是异步清零所用的时间。


图 16 计数器时序图

由于 74系列的时间延时在 20纳秒左右,设置时钟周期为 $1 0 0 \mathrm { n S }$ ,仿真时间为 1uS,重新执行仿真,得到如图 17 所示时序图,可通过仿真软件得到清零所用的时间。总之,采用异步法设计的 N 进制计数器,毛刺现象是不可避免的,所以数字系统的设计中,应尽量避免用异步法设计逻辑电路。


图17 计数器时序图

如果用 $7 4 \mathbf { x } \mathbf { x } 1 6 1$ 的 $" 0 0 0 0 ^ { \prime \prime }$ 状态作为初始状态设计 N( $\mathrm { N } { < } 1 6 ,$ )进制计数器,进位信号还需另行设计,一般可用与门来实现,将最后一个状态的高电平输出端作为后一级与门的输入端,如用异步清零法设计 8 进制计数器的进位端逻辑为$Y = Q _ { 2 } Q _ { 1 } Q _ { 0 }$ 。这样增加了设计成本。

采用 74xx161 设计小于 16 的计数器时,应首先选用同步置数的方法设计,这种方法不仅使用器件少,而且逻辑电路稳定可靠,不会产生毛刺。若对计数器所用状态有特殊要求,则需据以上提供的设计方法灵活选择,综合考虑分析后选择最优方案。

8.4.2 第二类任意进制计数器(N 大于 M,且计数状态无特殊要求)的设计

以74xx161为基础,结合基本的门电路可以实现大于16的任意进制计数器,实现满足含进位的 N进制加法计数器的思路如下:

1)据N的值确定 74xx161的数量,M 片可实现的 $2 ^ { 4 \mathrm { M } }$ 进制内的计数器。

2)集成块使用同一时钟源,将低位集成块的进位 RCO与相邻高位片的使能控制端(ENT和ENP)相连,构成 $2 ^ { 4 \mathrm { M } }$ 进制计数器。

3)为了更方便的产生进位信号,我们所有 $7 4 \mathbf { x } \mathbf { x } 1 6 1$ 的状态为1 的状态作为N 进制计数器的最后一个状态。

4)计数的初始状态 $2 ^ { 4 \mathrm { M } } \mathrm { - N }$ 所对应的 8421 码,如实现20 进制计数器,初始状态为 $\mathrm { ( E C ) } _ { 1 6 }$ ,使用 Windows系统自带的程序员计算器,设定步骤为:

a) 计算 $2 ^ { 4 \mathrm { M } } - 2 0 { = } 2 5 6 { - } 2 0 { = } 2 3 6 .$ 。b) 将 236 转换为 8421 码为 1110 1100,即 $\mathrm { ( E C ) } _ { 1 6 }$ 作为 20 进制计数器的初始状态。

5)状态为 1111 1111 时产生进位信号。

6)清零法无法设置非 0000 的初始状态,所以需采用同步置数法实现。

【例】用 74xx161 实现 20 进制计数器。

第一步:设定计数状态。

为了用 74X161 的进位输出端 RCO 产生进位信号, $\mathcal { Q } _ { 7 } Q _ { 6 } Q _ { 5 } Q _ { 4 } Q _ { 3 } Q _ { 2 } Q _ { 1 } Q _ { 0 }$ 须含11111111 状态。

第二步:产生置数信号。

在 $\mathcal { Q } _ { 7 } Q _ { 6 } Q _ { 5 } Q _ { 4 } Q _ { 3 } Q _ { 2 } Q _ { 1 } Q _ { 0 }$ 为 1111 1111 状态时产生置数信号,由 74X161 的功能表可以,置数端(LOAD)为低电平时实现置数功能。可用进位端经非门后接入

置数端。

第三步:设定并行置数值。

如前所述,将 $\mathcal { Q } _ { 7 } Q _ { 6 } Q _ { 5 } Q _ { 4 } Q _ { 3 } Q _ { 2 } Q _ { 1 } Q _ { 0 }$ 的初始状态为 1110 1100,所以并行置数值$D _ { 7 } D _ { 6 } D _ { 5 } D _ { 4 } D _ { 3 } D _ { 2 } D _ { 1 } D _ { 0 } = Q _ { 7 } Q _ { 6 } Q _ { 5 } Q _ { 4 } Q _ { 3 } Q _ { 2 } Q _ { 1 } Q _ { 0 } = 1 1 1 0 1 1 0 0 \circ$ 。

第四步:仿真验证设计出的 20 进制计数器。

按如图 18所示电路在仿真软件中验证设计结果。


图18 计数器逻辑原理图

8.4.3 第三类任意进制计数器(N 大于 M,且计数状态有特殊要求)的设计

接下使用集成计数器实现 24 进制加法计数器,说明对计数状态有特定要求的计数器的设计方法。

第一步,虽然 24 可以分解为 4 乘以 6 或 3 乘以 8 等等,但如果设计数字钟,需要以 10 进制规则进位,而不是其它进制。所以选用具有同步置数功能的十进制加法计数器 74x160。

第二步,选用同步级联方式,时钟信号 CP 连接到低位计数器,也连接到高位计数器,并将低位计数器进位输出端连接到高位计数器的使能控制端。构成100 进制计数器。

第三步,通过置数法,确定置数逻辑 ${ \mathrm { L O A D } } { = } { \mathrm { Q } } { 5 }$ 与 Q1Q0 整体取反。由于74x160 具有同步置数功能,24 进制计数器,需要在状态 23 就出现置数信号,高位为 2,Q7654 为 0010,低位为 3,Q3Q2Q1Q0 为 0011。置数逻辑应出现在 Q5Q1Q0第一次全为高电平时,又由于置数控制端低电平有效,所以置数逻辑 LOAD=Q5与 Q1Q0 整体取反。由于使用了置数法,需设置所有数据输入端为 0。

第四步,设定进位信号,置数信号取反即可作为 24 进制的进位信号。
基于“计数器应用综合实例”口袋实验板设计原理图如图 19 所示。


图 19 24 进制计数器逻辑原理图

基于“计数器应用综合实例”口袋实验板连接图如图 20所示。


图20 24进制计数器连接图

8.5 基于 FPGA 集成计数器设计 N 进制计数器

在 EDA 软件 Quartus II 13.0 中将自行编写并通过逻辑功能验证的描述74xx160 的程序创建为图形符号,依据 7.4.3 设计的逻辑原理图,在 EDA软件中绘制出二十四进制计数器。

为了设计按键消抖电路,将所用 FPGA 开发板上的 20M 时钟信号经四块集成计数器 74xx161 分频,取约 $3 0 0 \mathrm { H z } { \sim } 5 \mathrm { K H z }$ 间的某路输出作为消抖电路的时钟信号。时钟按键消抖电路采用实验四“触发器的验证与应用”所设计的逻辑电路。该消抖电路由两个边沿 D 触发器和一个非门,一个与门组成。复位按键无需消抖。可用 FPGA 开发板上带驱动的两位七段数码管显示计数值。

基于 FPGA 集成计数器设计的 24 进制计数器带引脚锁定的逻辑原理图如图21 所示。


图 21 基于 EDA 技术的 24 进制计数器原理图

基于 FPGA集成计数器设计的24进制计数器实物图如图22所示。


图 22 基于 EDA 技术的 24 进制计数器实物图

若用动态扫描法驱动四位七段数码管显示计数值,则需使用到组合逻辑电路:数据分配器、数据分配器、显示译码驱动器。[指导学有余力的学生使用本方法]

基于 FPGA 集成计数器设计的 24 进制计数器动态扫描显示逻辑原理图如图23 所示。


图 23 基于 EDA 技术的 24 进制计数器原理图

基于 FPGA 集成计数器设计的 24 进制计数器实物图如图 24 所示。


图 24 基于 EDA 技术的 24 进制计数器实物图

8.6 实验拓展:数字钟的设计

进一步设计计数模块、脉冲产生模块、调时控制模块和显示模块可构成完整的数字钟逻辑电路。计数模块完成数字钟的计时逻辑;脉冲产生模块可使用晶振产生 $3 2 7 6 8 \mathrm { H z }$ 的频率,经分频得到 $4 0 9 6 \mathrm { H z }$ 的信号作为调“时”脉冲, $1 2 0 \mathrm { H z }$ 为

调“分”信号,2Hz 为调“分”信号,1Hz 为秒脉冲信号;调时控制模块据按键状态选择相应频率作为计数模块的时钟信号;显示模块显示计时结果。原理框图如图 25 所示。


图25数字钟逻辑电路参考原理框图

9.实验报告要求

实验报告需包含

1)实验预习内容介绍,回答实验报告册所提问题。2) $7 4 \mathrm { x } 1 6 0 / 1$ 逻辑功能表和排列引线图。3) $7 4 \mathrm { x } 1 6 0 / 1$ 逻辑功能验证原理图。4)N进制计数逻辑功能原理图。分 $\mathbf { N } { < } \mathbf { M }$ 和 $\mathbf { N } { > } \mathbf { M }$ 总结设计方法。设计 $\mathbf { N } { > } \mathbf { M }$ 计数时,应包含级联信号逻辑推理分析,分别以 24和60进制计数器说明实现原理。5)总结基于 EDA 技术实现 24(60)进制计数器的设计方法。6)实验现象和结果的分析与总结。7)工程文件归档。提交 Proteus/Multisim 虚拟仿真工程文件、提交 QuartusII 工程文件。

10.考核要求与办法

10.1 实验过程验收( $7 0 %$ )。按时完成

1)验收虚拟仿真验证结果(Proteus/Multisim);(10 分)
2)验收实物验证结果(实验台或实验板);(10 分)
3)考查实物实现 N(5~15)进制计数器设计。(20 分)

4)验收功能仿真时序图(Quartus II);(10 分)

5)验收基于 EDA 技术实现 24(64)进制计数器。(20 分)

10.2 实验报告。( $( 3 0 %$ )根据完成实验报告要求的程度综合评定。

10.3 期末实验抽考。(但有同学不一定会抽到该实验)

抽考试卷如图 26所示。实验抽考成绩计入实验课程总成绩。


图 26 集成计数器的验证与应用实验考核样卷

注:实验奖惩

1)各验收环节前 5名完成的同学给相应环节满分。2)主动完成实验拓展、创新,总成绩加 10 分,但本实验总分不超过 100分。3)各验收环节验收时没能正确回答教师所提问题,扣 2~5 分。4)没有在规定时间完成验收,本实验总成绩不超过 75 分。5)实验课上做与实验无关的事情(例如玩游戏),扣 10分。

11.项目特色及创新

本项目的特色在于:

1)实物验证与模型仿真互为印证。
2)口袋实验板拓宽了实验场地。

3)兼顾传统方法与现代方法。

4)本实验与之前的实验项目前后有呼应,有助于融会贯通课程的组合逻辑电路与时序逻辑电路。

参赛信息表

案例提供单位长江师范学院相关专业电子信息科学与技术
设计者姓名郝正同电子邮箱haozhengtong@qq.com
移动电话17323450360通讯地址(含邮编)重庆涪陵李渡长江师院聚仕兰庭
设计者姓名电子邮箱
移动电话通讯地址(含邮编)
设计者姓名电子邮箱
移动电话通讯地址(含邮编)
相关课程名称数字电子技术实验学生年级大学本科二年学时(课内+课外)2学时+2学时
支撑条件仪器设备万用表、焊接平台、信号源、PC
软件工具Protues8.8SP1; Multisim 14 Quartus II 13.0
主要器件(材料)面包板、74系列元件(20,160,161,48)、“计数器应用综合实例”口袋实验板、FPGA开发板(含下载器)

获奖信息

获奖等级 一等奖
年份 2021

作品信息

学时分类 1-6学时

作者信息

作者
郝正同
学校
长江师范学院

电工电子实验教学资源平台 苏ICP备09069895号-19