0

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

4

2 回答 2

1

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

这个过程大致是这样的:综合计算出需要哪些“块”(CLB/ALM、RAM、DSP 和 PLL 等硬核)来满足您的设计,并确定如何连接它们,生成网表。然后将该网表发送到 P&R 工具,该工具会尝试将所有内容都放入指定的设备中。在此 P&R 任务期间,块 A 和块 B 之间的已知延迟被考虑并求和(这是一种简化)。从中你会得到一份时序报告,它本质上是每个连接的巨大列表,以及信号从一个到下一个的最佳和最坏情况时间。您的最大频率(您可以运行设计的速度)由此得出,并且基于已提供的布局和网表。

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

于 2017-05-20T21:28:59.120 回答
0

一点也不。VHDL 描述了一般行为,但不描述时序。时序仿真可以在综合之后进行,但是那个时候,Synthesizer 应该已经考虑到时序约束了。

于 2017-05-20T19:50:54.553 回答