跨时钟域(CDC,clock domain crossing)信号处理

参考视频:

数字IC,FPGA秋招【单bit信号的CDC跨时钟域处理手撕代码合集】_哔哩哔哩_bilibili

一、亚稳态

原因是:建立时间和保持时间没有保持住。然后在下图的红框里面,产生亚稳态。因为电路反馈机制,最后大概率会恢复到一个正确的值(低电平0或者高电平1)。

二、单bit跨时钟域

慢时钟域到快时钟域

打两拍就行。

处理时,脉冲宽度会增加

快时钟域到慢时钟域

可能会发生采样不到的情况。解决方案:(1)脉冲展宽;为什么会产生毛刺呢??(因为assign fast pluse extentd =pluse r,这一段对时序有所考验)

module fast2slow_cdc 
(
    input clk_f         ,
    input clk_s         ,
    input pluse_f       ,

    output pluse_s    

);
// 用循环移位寄存器实现
localparam PIPE_NUM = 2; // 表示要打2拍,因为pluse_r作为输入也要占一位的空间
reg [PIPE_NUM : 0] pluse_r;
always @(posedge clk_f) begin
    pluse_r <= {pluse_r[PIPE_NUM-1 : 0],pluse_s};
end


// 得到快时钟域的展宽
wire fast_pluse_extentd;
assign fast_pluse_extentd = |pluse_r;// 按位或,输入的几位,有一个是1,那么就全是1

reg s_pluse_d1;
reg s_pluse_d2;

// 同步到慢时钟域,用慢时钟域的时钟
always @(posedge clk_s) begin
    s_pluse_d1 <= fast_pluse_extentd    ;
    s_pluse_d2 <= s_pluse_d1            ;       
end

assign pluse_s = s_pluse_d2;

endmodule

(2)脉冲电平检测+双触发器同步+边沿检测

第一步,先做一个边缘检测,检测到输入信号的上升沿,然后做一次电平翻转。这样就能做到没有毛刺的脉冲扩展

第二步,打三拍

第三步,用打最后两 拍的数据,做异或处理

注意

亚稳态无法消除,只能被减弱。

内容概要:《机器人综合基础实践教程》(入门篇、提高篇)涵盖了机器人基础构建、编程控制、传感器应用等多个方面。教程从机械零件简介入手,逐步介绍主控板和编程环境的配置,随后通过一系列实验引导读者动手实践,包括驱动轮模块、双轮万向车、红外启动小车、带传动模块、履带机器人、红绿灯等实验。这些实验不仅帮助读者理解基本原理,还涉及高级应用如蓝牙电子温度计、语音识别、双轮小车平衡、蓝牙排爆机器人和WiFi视频排爆等。教程旨在培养读者的空间构型能力、编程技巧和综合调试能力,为机器人技术的实际应用打下坚实基础。 适用人群:具备一定编程基础和技术兴趣的学生、教师及爱好者,特别是对机器人技术感兴趣的初学者和中级学习者。 使用场景及目标:①帮助学生理解机器人基本原理,掌握机械零件组装和编程控制;②通过实际操作,提升编程和调试技能;③为机器人竞赛、项目开发和创新实践提供理论和实践指导;④培养创新思维和解决实际问题的能力。 其他说明:教程不仅提供详细的实验步骤和代码示例,还配有丰富的参考资料和光盘课件,确保学习者能够全面理解和掌握知识点。此外,教程强调实践操作的重要性,鼓励学习者通过动手实验加深理解,培养独立思考和解决问题的能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值