美文网首页嵌牛IT观察
单脉冲发生电路

单脉冲发生电路

作者: 标准与或式 | 来源:发表于2017-11-29 11:21 被阅读0次

    姓名:刘强
    【嵌牛导读】
    在设计电路时我们可能遇到需要根据用户输入产生一个时钟同步的单脉冲信号的需求,本文给出了一种实现方案。
    【嵌牛鼻子】
    Verilog 单脉冲 状态机
    【嵌牛提问】
    如何用Verilog硬件描述语言编写一个单脉冲发生器?
    【嵌牛正文】

    需求分析

    用户按键,每次按的时间有长有短,有些时候会有这样一个需求:
    当用户按下按键时,会产生一个沿,通过这个沿产生一个脉冲信号,脉冲宽度为一个(或N个)时钟周期。

    实现方法

    用户按键产生一个复位信号reset;
    一个Mealy型的状态机在时钟驱动下发生状态转移,由复位信号选择将要进入的状态

    状态图
    模块引脚
    Verilog代码
    //单脉冲产生电路
    module single_impulse(clk,key_signal,out);
       input clk;
       input key_signal;
       output out;
       reg    out;
       
       reg    reset;
       reg [3:0] state;
    
       initial
         state <= 1;
       
    
       always @(posedge clk or posedge key_signal)
         if(key_signal)
           reset <= 1;
         else
           reset <= 0;
       always @(posedge clk)
         case(state)
           4'd1:
         if(reset)
           begin
              out <= 1;
              state <= 2;
           end
           4'd2:
         if(reset)
           begin
              out <= 0;
              state <= 2;
           end
         else
           begin
              out <= 0;
              state <= 1;
           end
         endcase
    endmodule
    
    

    仿真结果

    功能仿真


    功能仿真

    时序仿真


    时序仿真

    相关文章

      网友评论

        本文标题:单脉冲发生电路

        本文链接:https://www.haomeiwen.com/subject/pzdzmxtx.html