Intel® Quartus® Prime Pro Edition用户指南: Timing Analyzer

ID 683243
日期 4/13/2020
Public

本文档可提供新的版本。客户应 单击此处 前往查看最新版本。

文档目录

2.2.8.4.2. Relaxing Setup with Multicycle (set_multicyle_path)

当数据传输速率低于时钟周期时,可以使用多周期异常。 当时序分析接受数据为有效时,放宽设置关系会增加窗口。

在下面的示例中,源时钟的周期为10 ns,但时钟使能一组寄存器,因此寄存器只有每隔一个周期使能。由于寄存器由一个10 ns时钟驱动,因此Timing Analyzer报告10 ns的设置,0 ns的保持。但是,由于数据每隔一个周期传输一次,因此Timing Analyzer必须分析关系,就像时钟工作在20 ns一样。这会导致20 ns的设置,而保持仍为0 ns,从而为数据识别扩展了窗口。

下面一对多周期约束(assignments)通过指定-setup值为N和-hold值为N-1来放宽设置关系。您必须使用-hold约束来指定保持关系,以防止正保持要求。

Constraint to Relax Setup and Maintain Hold

set_multicycle_path -setup -from src_reg* -to dst_reg* 2
set_multicycle_path -hold -from src_reg* -to dst_reg* 1
图 77. 多周期设置关系

您可以扩展此模式以创建更大的设置关系,以简化时序收敛要求。此异常的一个常见用途是通过I/O接口写入异步RAM。地址,数据和写使能之间的延迟可以是几个周期。I/O端口的多周期异常允许在使能发生之前有额外的时间来解析地址和数据。

以下约束将设置放宽(relax)三个周期:

三周期I/O接口约束

set_multicycle_path -setup -to [get_ports {SRAM_ADD[*] SRAM_DATA[*]} 3
set_multicycle_path -hold -to [get_ports {SRAM_ADD[*] SRAM_DATA[*]} 2