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

ID 683243
日期 10/02/2023
Public
文档目录

2.6.5.5.1. Exclusive Clock Groups(独占时钟组)(-logically_exclusive或者-physically_exclusive)

您可以使用logically_exclusive选项来声明两个时钟在物理上同时处于活动状态,但这两个时钟不同时被使用(也就是说,时钟在逻辑上是互斥的)。physical_exclusive选项声明那些不能同时在物理上位于器件上的时钟。

如果您对同一个节点定义多个时钟,那么您可以使用时钟组分配(clock group assignments)和logically_exclusive选项将时钟声明为互斥的。此技术对于多路复用时钟很有用。

例如,考虑一个由100-MHz或者125-MHz时钟驱动的输入端口。您可以使用logically_exclusive选项来声明时钟是互斥的,并移除100-MHz与125-MHz时钟之间的时钟传输,如下图和示例SDC约束所示:

图 115. 内部时钟复用器到FPGA的同步路径

内部时钟复用器的SDC约束示例

# Create a clock on each port
create_clock -name clk_100 -period 10 [get_ports clkA]
create_clock -name clk_125 -period 8 [get_ports clkB]
# Create derived clocks on the output of the mux
create_generated_clock -name mux_100 -source [get_ports clkA] \
     [get_pins clkmux|combout]
create_generated_clock -name mux_125 -source [get_ports clkB] \
     [get_pins clkmux|combout] -add
# Set the two clocks as exclusive clocks
set_clock_groups -logically_exclusive -group {mux_100} -group {mux_125}
图 116. 外部时钟复用器到FPGA的同步路径

外部时钟复用器的SDC约束示例

# Create virtual clocks for the external primary clocks
create_clock -period 10 -name clkA
create_clock -period 20 -name clkB
# Create derived clocks on the port clk
create_generated_clock -name mux_100 -master_clock clkA [get_ports clk]
create_generated_clock -name mux_125 -master_clock clkB [get_ports clk] -add
# Assume no clock network latency between the external clock sources & the \
     clock mux output
set_clock_latency -source 0 [get_clocks {mux_100 mux_125}]
# Set the two clocks as exclusive clocks
set_clock_groups -physically_exclusive -group mux_100 -group mux_125