异步复位电路亚稳态
- 格式:docx
- 大小:3.46 KB
- 文档页数:2
硬件工程师笔试题一、电路分析:1、竞争与冒险在组合逻辑中,在输入端的不同通道数字信号中经过了不同的延时,导致到达该门的时间不一致叫竞争。
因此在输出端可能产生短时脉冲〔尖峰脉冲〕的现象叫冒险。
常用的消除竞争冒险的方法有:输入端加滤波电容、选通脉冲、修改逻辑设计等。
2、同步与异步同步逻辑是时钟之间有固定的因果关系。
异步逻辑是各时钟之间没有固定的因果关系。
同步电路:存储电路中所有触发器的时钟输入端都接同一个时钟脉冲源,因此所有触发器的状态的变化都与所加的时钟脉冲信号同步。
异步电路:电路没有统一的时钟,有些触发器的时钟输入端与时钟脉冲源相连,只有这些触发器的状态变化与时钟脉冲同步,而其它的触发器的状态变化不与时钟脉冲同步。
异步电路不使用时钟脉冲做同步,其子系统是使用特殊的“开场〞和“完成〞信号使之同步同步就是双方有一个共同的时钟,当发送时,接收方同时准备接收。
异步双方不需要共同的时钟,也就是接收方不知道发送方什么时候发送,所以在发送的信息中就要有提示接收方开场接收的信息,如开场位,完毕时有停顿位3、仿真软件:Proteus4、Setup 和Hold timeSetup/hold time 是测试芯片对输入信号和时钟信号之间的时间要求。
建立时间是指触发器的时钟信号上升沿到来以前,数据稳定不变的时间。
输入信号应提早时钟上升沿〔如上升沿有效〕T时间到达芯片,这个T就是建立时间-Setup time.如不满足setup time,这个数据就不能被这一时钟打入触发器,只有在下一个时钟上升沿,数据才能被打入触发器。
保持时间是指触发器的时钟信号上升沿到来以后,数据稳定不变的时间。
假如hold time不够,数据同样不能被打入触发器。
5、IC设计中同步复位与异步复位的区别同步复位在时钟沿采集复位信号,完成复位动作。
异步复位不管时钟,只要复位信号满足条件,就完成复位动作。
异步复位对复位信号要求比拟高,不能有毛刺,假如其与时钟关系不确定,也可能出现亚稳态。
同步复位,异步复位以及异步复位同步释放(转载)1.同步复位(Synchronous Reset)来看一个简单的同步复位的D触发器,Verilog代码如下:module d_ff (clk,rst_n,datain,dataout);input clk;input rst_n;input datain;ouput dataout;reg dataout;always @ (posedge clk)beginif (!rst_n)dataout <= 1'b0;elsedataout <= datain;endendmodule综合后的RTL图表如下:Altera的MAXII系列的CPLD中,register没有同步复位资源,所以同步复位信号需要通过额外的逻辑电路实现,上面的例子,QuartusII软件自带的综合工具使用选择器实现了同步功能,但是这不是确定的,有的综合工具综合成与门,如下图:同步复位的优点:1). 抗干扰性高,可以剔除复位信号中周期短于时钟周期的毛刺;2). 有利于静态时序分析工具的分析;3). 有利于基于周期的仿真工具的仿真。
同步复位缺点:1). 占用更多的逻辑资源;2). 对复位信号的脉冲宽度有要求,必须大于指定的时钟周期,由于线路上的延迟,可能需要多个时钟周期的复位脉冲宽度,且很难保证复位信号到达各个寄存器的时序;3). 同步复位依赖于时钟,如果电路中的时钟信号出现问题,无法完成复位。
2. 异步复位(Asynchronous Reset)来看一个简单的异步复位的D触发器,Verilog代码如下:module prac (clk,rst_n,datain,dataout);input clk;input rst_n;input datain;output dataout;reg dataout;always @ (posedge clk or negedge rst_n)beginif (!rst_n)dataout <= 1'b0;elsedataout <= datain;endendmodule综合后的RTL图表如下:异步复位的优点:1). 无需额外的逻辑资源,实现简单,而且CPLD有针对复位信号的全局不限资源,可以保证复位管脚到各个寄存器的clock skew最小(注意不是到各个寄存器的延迟最小);2). 复位信号不依赖于时钟。
【转】亚稳态详解1.什么是亚稳态简单来说,就是信号传输没有满⾜触发器的建⽴保持时间,此时触发器输出端Q在有效时钟沿之后⽐较长的⼀段时间处于不确定的状态,在这段时间⾥Q端⽑刺、振荡、固定的某⼀电压值,⽽不是等于数据输⼊端D的值。
之后Q端将稳定到0或1上,但是究竟是0还是1,这是随机的,与输⼊没有必然的关系。
2.亚稳态的危害从其定义中可以看到,由于输出在稳定下来之前可能是⽑刺、振荡、固定的某⼀电压值,在信号传输中产⽣亚稳态就会导致与其相连的其他数字部件将做出不同的判断,有的判断到“1”有的判断到“0”,有的判断为0~1之间的中间值,还会使下⼀级产⽣亚稳态(即导致亚稳态的传播)。
在复位电路中产⽣亚稳态可能会导致复位失败。
3.亚稳态的发⽣场合1)异步信号检测2)跨时钟域信号传输3)复位电路4)其他不满⾜建⽴保持时间的电路4.具体分析为什么会产⽣亚稳态产⽣亚稳态的原因就是违反了建⽴保持时间。
最典型的就是跨时钟域和异步传输。
在跨时钟域信号传输时,由于源寄存器时钟和⽬的寄存器时钟相移未知,所以源寄存器数据发出数据,数据可能在任何时间到达异步时钟域的⽬的寄存器,所以⽆法保证满⾜⽬的寄存器Tsu和Th的要求。
在异步信号采集中,由于异步信号可以在任意时间点到达⽬的寄存器,所以也⽆法保证满⾜⽬的寄存器Tsu和Th的要求。
当数据在⽬的寄存器Tsu-Th时间窗⼝发⽣变化,也即当数据的建⽴时间或者保持时间不满⾜时,就可能发⽣亚稳态现象。
图1. 亚稳态产⽣⽰意图由图可知,当产⽣亚稳态后Tco时间后会有Tmet(决断时间)的振荡时间段,当振荡结束回到稳定状态时为“0”或者“1”,这个是随机的。
因此,会对后续电路判断造成影响。
5.亚稳态产⽣概率由上⾯分析得知,系统亚稳态发⽣的都是由于clk的Tsu和Th不满⾜,⼜或者是复位信号的移除和恢复时间不满⾜。
常⽤FPGA器件的Tsu+Th约等于1ns,复位移除和恢复时间相加约等于1ns。
在一个FPGA项目设计之初,全局网络的建立至关重要,其中包括时钟网络和复位网络。
而通常设计者对时钟网络的规划尤为小心,可却忽视了复位网络,这个复位跟时钟一样也是一个覆盖全局、高扇出的信号,如果处理不当也会导致意想不到的错误。
很多人会问,到底复位信号选择同步还是异步、高电平还是低电平有效?对于这个问题,下文做了论述:异步or 同步?以下是同步、异步复位的Verilog和VHDL代码:// 同步复位(Verilog)always@(posedge clk)if(rst)begina<=1’b0;endelsebegina<=b;end--同步复位(VHDL)process(clk,rst)beginif clk’event and clk=’1’ thenif rst=’1’ thena<=’0’;elsea<=b;end if;end if;end process;// 异步(Verilog)always@(posedge clk or posedge rst)if(rst)begina<=1’b0;endelsebegina<=b;end--异步复位(VHDL)process(clk,rst)beginif rst=’1’ thena<=’0’;7系列FPGA设计时推荐使用高电平有效的复位。
图2选择高还是低,需要根据具体的电平标准、器件结构来选择,并不是一概而论低电平有效的好或者高电平有效的好。
注:另外在设计中复位信号有时可能出现一些问题。
1. 如果在一个设计的顶层定义了一个异步复位信号,而为了减小高扇出的影响,可以将这个复位信号分配到全局布线资源上。
但是有些情况下,使用全局复位信号可能导致recovery和removel时序问题。
如图4所示使用级联复位结构,将异步复位信号同步释放,根据模块进行分区,在每个分区内再级联同步释放结构,这样可以降低复位信号的扇出,从根本性上解决了问题。
复位电路异步复位同步释放异步复位和同步释放是数字电路设计中常见的两种复位方式。
复位电路的作用是将电路的各个元件状态恢复到初始状态,以确保电路在启动时的可靠性和正确性。
异步复位是指在电路中引入一个异步信号,当该信号为高电平时,电路内部的各个元件都被强制复位为初始状态。
异步复位信号可以是外部输入信号,例如按键、开关等,也可以是内部产生的信号,例如定时器溢出信号等。
异步复位的优点是简单直接,可以快速将电路恢复到初始状态。
但是,异步复位也存在一些问题,例如在复位信号引入时可能导致冲突和干扰,还可能引起时序问题和电路不稳定等。
同步释放是指在电路中采用同步信号来释放复位状态。
同步信号通常是由时钟信号和其他状态信号共同产生的,只有在满足特定条件时才会触发复位释放。
同步释放可以有效地解决异步复位的问题,使电路在复位时更加稳定可靠。
同步释放的实现通常需要借助于锁存器、触发器等元件,通过时序控制和状态判定来实现复位释放的精确控制。
在实际的电路设计中,异步复位和同步释放常常结合使用,以实现对电路的可靠复位和平稳释放。
例如,可以使用异步复位电路将电路初始化为初始状态,然后通过同步信号来控制复位释放的时机,确保电路在启动时的稳定性。
此外,还可以根据具体的应用场景和需求,灵活选择异步复位或同步释放的方式。
异步复位和同步释放是数字电路设计中常用的复位方式,它们通过引入异步信号和同步信号来实现对电路的复位和释放。
在电路设计中,需要根据具体的需求和应用场景选择合适的复位方式,以确保电路的可靠性和正确性。
同时,还需要注意复位信号的引入时机和释放时机,避免引发冲突、干扰和时序问题。
通过合理设计和优化,可以实现高性能、高可靠性的复位电路,提高电路的工作效率和稳定性。
FPGA设计异步复位同步释放有讲究异步复位同步释放首先要说一下同步复位与异步复位的区别。
同步复位是指复位信号在时钟的上升沿或者下降沿才能起作用,而异步复位则是即时生效,与时钟无关。
异步复位的好处是速度快。
再来谈一下为什么FPGA 设计中要用异步复位同步释放。
复位信号的释放是有讲究的:我们知道,DFF 的D 端和clk 端之间时序关系是有约束的,这种约束我们通过setup time 和hold time 来check。
即D 端的data 跳变的时刻要与clk 端的时钟上升沿(或者下降沿)跳变要错开,如果这两个跳变撞到一起,我们无法保证DFF 能够sample 到正确的data,这时候不满足setup/hold time 要求,就会发生亚稳态,我们sample 到的data 可能是不稳定的中间态的值,并不是我们原本想要的data。
与此类似,异步复位端与clk 端之间也存在着类似的时序约束关系,为了准确稳定地sample 到异步复位端的reset 信号,我们要求reset 信号在clk 上升沿(或者下降沿)跳变的前后一段时间内保持稳定,不要跳变。
clk 跳变沿之前必须保持稳定的最短时间叫做recovery time,clk 跳变沿之后需要保持稳定的最短时间叫做removal time。
如果在此时间窗口内reset 信号发生跳变,不确定reset 到底有没有释放成功(类似setup+hold 时间窗口内,data 跳变,发生亚稳态,sample 到的值是不稳定的中间态值)。
在IC 设计过程中我们是会check recovery 和removal time 的,如果不满足,我们会通过布局布线的调整(后端的调整)让电路满足这个条件(实质就是让reset 跳变沿和clk 跳变沿错开);但是对于FPGA设计而言,我们一般不采用异步释放的方法,因为FPGA 的布局布线可以调整。
FPGA工程师职场必修能力和面试总结FPGA这个概念在很多应用领域,出现的频率越来越多,例如:在比特币挖矿中在基于FPGA的矿机,自动驾驶系统中实时视觉处理系统,军事领域的导弹导航系统等。
这段时间,也去面试了十多个FPGA岗位,发现在面试过程中发现有很多很突出的问题,特别是在比较大型的公司都会相当重视。
具体来说会考量面试者很多的几个知识点:同步时钟设计、亚稳态、异步FlFOo可以亳不夸张地说,如果面试者要是能弄明白这几个问题,那么至少能满足迄今绝大多数公司对FPGA岗位的大部分需求。
相比其他电子行业,从事FPGA开发工资高,对技术水平要求也高,一方面除了要求工程师对广泛的基础知识要有一定的了解,其次也需要有实际的经验,如果在投递简历时,能通过拍照片、录视频的方式把你曾经做过的项目经验经历打包整理好,在面试的时候用上,会极大增加你的通过率。
技术面试时,多讲讲你做过的东西,怎么做具体有哪些想法,扩展性思维,尽量多去开拓一些相关性知识,让企业者更多看到你知道得很多,基础很扎实,容易上手易于培养,后续就基本没什么问题了。
以下录自某FPGA专业通信设备商的人员招聘,对于入职FPGA工程师岗位的具体要求。
整个面试过程包含笔试(专业基础题)+面试(主观分析题)共两个部分,下面为大家提供具体题目及参考回答。
FPGA工程师面试必考题目主观题:1.你认为你从事这项工作有什么主要的优点?2.描述一下你之前参与的最有成就的项目,你觉你的成就来源是什么?3.你觉得你自身最大的缺点是什么?该如何克服或改进。
4.你该如何与最新的技术保持同步?专业知识题:1.什么是同步逻辑和异步逻辑?同步时序逻辑电路的特点:各触发器的时钟端全部连接在一起,并接在系统时钟端,只有当时钟脉冲到来时,电路的状态才能改变。
改变后的状态将一直保持到下一个时钟脉冲的到来,此时无论外部输入有无变化,状态表中的每个状态都是稳定的。
异步时序逻辑电路的特点:电路中除可以使用带时钟的触发器外,还可以使用不带时钟的触发器和延迟元件作为存储元件,电路中没有统一的时钟,电路状态的改变由外部输入的变化直接引起.同步逻辑是时钟之间有固定的因果关系。
异步复位与同步释放很多时候,我们都希望系统一上电以及在仿真开始的时候所有寄存器都有一个已知的状态。
复位有两种方式,即同步复位和异步复位。
同步复位:“同步”的意思是和工作时钟同步。
也就是说当时钟的上升沿(下降沿)来到时检测到按键的复位操作才有效,否则无效。
如下图所示为同步低复位波形。
异步复位:“异步”的意思是和工作时钟不同步。
也就是说寄存器的复位不关心时钟的上升沿(下降沿)是否到来,只要有检测到按键被按下,就立刻执行复位操作。
如下图所示为同步低复位波形。
同步复位还是异步复位我们以D触发器为例来说明Inter(Altera)的器件是用同步复位好还是异步复位好。
先来看一下同步复位D触发器的RTL代码,如下所示://---------------------------------01module test(02 input wire sclk ,03 input wire rst_syncn ,04 input wire d ,0506 outputreg q07);0809always@(posedge sclk)10 if(rst_sync_n ==1'b0)11 q <=1'b0;12 else13 q <= d;1415endmodule//--------------------------------在Quartus工具中编写完RTL后点击“Start Analysis & Synthesis”图标进行分析和综合。
然后双击“Netlist Viewers”下的“RTL Viewer”查看RTL视图。
如下图所示,可以看到一个 D触发器的结构,也可以称为寄存器,但是还附加了一个选择器,用于同步复位的控制。
点击“Start Compilation”图标全编译进行布局布线,完成后我们可以看到“Flow Summary”资源使用量,如下图所示,可以看到使用了LE中的一个组合逻辑资源和一个时序逻辑资源。
ASIC 设计中的同步复位与异步复位Synchronous Reset and Asynchronous Reset in ASIC Design盛 娜3 刘志军SHENG Na LIU Zhi 2jun摘 要 复位问题是ASIC 设计中的一个关键问题,其处理得当与否将直接影响整个电路的性能,在此本文从多个角度对同步复位和异步复位进行了讨论和分析,并且比较了各自的优缺点,重点针对异步复位过程中存在的亚稳态问题采用两级复位同步和复位分配缓冲树的方法进行了相应的解决。
关键词 同步复位 异步复位 亚稳态 ASIC Abstract Reset is one of the key problems in ASIC design ,it will directly in fluence the performance of the whole design if it is done properly or not.This paper discussed and analyzed the synchronous reset and the asynchronous reset from several different perspectives.A C omparis on between them in the advantages and the disadvantages was conducted.The metastability problem ,exiting in the process of asynchronous reset ,was res olved by adding the tw o 2level reset syn 2chronizer logic and using reset distribution bu ffer tree.K eyw ords Synchronous reset Asynchronous reset Metastability ASIC3山东大学信息科学与工程学院 济南 2501001 引言复位问题是ASIC 设计中一个基本而又重要的问题。
1、简介这篇文章是我对电子设计中,亚稳态问题的一种分析和总结。
文章通过对数字电路中器件的工作机制的介绍,引出亚稳态问题的发生机制。
并通过对亚稳态问题发生机制的探讨,用以得到一种能够清楚地,有的放矢地解决亚稳态问题的能力。
而这种能力,将会成为你作为一个工程师的价值所在。
希望通过这个探讨,可以使你设计出属于自己的预防亚稳态的方法。
对于常用的预防亚稳态的方法,由于网上已经有大量介绍,并且涉及到具体问题的分析,这里将不做重点介绍。
2、CMOS中的信息保存Fig. 1. MOS管的电容模型当一个MOS工艺晶体管被制造之后,在不同极之间,因为介电物质的存在,会形成电容。
当晶体管工作时,这些电容会被充/放电。
当充放电回路上的R,C有不同取值的时候,回路的时间常数(由RC表示)会不同。
在数字电路中,最简单的结构是反向器(inverter)。
在CMOS工艺中,它由一个NMOS加一个PMOS组成。
Fig. 2. 反向器对于这个反向器,可以简化成由工作电阻Ron,结点电容CL组成的充放电电路。
Fig. 3. 反向器充放电模型当Inverter输入为0时,PMOS导通,对CL充电,时间由Rp*CL决定当Inverter输入为1时,NMOS导通,对CL放电,时间由Rn*CL决定其中CL由P/NMOS的漏极结点上所有相关的电容组成,这是一种近似的计算方法(将分布的电容进行集总)。
CL=Cdb+Cgd(Miller效应)+Cwire+Cg_fanout从这里我们得到1,任何信号都需要时间才能从输入端口传递到输出端口。
2,对CL的充放电影响系统的动态(翻转)功耗,如果想降低功耗,可以对不使用的信号添加使能。
3,由于Rp != Rn,所以Rp*CL != Rn*CL,所以rising time != falling time对于分析亚稳态的问题,只需要记住第一条,任何信号从输入端口传递到输出端口都需要一定的时间。
对于任何其他门电路,分析过程都一样。
异步复位同步释放电路结构异步复位同步释放电路是一种常见的数字电路设计,主要用于将异步复位信号转换为同步释放信号。
以下从六个方面详细介绍了异步复位同步释放电路的结构。
异步复位信号生成异步复位信号是指一个高电平或低电平的信号,用于将电路中的所有寄存器或其他逻辑电路复位到初始状态。
异步复位信号的产生通常由外部输入或内部时钟信号经过一定的逻辑门组合产生。
同步释放信号生成同步释放信号是指与时钟信号同步的释放信号,用于在时钟上升沿或下降沿释放寄存器或其他逻辑电路。
同步释放信号的产生通常通过在时钟信号上添加一定的延时来实现,以确保在时钟信号的稳定期间产生释放信号。
电路模块连接方式异步复位同步释放电路通常包括多个电路模块,如寄存器、触发器等。
这些模块之间的连接方式取决于具体的设计需求。
通常,异步复位信号和同步释放信号会连接到各个模块的相应输入端,以确保正确地复位和释放各个模块。
触发器设计触发器是异步复位同步释放电路中的重要组成部分,用于在接收到异步复位信号或同步释放信号时,将电路的状态重置到初始状态或释放到下一个状态。
触发器的设计通常需要考虑其灵敏度、功耗和延迟等因素。
时序控制异步复位同步释放电路的时序控制包括复位和释放信号的时间控制以及电路状态转换的控制。
时序控制通常需要考虑时钟信号的频率和相位、复位和释放信号的延时等因素,以确保电路在正确的时间点进行复位和释放操作。
抗异常设计抗异常设计是异步复位同步释放电路中的一项重要技术,主要用于防止电路在异常情况下发生错误动作。
抗异常设计包括对电源电压波动、噪声干扰等异常情况的抵抗能力。
对于电源电压波动,可以通过增加滤波电容等元件来降低其影响;对于噪声干扰,可以通过增加屏蔽措施、优化布线等方式来降低其影响。
功耗优化功耗优化是异步复位同步释放电路中的一项重要技术,主要用于降低电路的功耗。
功耗优化可以通过优化电路结构、使用低功耗元件等方式来实现。
例如,在不影响电路性能的前提下,可以使用低功耗的逻辑门替换高功耗的逻辑门;在适当的情况下,可以使用待机模式或休眠模式来降低电路的功耗。
异步复位,同步释放的方式,而且复位信号低电平有效一、特点:同步复位:顾名思义,同步复位就是指复位信号只有在时钟上升沿到来时,才能有效。
否则,无法完成对系统的复位工作。
用Verilog描述如下:always @ (posedge clk) beginif (!Rst_n)...end异步复位:它是指无论时钟沿是否到来,只要复位信号有效,就对系统进行复位。
用Verilog描述如下:always @ (posedge clk,negedge Rst_n) beginif (!Rst_n)...end二、各自的优缺点:1、总的来说,同步复位的优点大概有3条:a、有利于仿真器的仿真。
b、可以使所设计的系统成为100%的同步时序电路,这便大大有利于时序分析,而且综合出来的fmax一般较高。
c、因为他只有在时钟有效电平到来时才有效,所以可以滤除高于时钟频率的毛刺。
他的缺点也有不少,主要有以下几条:a、复位信号的有效时长必须大于时钟周期,才能真正被系统识别并完成复位任务。
同时还要考虑,诸如:clk skew,组合逻辑路径延时,复位延时等因素。
b、由于大多数的逻辑器件的目标库内的DFF都只有异步复位端口,所以,倘若采用同步复位的话,综合器就会在寄存器的数据输入端口插入组合逻辑,这样就会耗费较多的逻辑资源。
2、对于异步复位来说,他的优点也有三条,都是相对应的:a、大多数目标器件库的dff都有异步复位端口,因此采用异步复位可以节省资源。
b、设计相对简单。
c、异步复位信号识别方便,而且可以很方便的使用FPGA的全局复位端口GSR。
缺点:a、在复位信号释放(release)的时候容易出现问题。
具体就是说:倘若复位释放时恰恰在时钟有效沿附近,就很容易使寄存器输出出现亚稳态,从而导致亚稳态。
b、复位信号容易受到毛刺的影响。
三、总结:所以说,一般都推荐使用异步复位,同步释放的方式,而且复位信号低电平有效。
这样就可以两全其美了。
异步复位同步释放的电路
异步复位和同步释放是电路设计中常用的两种重要技术。
异步复位是指通过一个信号将电路的状态恢复到初始状态,而同步释放则是指在特定条件下,通过一个信号将电路的状态释放。
异步复位是一种非阻塞式的复位方式,它可以在任何时候发生,并立即将电路的状态恢复到初始状态。
当接收到异步复位信号时,电路中的所有存储元件将被置为预定的初始状态。
这种复位方式适用于需要快速响应的电路,比如处理实时数据的电路。
在异步复位电路中,复位信号的触发不依赖于时钟信号,因此可以在任何时刻发生。
这种复位方式的优点是快速响应和简单实现,但也存在一些缺点。
由于复位信号的触发时机不确定,可能会导致电路状态的不确定性,从而引发一些问题,比如数据丢失或错误。
同步释放是一种阻塞式的释放方式,它需要在时钟信号的边沿触发。
当接收到同步释放信号时,电路中的状态将在下一个时钟边沿时被释放。
这种释放方式适用于需要精确控制的电路,比如存储器或计数器。
在同步释放电路中,释放信号的触发依赖于时钟信号,因此释放的时机可以精确控制。
这种释放方式的优点是稳定可靠和精确控制,但也存在一些缺点。
由于释放信号需要等待下一个时钟边沿,可能会引入一定的延迟,从而影响电路的响应速度。
异步复位和同步释放是电路设计中常用的两种重要技术。
根据实际需求,可以选择适合的复位方式来设计电路,以确保电路的稳定性和可靠性。
在实际应用中,可以根据具体情况进行选择,并结合其他技术手段来实现更复杂的功能。
亚稳态是指触发器无法在某个规定时间段内达到一个可确认的状态。
当一个触发器进入亚稳态时,既无法预测该单元的输出电平,也无法预测何时输出才能稳定在某个正确的电平上。
在这个稳定期间,触发器输出一些中间级电平,或者可能处于振荡状态,并且这种无用的输出电平可以沿信号通道上的各个触发器级联式传播下去。
1.亚稳态发生的原因在同步系统中,如果触发器的setup time / hold time不满足,就可能产生亚稳态,此时触发器输出端Q在有效时钟沿之后比较长的一段时间处于不确定的状态,在这段时间里Q端毛刺、振荡、固定的某一电压值,而不是等于数据输入端D的值。
这段之间成为决断时间(resolution time)。
经过resolution time之后Q端将稳定到0或1上,但是究竟是0还是1,这是随机的,与输入没有必然的关系。
2.亚稳态的危害由于输出在稳定下来之前可能是毛刺、振荡、固定的某一电压值,因此亚稳态除了导致逻辑误判之外,输出0~1之间的中间电压值还会使下一级产生亚稳态(即导致亚稳态的传播)。
逻辑误判有可能通过电路的特殊设计减轻危害(如异步FIFO中Gray码计数器的作用),而亚稳态的传播则扩大了故障面,难以处理。
3.亚稳态的解决办法只要系统中有异步元件,亚稳态就是无法避免的,因此设计的电路首先要减少亚稳态导致错误的发生,其次要使系统对产生的错误不敏感。
前者要*同步来实现,而后者根据不同的设计应用有不同的处理办法。
用同步来减少亚稳态发生机会的典型电路如图1所示。
左边为异步输入端,经过两级触发器同步,在右边的输出将是同步的,而且该输出基本不存在亚稳态。
其原理是即使第一个触发器的输出端存在亚稳态,经过一个CLK周期后,第二个触发器D端的电平仍未稳定的概率非常小,因此第二个触发器Q端基本不会产生亚稳态。
注意,这里说的是―基本‖,也就是无法―根除‖,那么如果第二个触发器Q出现了亚稳态会有什么后果呢?后果的严重程度是有你的设计决定的,如果系统对产生的错误不敏感,那么系统可能正常工作,或者经过短暂的异常之后可以恢复正常工作,例如设计异步FIFO时使用格雷码计数器当读写地址的指针就是处于这方面的考虑。
fpga复位方法总结
FPGA(现场可编程门阵列)的复位方法主要包括同步复位、异步复位以及同步复位异步释放。
1. 同步复位:在时钟上升沿或下降沿时,根据复位信号的状态确定是否对系统进行复位。
这种复位方式需要时钟信号的控制,在时钟信号的上升沿或下降沿时检查复位信号的状态。
如果复位信号有效,则将系统复位。
2. 异步复位:无论时钟信号处于何种状态,只要复位信号有效,就对系统进行复位。
这种复位方式简单直接,只要检测到复位信号的上升沿,就会把输出置为复位值。
但异步复位释放可能导致的问题是时序违规和亚稳态,即电路可能处于一个不稳定的中间状态。
3. 同步复位异步释放:这是一种FPGA设计方法,通常用于确保电路在重新启动后能够正常工作。
在异步复位同步释放的设计中,一组异步复位信号用于重置电路的状态,而另一组同步释放信号则用于释放电路的状态。
这种设计方法是为了保证电路的可靠性和可重复性。
以上信息仅供参考,如有需要,建议咨询专业技术人员。
同步和异步复位1、一谈到复位操作,我们几乎再熟悉不过了。
但令人烦心的是,异常的复位操作却时而发生。
对于单独的asic设计来说,reset信号主要目的是为了在仿真过程中强制使整个asic设计进入一个已知的工作状态。
对于大多数asic设计来说,对数据的处理都是遵循同一个规则即:先同步,再处理,最后输出。
如果同步信号丢失,那么asic将会重新进行再获取同步的操作。
如果这类asic 的设计完全正确,那么所有未使用的状态都将会指向“开始获得同步信号”状态。
这类系统能够在没有reset信号情况下正确运行。
如果一个asic设计中其状态机在综合阶段采用了“don’t care”逻辑状态的话,那么这个系统就需要reset复位信号。
笔者认为,通常情况下asic设计中每个触发器都应当有复位端口,不管这个系统是否需要。
但有些状况例外,比如在高速应用的场合,一些跟随触发器(follower ff用作简单的移位寄存器)为了达到更高的性能而不需要reset端。
另外,我们还需要考虑不同的复位策略,即如果系统需要,那么到底是使用同步还是异步复位。
首先我们来研究一下同步复位。
2、触发器通常的编码风格同步复位触发器与无reset的跟随触发器图1 编码风格1中两个ff,一个带同步复位,一个不带图1中的第一个触发器带同步reset,由它采样的数据q1传递给第二个触发器;第二个触发器不带reset,它的作用就是简单数据移位。
正确的代码风格1如下:注意如果采用下面编码风格2会出现什么问题?此代码综合出的逻辑如图2所示。
图2 编码风格2第二个触发器产生了一个不需要的加载使能信号由于代码中把一级触发器和二级触发器放在了一个进程块中处理,所以一级触发器的同步reset信号rst_n将作为二级触发器的加载使能信号,而这属于多余的逻辑,我们并不需要!造成以上编码风格1和2产生的不同逻辑的原因在于使用了同步reset,如果采用异步reset策略,那么两种编码风格所生成的逻辑是完全相同的,不会产生多余的逻辑。
异步复位电路亚稳态
引言:
在数字电路中,异步复位电路是一种常见的重置电路,用于将电路的状态恢复到初始状态。
然而,在某些情况下,异步复位电路可能会出现亚稳态,即复位信号引起电路在不稳定状态下振荡。
本文将探讨异步复位电路亚稳态的原因、特征以及解决方法。
一、异步复位电路的工作原理
异步复位电路通过在输入端引入复位信号,将电路的状态恢复为初始状态。
复位信号通常为低电平,当复位信号为低电平时,电路内的存储元件将被清零或恢复到预定的状态。
一旦复位信号恢复到高电平,电路将进入正常工作状态。
二、异步复位电路亚稳态的原因
亚稳态是指电路在复位信号引起的不稳定状态下出现振荡的现象。
在异步复位电路中,亚稳态通常是由于复位信号的上升沿和下降沿不完全对齐引起的。
当复位信号的上升沿和下降沿不完全重合时,电路的状态可能会在复位信号引起的瞬态过程中发生多次切换,导致电路陷入亚稳态。
三、异步复位电路亚稳态的特征
1. 振荡频率不稳定:亚稳态下,由于电路状态的不稳定性,电路可能会以不稳定的频率进行振荡,这种频率可能是复位信号的倍数或
分数倍数。
2. 非规律性振荡:亚稳态下,电路状态的变化可能是不规律的,即无法通过简单的规律进行描述和预测。
3. 电路输出不确定:由于电路处于亚稳态,其输出信号可能会在不同状态之间切换,导致输出的不确定性。
四、解决异步复位电路亚稳态的方法
为了解决异步复位电路的亚稳态问题,可以采取以下方法:
1. 优化复位信号的上升沿和下降沿:确保复位信号的上升沿和下降沿完全对齐,避免引起电路在切换状态时出现多次切换的情况。
2. 添加滤波电路:通过添加适当的滤波电路,可以平滑复位信号的变化,减少亚稳态的发生。
3. 使用同步复位电路:同步复位电路在复位信号和时钟信号之间建立同步关系,确保复位信号的变化仅在时钟信号的上升沿或下降沿发生,从而避免亚稳态的产生。
结论:
异步复位电路是一种常见的重置电路,用于将电路的状态恢复到初始状态。
然而,由于复位信号的上升沿和下降沿不完全对齐,异步复位电路可能会出现亚稳态的问题。
为了解决亚稳态问题,可以优化复位信号的上升沿和下降沿、添加滤波电路或使用同步复位电路。
通过这些方法,可以有效地避免异步复位电路亚稳态的发生,确保电路的稳定性和可靠性。