首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

FPGA复位的可靠性设计方法

FPGA复位的可靠性设计方法

摘 要:对FPGA设计中常用的复位设计方法进行了分类、 分析和比较。 针对 FPGA在复位过程中存在不可靠复位的现象, 提出了提高复位设计可靠性的4种方法, 包括清除复位信号上的毛刺、 异步复位同步释放、 采用专用全局 异步复位 /置位资源和采用内部复位。上述方法可有效提高FPGA复位的可靠性。
对 FPGA芯片而言, 在给芯片加电工作前, 芯片内部各个节点电位的变化情况均不确定、 不可控, 而这种 不确定且不可控的情况会使芯片在上电后的工作状态 出现错误。 因此, 在 FPGA的设计中, 为保证系统能可 靠进进入工作状态, 以及避免对 FPGA输出关联的系 统产生不良影响, FPGA上电后要进行复位, 且为了消 除电源开关过程中引起的抖动影响, 复位信号需在电 源稳定后经过一定的延时才能撤销[ 1] , FPGA 的复位 信号需保证正确、 稳定、 可靠。
在 FPGA的设计中, 多数情况下复位电路的功能 虽能够正常完成, 但电路并未得到精确合理的设计,仍存在可靠性设计缺陷。为确保系统复位的可靠性, 有 必要对 FPGA复位的可靠性设计方法进行研究。
1 复位设计方法分类
复位的目的是在仿真时将设计强制定位在一个可知状态, 合理选择复位方式是电路设计的关键[ 2] 。 根 据与系统时钟域的关系, 复位电路可分为同步复位和 异步复位[ 3] 。 同步复位是指复位信号只在时钟沿到来 时, 才有效。 否则, 无法完成对系统的复位工作。 异步复位是指无论时钟沿是否到来, 只要复位信号有效, 使 对系统进行复位。
根据是否存在外部复位端口, 复位电路又可分为外部复位和内部复位。外部复位是指复位信号主要来 自外部引脚的输入, 如复位按钮、 电源模块输出等。内部复位信号则是主要由FPGA内部电路产生。
2 复位设计方法的比较
2.1 同步复位与异步复位
2.2.1同步复位
指定同步复位时,always的敏感表中仅有一个时钟沿信号[ 4], 只有当时钟沿采集到同步复位的有效电平时,才会在时钟沿到达时刻进行复位操作。 若目标器件或可用库中的触发器本身包含同步复位端口, 则在实现同步复位电路时可直接调用同步复 位端。 然而多数目标器件的触发器本身并不包含同步 复位端口,需使复位信号与输入信号组成某种组合逻 辑, 然后将其输入到寄存器的输入端。为了提高复位电路的优先级,通常在电路描述时使用带有优先级的if… else结构, 复位电路在第一个if下描述, 其他电路 在else或 else … if 分支中描述。 复位电路综合后的RTL 图如图1所示。


根据同步电路的特点, 其电路优点有: ( 1) 同步复 位有利于基于周期机制的仿真器进行仿真。 ( 2 ) 使用 同步复位可设计100% 的同步时序电路, 有利于时序 分析, 其综合结果的频率较高。 ( 3 ) 同步复位仅在时 钟的有效沿生效, 可有效避免因毛刺造成的亚稳态和错误。 毛刺信号是由FPGA内部结构特征决定的[ 5] ,同步复位在进行复位和释放复位信号时, 仅当时钟沿 采到复位信号电平变化时进行相关操作, 若复位信号 树的组合逻辑出现了某种毛刺, 此时时钟沿采到毛刺 的概率较低, 由此通过时钟沿采样, 可有效过波复位电 路组合逻辑产生的毛刺, 增强了电路稳定性。
同步复位的缺点有: ( 1 ) 多数目标器件库的触发 器本身并不包含同步复位端口, 使用同步复位会增加 更多逻辑资源。 ( 2) 同步复位的最大问题在于必须保 证复位信号的有效时间, 需要一个脉宽延展器以确保 复位信号有一定脉冲宽度[ 6] , 由此才能保证所有触发 器均能有效复位。 由于同步复位仅当时钟沿采到复位 信号时才会进行复位操作, 所以其信号的持续时间要 大于设计的最长时钟周期, 以保证所有时钟的有效沿 都能采样到同步复位信号。 事实上, 仅保证同步复位 信号的持续时间大于最慢的时钟周期是不够的, 设计 中还需考虑到同步复位信号树通过所有相关组合逻辑 路径时的延时, 以及由于时钟布线产生的偏斜。 只有 同步复位大于时钟最大周期, 加上同步信号穿过的组 合逻辑路径延时和时钟偏斜延时, 才能确保同步复位 的可靠[ 7] 。
2.2.2 异步复位
指定异步复位时, 只需在always的敏感表中加人 复位信号的有效沿即可, 当复位信号有效沿到达时, 无 论时钟沿是否有效, 复位均会立即发挥其功能。
大多数目标器件和ASIC库的触发器均包含异步 复位端口, 异步复位会直接接人触发器的异步复位端口, 综合后的RTL图如图2所示。


