hold time 的问题,很迷茫 谢谢
时间:10-02
整理:3721RD
点击:
自从知道有hold time约束之后,写代码时变得特别犹豫。
请问在写Verilog时,尤其是在数据传输时,数据的变化也总是在clk沿,如果读数据用的是同一个clk,理想情况下,hold time就为0。
这有影响吗?最近总被这问题困扰了。还是说hold time只是后端要考虑的问题,在写代码时不用太在意?
给点指教吧,谢谢各位前辈
实际上怎么可能会是理想情况呢。 clock tree上本身就有delay啊, 放心写你的代码吧
满足setup hold 是时序电路的基础,是RTL层面上能够描述电路的默认假设,
也就是说你coding出来的同步电路,是一个默认没有时序问题的模型。
而物理综合则会保证这个前提成立
如楼上两位所说,通常情况下不用太在意这个
但是你的担心并非多余,有少数情况,在设计某些时序电路时需要考虑hold margin问题
曾经某次设计时碰到一个复杂电路(一个主时钟及其分频时钟域)hold很难满足,pre layout及STA检查后发现,及时修改了局部RTL结构,将一个时钟变为下降沿有效,才满足了hold margin
这我就明白了,要不然总想着有的用上升沿触发,有的用下降沿,太累了。谢谢各位前辈
这是后端综合考虑的事情,前端代码不用考虑的。
前端设计人员有必要了解一下后端。
hold说明数据太快,路径太短。这种情况只要往数据路径插入buf就可以了。
我们这边的大牛都是前后皆通。
学习了。