关于FPGA复位可靠性的一些体会
以前从来没有对FPGA的复位可靠性关注过,想当然的认为应该不会有什么问题。当问题真正出在复位上的时候,才又仔细地对FPGA的复位深入的了解了一下。首先我们用的复位管脚不是FPGA的全局管脚,并且复位信号上没有上拉电阻,容易受到干扰而产生毛刺,这对异步复位是相当有害的。其次,我在FPGA内部对复位的处理过于简单。
今天在网上看了一些资料,很多是关于同步和异步复位的优缺点比较。由于我在FPGA内部用的是异步复位,所以主要看了一下异步复位的缺点:1)复位信号在时钟有效沿或其附近释放时,容易使寄存器或触发器进入亚稳态;2)容易受到毛刺的影响;3)难以仿真,难以进行静态时序分析。上面的前两条应该对我来说是影响最重要的,而第三条说老实话,我还没有到哪个阶层(嘿嘿)
异步复位,同步释放——就可以消除上面的前两条缺点。所谓异步复位,同步释放就是在复位信号到来的时候不受时钟信号的同步,而是在复位信号释放的时候受到时钟信号的同步。通过一个复位信号综合器就可以实现异步复位,同步释放。下面是一个复位信号综合器的VHDL描述:
------------------------------------------------------------------------------------------------------------------------
Designer: skycanny
-- Date:2007-1-27
-- Discription: Reset Synthesizer
Library ieee;
Use ieee.std_logic_1164.all;
Entity Rst_Synth is
Port
(
Clk : in std_logic;
Arst : in std_logic;
Rst_n : out std_logic
);
End entity Rst_Synth;
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
Architecture RTL of Rst_Synth is
Signal dff : std_logic;
Begin
Process(Arst ,Clk )
Begin
If Arst = ‘0 then
Dff <= ‘<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />0’;
Rst_n <= ‘0’;
Elsif Clk’envent and Clk = ‘1’ then
Dff <= ‘1’;
Rst_n <= Dff;
End if;
End process;
End RTL;
----------------------------------------------------------------------------------------------------------------------
使用复位信号综合器可以很好地将同步和异步复位的优点结合起来,而消除他们缺点。因此在FPGA/CPLD的逻辑设计中可以很好的提高复位的可靠性,从而保证电路工作的稳定可靠性。
欢迎访问skycanny的笔记(副站)
用户200178 2009-7-5 00:00
用户162980 2009-4-5 16:02
tengjingshu_112148725 2009-3-31 21:35
用户1557574 2009-2-24 20:05
用户1524708 2009-2-23 08:48
用户22644 2009-2-21 08:19
用户18945 2007-7-6 17:44
个人理解,补充一下,其实这里也是用到了用两级触发器来完成异步时钟域转换的问题,对于异步复位信号,它和时钟之间是一个异步的关系,时钟很可能找不到它的上升沿,因此容易造成亚稳态。
怎么办呢,用老方法,两级触发器。
第一级,(尽管异步,还是要采集的),采集异步复位信号的高电平,检测到高电平后给出1。(之所以不用这一个结果作为内部的复位信号,就是考虑到1级触发器是不解决问题的,可能就是个亚稳态信号)
第二级,把第一级的结果用clk打一排,这样就避免了亚稳态。
绕来绕去还是亚稳态呀^_^
mengyumengyu@hotmail.com
用户11326 2007-3-2 10:12
如何测试何分析FPGA/CPLD?
如何用示波器测试FPGA内部用的是异步复位?
主要看一下异步复位的缺点:1)复位信号在时钟有效沿或其附近释放时,容易使寄存器或触发器进入亚稳态;2)容易受到毛刺的影响;3)难以仿真,难以进行静态时序分析。
我推荐使用TEKTRONIX的最新4通道+16数字逻辑通道的MSO4054示波器,可进行建立保持时间触发,CAN\SPI\I2C\RS23S等分析,可做解码和译码,分析ACK等等,
如有感兴趣进行测试请和我联系取得资料和演示.
email: wei.zhang@kingcable.com.cn
mp: 13817095892
用户1668680 2007-1-30 16:32