该命令按类型和名称定位对象。命令的参数按对象类型分组。
1、语法
find nets | signals <object_name> … [-internal] [-nofilter] {[-in] [-inout] [-out] | [-ports]}
[-recursive]
find instances | blocks {<object_name> … | -bydu <design_unit> | -file <file_name>}
[-arch] [-protected] [-recursive] [-nodu]
find virtuals <object_name> … [-kind <kind>] [-unsaved] [-recursive]
find classes [<class_name>]
find objects [-class <class_name>] [-isa <class_name>] [<object_name>]
2、描述
find命令使用以下规则来定位对象:
•如果名称不包括数据集名称,则使用当前数据集。
•如果名称不是以路径分隔符开头,则使用当前上下文。
•如果名称是路径分隔符,后跟不是顶级设计单元名称的名称,则使用设计中的第一个顶级设计单元。
•对于包含层次化路径的相对名称,如果在当前上下文中找不到第一个对象名称,则向上搜索到设计层次结构的顶部,以查找匹配的对象名称。
•如果在指定的上下文中找不到指定名称的对象,则执行向上搜索,以在任何可见的封闭范围内查找匹配的对象,直到实例边界。如果在给定上下文中找到至少一个匹配,则不执行(更多)向上搜索;因此,当使用通配符时,如果某些对象在较高的封闭范围内,则在给定上下文中可能可见的对象将不会被找到。
•通配符“*”和“?”可以在名称的任何级别上使用,但数据集名称和切片规范内部除外。也可以使用方括号([])通配符。
•通配符永远不会与路径分隔符匹配。例如,/dut/*将匹配/dut/siga和/dut/clk。然而,/dut*与这两个都不匹配。
•由于方括号是find命令中的通配符,因此只有括号(())可以用于索引或切片数组。<