按一次按键,输出一个脉冲,脉冲宽度由计数器决定。

按一次按键,输出一个脉冲,脉冲宽度由计数器决定。

背景:通过脉冲来控制镜头光圈电机的打开和闭合,每来一个脉冲镜头光圈打开相应的角度,在调试阶段,先用现有的FPGA开发板来进行手动的脉冲产生,但是由于直接按键的时间不好控制,所以对按键的脉冲进行整形,变成为一次按键,产生一个固定宽度的脉冲,该脉冲的宽度由程序中的计数器决定。

DE2-70开发板,QuartusII 11.0,modelsim 6.6c开发环境。

先上modelsim仿真波形图:


整体结构图:
各部分程序:

in模块

module in(iKEY,rst,clr,out);
……
always@(posedge iKEY or posedge rst or posedge clr)
begin
    if(clr)
        out<=0;
    else if(rst)
        out<=0;
    else if(iKEY)
        out<=1;
end
endmodule

int_dly功能块

module int_dly(clk,clr,en,out,stop);

……

always@(posedge clk)
begin
    if(clr||(!en))
    begin
        out<=0;
        stop<=0;
        cnt<=24'h00_0000;
    end
    if(en)
    begin
        cnt<=cnt+24'h00_0001;
        out<=1;
    end

    if(cnt>=24'h00_040)
    begin
        out<=0;
        stop<=1;
        cnt<=24'h00_0000;
    end
end
endmodule

 

转载于:https://www.cnblogs.com/derhuisir/archive/2012/12/28/2836989.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值