Clock Specification—— Derive Clock Uncertainty
0赞Quartus II Handbook, Volume 3 6-41
获得时钟不确定时间 Derive Clock Uncertainty
使用derive_clock_uncertainty命令应用于交互时钟(inter-clock)、内部时钟(intra-clock)和I/O接口的不确定时间的自 动检测。建立和保持不确定时间都适合于时钟到时钟的传输。Example 6–16展示了derive_clock_uncertainty命令选项。
Example 6–16. derive_clock_uncertainty Command
derive_clock_uncertainty
[-overwrite]
[-dtw]
Quartus II TimeQuest Timing Analyzer自动的添加设计中时钟到 时钟传输的时钟不确定时间。随着set_clock_uncertainty命令已被应用于源和目 的时钟对中的任何时钟不确定时间约束,比起由derive_clock_uncertainty命令约束的时钟不确定 时间具有更高的优先权。例如,如果set_clock_uncertainty命令先指定了源时钟CLKA和目的时钟CLKB之间的时钟网络延时。 那么derive_clock_uncertainty命令次之,由derive_clock_uncertainty命令计算出的由源时钟CLKA到目的时钟CLKB的不确定时间将被忽 略。
你可以使用-overwrite命令覆盖原先的时钟不确定时间分配,后者手动添加remove_clock_uncertainty命令进行移除。
在以下的时钟到时钟传输 类型中,时钟必然能够出现,它们被derive_clock_uncertainty命令自动归类。
■Inter-clock
■Intra-clock
■I/O Interface
交互时钟传输 Inter-Clock Transfers
交互时钟传输(Inter-clock transfers)发生在FPGA核和来自内部PLL输出节点或管脚的源与目的时钟的寄存器到寄存器传输。Figure 6–22展示了一个交互时钟传输的例子。
内部时钟传输 Intra-Clock Transfers
内部时钟传输(Intra-clock transfers)发生在FPGA核和来自内部PLL输出节点或管脚的源与目的时钟的寄存器到寄存器传输。Figure 6–22展示了一个内部时钟传输的例子。
I/O接口时钟传输 I/O Interface Clock Transfers
I/O接口时钟传输发生在数据从I/O端口到FPGA核(input)或者从FPGA核到I/O端口(output)时的时钟传输。Figure 6–24展示了一个I/O端口时钟传输的例子。
约束I/O总线不确定时间,你必须生成一个虚拟时钟来约束输入和输出管脚(使用以虚拟 时钟作为参考的set_input_delay和set_output_delay命令)。当set_input_delay或者set_output_delay命令以PLL输出作为参考时钟管脚时,虚拟时钟需阻止derive_clock_uncertainty命令应用于交互或者内部 时钟传输在I/O总线时钟传输的确定时 钟。
产生的虚拟时钟应该和驱 动I/O端口的源时钟具有相同的属性。例如,Figure 6–25展示了一个典型的具有时钟说明的输入I/O接口。
Example 6–17展示了用SDC命令来约束Figure 6–25中的I/O接口。
Example 6–17. SDC Commands to Constrain the I/O Interface
# Create the base clock for the clock port
create_clock –period 10 –name clk_in [get_ports clk_in]
# Create a virtual clock with the same properties of the base clock driving
# the source register
create_clock –period 10 –name virt_clk_in
# Create the input delay referencing the virtual clock and not the base
# clock
# DO NOT use set_input_delay –clock clk_in
# [get_ports data_in]
set_input_delay –clock virt_clk_in