首页 > 试题广场 >

在一个FPGA项目中,既有建立时间异常(setup viol

[问答题]
在一个FPGA项目中,既有建立时间异常(setup violation),也有保持时间异常(hold violation),应该如何修改设计以使其正常工作?
对于数据建立,要使输入数据先于时钟脉冲变化沿变化,而保持时间是指时钟脉冲触发沿到来之后,输入上的逻辑电平需要保持的最小时间间隔,这样才能保证读到正确的数值。
setup violation是由于前级组合的延迟过大引起的,因此要用set_max_delay来限制,
hold violation是由于前级组合延迟国小引起的,因此不能让他太小,要用set_min_delay来限制。
发表于 2019-03-18 15:07:05 回复(0)
对于建立时间异常的路径,可以适当降低时钟频率,修改组合逻辑电路以减少组合逻辑的延时,选择传输延时更少的寄存器,并可以适当增大时钟延时
对于保持时间异常的路径,修改组合逻辑电路以增加组合逻辑的延时,选择传输延时更长的寄存器,并可以适当增大时钟延时
发表于 2020-07-06 16:10:45 回复(0)
推荐书籍《FPGA设计实战演练高级技巧篇》王敏志 编著。P23页 图2-10,会有你想要的答案。谢谢
发表于 2018-08-20 15:54:59 回复(3)
发表于 2023-08-26 21:19:58 回复(0)
保持时间和时钟频率无关,为数据路径延时减去时钟抖动。建立时间是一个周期减去保持时间。 如果保持时间余量小于0,表明保持时间减去触发器的保持时间门限值小于0,所以应当适当增加数据路径的延时,比如增加缓存,或者添加组合逻辑;还可以考虑将时钟通在全局时钟网络,来减少时钟抖动; 同时建立时间余量小于0,可以减少时钟频率,增大周期值,或者在不满足路径的地方减少数据路径的延时,比如删减组合逻辑,减少数据路径的长度。
发表于 2020-11-10 21:48:27 回复(0)
建议使用触发器,打2拍直至满足时间需求
发表于 2022-03-08 08:07:23 回复(0)
数据有效状态各增加一个或几个(根据建立和保持时间而定)时钟周期
发表于 2020-08-10 15:13:29 回复(0)
发表于 2018-09-07 19:10:37 回复(0)