UCF文件的语法说明
UCF文件的语法说明1.语法
UCF文件的语法为:
{NET|INST|PIN} "signal_name" Attribute;
其中,“signal_name”是指所约束对象的名字,包含了对象所在层次的描述;“Attribute”为约束的具体描述;语句必须以分号“;”结束。可以用“#”或“/* */”添加注释。需要注意的是:UCF文件是大小写敏感的,信号名必须和设计中保持大小写一致,但约束的关键字可以是大写、小写甚至大小写混合。例如:
NET "CLK" LOC = P30;
“CLK”就是所约束信号名,LOC = P30;是约束具体的含义,将CLK信号分配到FPGA的P30管脚上。
对于所有的约束文件,使用与约束关键字或设计环境保留字相同的信号名会产生错误信息,除非将其用" "括起来,因此在输入约束文件时,最好用" "将所有的信号名括起来。
2.通配符
在UCF文件中,通配符指的是“*”和“?”。“*”可以代表任何字符串以及空,“?”则代表一个字符。在编辑约束文件时,使用通配符可以快速选择一组信号,当然这些信号都要包含部分共有的字符串。例如:
NET "*CLK?" FAST;
将包含“CLK”字符并以一个字符结尾的所有信号,并提高了其速率。
在位置约束中,可以在行号和列号中使用通配符。例如:
INST "/CLK_logic/*" LOC = CLB_r*c7;
把CLK_logic层次中所有的实例放在第7列的CLB中。
3.定义设计层次
在UCF文件中,通过通配符*可以指定信号的设计层次。其语法规则为:
* 遍历所有层次
Level1/* 遍历level1及以下层次中的模块
Level1/*/ 遍历level1种的模块,但不遍历更低层的模块
例4-5 根据图4-75所示的结构,使用通配符遍历表4-3所要求的各个模块。
图4-75 层次模块示意图
表4-3 要求遍历的符号列表
谢谢分享! UCF文件的语法说明
页:
[1]