计数器实验
实验原理
计数器是一种能够对输入时钟脉冲进行计数的时序逻辑电路。 Digital仿真软件提供了两种计数器组件,一个基本的二进制计数器,一个可预置数的双向计数器。 在本课程最后的硬布线控制实验中,将使用本实验学习的计数器组件作为程序计数器。
基本的二进制计数器
二进制计数器的输出是一组二进制数,表示当前的计数值。其计数范围取决于其位数,一个n位的二进制计数器可以计数从0到2n-1。
除了时钟输入端口,计数器组件还有两个非常重要的端口:
-
en(使能):用于控制计数器是否进行计数。当en为1时,计数器被使能,允许对输入的时钟脉冲进行计数。当en为0时,计数器被禁止,不会对输入的时钟脉冲进行计数,计数器的输出状态保持不变。
-
clr(清零):用于将计数器的输出清零,即所有输出位都被置为0。有同步清零和异步清零两种方式,Digital仿真软件的计数器组件只有同步清零方式。所谓同步清零,是指当clr变为1时,并不会立刻清零计数值,而是要等到下一个时钟触发沿到来时才会清零,即清零与时钟同步。
可预置数的双向计数器
可预置数的双向计数器在基本的二进制计数器基础上,可以设置初始计数值,并且能够控制进行加法计数或减法计数。
可预置数的计数器应具有数据输入端口和预置控制端口。
预置数据输入端口用于输入预置数,在Digital仿真软件中端口的名称为in
。
预置控制端口用于控制是否将预置数加载到计数器中,在Digital仿真软件中该端口的名称为ld
(load)。预置控制也有同步和异步两种方式,请读者自己通过实验了解Digital仿真软件的组件是哪种方式。
加法计数(Up Counting)是指在每个时钟脉冲到来时,计数器的值增加1,即递增计数值。
而减法计数(Down Counting)则是递减计数。
既能够进行加法计数也能够进行减法计数的计数器称为双向计数器。
在Digital仿真软件中控制计数的方向的端口名称为dir
(direction)。
在组件的属性窗口点击「帮助」按钮,可了解组件各端口的功能。
实验任务
-
设计计数器组件的验证电路。
计数器组件位于菜单项「组件 ➤ 存储器 ➤ 计数器」(Components ➤ Memory ➤ Counter)。 添加后将其「数据位数」属性设置为3。 并将其所有的端口连接到输入输出组件。注意计数器组件端口C应连接时钟输入组件,连接计数器out端口的输出组件的数据位数应与计数器的数据位数一致。
时钟输入组件的用法见第一章Digital仿真软件使用指南的时序电路仿真。 -
仿真
通过仿真熟悉计数器的功能、用法,除了计数功能还应留意
en
和clr
端口的作用。 记录仿真过程并保存波形。 -
实验结果分析
对仿真波形进行分析,从中体现对计数器各端口功能的理解。
-
【选做】通过仿真熟悉可预置数的双向计数器组件的功能和用法。
可预置数的双向计数器组件位于菜单项「组件 ➤ 存储器 ➤ 计数器(可预设)」(Components ➤ Memory ➤ Counter with preset)。
由于计数器组件的功能比较丰富,为便于结果分析,仿真时可分为几个部分,分别保存仿真波形。