verilog中邊沿檢測


在編寫代碼時候經常會使用到上升沿檢測或則下降沿檢測,這個時候使用寄存器的方式來進行檢測:通過檢測當前信號與上一個時刻的信號對比便可以知道是上升沿還是下降沿。

上升沿檢測的寄存器輸出波形:

下降沿檢測的寄存器輸出波形:

代碼實現:

module top
    (
        input                clk_50MHZ            ,//系統時鍾50M
        input             rst_n                ,//系統復位
        input                key_in                ,//按鍵
        output  key_posedge,
     output key_negedge
); reg key_temp0 ;
//用於按鍵上一次狀態存儲 reg key_temp1 ;//用於按鍵當前狀態存儲 //=============================================================================== // //邊沿檢測,采用寄存器方式。 // //=============================================================================== always@(posedge clk_50MHZ or negedge rst_n) begin if(!rst_n) begin key_temp0<=1'b0; key_temp1<=1'b0; end else begin key_temp1<=key_in; key_temp0<=key_temp1; end end assign key_posedge=(!key_temp0)&key_temp1; assign key_negedge=(!key_temp1)&key_temp0; endmodule

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM