描述
INST“* / data_out_reg_r”TNM =“group1”;
%get_cells * / data_out_reg_r
警告:[Vivado 12-180]没有单元格匹配’* / data_out_reg_r’。
%get_cells -hier * / data_out_reg_r
警告:[Vivado 12-180]没有单元格匹配’* / data_out_reg_r’。
%get_cells a_inst / b_inst / c_inst / data_out_reg_r
a_inst / b_inst / c_inst / data_out_reg_r
解
在Vivado中,通配符*不会跨层次结构解析。
在Vivado中查询对象时,对象层次结构名称中表示保留层次结构边界(1)的“/”字符不能替换为通配符*。
这就像Vivado中的场景一样,其中所有层次结构都是扁平化的,并且所有设计对象都处于同一级别。
“get_cells -hier * / data_out_reg_r”在所有级别的层次结构中搜索名为“* / data_out_reg_r”的单元格。
所以这两个命令不会返回任何对象。
要返回正确的对象,应使用以下命令之一。
get_cells * / * / * / data_out_reg_rget_cells -hier data_out_reg_rget_cells -hier -filter {NAME =〜* / data_out_reg_r}get_cells -hier -regexp。* data_out_reg_r
get_cells -hier -filter {NAME =〜* / data_out_reg_r}
例如,对于引脚“a_inst / b_inst / c_inst / data_out_reg_r / Q”,最后一个“/”是引脚名称“data_out_reg_r / Q”的一部分。
另一个“/”是层次结构分隔符。
虽然最后一个“/”不是层次结构分隔符,但它仍然不能被通配符*替换。
get_pins * / * / * / data_out_reg_r / Q.get_pins -hier data_out_reg_r / Q.get_pins -hier data_out_reg_r / *get_pins -hier * / Q.
%get_pins * Q.警告:[Vivado 12-508]没有引脚匹配’* Q’。%get_pins a_inst / b_inst / c_inst / data_out_reg_r *警告:[Vivado 12-508]没有引脚匹配’a_inst / b_inst / c_inst / data_out_reg_r *’。%get_pins -hier Q.警告:[Vivado 12-508]没有引脚匹配’Q’。%get_pins a_inst / b_inst / c_inst / *—此命令返回c_inst边界上的分层引脚(例如a_inst / b_inst / c_inst / I1),但不返回此层次结构中的任何引脚。
但是,当设计层次结构变平时,对象的名称将变为“a_inst / b_inst / c_inst / data_out_reg_r”,因为所有对象都处于同一级别。
没有回复内容