有没有一种方法/变通办法有条件地使用UCF文件中的语句,或者是否可以有条件地将UCF文件包含到其他UCF文件中?
我面临的问题是我有一个带有一组泛型的顶层模块,这些泛型通过generate语句有条件地实例化或从顶层模块中删除某些子模块。
但是,这些子模块中的大多数都有在项目UCF文件中定义的时序约束。
在map或par期间,构建过程被中止,指出UCF文件所引用的实例不存在(这是正确的,因为由于在顶部模块中选择了泛型而从未创建该实例)。
实现某种“条件约束”的最佳方法是什么,它可以避免此问题? (除了在我的UCF文件中四处张望的明显的预处理器/脚本之外)
PS:我正在使用Xilinx ISE 14.4 / Vivado 2012.4命令行工具。
最佳答案
这个问题已经问过几次了:
http://forums.xilinx.com/t5/Design-Entry/include-and-ifdef-for-ucf-files/td-p/77822
http://forums.xilinx.com/t5/Design-Entry/Conditional-inclusion-of-ucf-files/td-p/195684
简短的答案是否定的,不幸的是不可能。
最好的选择是创建2个独立的UCF文件,并创建一个脚本来指向一个或另一个,或者在每次打开/关闭通用开关时手动替换它。