基于vhdl的8位十进制频率计设计内容摘要:

CLR_CNT 信号用于在每次测量开始时,对计数器进行复位,以清除上次测量的结果,该复位信号高电平有效,持续半个时钟周期的时间。 EN 为计数允许信号,在 EN 信号的上升沿时刻计数模块开始对输入信号的频率 进行测量,测量时间恰为一个时钟周期 (正好为单位时间 1s),在此时间里被测信号的脉冲数进行计数,即为信号的频率。 然后将值锁存,并送到数码管显示出来。 设置锁存器的好处是使显示的数据稳定,不会由于周期性的清零信号而不断闪烁。 在每一次测量开始时,都必须重新对计数器清 0。 测频控制产生器如 下 图 所示, 图中 1HZDE CLK1 接 CNT,EN 为计数允许信号,接计数器 CNT10 的 ENA(此图未画出 ), CLR_CNT 信号用于在每次测量开始时,对计数器进行复位,接计数器 CNT10 的 CLR, LOAD 接锁存器的 LOAD(此图未画出 )。 ② 锁存器模块 测量模块测量完成后,在 load 信号的上升沿时刻将测量值锁存到寄存器中,然后输出到显示模块。 锁存器是起数据保持的作用,它将会把数据保存到下次触发或复位。 主要是主从触发器组成的。 用于存储数据来进行交换,使数据稳定下来保持一段时间不变化,直到新的数据将其替换。 锁存器 REGESTER 的封装如下图所示,图中 load 接控制测频产生器 FTRL的 load,而 DIN[31..0]接计数器 CNT10 的 CQ[3..0], DOUT[31..0]接显示器 seltime模块 的 DIN[31..0]端。 ③ 扫描模块 首先扫描模块接一个 clk 时钟,频率为 32768HZ, DIN[31…0] 接 REGESTER的 DOUT[31…0] , SEL[2…0] 锁存到 74LS138 译码器的三个引脚, 以便于让数码管显示, daout[3…0] 接 deled 的 s[3…0] 端。 sel 为一个 7 进制计数器,当 sel 为 000 时, daout 对应 着输入 din 的 0 到 3位,当 sel 为 001 时, daout 对应着输入 din 的 4 到 7 位,以此类推,当 sel 为 111时, daout 对应 din 的 28 到 31 位。 5 seltime 模块如下图所示 sel 接线如右图所示 ④ 显示模块 LED 有段码和位码之分,所谓段码就是让 LED 显示出八位数据,一般情况下要通过一个译码电路,将输入的 4 位 2 进制数转换为与 LED 显示对应的 8 位段码。 位码也就是 LED 的显示使能端,对于共阴级的 LED 而言,低电平使能。 在本设计中 位码由扫描模块的 sel 接至 74ls138 进行译码。 位码由显示模块输出。 例如:要让 8 个 LED 同时工作显示数据,就是要不停的循环扫描每一个LED,并在使能每一个 LED 的同时,输入所需显示的数据对应的 8 位段码。 虽然 8 个 LED 是依次显示,但是受视觉分辨率的 影响,看到的现象是 8 个 LED 同时工作。 Deled 模块 如下 图 所示。 s[3… 0]经过译码对应着一个 32 位的 dout,而 A 到G 分别对应 dout(0)至 dout(7)。 ⑤ 十进制 计数 器 模块 计数器模块是由 8 个带有异步清零端,进位信号输出的模为 10 的计数模块级连而成。 它 有一时钟使能输入端 ENA,用于锁定计数器。 当高电平计数允许,低电 平时计数禁止。 计数器模块用于对输入信号的脉冲进行计数,该模块 有计数允许、异步清零等端口,以便于控制模块对其进行控制。 CNT10 如下图所示 ,其中 CLR 为复位接 FCTRL 的 CLR_CNT 端, ENA 接FCTRL 的 EN 端, CQ[3..0]接锁存器的 DOUT[31..0]端。 6 综上,总电路设计图如下所示: 7 仿真 控制模块仿真 由图可以看出 CLK 为一个 1HZ 的时钟信号, EN 为 CLK 的二分频, LOAD为 EN 的非, CLR_CNT 在 CLK 和 EN 都为低电平时,为高电平。 寄存器模块仿真 由 上 图 可以看出,当 RST 为高电平时, 32 位输出 DOUT 立即全部置零,当RST 为低电平时,在 LOAD 信号有上升沿时, DIN 将值赋给 DOUT。 扫描模块仿真 由上。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。