Vivado - 搜索层次结果导致“抱歉,由于此树中有大量节点,此操作不可用”
描述
我有一个大型项目,我正在设计源代码下的层次结构视图中查找特定文件。
但是,当我尝试搜索时,会收到一条弹出消息,说明以下内容:
抱歉,由于此树中有大量节点,此操作不可用
为什么会这样?
用于确定“大数”的数字是多少
有什么办法可以解决这个错误吗?
是否可以禁用或更改此限制的阈值?
解
层次结构视图主要是基于实例的视图。模块名称和文件名是相关的,易于使用,但主要是树中的每个节点代表模块(或VHDL中的实体 - 体系结构对)的唯一实例。
因此,即使文件数量相对较小,如果同一模块有多个实例,也可以轻松生成非常大的树。
当树中的节点数达到500左右时,搜索的性能开始下降。
当节点的数量远大于此时(已经看到有数百万甚至数十亿节点的有效设计),搜索的内存使用和运行时变得不切实际。
为了防止这种情况,只要树超过某个指定数量的节点,Vivado就不会提前构建整个树;相反,Vivado只构建顶级,然后在用户手动扩展时即时填充。
完成此操作后,必须禁用搜索和展开所有功能。
此限制设置为50,000个节点,最常见的是包含循环引用的设计。
要增加限制,请使用gui.sourceHierarchyLimit参数:
set_param gui.sourceHierarchyLimit < value >
如果您想分析Vivado看到的设计树以查看可能存在循环依赖关系或意外数量的节点的位置,您可以导出表示层次结构树的基础数据结构的设计图的文本视图或转储。
为此,请从Tcl控制台运行以下命令:
debug :: design_graph -dump_graph