这一段程序的仿真测试结果是啥样的module key_debounce input i_clk input i_rst_n input 91 i_key 按下为0松开为1 output reg 91 o_key_val 键值; +++++++++++++++++++++++++++
该程序实现了按键去抖动功能。具体实现步骤如下:
-
采样:将输入的按键状态i_key采集至key_samp1中。
-
锁存:将key_samp1锁存至key_samp1_locked中。
-
判断按键变化:当key_samp1由1变为0时,key_changed1由0变为1,只维持一个时钟周期。
-
计数:一旦有按键按下,cnt立即被清零;当key_changed1为0且cnt计数值达到20ms(50M时钟下),即认为按键不抖动,开始采集按键状态。
-
采样:将i_key采集至key_samp2中。
-
锁存:将key_samp2锁存至key_samp2_locked中。
-
判断按键变化:当key_samp2由1变为0时,key_changed2由0变为1,只维持一个时钟周期。
-
输出键值:每次按键稳定后,输出键值。按下为0,松开为1。
因此,仿真测试结果应该是按下按键后,经过一段时间的去抖动处理,输出相应的键值。
原文地址: https://www.cveoy.top/t/topic/fD08 著作权归作者所有。请勿转载和采集!