欢迎来到天天文库
浏览记录
ID:12691832
大小:28.00 KB
页数:3页
时间:2018-07-18
《ucf文件中时序约束的语法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、UCF文件中时序约束的语法admin发表于:2009-1-1713:57来源:FPGA设计网约束UCF文件,从ConstrainsEditor直接输入是最方便、最直接的添加约束的方法了。我总结了以下几种常用的语法:1)周期约束PERIOD约束是一个基本时序和综合约束,它附加在时钟网线上,时序分析工具根据PERIOD约束检查时钟域内所有同步元件的时序是否满足要求,它将检查与同步时序约束端口相连接的所有路径的延迟,但是不会检查PAD到寄存器的路径。附加时钟周期约束的首选方法(PreferredMethod)语法如下:TIMESPEC “
2、TSidentifier”=PERIOD“TNM_reference” period {HIGH
3、LOW}[high_or_low_time]其中“[]”内为可选项,“{}”为必选项,参数period为要求的时钟周期,可以使用ps、ns、us或者ms等单位,大小写都可以,缺省单位为ns。HIGH
4、LOW关键词指出时钟周期里的第一个脉冲是高电平还是低电平,而high_or_low_time为脉冲的延续时间,缺省单位也是ns,如果不提供该项,则缺省占空比为50%。TIMESPEC是一个基本时序相关约束标识,表示本约束为时序规范。TSi
5、dentifier包括字母TS和一个标识符identifier(为ASCII码字符串)共同组成一个时序规范。例如定义时钟周期约束时,首先在时钟网线clk上附加一个TNM_NET约束,把clk驱动的所有同步元件定义为一个名为sys_clk的分组,然后使用TIMESPEC约束定义时钟周期。NET“clk”TNM_NET=”sys_clk”;TIMESPEC“TS_sys_clk”=PERIOD“sys_clk”50HIGH30;而定义派生时钟的语法如下:TIMESPEC“TSidentifier_2”=PERIOD“timegroup_n
6、ame”“TSidentifier_1”[*or/]factorPHASE[+
7、-]phase_value[units];其中TSidentifier_2为要定义的派生时钟,TSidentifier_1为已经定义的时钟,factor指出两者周期的辈出关系,是一个浮点数。phase_value指出两者之间的相位关系,为浮点数。例如:定义主时钟clk0:TIMESPEC“TS01”=PERIOD“clk0”10.0ns;定义派生时钟clk180,其相位与主时钟相差180°:TIMESPEC“TS02”=PERIOD“clk180”TS01
8、PHASE+5.0ns;定义派生时钟clk180_2,其周期为主时钟的1/2,并延迟2.5ns:TIMESPEC“TS03”=PERIOD“clk180_2”TS01/2PHASE+2.5ns;2)偏移约束偏移约束规定了外部时钟和数据输入输出引脚之间的时序关系,只用于与PAD相连的信号,不能用于内部信号。使用该约束可以为综合实现工具指出输入数据到达的时刻,或者输出数据稳定的时刻,从而在综合实现中调整布局布线过程,使正在开发的FPGA/CPLD的输入建立时间以及下一级电路的输入建立时间满足要求。基本语法如下:OFFSET={IN
9、OUT
10、}“offset_time”[units]{BEFORE
11、AFTER}“clk_name”[TIMEGRP“group_name”];其中{IN
12、OUT}说明约束的是输入还是输出,offset_time为FPGA引脚数据变化与有效时钟沿之间的时间差,BEFORE
13、AFTER说明该时间差在有效时钟沿的前面还是后面,TIMEGRP“group_name”定义了约束的触发器组,缺省时约束该时钟驱动的所有触发器。3)分组约束使用TNM(TimingName)约束可以选出构成一个分组的元件,并赋予一个名字,以便给它们附加约束。TNM_NET(t
14、imingnamefornets)约束只加在网线上,其作用与TNM加在网上时基本相同,即把该网线所在路径上的所有有效同步元件作为命名组的一部分。不同之处在于当TNM约束加在PADNET上时,TNM的值将被赋予PAD,而不是该网线所在的路径上的同步元件,即TNM约束不能穿过IBUF。而用TNM_NET约束就不会出现这种情况。4)专门约束附加约束的一般策略是首先附加整体约束,例如PERIOD、OFFSET等,然后对局部的电路附加专门约束,这些专门约束通常比整体约束宽松,通过在可能的地方尽量放松约束可以提高布线通过率,减小布局布线的时间。F
15、ROM_TO约束在两个组之间定义时序约束,对两者之间的逻辑和布线延迟进行控制,这两个组可以是用户定义的,也可以是与定义的。用户可以使用TNM_NET、TNM和TIMEGRP定义组,而与定义组主要包括FFS、LATCHES
此文档下载收益归作者所有