在sgdc中,通配符*只保留最后个匹配到的字符。
因此约束语句sync_cell -name test1 -to_clk "clk[*]"和sync_cell -name test2 -to_clk "clk[*]"其实都是只对clk[2]生效。相当于sync_cell -name test1 -to_clk "clk[2]" 和sync_cell -name test2 -to_clk "clk[2]
分析依据:
sg中有如下rule进行描述。
由于sgdc是解析后的约束语句,因此每条语句只会匹配一个object。
实验结果:
1.只保留test1作为sync_cell,同时存在clk[1]和clk[2]的cdc路径,结果clk[1]同步失败,clk[2]同步成功
2.不使用通配符时,将test1同时约束未clk[1]和clk[2]的sync_cell,两条cdc路径都同步成功