计数器实验

实验目的

  1. 掌握计数器的功能特性。

  2. 学会使用Digital仿真软件仿真时序电路。

实验原理

计数器是一种能够对输入时钟脉冲进行计数的时序逻辑电路。 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)。

在组件的属性窗口点击「帮助」按钮,可了解组件各端口的功能。

实验任务

  1. 设计计数器组件的验证电路。

    计数器组件位于菜单项「组件 ➤ 存储器 ➤ 计数器」(Components ➤ Memory ➤ Counter)。 添加后将其「数据位数」属性设置为3。 并将其所有的端口连接到输入输出组件。注意计数器组件端口C应连接时钟输入组件,连接计数器out端口的输出组件的数据位数应与计数器的数据位数一致。

    时钟输入组件的用法见第一章Digital仿真软件使用指南的时序电路仿真
  2. 仿真

    通过仿真熟悉计数器的功能、用法,除了计数功能还应留意enclr端口的作用。 记录仿真过程并保存波形。

  3. 实验结果分析

    对仿真波形进行分析,从中体现对计数器各端口功能的理解。

  4. 【选做】通过仿真熟悉可预置数的双向计数器组件的功能和用法。

    可预置数的双向计数器组件位于菜单项「组件 ➤ 存储器 ➤ 计数器(可预设)」(Components ➤ Memory ➤ Counter with preset)。

    由于计数器组件的功能比较丰富,为便于结果分析,仿真时可分为几个部分,分别保存仿真波形。