Setup和Hold时序违例有什么区别?Vivado中分别怎样定位和修复?-FPGA工程师面试

浏览量:8
时间: 2026-11-09 20:45:17

FPGA设计 / 工程师面试高频题 /

FPGA工程完成综合后看起来没有功能错误,但实现后的Timing Summary出现负Slack。面试官问Setup和Hold有什么区别,不能只回答一个是建立时间、一个是保持时间,还要说清数据路径最大/最小延迟和时钟偏斜的影响。

面试先说结论

Setup检查数据是否能在采样时钟边沿到来前稳定,主要受数据路径最大延迟影响;Hold检查数据是否能在采样边沿之后保持足够时间,主要受数据路径最小延迟影响。Setup违例通常需要缩短组合逻辑或布线延迟、优化流水线和时钟约束;Hold违例通常需要增加数据路径延迟或由实现工具插入延迟单元,同时检查时钟偏斜和约束是否正确。

一、核心原理与工程判断

AMD Vivado时序路径属性报告,显示Slack、Setup要求、数据路径延迟和时钟偏斜

Setup检查的是数据能不能及时到达

Setup要求数据在捕获时钟有效边沿到来前,至少提前满足器件规定的建立时间。若组合逻辑级数太多、布线太长、负载太大或时钟周期太短,数据可能赶不上采样边沿,产生Setup违例。分析时要看最大延迟路径、起点终点、逻辑级数、布线占比和时钟不确定度。

Hold检查的是数据会不会来得太快

Hold要求捕获时钟边沿之后,数据还要保持一段时间不变化。若数据路径最小延迟太短,或者时钟偏斜使捕获时钟相对提前,就可能发生Hold违例。Hold问题与时钟周期是否足够长不是同一回事,单纯降低工作频率通常不能解决Hold违例。

Vivado报告应该看哪些信息

先查看report_timing_summary中的WNS/TNS和WHS/THS,再针对失败路径执行最大延迟和最小延迟报告。重点看起点/终点、launch/capture clock、clock skew、clock uncertainty、cell delay和routing delay。若大量路径同时违例,要先检查时钟定义、generated clock、input/output delay和时钟组约束是否正确。

Setup和Hold的修复方向不同

Setup通常从减少逻辑级数、优化算法、增加流水线、降低扇出、改善布局布线和合理调整时钟频率入手。Hold通常由工具在数据路径插入延迟单元或调整布局布线来修复,也要检查时钟树和约束。不要为了消除Hold告警随意增加组合逻辑,也不要把真实路径一股脑设置为false path。

二、实际排查与设计步骤

  1. 先运行report_timing_summary,区分Setup与Hold失败数量、最差Slack和涉及时钟域。

  2. 针对Setup失败路径查看最大延迟报告,定位逻辑深度、扇出、布线和时钟约束问题;针对Hold失败路径查看最小延迟报告。

  3. 核对create_clock、create_generated_clock、set_input_delay、set_output_delay、时钟组和例外约束,确保没有错误地屏蔽真实路径。

  4. 按违例类型优化设计或实现:Setup关注缩短最大延迟,Hold关注增加最小延迟并由实现工具完成修复;最终重新实现并复核全局时序报告。

三、面试中的常见失分点

误区1:认为Setup和Hold都可以通过降低时钟频率解决,忽略Hold由最小路径延迟和时钟关系决定。

误区2:只看WNS一个数字,不查看具体失败路径、时钟偏斜和约束是否正确。

四、面试官可能继续追问

面试追问:如果Setup全部通过,但Hold还有少量负Slack,是否可以直接交付?

不能只看Setup。Hold违例同样可能造成硬件采样错误,必须通过实现工具修复并复核。还要确认所有目标时钟域、接口约束和不同工作条件下的时序报告都满足要求,不能把剩余负Slack当成无关告警。


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

基于RAM1. 需要把硬盘和其他介质的代码先加载到ram中,加载过程中⼀般有重定位的操作。2. 速度比基于ROM的快,可⽤RAM比基于ROM的少,因为所有的代码... 详情>>

2023-10-25 10:03:49
反激MOSFET关断尖峰为什么高?RCD吸收电路怎样设计和验证?-电源工程师面试

电源设计 / 企业面试高频题 反激电源调试时,MOSFET额定耐压有余量,示波器却看到关断时出现很高的尖峰。面试官会问:是变压器问题,还是RCD吸收参数问题?面... 详情>>

2026-11-06 17:00:50
STM32定时器高级应用怎么做?嵌入式面试从PWM输出讲到编码器接口

嵌入式单片机中级技术基础题本文概述STM32定时器是外设中功能最丰富的模块之一,除了基本定时中断,还支持PWM输出、输入捕获、输出比较、单脉冲模式、编码器接口、... 详情>>

2026-08-31 14:33:46
电子工程师怎么谈薪资不吃亏?技术岗薪资谈判全攻略

分类:薪资谈判策略经验级别:全级别难度:基础题型:面试技巧/薪资谈判📖 本文概述很多技术工程师技术能力很强,但一谈薪资就怂,要么报低了后悔,要么谈崩了丢off... 详情>>

2026-08-06 17:06:56
电源纹波与噪声怎么准确测量?电源工程师面试探头与带宽

电源设计中级技术基础题本文概述电源纹波与噪声的测量看似简单实则易错,面试中需要讲清纹波与噪声的区别、示波器测量设置(带宽限制、采样、探头)、地线处理(弹簧地/短... 详情>>

2026-09-02 09:08:46
开班信息