一、
实验目的:
理解规约运算符(|和&)、位拼接运算符({})。 典型时序电路逻辑:计数器。关系运算符(>)位运算符(~)、关系运算符(<)、算术运算符(+)、always 引导时序电路描述方法、异步复位、parameter参数、localparam 局部参数(不可通过参数传递由外部修改)、模块例化及参数传递、异步复位、timescale、仿真延时、Verilog 系统数学 函数($clog2)。
二、实验内容:
建立一个按键消抖及验证电路,对一位按键输入信号进行消抖操作,并分别对经过消抖的信号和原始按键信号进行计数,对比验证按键消抖效果。
按键消抖电路为简单时序电路,包含顶层模块、按键消抖模块和计数器模块,以及 2.3 节中介绍的分频器模块和移位寄存器模块。
按键消抖模块例化一个分频器模块和一个移位寄存器实现消抖。 其原理是以 10ms 周期对原始按键信号进行采样,若连续 3 次(按键抖动时间通常小于 10ms)采样值相同,则相应改变输出值。
计数器模块在每个时钟上升沿对输入脉冲信号进行计数,并输出计数值和计数溢出信号。计数位宽、最大计数值(模值)可通过参数配置。
按键消抖验证电路顶层模块分别对原始按键输入信号和经过消抖的按键信号进行计数,并分别用 4位 LED 显示计数结果。对比按一次按键对应计数结果的变化,可验证按键消抖效果。