FPGA亚稳态的理解——小梅哥视频亚稳态现象原理及解决方案

      亚稳态原理:输入信号的上升或下降沿与时钟信号的上升沿重合时,寄存器的输出不稳定,有两种可能出现的状态:1.尖峰之后为低电平;2.尖峰之后为高电平。

对于第一个状态(上面两个波形),reg1输出在下个时钟上升沿来到前为低电平,时钟上升沿来到后,reg2输出为低电平。

对于第二个状态(下面两个波形),reg1输出在下个时钟上升沿来到前为高电平,因此时钟上升沿来到后,第二个寄存器输出高电平,但此时对reg1来说,不存在亚稳态,所以输出低电平,再经过一个时钟上升沿,reg2输出低电平。

    总的来说,经过两级寄存器,最终都会输出低电平,消除了亚稳态(reg2输出低电平)。

    寄存器输出再输入下一级时一般不会出现亚稳态。

代码:

Input key;

reg [2:0]  key_cync;//记得给初值,0;key_cync[2]就是消除亚稳态后的输入

always@(posedge clk)

key_sync <= {key_sync[2:1],key};

reg pedge_key;

reg nedge_key;

assign pedge_key = (key_sync[2:1] == 0’b10);

assign nedge_key = (key_sync[2:1] == 0’b01);

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值