根据异步电路的特点, 异步复位的优点有: ( 1 ) 由 于多数目标器件库的触发器都包含异步复位端口,异 步复 位会节约逻辑资源。( 2 ) 异步复位设计简单。( 3) 对于多数FPGA, 均有专用的全局异步复位 / 置位 资源(GSR,Global Set Reset ) , 还可使用 GSR资源, 异 步复位到达所有寄存器的偏斜最小。
异步复位的缺点如下: ( 1 ) 异步复位的作用和释 放与时钟沿并无直接关系,异步复位生效时问题并不明显; 但当释放异步复位时,若异步复位信号释放时间 和时钟的有效沿到达时间几乎一致, 则容易造成触发器输出为亚稳态[ 8 - 9],形成逻辑错误。 ( 2 ) 若异步复位逻辑树的组合逻辑产生了毛刺[ 10 - 11], 则毛刺的有效沿会使触发器误复位[ 12], 造成逻辑错误。
2.3 外部复位和内部复位
外部复位, 复位信号主要来自外部引脚的输人。复位信号在电路板上可能会受到来自其他线路的串 扰,因此可能产生毛刺,在无需复位系统时,毛刺信号 可能导致系统误复位。
内部复位,FPGA上电配置完成后, 由FPGA内部 电路产生复位信号, 复位信号与时钟同步。 通常内部复位的设计方法是: 设计 一 个初始值为 0X0000的SRL16,将其输人接高电平, 输出作为复位信号。
3 复位可靠性设计方法
3. 1 消除复位信号上的毛刺
在系统设计中, 若采用低有效复位信号, 可按照 图3所示方法对复位信号中的毛刺进行消除。延时器 件对数据进行延时的长度决定复位毛刺消除电路所能 避免的毛刺长度, 而延时器件的延时长度也决定需要 提供有效复位信号的最短时间。
如果复位信号高有效, 则将图 3中的或门改为与 门使用。 为更好地消除毛刺[ 13] , 可在复位毛刺消除电 路后再加上寄存器对复位信号进行时钟同步。 在通常 复位电路的设计中,毛刺的长度一般情况下 > 1 个时 钟周期, <16个时钟周期。为节省资源, 延时器件通 常选用SRL16。 SRL16可设置初始值, 但不带复位功 能16bit移位寄存器, 能够通过A0~ A3 的4根地在线选择从第几个寄存器输出。通常将其作为一个普通的16bit移位寄存器使用。
3. 2 异步复位同步释放
在有些应用中,复位信号需要在时钟尚未给出或 不稳定的情况下传到后级, 在时钟稳定之后,再撤去复 位信号。 此时需使用异步复位来实现。 由于异步复位 时,时钟和复位关系的不确定性, 易造成触发器输出亚 稳态[ 14] , 引起逻辑错误。 为确保其复位的可靠性, 通 常采用异步复位, 同步释放的方式[ 15] 。
所谓异步复位, 同步释放就是在复位信号到达时 不受时钟信号的同步, 而是在该信号释放时受时钟信号的同步。 通过一个复位信号综合器便可实现异步复位, 同步释放[ 7] 。 综合后的RTL图如图 3所示, 其仿真结果表明该电路能有效的实现复位及脱离复位。


3. 3 采用专用全局异步复位/置位资源
全局异步复位 / 置位资源的主要作用是对系统中 存在的所有触发器、 锁存器、 查找表单元的输出寄存器 进行复位, 不会占有额外的布线资源。 使用GSR 资 源, 异步复位到达所有寄存器的偏斜最小。
3. 4 采用内部复位的设计方法
在无需复位信号先于时钟信号产生的应用 中,为避免外部复位毛刺的影响、 异步复位电路可能引 起的亚稳态以及减少资源的使用率,可通过FPGA产 生内部复位, 然后采用异步的方式对其的内寄存器 进行复位。 由于该复位信号由FPGA内部产生, 不会 因外部干扰而产生毛刺, 同时又与时钟同步, 不存在 因异步复位导致的亚稳态现象, 因此可确保系统可靠复位。
4 结束语
FPGA的可靠复位是保证系统能够正常工作的必要条件,本文对FPGA设计中常用的复位设计方法进 行了分类、分析和比较,并针对各种复位方式的特点, 提出了如何提高复位设计可靠性的方法。 在工程实践 中,上述方法可以有效减少或消除FPGA复位所产生 的错误。
作者:郝        建, 原茵茵 来源:电子科技2013年 第 26卷 第10期




1 条评论FPGA上电后要进行复位, 且为了消haitaox 在 星期五, 07/18/2014 - 21:21 发表。

FPGA上电后要进行复位, 且为了消 除电源开关过程中引起的抖动影响, 复位信号需在电 源稳定后经过一定的延时才能撤销
这句话不同意。FPGA上电无需外部复位,就可以初始化到用户想要的值。FPGA内部的GSR信号会在done信号拉高之前,完成初始化的操作。

记录学习中的点点滴滴,让每一天过的更加有意义!
返回列表