vhdl如何保证时序约束

时间:2017-05-20 19:20:52

标签: vhdl counter flip-flop

我的问题是,想象你有计数器,输出连接到寄存器。现在,在时钟寄存器(FF)的下降沿/上升沿存储数据,计数器会产生新的数据,但是如果计数器真的很快并且数据到达寄存器输入的时间少于保持时间怎么办?它不会正确存储以前的值,对吗? vhdl如何处理这种情况?

2 个答案:

答案 0 :(得分:1)

语言并不能保证任何事情。综合工具以及布局布线工具通过了解给定器件的所有互连的最小值/最大值和不确定性及其预期的PVT(过程,电压,温度)参数来计算出这一点。这些参数来自供应商,并被纳入设计工具中。

这个过程基本上是这样的:综合计算出哪些"阻止" (CLB / ALM,RAM,DSP和PLL等硬核)需要满足您的设计并确定如何连接它们,生成网表。然后该网表被发送到P& R工具,该工具试图将所有东西都装入指定的设备中。在该P& R任务期间,考虑块A和块B之间的已知延迟并求和(这是简化)。在这之外你会得到一个时间报告,它基本上是每个连接的巨大列表,以及信号从一个到另一个的最佳和最差情况时间。您的最大频率(运行设计的速度)来自于此,并且基于已提供的展示位置和网表。

您的约束文件是您在设计中定义所需时序的位。也许您有一个与外部PHY的源同步接口,或者您有一些其他总线,它们在时钟,控制和数据信号之间具有特定的设置和保持时间。约束也可以来自设备内部块之间的交互。在布局布线期间使用此约束文件以帮助指导布局和布线,但也在最终时序检查中使用,以确保在设计中满足您指定的所有设置和保持时间,给定工作温度,核心电压和特定目标设备。

答案 1 :(得分:0)

完全没有。 VHDL描述了一般行为,但没有描述时间。时序仿真可以在合成之后完成,但在那时,合成器已经考虑了时序约束。