首页 > 其他分享 > 亚稳态的概念与消除方法

 亚稳态的概念与消除方法

时间:2024-03-27 11:15:03浏览次数:14  
标签:异步 触发器 Rx 概念 亚稳态 信号 Rs232 消除

1、亚稳态的概念

​ 异步信号:该信号的产生与时钟上升沿无关(例如按键按下)。

​ 同步信号:每次时钟上升沿到来都会产生该信号。

​ 异步信号在输入系统的时候存在两种情况,如图 4 所示:

image-20240326105348608

图4——异步信号在输入系统时存在的两种情况

​ 上图中,系统时钟上升沿采集到异步信号 2 ,此时异步信号 2 处于不定态,对应该信号的D触发器产生了亚稳态的情况,D触发器的输出q产生震荡,震荡一段时间后变为稳定,可能为 1 ,也可能为 0 ,如图 5 所示。

image-20240326111115208

图5——D触发器处于亚稳态时的输出结果

2、亚稳态的消除方法(同步处理、数据寄存、边沿检测)

(1)同步处理

​ 如果此时,该D触发器又加了一级D1,如图 6 所示,若第一级D触发器到第二个时钟上升沿到来时还没稳定,则第二级D触发器也会处于亚稳态,如图 7 所示,

image-20240326111449617

图6——两级D触发器

image-20240326112405439

图7——两级D触发器处于亚稳态时的输出结果

​ 虽然两级D触发器无法保证最终的输出结果是否正确,但至少不会让信号处于不定态,能保证第二级D触发器输出结果是稳定的,所以在处理异步信号时,经常对输入信号加入两级D触发器进行同步

​ 对于异步信号Rs232_Rx而言,加入两个同步寄存器 s0_Rs232_Rx,s1_Rs232_Rx,进行亚稳态的消除,如下列代码所示:

//对异步信号进行同步处理(加入一个两级D触发器,对异步信号Rs232_Rx消除其亚稳态)
reg s0_Rs232_Rx,s1_Rs232_Rx;    //两个同步寄存器(消除亚稳态)
reg tmp0_Rs232_Rx,tmp1_Rs232_Rx;    //两个暂存寄存器(数据寄存)

//对异步信号进行同步处理(加入一个两级D触发器,对异步信号Rs232_Rx消除其亚稳态)
always@(posedge Clk or negedge Rst_n)
    if(!Rst_n)begin
        s0_Rs232_Rx <= 1'b0;
        s1_Rs232_Rx <= 1'b0;
    end
else begin	//两级D触发器
    s0_Rs232_Rx <= Rs232_Rx;
    s1_Rs232_Rx <= s0_Rs232_Rx;
end

(2)数据寄存

​ 同时,使用两级D触发器存储两个相邻时钟上升沿时Rs232_Rx信号(已同步到系统时钟域中)的电平状态,如下列代码所示:

//数据寄存(使用D触发器存储两个相邻时钟上升沿时外部输入信号(已同步到系统时钟域中)的电平状态)
always@(posedge Clk or negedge Rst_n)
    if(!Rst_n)begin
        tmp0_Rs232_Rx <= 1'b0;
        tmp1_Rs232_Rx <= 1'b0;
    end
else begin  //两级D触发器
    tmp0_Rs232_Rx <= s1_Rs232_Rx;
    tmp1_Rs232_Rx <= tmp0_Rs232_Rx;
end

(3)边沿检测

​ 通过检测同步后的Rs232_Rx信号是否产生了下降沿,来检测起始位。

​ 注意 temp0_Rs232_Rx 信号、temp1_Rs232_Rx 信号的先后顺序:temp0_Rs232_Rx后、temp1_Rs232_Rx先

//边沿检测(通过检测检测同步后的Rs232_Rx信号是否产生了下降沿,来检测起始位)
//temp0_Rs232_Rx后、temp1_Rs232_Rx先
wire neg;
assign neg = !temp0_Rs232_Rx & temp1_Rs232_Rx;

标签:异步,触发器,Rx,概念,亚稳态,信号,Rs232,消除
From: https://www.cnblogs.com/little55/p/18098481

