集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 1041|回复: 1

请问大牛 这个消抖 中的sample_pulse 怎么理解啊

[复制链接]
ccs 发表于 2012-3-1 09:05:28 | 显示全部楼层 |阅读模式
module tt(reset,clk,key,led);
input  reset;
input  clk;
input  key;
output led;
reg [17:0]  cnt;
always @ ( posedge clk )
        if ( !reset )
                cnt <= 18'd0;
        else
                cnt <= cnt + 1'b1;

wire   sample_pulse ;
assign sample_pulse =( cnt == 18'h3ffff);

reg   low_sw;
always @( posedge clk )
        if ( !reset )
                low_sw <= 1'b1;
        else
                if (sample_pulse )
                low_sw <= key;
//  在整个 low_sw(active_low)有效过程中取一个控制量作为 led 的控制信号
//本实例中使用 low_sw 的下降沿

reg     low_sw_r; //将 low_sw 信号锁存一个时钟周期,延时不是真的“锁存”
always @ ( posedge clk )
        low_sw_r <= low_sw;
       
wire led_ctrl;
assign led_ctrl= low_sw_r & ( !low_sw);

reg led;
always @ ( posedge clk or negedge reset)
        if ( !reset)
                led<= 1'b0;
        else
                if ( led_ctrl )
                led <= ~led;
endmodule

请问大牛 这个消抖 中的sample_pulse  怎么理解啊
yuxuejun1123 发表于 2012-3-23 14:02:01 | 显示全部楼层
这种做法类似于中断检测中“查询中断”的做法,也就是定时(3ffff)去查询一下引脚的电平,也可以理解为去采样一下引脚的电平。
按键可能发生在0-3ffff之间的任何一个时刻,但是sample_pulse只是在某一个时刻去采样一次而已,持续时间为1个时钟周期,然后把key值传递进来,如果有下降沿,那么led灯就翻转一次状态
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|集成电路技术分享 ( 京ICP备20003123号-1 )

GMT+8, 2024-6-18 19:35 , Processed in 0.065486 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表