大型设计全局复位—异步复位同源释放

合集下载

同步复位和异步复位

同步复位和异步复位

同步复位,异步复位以及异步复位同步释放(转载)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). 复位信号不依赖于时钟。

复位电路异步复位同步释放

复位电路异步复位同步释放

复位电路异步复位同步释放异步复位和同步释放是数字电路设计中常见的两种复位方式。

复位电路的作用是将电路的各个元件状态恢复到初始状态,以确保电路在启动时的可靠性和正确性。

异步复位是指在电路中引入一个异步信号,当该信号为高电平时,电路内部的各个元件都被强制复位为初始状态。

异步复位信号可以是外部输入信号,例如按键、开关等,也可以是内部产生的信号,例如定时器溢出信号等。

异步复位的优点是简单直接,可以快速将电路恢复到初始状态。

但是,异步复位也存在一些问题,例如在复位信号引入时可能导致冲突和干扰,还可能引起时序问题和电路不稳定等。

同步释放是指在电路中采用同步信号来释放复位状态。

同步信号通常是由时钟信号和其他状态信号共同产生的,只有在满足特定条件时才会触发复位释放。

同步释放可以有效地解决异步复位的问题,使电路在复位时更加稳定可靠。

同步释放的实现通常需要借助于锁存器、触发器等元件,通过时序控制和状态判定来实现复位释放的精确控制。

在实际的电路设计中,异步复位和同步释放常常结合使用,以实现对电路的可靠复位和平稳释放。

例如,可以使用异步复位电路将电路初始化为初始状态,然后通过同步信号来控制复位释放的时机,确保电路在启动时的稳定性。

此外,还可以根据具体的应用场景和需求,灵活选择异步复位或同步释放的方式。

异步复位和同步释放是数字电路设计中常用的复位方式,它们通过引入异步信号和同步信号来实现对电路的复位和释放。

在电路设计中,需要根据具体的需求和应用场景选择合适的复位方式,以确保电路的可靠性和正确性。

同时,还需要注意复位信号的引入时机和释放时机,避免引发冲突、干扰和时序问题。

通过合理设计和优化,可以实现高性能、高可靠性的复位电路,提高电路的工作效率和稳定性。

FPGA设计异步复位同步释放有讲究

FPGA设计异步复位同步释放有讲究

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 的布局布线可以调整。

三种复位方式:同步复位、异步复位、异步复位同步释放

三种复位方式:同步复位、异步复位、异步复位同步释放

三种复位方式:同步复位、异步复位、异步复位同步释放一、特点:同步复位:顾名思义,同步复位就是指复位信号只有在时钟上升沿到来时,才能有效。

否则,无法完成对系统的复位工作。

用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、复位信号容易受到毛刺的影响。

三、总结:所以说,一般都推荐使用异步复位,同步释放的方式,而且复位信号低电平有效。

这样就可以两全其美了。

IC设计中同步复位与

IC设计中同步复位与

IC设计中同步复位与异步复位的区别异步复位是不受时钟影响的,在一个芯片系统初始化(或者说上电)的时候需要这么一个全局的信号来对整个芯片进行整体的复位,到一个初始的确定状态。

而同步复位需要在时钟沿来临的时候才会对整个系统进行复位。

请注意,如果芯片是有多个时钟的系统,那么如何保证不同时钟域的电路能够“同时”复位将会是一个重要的问题,此外,如果你的时钟是一个低频时钟,那么在这个系统(包括其他芯片)上电时如何保证能和其他芯片同时复位?硬件全局异步复位是必要的,请注意这里加上了“全局”,这是因为异步复位既然要对整个芯片“同时”复位,那么布线延时绝不能不考虑,使用FPGA设计时芯片的异步复位必须要走全局网络。

再提醒一点,芯片中最好不要出现多个异步复位。

一个关键原因是对于FPGA而言,多个异步复位信号难以实现前面要求的“全局网络”。

异步复位最大的优点是, 数据通路就可以不依赖于时钟而确保清洁可控。

然而, 异步复位也有其固有的缺陷。

异步复位设计的DFT (可测性设计) 与STA (静态时序分析) 的复杂性要高于同步复位设计; 但异步复位中最严重的问题是, 如果异步复位信号在触发器时钟有效沿附近“释放”(复位信号从有效变为无效) 的话, 可能会导致触发器输出的亚稳态。

同步复位和异步复位的比较(转载)无论同步还是异步复位,在对触发器时序进行分析的时候,都要考虑复位端与时钟的相位关系。

对于同步复位,复位信号可以理解为一个普通的数据信号,它只有在时钟的跳变沿才会其作用,一般只要复位信号持续时间大于一个时钟周期,就可以保证正确复位。

对于异步复位,复位可以在任何时候发生,表面上看跟时钟没有关系,但真实情况是异步复位也需考虑时钟跳变沿,因为时钟沿变化和异步复位都可以引起Q端数据变化,如果异步复位信号跟时钟在一定时间间隔内发生变化,Q值将无法确定,即亚稳态现象。

这个时候既是异步复位信号持续时间再长都没有办法,因为不定态已经传递下去。

Verilog中同步复位和异步复位比较

Verilog中同步复位和异步复位比较

【Verilog】同步复位和异步复位比较async vs. sync同步复位 sync异步复位 async特点复位信号只有在时钟上升沿到来时才能有效。

无论时钟沿是否到来,只要复位信号有效,就进行复位。

