EDN首页   博客首页

日志档案

发表于 2007-1-27 17:51:54

3

标签: FPGA  复位  可靠性  

关于FPGA复位可靠性的一些体会

关于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;

 

Architecture RTL of Rst_Synth is

Signal     dff   :      std_logic;

Begin

       Process(Arst ,Clk )

       Begin

              If Arst = ‘0 then

                     Dff               <= ‘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的笔记(副站)

系统分类: CPLD/FPGA   |   用户分类: FPGA/CPLD   |   来源: 原创   |   【推荐给朋友】   |   【添加到收藏夹】

    阅读(1964)    回复(3)  

投一票您将和博主都有获奖机会!

最新评论

  • zidong

    2007-1-30 16:32:15

    ding

  • Ben

    2007-7-6 17:44:45

    个人理解,补充一下,其实这里也是用到了用两级触发器来完成异步时钟域转换的问题,对于异步复位信号,它和时钟之间是一个异步的关系,时钟很可能找不到它的上升沿,因此容易造成亚稳态。

    怎么办呢,用老方法,两级触发器。

    第一级,(尽管异步,还是要采集的),采集异步复位信号的高电平,检测到高电平后给出1。(之所以不用这一个结果作为内部的复位信号,就是考虑到1级触发器是不解决问题的,可能就是个亚稳态信号)

    第二级,把第一级的结果用clk打一排,这样就避免了亚稳态。

     

    绕来绕去还是亚稳态呀^_^

    mengyumengyu@hotmail.com

     

  • ZHANGWEI

    2007-3-2 10:12:00

    如何测试何分析FPGA/CPLD?

    如何用示波器测试FPGA内部用的是异步复位?

    主要看一下异步复位的缺点:1)复位信号在时钟有效沿或其附近释放时,容易使寄存器或触发器进入亚稳态;2)容易受到毛刺的影响;3)难以仿真,难以进行静态时序分析。

    我推荐使用TEKTRONIX的最新4通道+16数字逻辑通道的MSO4054示波器,可进行建立保持时间触发,CAN\SPI\I2C\RS23S等分析,可做解码和译码,分析ACK等等,

    如有感兴趣进行测试请和我联系取得资料和演示.

    email: wei.zhang@kingcable.com.cn

    mp: 13817095892