相关文章

  • Spring Cloud的原理涉及多个组件和概念
    核心部分的详细解释服务注册与发现:这是SpringCloud的核心功能之一。通过使用Eureka、Consul或Zookeeper等服务注册中心,服务提供者将自己的信息注册到注册中心,服务消费者通过注册中心查询可用的服务列表。服务消费者在需要调用其他服务时,通过注册中心找到相应的服务地址并进行......
  • Dapr - 基本概念 【深入官网】
    Dapr使用sidecar架构,与应用程序一起作为单独的流程运行,包括服务调用、网络安全和分布式跟踪等功能1共同点:基于mTLS加密的服务到服务安全通信服务到服务的度量指标收集服务到服务分布式跟踪故障重试恢复能力2不同点:Dapr以开发人员为中心,提供了通过名称进行服务发......
  • 信号的概念和机制
    1.信号的概念和机制理解信号可以参考生活中,烽火、狼烟等信号的特点:1.简单;2.不能携带大量信息;3.满足某个特设条件才发送1.1.信号的机制信号时软件层面的“中断”,信号VS中断VS异常,三个概念可以一起学习每个进程收到的所有信号,都是由内核负责发送、内核处理的简单地说,unix的......
  • 深度学习批次(batch)、迭代(iteration)、周期(epoch)、前向传播(forward propagation)
    虽然现在应该是已经熟练掌握这些基础概念的时候,但是我是鱼的记忆,上一秒的事情,下一秒就忘了,除非是重要的人的重要的事情,呜呜呜呜,我这个破脑子.还是写一下吧,直接GPT出来的(人类之光,欢呼~).以前写过一次,贴一下链接:深度学习模型训练的过程理解(训练集、验证集、测试集、batch、itera......
  • linux 线程的一些简答概念
    基本概念1.临界资源:多线程执行流共享的资源2.临界区:访问临界资源的代码3.原子性:只有完成和未完成两种状态。4.互斥:同一时间只能允许一个线程访问临界资源,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的。可以加锁实现。加锁可以保证单个线程对临界......
  • 进程的概念介绍
    一、进程    进程是计算机中运行的程序的实例。每个进程都有自己的内存空间、代码、数据和系统资源。进程可以独立运行,相互之间不会影响。进程的基本概念包括:1.程序:进程是程序的一次执行,程序是存储在磁盘上的静态文件,而进程是程序在内存中的动态执行。2.状态:进程......
  • FPGA亚稳态学习总结
     首先是组合逻辑电路考虑的是竞争冒险,冒险会产生毛刺。重点研究如何去毛刺时序逻辑电路考虑的是时序不满足会产生的亚稳态问题:如何考量时序满不满足呢?根据不同的场景又有不同的说法。时序分析的两组基本概念建立时间与保持时间1.在同步系统和异步系统(跨时钟域传输)中有两个......
  • JAVA面向对象基本概念、类和对象
    基本概念一、什么是面向对象面向对象是一种编程思想面向对象是一种思考问题的思维方式二、建立面向对象的思维方式先整体,在局部;先抽象,在具体;能做什么,再做什么类和对象类是分类类别,通过分类可以区分不同事物种类类是具有一组相同特征(属性)与行为(方法)的事物集合类和对象的......
  • 【C语言学习日志】一点C语言概念
    学习目标:通读C语言的概念笔记内容:了解C语言C程序由函数所组成。所有C语言有且只有一个main()函数,并最先开始执行。 当main()函数结束时,程序也一同结束。 C语言功能1.数据表达数据类型,对具有共同特征的数据集合的总称。例如整型、实型(浮点型)、字符型【基本数据类型】。具......
  • 小迪学习笔记(内网安全)(常见概念和信息收集)
    小迪学习笔记(内网安全)(一)内网分布图内网基本概念工作组和域环境的优缺点内网常用命令域的分类单域父域和子域域数和域森林Linux域渗透问题内网安全流程小迪演示环境信息收集mimikatzLazagne(all)凭据信息政集操作演示探针主机域控架构服务操作演示总结内网分布图D......