fpga系列 HDL:Quartus II 时序约束 静态时序分析 (STA) test.out.sdc的文件结构
test.out.sdc的文件结构
## Generated SDC file "test.out.sdc"## Copyright (C) 1991-2013 Altera Corporation
## Your use of Altera Corporation's design tools, logic functions
## and other software and tools, and its AMPP partner logic
## functions, and any output files from any of the foregoing
## (including device programming or simulation files), and any
## associated documentation or information are expressly subject
## to the terms and conditions of the Altera Program License
## Subscription Agreement, Altera MegaCore Function License
## Agreement, or other applicable license agreement, including,
## without limitation, that your use is for the sole purpose of
## programming logic devices manufactured by Altera and sold by
## Altera or its authorized distributors. Please refer to the
## applicable agreement for further details.## VENDOR "Altera"
## PROGRAM "Quartus II"
## VERSION "Version 13.0.1 Build 232 06/12/2013 Service Pack 1 SJ Web Edition"## DATE "Fri Dec 13 16:31:06 2024"##
## DEVICE "EP4CGX15BF14C6"
###**************************************************************
# Time Information 时间信息
# 设置时间单位为 纳秒 (ns),小数点后保留 3 位精度:set_time_format -unit ns -decimal_places 3
#**************************************************************set_time_format -unit ns -decimal_places 3 #**************************************************************
# Create Clock 设置物理时钟
#**************************************************************create_clock -name {clk1} -period 40.000 -waveform { 0.000 20.000 } [get_ports {clk}]#**************************************************************
# Create Generated Clock
# Generated Clock(生成时钟) 是从基础参考时钟派生出来的时钟信号。它可以通过 PLL、时钟分频器、倍频器、移相器、逻辑网络等生成
#**************************************************************#**************************************************************
# Set Clock Latency 时钟延迟
# Source Latency(源延迟)
# set_clock_latency -source 3.0 [get_clocks {clk1}]:时钟从外部晶振到 FPGA 输入端口的延迟为 3.0 ns
# 时钟信号从源头(如 PLL 或晶振)传输到 FPGA 或 ASIC 芯片的输入端口所需的时间。通常与 PCB 布线相关。
# Network Latency(网络延迟)
# set_clock_latency -network 2.0 [get_clocks {clk1}] :时钟从 FPGA 输入端口传播到目标寄存器的内部延迟为 2.0 ns
# 时钟从 FPGA 或 ASIC 的输入端口进一步传播到内部逻辑(如寄存器)的路径延迟。与时钟树综合 (Clock Tree Synthesis, CTS) 相关,反映时钟在芯片内部的分发延迟。
#**************************************************************#**************************************************************
# Set Clock Uncertainty 设置时钟不确定性
#**************************************************************set_clock_uncertainty -rise_from [get_clocks {clk1}] -rise_to [get_clocks {clk1}] 0.020
set_clock_uncertainty -rise_from [get_clocks {clk1}] -fall_to [get_clocks {clk1}] 0.020
set_clock_uncertainty -fall_from [get_clocks {clk1}] -rise_to [get_clocks {clk1}] 0.020
set_clock_uncertainty -fall_from [get_clocks {clk1}] -fall_to [get_clocks {clk1}] 0.020 #**************************************************************
# Set Input Delay 外部输入信号“相对于时钟”的延迟
# set_input_delay -clock clk 5 [get_ports data_in]
#**************************************************************#**************************************************************
# Set Output Delay 信号从时钟的边沿触发到达到输出端口的时间延迟
# set_output_delay -clock clk 8 [get_ports out_data] 外部设备要求信号输出延迟为 8 ns
#**************************************************************#**************************************************************
# Set Clock Groups 时钟分组
# 时钟分组,组内的时钟被认为是同步的,而组间的时钟是异步的,不会进行跨组时序分析
# set_clock_groups -group {clk1 clk2} -group {clk3 clk4} -asynchronous
# 还可定义互斥时钟(只有一个时钟会被激活) set_clock_groups -group {clk1 clk2} -exclusive
#**************************************************************#**************************************************************
# Set False Path
# 告诉时序分析工具忽略这些“非关键路径”(False Path),它们在运行时不需要满足严格的时序要求
#**************************************************************#**************************************************************
# Set Multicycle Path
#**************************************************************#**************************************************************
# Set Maximum Delay 信号从源端到目的端的最大允许传播时间、防止 Setup 时间违例(信号到达太晚)
#**************************************************************#**************************************************************
# Set Minimum Delay 信号从源端到目的端的最小传播时间、防止 Hold 时间违例(信号到达太早)
#**************************************************************#**************************************************************
# Set Input Transition
#**************************************************************
生成时钟+创建test.out.sdc文件
- 未设置时钟之前的默认设置:
- 打开 TOOL–>Timing Analyzer
- Create Timeing Netlist && Read SDC file
- 创建时钟:
- 保存为SDC文件
- 在项目中打开刚才的sdc文件,再进行编译
- 也可以直接在创建文件时选择然后编辑sdc文件,再进行编译