FPGA亚稳态、多时钟、复位、门控时钟_第1页
FPGA亚稳态、多时钟、复位、门控时钟_第2页
FPGA亚稳态、多时钟、复位、门控时钟_第3页
FPGA亚稳态、多时钟、复位、门控时钟_第4页
FPGA亚稳态、多时钟、复位、门控时钟_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

亚稳态1亚稳态发生的原因在同步系统中,如果触发器的setup time / hold time不满足,就可能产生亚稳态,此时触发器输出端Q在有效时钟沿之后比较长的一段时间处于不确定的状态,在这段时间里Q端毛刺、振荡,是介于”0”、”1”电平之间的一个状态,而不是等于数据输入端D的值。这段之间成为决断时间(resolution time)。经过resolution time之后Q端将稳定到0或1上,但是究竟是0还是1,这是随机的,与输入没有必然的关系。亚稳态是触发器的一个固有特性,正常采样也会有一个亚稳态时间。当建立保持时间满足时,在经历采样、亚稳态后,进入一个正确的状态。如果建立保持时间不满足,那么会有一个相当长的亚稳态时间,最后随机进入一个固定态。对触发器而言,DFF内部建立保持时间内数据不稳定就会发生亚稳态。2亚稳态的危害由于输出在稳定下来之前可能是毛刺、振荡、固定的某一电压值,因此亚稳态导致:逻辑误判输出01之间的中间电压值还会使下一级产生亚稳态(即导致亚稳态的传播)。3亚稳态的解决办法 Remove Duplicate Register:选择OFF。只要系统中有异步元件,亚稳态就是无法避免的,因此设计的电路首先要减少亚稳态导致错误的发生,其次要使系统对产生的错误不敏感。前者要同步化或FIFO、双口RAM(外部异步信号可用,内部异步信号也可用,数据接口更好用;即CLK1来写入数据,用CLK2读出数据,并有缓冲器空满信号来管理数据的读写,以免数据丢失)来实现,而后者根据不同的设计应用有不同的处理办法。用两级触发器同步来减少亚稳态发生机会,输出基本不存在亚稳态。其根本思想是异步信号同步化。其原理是即使触发器D1的输出端存在亚稳态,经过一个CLK周期后,触发器D2时钟沿到来时D1输出的亚稳态决断时间已过,稳定在0或1,因此第二个触发器Q端基本不会产生亚稳态,因此CLK频率越小亚稳态传播概率越小,同步化后异步信号会延迟一个或2个CLK周期输出。(如异步输入由0到1的情况:第一个发生亚稳态,可能输出0或1,若输出1,则正好;若输出0,则也会在第二个时钟沿传到触发器D2,若异步数据1在第二个时钟沿消失则该数据采不到,若仍稳定,则第二个时钟沿会被触发器D1采到,这时不会有亚稳态,在第三个时钟沿被D2采到,即会又延迟一个周期输出。)若采用三级触发器,则D2采到亚稳态决断时间时,D2也会输出亚稳态并最终也会稳定在0或1,传播亚稳态的概率更低。亚稳态深入原理:1. 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对于分析亚稳态的问题,只需要记住第一条,任何信号从输入端口传递到输出端口都需要一定的时间,这个时间可以简化为结电容的充放电时间,且在这段时间里必会出现短暂的中间电压,所以组合逻辑产生的上升沿是斜的,这是正常的。2. D触发器SETUP/HOLD 时间的意义S/H时间是时序器件的属性。任何器件“原则”上都是电平有效的,边沿触发的器件是一种“把戏”。Fig. 5. 上升沿有效的D触发器(DFF)如Fig.5所示,在CP由0变1之前,D先要经过G6输出Q6=!D,在经过G5输出Q5=D,经过这条最长延迟,G3、G4输入端就有稳定的输入了,从D到G3输入端这段时间为Tsu,其中G4输入端会先有数据,路径短;CP为0时,G3、G4一直置位,Q保持不变,当CP由0变1,Q3=!D,Q4=D,然后Q3、Q4会反馈到G5、G6,即使输入端此后变化,Q6=!(!D&D)=1,Q5=D,Q3=!D,Q4=D,仍保持不变,直到CP由1变0时G3、G4置位后才会D端输入重新有效,但若CP上升沿到Q3、Q4反馈到G5、G6输入端之前D发生变化,则Q4未稳定的时候G4输入端Q6电平发生变化,导致充放电时间变长(决断时间),最后Q4、Q稳定的电平未知,出现亚稳态,建立时间时的情况同理,一般决断时间uTsu+uTh。所以,从CP上升沿到Q3、Q4反馈到Q5、Q6这段时间为Th;从CP上升沿到Q稳定输出这段时间即为Tco。Fig. 6. 不同初始电平导致不同决断时间异步复位一、特点:同步复位:顾名思义,同步复位就是指复位信号只有在时钟上升沿到来时,才能有效。否则,无法完成对系统的复位工作。用Verilog描述如下:always (posedge clk) beginif (!Rst_n).end异步复位:它是指无论时钟沿是否到来,只要复位信号有效,就对系统进行复位。用Verilog描述如下:always (posedge clk or 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的全局复位端口DEV_CLRn。缺点:a、在异步复位信号释放(release)的时候容易出现问题。具体就是说:倘若复位释放时恰恰在时钟有效沿附近,就很容易使寄存器输出出现亚稳态,从而导致亚稳态。同步复位有同样的问题存在。b、复位信号容易受到毛刺的影响。三、总结:一般都推荐使用异步复位,同步释放的方式,而且复位信号低电平有效。这样就可以两全其美了。其根本思想,也是将异步信号同步化。异步复位信号经两级触发器被同步化,这样在释放的时候不会造成亚稳态。reset_n为了到每个触发器的时间相等且满足大扇出,最好在Assignment Editor设置成Global Signal- Global Clock,使用全局布线网络,rst_n可以连在DEV_CLRn专用复位管脚,但不使能复位清零功能。 Auto Global Clock:用于设置时钟是否占用Global Clock;Auto Global Register Control Signals:用于设置寄存器控制信号(异步复位,寄存器使能等)是否占用Global Clock。不复位方案:FPGA芯片内部有一个上电检测模块,一旦检测到电源电压超过检测门限后,就产生一个上电复位脉冲(Power On Reset)送给所有的寄存器. 对于某个特定的寄存器,POR的作用是RST还是SET, 完全取决于编程到FPGA的FUSE bit。而FUSE值在综合(synthesis)之后,事实上已经完全确定了。因此不用考虑欠压无外部复位的影响。寄存器初始值:在上电复位、配置、初始化,初始化过程中寄存器、I/O寄存器、内部逻辑被初始化,初始化的值由综合器决定。有2个约束可以告诉综合器如何确定初值。1) Power-Up Dont Care:默认选择on,选择后对于没有Power-Up Level设置的寄存器,综合器将设置一个初值使面积最优化,可能会舍掉一部分电路。Causes registers that do not have a Power-Up Level logic option setting to power up with a dont care logic level (X). A dont care setting allows the Compiler to change the power-up level of a register to minimize the area of the design.2) Assignment EditorPower-Up Level:选择所需寄存器是High/Low,对寄存器进行初值约束。建议用Power-Up Level约束,就可以不用reset复位。 门控时钟每当用组合函数钟控触发器时,通常都存在着门控时钟。如果符合下述条件,门控时钟可以象全局时钟一样可靠地工作:1.驱动时钟的逻辑必须只包含一个“与”门或一个“或”门,也就是只有一条延迟路径。如果采用任何附加逻在某些工作状态下,会出现多条延迟路径竞争产生的毛刺。2.如果是寄存器出来的信号组成的组合逻辑,可以作为门控使能信号间接作为门控时钟,由于已经同步,组合逻辑输出虽产生毛刺,但不在时钟附近,没有影响,但要注意保证一定建立时间使毛刺提前时钟沿到来。门控时钟作为使能信号更加可靠,因为不用考虑直接做时钟时门控时钟占空比的影响。3.如果组合逻辑输入端有异步信号,则也可以将组合逻辑输入信号都同步化后再做输入生成门控逻辑作为使能控制,这时组合逻辑虽也有毛刺,但毛刺不在时钟沿附近,不需再加D触发器同步。多时钟系统许多系统要求在同一个FPGA内采用多时钟。最常见的例子是两个异步微处理器器之间的接口,或微处理器和异步通信通道的接口。由于两个时钟信号之间要求一定的建立和保持时间,所以,上述应用引进了附加的定时约束条件。它们也会要求将某些异步信号同步化。如果CLK_A和CLK_B是相互独立的,则REGA的输出必须在它馈送到1REG_B之前,用REG_C同步化,要求CLK_B是CLK_A频率的2倍以上,否则有可能因为多延迟1个CLK_B使数据丢失在许多应用中只将异步信号同步化还是不够的,当系统中有两个或两个以上非同源时钟的时候,数据的建立和保持时间很难得到保证,我们将面临复杂的时间问题。最好的方法是将所有非同源时钟同步化

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论