异步信号同步和边沿检测

异步信号的同步化


异步信号同步化的目的就是在于消除可能存在的亚稳态

至于什么是异步信号同步化,请自行google…这里直接通过两级寄存器对异步信号处理实现同步化

    reg rx_1,rx_2;
    always@(posedge clk or negedge rst_n)
    if(!rst_n)begin
        rx_1 <= 1'b0;
        rx_2 <= 1'b0;
    end
    else begin
        rx_1 <= rx;//data_in
        rx_2 <= rx_1;
    end

边沿检测

如何对边沿进行检测呢,同样也是使用两级寄存器来实现,通过两级寄存器的值检测信号的变化,产生标志脉冲
这里写图片描述

    reg s_0_Temp,s_1_Temp;
    //reg s_2_Temp;
    always@(posedge clk or negedge rst_n)
    if(!rst_n)begin
        s_0_Temp <= 1'b0;
        s_1_Temp <= 1'b0;
        //s_2_Temp <= 1'b0;
    end
    else begin
        s_0_Temp <= signal_in;//第一拍
        s_1_Temp <= s_0_Temp;//第二拍
        //s_2_Temp <= s_1_Temp;//第三拍
    end
    //同时钟域打拍
    wire pedge,nedge;
    assign pedge = !s_1_Temp && s_0_Temp;
    assign nedge = s_1_Temp && !s_0_Temp;

/*
//跨时钟域打拍
    //wire pedge,nedge;
    //assign pedge = !s_2_Temp && s_1_Temp;
    //assign nedge = s_2_Temp && !s_1_Temp;
*/

这里写图片描述

这里写图片描述

转载OpenHW开源社区FPGA之亚稳态的分析帖子

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值