关于数字IC设计中分频后的慢速时钟和以快时钟触发的信号的关系处理

转载请标明出处 https://blog.csdn.net/weixin_43685170 ,作者:HyunYew.

在一些双边沿接收发送数据的处理中,会以半频时钟为握手时钟,而内部采用快时钟(半频时钟的一倍)来处理信号。那么,握手时钟是半频的情况下,握手数据是经过快时钟处理的,这样会有错误的情况出现。如下图,当信号a的触发条件为快时钟的上升沿,而片外握手设备也只认握手时钟的上升沿时,数据就会出现错误。
在这里插入图片描述
快时钟的上升沿既可以对应慢时钟的上升沿也可以对应慢时钟的下降沿,则a的变化既可能发生在慢时钟的上升沿也可能发生在下降沿,若a是一个片外握手设备的kick start信号,而此kick start信号只能在上升沿变化(当定义了一个完整的时钟周期为“高半周期+低半周期”)。当 case2 时 ,片外握手设备可以 正确 地识别a信号。当 case1 时,片外握手信号在a当前变化时刻 无法 识别a信号的变化。

因此,要让信号a也能识别慢时钟的上升沿

reg a_dly;
always@(posedge clk_fast or negedge rst_)
begin
if(!rst_)
begin
        a_dly <= 1'b0;
end
else begin
        a_dly <= a;
end
end

wire a_edge = a ^ a_dly;

wire a_out = a_edge & !clk_slow ? a_dly:
             a;

这样,当a在慢时钟下降沿变化时,会被推到下一个上升沿变化。(注意如果有其他行为在信号a起来时变化,则也要进行推迟)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值