跨时钟域信号的约束写法
问题一:没有对设计进行全面的约束导致综合结果异常,比如没有设置异步时钟分组,综合器对异步时钟路径进行静态时序分析导致误报时序违例。
约束文件包括三类,建议用户应该将这三类约束文件分开写在三个xdc/sdc文件中。
第一类是物理约束,它主要对设计顶层的输入输出引脚的分配约束、电平标准的约束,如下图所示:在Vivado环境下,对rst_n和sys_clk_PCIe_p的电平标准进行了约束。

第二类约束是调试约束,用户在使用ila调试时,Vivado会自动生成ila相关的调试约束。如下图所示,这是Vivado自动生成的相关ila的调试约束。

第三类是时序约束,这类约束的种类最多,它包括时钟周期约束、输入输出延迟约束、跨时钟域路径约束、多周期路径约束、伪路径约束等。
时钟周期约束:用户需要将设计中的所有时钟进行约束后,综合器才能进行合理的静态时序分析。一个设计中的时钟主要分为两类:主时钟和生成时钟。主时钟包括全局时钟引脚接入的时钟、高速收发器的输出时钟。生成时钟包括MMCM/PLL产生的时钟、用户逻辑分频产生的时钟,建议用户不要使用后者,因为它通常是由组合逻辑或触发器生成的时钟,这种时钟的歪斜、抖动、驱动能力都很差。对时钟进行约束时,主要针对时钟的频率、占空比、抖动、不确定性等参数进行约束。
全局时钟引脚接入的时钟约束举例:
如下图所示,在vivado环境下,对全局时钟引脚接入的时钟sys_clk_PCIe_p进行了约束,因为占空比是50%,抖动和不确定性也采用默认值,所以图中只对频率进行了约束。

高速收发器的输出时钟约束举例:由于高速收发器通常是例化IP核来使用的,所以这种约束通常是IP核自带的。
如下图所示,在vivado环境下,PCIE IP核中对高速收发器的输出时钟进行约束。

MMCM/PLL生成时钟约束举例:
如下图所示,在vivado环境下,用户对PCIE IP核中的MMCM的输出时钟进行重命名,用户只要确保对MMCM的输入时钟(通常情况下是主时钟)进行了约束,Vivado会自动能够根据输入时钟和输出时钟的关系自动推断出PLL的输出时钟的时钟周期、占空比、相位关系等。

本文探讨FPGA设计中常见的时序问题,包括跨时钟域信号约束、判断条件优化、if-else嵌套简化、信号扇出控制、数据选择器分级及大位宽RAM时钟约束策略,提供解决方案与最佳实践。
最低0.47元/天 解锁文章
1997

被折叠的 条评论
为什么被折叠?



