EDN首页   博客首页

日志档案

发表于 2006-11-14 11:41:32

1

标签: FPGA  时序仿真  

保持时间是负的。帮忙!

我的那个项目,时序仿真后保持时间都是负的,怎么办?帮忙

系统分类: CPLD/FPGA   |   用户分类: 无分类   |   来源: 无分类   |   【推荐给朋友】   |   【添加到收藏夹】

    阅读(1022)    回复(2)  

投一票您将和博主都有获奖机会!

  • riple

    2006-11-14 17:00:06

    你说的保持时间应该指的是输入引脚的保持时间:

    tH = <clock to destination register delay> + <micro hold delay of destination register> - <pin to register delay>

    如果你正确设置了convert_clk 和out_clk的时序分析参数,在时序分析报告中应该看到满足时序要求的结果:Clock Setup :'convert_clk'、Clock Hold :'convert_clk'。

    你说的负值未必就不好,对于th、tsu来说,负值是好的。如果你在时序设置中指定了期望值的话,用期望值减去实际值,得到的是你的余量(slack)。只有slack是正值,才是好的结果。

    如果你现在还没有分配引脚,并且不准备把设计用于实际系统的话,你可以暂时不关心th、tsu。但是一定要设置和分析你的时钟信号。

    其实,时序分析一直是令我头疼的事,好多概念我也搞不懂。在这里呼吁真正的大侠给写几篇文章吧。

  • leon

    2007-6-4 22:37:30

    负的setup 和 hold time 还是比较好理解的。

    讨论一下setup time violation 的形成---因为信号比clock 后到达DFF,或者说到达的时间太晚了,这个时候这个DFF就没有办法采样到这个信号,于是就出现了setup slak。

    那么,假设你对这一个DFF做优化,你会怎么做?---打包这个DFF,假设为DFFA。在DFFA中把clock加delay,再连接到原DFF。这样你的信号就可以走的慢一点,慢到比clock还慢都没有问题---而这个时候setup time 就被你给优化到负的值了。同样的可以解释负的hold time。

    *************这是我回答别人问题的时候写的,正好copy过来给你参考一下。例子只是为了让你可以理解负的hold time 的意义。