FPGA复位怎么设计?异步复位同步释放是什么?复位树怎么处理?FPGA面试

浏览量:51
时间: 2026-10-06 11:53:20
一句话答案

复位分同步复位(时钟沿采样复位)和异步复位(复位立即生效);推荐异步复位同步释放:复位信号异步生效(立即复位),但释放时同步到时钟域(防亚稳态);多时钟域每个时钟域都要同步释放;复位树要平衡延迟,避免某些寄存器先释放后释放导致状态错误。

本文概述

复位是 FPGA 设计基础,面试常考:同步/异步复位、异步复位同步释放、复位树、跨时钟域。回答要给代码和原理。

核心要点

  • 同步复位:复位信号在时钟沿采样,需要时钟才能复位,抗毛刺好

  • 异步复位:复位立即生效,不依赖时钟,但释放时可能亚稳态

  • 推荐异步复位同步释放:复位异步生效,释放时打两拍同步到时钟域

  • 多时钟域:每个时钟域单独做同步释放,复位信号跨域要同步

  • 复位树:高扇出复位要加缓冲器,平衡延迟,用全局复位网络(BUFG)

FPGA 复位电路设计,异步复位同步释放,复位树,示波器测量复位信号

面试官:为什么要用异步复位同步释放?代码怎么写?

面试官考察点

FPGA 复位基础题。面试官看你是否理解复位亚稳态。重点听:异步生效、同步释放。

回答思路

讲异步复位释放时亚稳态问题,给同步释放代码。

参考回答

同步 vs 异步复位。

类型生效优点缺点
同步复位时钟沿采样抗毛刺,仿真干净需要时钟,无时钟不复位
异步复位立即生效不依赖时钟,立即复位释放时可能亚稳态,毛刺误触发

异步复位的问题。

  • 异步复位生效时没问题(立即复位,所有寄存器到复位值);

  • 但复位释放(撤防)时,如果在时钟建立/保持窗口内释放,触发器可能亚稳态;

  • 不同寄存器复位路径延迟不同,有的先释放有的后释放,导致状态不一致;

  • 所以要异步复位同步释放。

异步复位同步释放代码。

reg rst_sync1, rst_sync2;
wire rst_n = rst_sync2; // 同步后的复位

always @(posedge clk or negedge async_rst_n) begin
  if(!async_rst_n) begin
    rst_sync1 <= 1'b0; // 异步复位
    rst_sync2 <= 1'b0;
  end else begin
    rst_sync1 <= 1'b1; // 同步释放
    rst_sync2 <= rst_sync1;
  end
end

  • 复位按下(async_rst_n=0):立即复位,rst_sync1/2 都变 0;

  • 复位释放(async_rst_n=1):要等两个时钟沿后 rst_sync2 才变 1,保证在时钟沿稳定释放;

  • 所有寄存器用 rst_n(同步后的复位)。

多时钟域复位。

  • 每个时钟域单独做异步复位同步释放;

  • 不能把一个时钟域的复位直接用到另一个时钟域(亚稳态);

  • 如果需要有序复位(先复位 A 再复位 B),用握手或计数器控制。

复位树。

  • 复位信号扇出大(连到所有寄存器),要加缓冲器或用全局时钟网络 BUFG 驱动;

  • 复位延迟要平衡,避免有的寄存器先释放有的后释放;

  • FPGA 一般用全局复位网络,综合工具自动处理;

  • 高扇出复位可以用多级缓冲树。

注意。

  • 复位是低电平有效还是高电平有效要统一(一般低电平有效);

  • 上电复位(POR)要足够长,保证时钟稳定后再释放;

  • 不是所有寄存器都需要复位,数据通路寄存器可以不复位(节省资源);

  • 复位不要加组合逻辑(毛刺会误触发)。

面试官可能追问

追问 1:同步复位为什么抗毛刺?
同步复位在时钟沿采样,短于一个周期的毛刺不会被采样到。异步复位毛刺直接触发复位。
追问 2:为什么推荐异步复位?
异步复位不依赖时钟,上电时时钟还没稳定也能复位。同步复位在时钟没起振时不复位,系统可能跑飞。
追问 3:复位释放为什么会亚稳态?
复位释放时,如果在触发器建立/保持窗口内变化,Tsu/Th 不满足,输出亚稳态。同步释放保证在时钟沿之间释放,下一个时钟沿采样时已经稳定。
追问 4:所有寄存器都要复位吗?
不一定。控制寄存器(状态机、计数器)要复位,数据通路寄存器(流水线)可以不复位(上电后会被新数据覆盖)。不复位节省资源和提高速度。
追问 5:复位和置位可以同时用吗?
可以(异步复位置位),但要注意优先级。一般复位优先。FPGA 触发器支持异步复位/置位,但同时用可能资源多。

常见失分表达

✗ 异步复位不做同步释放 — 释放时亚稳态,系统异常。
✗ 复位信号跨时钟域不处理 — 亚稳态,部分寄存器不复位。
✗ 复位加组合逻辑 — 毛刺误触发复位。

准备动作

1
写一个异步复位同步释放模块
2
了解复位树和全局复位网络
3
准备一个复位释放亚稳态导致系统偶发异常的案例

核心关键词

FPGA复位异步复位同步释放复位树亚稳态同步复位BUFG


声明:本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。仅供学习交流使用,不构成商业目的。版权归原作者所有,如果您发现网站上有侵犯您的知识产权的作品,请与我们取得联系,我们会及时删除。侵权投诉
相关推荐HOT
开班信息