如何使用特定时钟启用(在Vivado中)为所有路径指定多周期约束?

时间:2014-12-15 12:10:57

标签: constraints vhdl timing vivado

我在FPGA中设计一个庞大的系统,以320 MHz的系统时钟运行。 由于长关键路径,某些操作必须在较慢的时钟 - 160MHz下执行。 我可以引入一个时钟使能信号,让它称之为CE2,由围绕这种长时间操作的寄存器使用。

根据旧的Xilinx文档:http://www.xilinx.com/itp/xilinx10/books/docs/timing_constraints_ug/timing_constraints_ug.pdf(第60页),我可以添加一个特殊约束:

NET CE2 TNM = slow_exception;
NET clk TNM = normal;
TIMESPEC TS01 = PERIOD normal 8 ns;
TIMESPEC TS02 = FROM slow_exception TO slow_exception TS01*2;

定义这样的多周期时序约束。 遗憾的是,上述案例并未在较新版本的文档中进行描述, 特别是在Vivado工具的文档中。

有人知道如何在Vivado的XDC文件中解决上述问题吗?

1 个答案:

答案 0 :(得分:0)

在Vivado中执行多周期约束的新方法指定周期数而不是直接周期。

您还可以对假路径和时钟交叉使用datapath_only约束,这些约束更类似于您在ISE中使用的内容 这是一个datapath_only约束:

create_clock -period 8.000 -name arbitraryClkName -waveform {0.000  4.000} [get_ports portName];
set_max_delay -from [get_pins {hierarchical_location_source/CLK}] -to [get_clocks arbitraryClkName] -datapath_only 16.000;

这是一个实际的多周期保持命令:

set_multicycle_path -hold 2 -from [get_pins {hierarchical_location_source/CLK}] -to [get_pins {hierarchical_location_sink/D}];

以下是Vivado 2014.3的约束文档;您可以在第79页找到多周期路径文档: http://www.xilinx.com/support/documentation/sw_manuals/xilinx2014_3/ug903-vivado-using-constraints.pdf