在写.sdc约束文件时,要做的第一件事情就是使用create_clock对进入FPGA的时钟进行约束。其语法格式如下:
create_clock[-add] [-name <clock_name>] -period [-waveform<edge_list>]
参数解释:
-name表示生成的时钟名称
-period表示时钟周期,单位为ns
-waveform可以详细描述时钟占空比及其上下移位置
端口列表
-add用于为一个端口添加多个时钟约束
例子:
create_clock-period 10 -name clk_100 [get_ports clk]
生成了一个周期为10ns占空比为50%的时钟,其名字为clk_100,其端口名为clk
create_clock-period 10 -waveform {8 12} -name clk [get_ports clk]
生成一个周期为10ns上升沿8ns,下降沿2ns的时钟
create_clock-period 10 -name clk_100 [get_ports clk]
create_clock-perioid 6.6 -name clk_150 -add [get_ports clk]
在clk一个端口上生成两个时钟,其周期分别为10ns和6.6ns。如果一个系统中同一个端口在不同时刻会有多种时钟输入,可以使用-add参数。否则,如果不添加-add参数,后面定义的时钟无效。
注1:
在Tcl语法中[]表示命令替换,因此[get_portsfpga_clk]将执行一个命令找到设计中与fpga_clk名字相符的端口。
注2:
Tcl与SDC是大小写敏感的,因此需确认fpga_clk与设计中的端口名称完全一致的
ref
常用时序分析SDC:http://wenku.baidu.com/view/a70221d543323968001c92dc.html?re=view
静态时序分析基本原理:http://wenku.baidu.com/view/36a7978ad0d233d4b14e6930.html
#Crete clock
crete _clock-period 20 [get_port clk];
约束输入为50MHZ全局输入时钟。