Verilog描述always@(posedge CLK)always@(posedge CLK , negedgeRst_n)优点1)利于仿真器仿真。

2)因为只有在时钟有效电平到来时才有效,所以可以滤除高于时钟频率的毛刺。

3)可以使所设计的系统成为100%的同步时序电路,有利于时序分析。

1)设计相对简单。

2)因为大多数目标器件库的dff都有异步复位端口,因此采用异步复位可以节省资源。

3)异步复位信号识别方便,而且可以很方便的使用FPGA的全局复位端口GSR。

缺点1)复位信号的有效时长必须大于时钟周期,才能真正被系统识别并完成复位任务。

同时还要考虑,诸如:clk skew,组合逻辑路径延时,复位延时等因素。

2)由于大多数的逻辑器件的目标库内的DFF都只有异步复位端口,所以,倘若采用同步复位的话,综合器就会在寄存器的数据输入端口插入组合逻辑,这样就会耗费较多的逻辑资源。

1)复位信号容易受到毛刺的影响。

2)在复位信号释放(release)的时候容易出现问题。

具体就是说:若复位释放刚好在时钟有效沿附近时,很容易使寄存器输出出现亚稳态,从而导致亚稳态。

总结推荐使用异步复位,同步释放的方式,而且复位信号低电平有效。

相关讨论:1、同步电路和异步电路的区别是什么?异步电路主要是组合逻辑电路,用于产生地址译码器、FIFO或RAM的读写控制信号脉冲,但它同时也用在时序电路中,此时它没有统一的时钟,状态变化的时刻是不稳定的,通常输入信号只在电路处于稳定状态时才发生变化。

也就是说一个时刻允许一个输入发生变化,以避免输入信号之间造成的竞争冒险。

电路的稳定需要有可靠的建立时间和保持时间,待下面介绍。

同步电路是由时序电路(寄存器和各种触发器)和组合逻辑电路构成的电路,其所有操作都是在严格的时钟控制下完成的。

异步复位与同步释放

异步复位与同步释放

异步复位与同步释放很多时候,我们都希望系统一上电以及在仿真开始的时候所有寄存器都有一个已知的状态。

复位有两种方式,即同步复位和异步复位。

同步复位:“同步”的意思是和工作时钟同步。

也就是说当时钟的上升沿(下降沿)来到时检测到按键的复位操作才有效,否则无效。

如下图所示为同步低复位波形。

异步复位:“异步”的意思是和工作时钟不同步。

也就是说寄存器的复位不关心时钟的上升沿(下降沿)是否到来,只要有检测到按键被按下,就立刻执行复位操作。

如下图所示为同步低复位波形。

同步复位还是异步复位我们以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设计中的同步复位与异步复位

ASIC设计中的同步复位与异步复位

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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

在一个FPGA项目设计之初,全局网络的建立至关重要,其中包括时钟网络和复位网络。

而通常设计者对时钟网络的规划尤为小心,可却忽视了复位网络,这个复位跟时钟一样也是一个覆盖全局、高扇出的信号,如果处理不当也会导致意想不到的错误。

很多人会问,到底复位信号选择同步还是异步、高电平还是低电平有效?对于这个问题,下文做了论述:
异步or 同步?
以下是同步、异步复位的Verilog和VHDL代码:
// 同步复位(Verilog)
always@(posedge clk)
if(rst)
begin
a<=1’b0;
end
else
begin
a<=b;
end
--同步复位(VHDL)
process(clk,rst)
begin
if clk’event and clk=’1’ then
if rst=’1’ then
a<=’0’;
else
a<=b;
end if;
end if;
end process;
// 异步(Verilog)
always@(posedge clk or posedge rst)
if(rst)
begin
a<=1’b0;
end
else
begin
a<=b;
end
--异步复位(VHDL)
process(clk,rst)
begin
if rst=’1’ then
a<=’0’;
7系列FPGA设计时推荐使用高电平有效的复位。

图2
选择高还是低,需要根据具体的电平标准、器件结构来选择,并不是一概而论低电平有效的好或者高电平有效的好。

注:另外在设计中复位信号有时可能出现一些问题。

1. 如果在一个设计的顶层定义了一个异步复位信号,而为了减小高扇出的影响,可以将这个复位信号分配到全局布线资源上。

但是有些情况下,使用全局复位信号可能导致recovery和removel时序问题。

如图4所示使用级联复位结构,将异步复位信号同步释放,根据模块进行分区,在每个分区内再级联同步释放结构,这样可以降低复位信号的扇出,从根本性上解决了问题。

图4
2. 往往在一个大系统中有多个时钟,是否需要为每个时钟域分配一个复位?如果只有一个全局复位,当然在这种情况下肯定是异步复位,它与系统中所有时钟都没有关系,并且必须满足所有时钟域的时序要求,同时满足所有时钟域的recovery和removel时序在某些情况下就不是那么容易了,因此为每个时钟分
配复位是有必要的,如图5所示,此结构使用了一个全局复位,在不同时钟域分别对其进行同步,这样满足所有时钟域的时序应该是轻松些了。

图5
参考文献:
Clifford E. Cummings, Asynchronous & Synchronous Reset Design Techniques
Xilinx White Paper, WP272 Get Smart About Reset: Think Local, Not Global Xilinx User Guide, 7 Series FPGAs Configurable Logic Block。

相关文档
最新文档