XILINX语法约束举例说明.docx
- 文档编号:11333809
- 上传时间:2023-05-31
- 格式:DOCX
- 页数:92
- 大小:37.17KB
XILINX语法约束举例说明.docx
《XILINX语法约束举例说明.docx》由会员分享,可在线阅读,更多相关《XILINX语法约束举例说明.docx(92页珍藏版)》请在冰点文库上搜索。
XILINX语法约束举例说明
XILINX语法约束举例说明
序号
页码
关键字
举例及描述
1.
10
TIMESPEC/FROMTO
TIMESPEC"TS01"=FROMFFSTOFFS30;
时序约束TS01规定从触发器到触发器的最大时间为30ns
2.
10
TIMESPEC/FROMTO
TIMESPEC"TS02"=FROMLATCHESTOLATCHES25;
时序约束TS02规定从锁存器到锁存器的最大时间为25ns
3.
10
TIMESPEC/FROMTO
TIMESPEC"TS03"=FROMPADSTORAMS70;
时序约束TS03规定从引脚到RAMS的最大时间为70ns
4.
10
TIMESPEC/FROMTO
TIMESPEC"TS04"=FROMFFSTOPADS55;
时序约束TS04规定从触发器到引脚的最大时间为55ns
5.
10
TIMESPEC/FROMTO
TIMESPEC"TS01"=FROMBRAMS_PORTATOBRAMS_PORTB(gork*);
时序约束TS01规定所有符合下列所有条件的路径:
1)从BRAMS_PORTA端口输出;2)从BRAMS_PORTB端口输入,并且BRAMS_PORTB端口的输出需要驱动与gork*相匹配的信号。
6.
10
NET/TNM_NET
NET"X"TNM_NET=BRAMS_PORTAgroupA;
时序分组groupA包含所有由网络X驱动的BRAMS_PORTA端口路径。
7.
10
NET/TNM_NET
NET"X"TNM_NET=BRAMS_PORTB(dob*)groupB;
时序分组groupA包含所有符合下列所有条件的BRAMS_PORTB路径:
1)由网络X驱动的BRAMS_PORTB端口;2)BRAMS_PORTB至少需要驱动1个与dob*匹配的信号。
8.
10
INST/TNM
INST"Y"TNM=BRAMS_PORTBgroupC;
时序分组groupC包含所有实例Y下的BRAMS_PORTB的端口。
9.
10
INST/TNM
INST"Y"TNM=BRAMS_PORTA(doa*)groupD;
时序分组groupD包含所有符合下列所有条件的路径:
1)属于实例Y下的BRAMS_PORTA的端口;2)BRAMS_PORTA至少需要驱动1个与doa*匹配的信号。
10.
10
TIMEGRP
TIMEGRP"groupE"=BRAMS_PORTA;
时序分组groupE包含所有双端口RAM单元中的A端口。
相当于BRAMS_PORTA(*)
11.
10
TIMEGRP
TIMEGRP"groupF"=BRAMS_PORTB(mem/dob*);
时序分组groupF包含所有双端口RAM单元中的,输出端驱动信号中包含mem/dob*信号的B端口
12.
10
名字限定语法
predefinedgroup(name_qualifier[name_qualifier])
预定义组名字限定语法。
其中name_qualifier是包含全部层级的,并由相应原语驱动的网络。
13.
22
NET/TNM_NET
NET"netname"TNM_NET=[predefined_group]identifier;
14.
29
Verilog
(*attribute_name*)
默认值为1。
与(*attribute_name="1"*)意义相同。
15.
29
Verilog
(*clock_buffer="IBUFG"*)inputCLK;
16.
29
Verilog
(*INIT="0000"*)reg[3:
0]d_out;
17.
29
Verilog
always@(current_stateorreset)
begin(*parallel_case*)(*full_case*)
case(current_state)
18.
30
Verilog
(*mult_style="pipe_lut"*)MULTmy_mult(a,b,c);
19.
32
疑问
NET"$SIG_0MAXDELAY"=10;
NET"$SIG_1MAXDELAY"=12ns;
疑问:
上面是否应将"$SIG_0MAXDELAY"改为"$SIG_0"MAXDELAY
20.
33
EXCEPT
TIMEGRP"input_pads"=PADSEXCEPToutput_pads;
时序分组input_pads是除output_pads分组外的所有引脚。
21.
33
保留字
NETnetOFFSET=IN20BEFORECLOCK;错误
NET"net"OFFSET=IN20BEFORECLOCK;正确
NET"$SIG_0"OFFSET=IN20BEFORECLOCK;正确
NET"~OUTSIG1"OFFSET=IN20BEFORECLOCK;正确
22.
33
通配符
NET"*AT?
"FAST;
将倒数第3、2个字符为AT的所有网络设置为高速属性。
23.
33
通配符
INST"$1I3*/ROM2"INIT=5555;
将指定ROM的初始值设置为16进制的5555。
24.
33
通配符
INST"/loads_of_logic/*"LOC=SLICE_X*Y8;
25.
34
Hierarchy
UCFDesignHierarchy
UCF设计的层级举例
26.
35
多重约束
INSTmyInstLOC=P53|IOSTANDARD=LVPECL33|SLEW=FAST;
蒋实例myInst放置在引脚P53,IO标准为LVPECL33,摆率设置为高速
27.
53
OFFSETIN/VALID/
BEFORE
OFFSET=INvalue1VALIDvalue2BEFOREclock;
全局约束,信号应在时钟clock之前value1时间有效,并且需要保持value2时间。
28.
53
TNM_NET
NET"SysCLk"TNM_NET="SysClk";
将由SysCLk网络驱动的路径定义到分组SysClk;
29.
53
TIMESPEC/PERIOD/
HIGH
TIMESPEC"TS_SysClk"=PERIOD"SysClk"5nsHIGH50%;
对分组"SysClk"进行周期时序约束,周期5ns,占空比50%
30.
53
OFFSETIN/VALID/
BEFORE
OFFSET=IN5nsVALID5nsBEFORE"SysClk";
信号应在时钟SysClk之前5ns有效,并且需要保持5ns。
31.
55
OFFSETIN/VALID/
BEFORE/RISING
OFFSET=INvalue1VALIDvalue2BEFOREclockRISING;
全局约束,信号应在时钟clock上升沿之前value1时间有效,并且需要保持value2时间。
32.
55
OFFSETIN/VALID/
BEFORE/FALLING
OFFSET=INvalue1VALIDvalue2BEFOREclockFALLING;
全局约束,信号应在时钟clock下降沿之前value1时间有效,并且需要保持value2时间。
33.
55
OFFSETIN/VALID/
BEFORE/FALLING
约束举例
NET"SysCLk"TNM_NET="SysClk";
TIMESPEC"TS_SysClk"=PERIOD"SysClk"5nsHIGH50%;
OFFSET=IN1.25nsVALID2.5nsBEFORE"sysClk"RISING;
OFFSET=IN1.25nsVALID2.5nsBEFORE"sysClk"FALLING;
34.
57
周期约束
NET"ClockName"TNM_NET="TNM_NET_Name";
建立以网络ClockName驱动的约束组TNM_NET_Name。
TIMESPEC"TS_name"=PERIOD"TNM_NET_Name"PeriodValueHIGHHighValue%;
对约束组TNM_NET_Name进行周期约束TS_name,周期值为PeriodValue,周期的开始脉冲为高,占空比为HighValue%
35.
57
周期约束举例
NET"ClkIn"TNM_NET="ClkIn";
建立以网络ClkIn驱动的约束组ClkIn。
TIMESPEC"TS_ClkIn"=PERIOD"ClkIn"5nsHIGH50%;
对约束组ClkIn进行周期约束TS_ClkIn,周期值为5ns,周期的开始脉冲为高,占空比为50%。
TS_ClkIn的值为5ns
36.
57
相关周期
约束语法
NET"PrimaryClock"TNM_NET="TNM_Primary";
建立以网络PrimaryClock驱动的约束组TNM_Primary
NET"RelatedClock"TNM_NET="TNM_Related";
建立以网络RelatedClock驱动的约束组TNM_Related
TIMESPEC"TS_primary"=PERIOD"TNM_Primary"PeriodValueHIGHHighValue%;
对约束组TNM_Primary进行周期约束TS_primary,周期值为PeriodValue,周期的开始脉冲为高,占空比为HighValue%。
注意:
TS_primary中的字母都需要采用大写
TIMESPEC"TS_related"=PERIOD"TNM_Related"TS_Primary_relationPHASEvalue;
对约束组TNM_Related进行周期约束TS_related,周期值为同TS_primary相关值,相位值为value
37.
58
相关周期
约束举例
NET"Clk1X"TNM_NET="Clk1X";
建立以网络Clk1X驱动的约束组Clk1X。
NET"Clk2X180"TNM_NET="Clk2X180";
建立以网络Clk2X180驱动的约束组Clk2X180。
TIMESPEC"TS_Clk1X"=PERIOD"Clk1X"5ns;
对约束组Clk1X进行周期约束TS_Clk1X(字母必须全部为大写?
),周期值为5ns
TIMESPEC"TS_Clk2X180"=PERIOD"Clk2X180"TS_Clk1X/2PHASE+1.25ns;
对约束组Clk2X180进行周期约束TS_Clk2X180,周期为TS_Clk1X/2=2.5ns,相位比TS_Clk1X提前1.25ns
38.
59
异步时钟域
设置举例
DATAPATHONLY
NET"CLKA"TNM_NET=FFS"GRP_A";
建立以网络CLKA驱动的寄存器时序分组GRP_A。
NET"CLKB"TNM_NET=FFS"GRP_B";
建立以网络CLKB驱动的寄存器时序分组GRP_B。
TIMESPECTS_Example=FROM"GRP_A"TO"GRP_B"5nsDATAPATHONLY;
对约束组GRP_A到GRP_B的最大路径时间进行约束,最大值为5ns
39.
61
全局输出
偏置约束语法
OFFSET=OUTvalue1VALIDvalue2AFTERclock;
全局约束,输出信号在clock后value1时间内有效,并且保持最小value2时间。
40.
62
全局输出
偏置约束举例
NET"ClkIn"TNM_NET="ClkIn";
OFFSET=OUT5nsAFTER"ClkIn";
输出信号应在ClkIn有效后5ns之内有效。
41.
63
REFERENCE_PIN
源同步输出
偏移设置语法
OFFSET=OUTAFTERclockREFERENCE_PIN"REF_CLK"RISING;
OFFSET=OUTAFTERclockREFERENCE_PIN"REF_CLK"FALLING;
42.
63
REFERENCE_PIN
源同步输出
偏移设置举例
NET"ClkIn"TNM_NET="ClkIn";
OFFSET=OUTAFTER"ClkIn"REFERENCE_PIN"ClkOut"RISING;
OFFSET=OUTAFTER"ClkIn"REFERENCE_PIN"ClkOut"FALLING;
43.
65
FROMTO/TIG
TIMESPEC"TSid"=FROM"SRC_GRP"TO"DST_GRP"TIG;
忽略从SRC_GRP到DST_GRP的时序约束。
44.
65
TIG举例
NET"CLK1"TNM_NET=FFS"GRP_1";
NET"CLK2"TNM_NET=FFS"GRP_2";
TIMESPECTS_Example=FROM"GRP_1"TO"GRP_2"TIG;
忽略从GRP_1到GRP_2的时序约束。
45.
65
多周期路径
约束语法
TIMESPEC"TSid"=FROM"MC_GRP"TO"MC_GRP"value;
设置从MC_GRP到MC_GRP的最大路径延迟为value
46.
66
多周期路径
约束举例
NET"CLK1"TNM_NET="CLK1";
TIMESPEC"TS_CLK1"=PERIOD"CLK1"5nsHIGH50%;
NET"Enable"TNM_NET=FFS"MC_GRP";
TIMESPECTS_Example=FROM"MC_GRP"TO"MC_GRP"TS_CLK1*2;
设置从MC_GRP到MC_GRP的最大路径延迟为TS_CLK1*2=10ns
47.
68
AREA_GROUP
INST"X"AREA_GROUP=groupname;
将实例X放入区域组groupname
48.
68
AREA_GROUP/RANGE
AREA_GROUP"Groupname"RANGE=range;
将区域组groupname约束到范围range
49.
68
AREA_GROUP/COMPRESSION
AREA_GROUP"Groupname"COMPRESSION=percent;
将区域组groupname进行压缩,将逻辑压缩到由percent设置的百分比。
注意:
BRAM,DSP块,乘法器等不能被压缩。
50.
68
AREA_GROUP/GROUP
AREA_GROUP"Groupname"GROUP={OPEN|CLOSED};
允许/禁止区域组groupname外的逻辑与组内的逻辑结合
51.
68
AREA_GROUP/
PLACE
AREA_GROUP"Groupname"PLACE={OPEN|CLOSED};
允许/禁止区域组groupname外的逻辑放置到区域组定义的范围内
52.
69
RANGE
RANGE=SLICE_X#Y#:
SLICE_X#Y#
53.
69
RANGE
RANGE=RAMB16_X#Y#:
RAMB16_X#Y#
54.
69
RANGE
RANGE=MULT18X18_X#Y#:
MULT18X18_X#Y#
55.
69
AREA_GROUP/RANGE
AREA_GROUP"Groupname"RANGE=CLOCKREGION_X#Y#;
将区域组groupname约束到器件的时钟域CLOCKREGION_X#Y#
56.
69
AREA_GROUP/RANGE
AREA_GROUP"group_name"RANGE=CLOCKREGION_X#Y#:
CLOCKREGION_X#Y#;
将区域组groupname约束到器件的时钟域CLOCKREGION_X#Y#:
CLOCKREGION_X#Y#范围
57.
69
AREA_GROUP/RANGE
AREA_GROUP"Groupname"RANGE=CLOCKREGION_X#Y#,CLOCKREGION_X#Y#,...,;
将区域组groupname约束到器件的时钟域CLOCKREGION_X#Y#,CLOCKREGION_X#Y#,...,等位置
58.
69
AREA_GROUP
错误语法举例
INST"RM_data_control"AREA_GROUP="RR_RM_data_control";
AREA_GROUP"RR_RM_data_control"RANGE=SLICE_X0Y44:
SLICE_X27Y20,DSP48_X0Y25:
DSP48_X0Y14;
上述为错误RANGE约束举例。
DSP48_X0Y25:
DSP48_X0Y14约束将被忽略。
59.
69
AREA_GROUP
正确语法举例
INST"RM_data_control"AREA_GROUP="RR_RM_data_control";
AREA_GROUP"RR_RM_data_control"RANGE=SLICE_X0Y44:
SLICE_X27Y20;
AREA_GROUP"RR_RM_data_control"RANGE=DSP48_X0Y25:
DSP48_X0Y14;
上述为正确RANGE约束举例
60.
74
AREA_GROUP/RANGE
INST"state_machine_X"AREA_GROUP=group1;
将实例state_machine_X的内容放入区域约束组group1
AREA_GROUP"Group1"RANGE=SLICE_X1Y1:
SLICE_X10Y10;
将区域约束组group1的内容约束到SLICE_X1Y1~SLICE_X10Y10的范围
61.
75
TIMEGRP/AREA_GROUP
TIMEGRPtiming_group_nameAREA_GROUP=area_group_name;
将时序分组timing_group_name的内容定义为区域约束组area_group_name
62.
75
TIMEGRP/AREA_GROUP
NET"clk"TNM_NET="clock";
TIMESPEC"TS_clk"=PERIOD"clock"10MHz;
TIMEGRP"clock"AREA_GROUP="clock_area";
建立同网络clk相关的时序分组clock;时序分组clock的时钟周期约束为10NHz;以时序分组clock的内容定义为区域约束组clock_area。
63.
76
verilog/ASYNC_REG
(*ASYNC_REG="{TRUE|FALSE}"*)
verilog语法举例
64.
76
INST/ASYNC_REG
INST"instance_name"ASYNC_REG={TRUE|FALSE};
UCF语法举例。
默认值(不进行ASYNC_REG设置时)为FALSE;若ASYNC_REG的设置值为空,则认为是TRUE。
65.
78
verilog/BEL
(*BEL="{value}"*)
BEL的verilog语法
66.
78
BEL
INST"instance_name"BEL={value};
67.
78
BEL
INST"upper_BRAM_instance_name"LOC=RAMB36_XnYn|BEL=UPPER;
INST"lower_BRAM_instance_name"LOC=RAMB36_XnYn|BEL=LOWER;
BEL的UCF语法
68.
78
BEL
INST"ramb18_inst0"LOC=RAMB36_X0Y2|BEL=UPPER;
INST"ramb18_inst1"LOC=RAMB36_X0Y2|BEL=LOWER;
BEL的UCF语法举例
69.
78
BEL
INST"xyzzy"BEL=FFX;
将xyzzy固定到slice中的FFX处。
70.
79
BLKNM
NET"net_name"BLKNM=property_value;
BLKNM的UCF语法
71.
80
verilog/BLKNM
(*BLKNM="blk_name"*)
BLKNM的verilog语法
72.
80
BLKNM
INST"instance_name"BLKNM=block_name;
BLKNM的UCF语法
73.
80
BLKNM
INST"$1I87/block1"BLKNM=U1358;;
为实例block1分配的逻辑块名为U1358
74.
82
BUFG
(*BUFG="{CLK|OE|SR|DATA_GATE}"*)
BUFG的verilog语法
75.
82
BUFG
NET"net_name"BUFG={CLK|OE|SR|DATA_GATE};
INST"instance_name"BUFG={CLK|OE|SR|DATA_GATE};
UCF语法
76.
82
BUFG
NET"fastclk"BUFG=CLK;
为网络fastclk分配全局时钟网络
77.
83
CLOCK_DEDICATED
_ROUTE
PIN"BEL_INSTANCE_NAME.PIN"CLOCK_DEDICATED_ROUTE={TRUE|FALSE};
为"BEL_INSTANCE_NAME.PIN"引脚分配/不分配
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- XILINX 语法 约束 举例说明
![提示](https://static.bingdoc.com/images/bang_tan.gif)