设置成员操作符–inside
SystemVerilog增加了一个检测是否集合中–员的操作符,这个操作符的关键字是inside。
logic [2:0] a; if(a inside{3'b001,3'b010,3'b100}) //等价if((a==3'b001)||(a==3'b010)||(a==3'b100)) ...
使用inside操作符可以方便的比较一个数值和多个可能值之间的关系。
用inside操作符,需要和第一个值进行比较的数值集合可以是其他信号。
if(data inside{bus1,bus2,bus3,bus4})
数值集合也可以是一个数组。
int d_array[0:1023]; if(13 inside d_array) ...
inside操作符可以使用Z或X(X还可以用?表示)来表示无关条件。
logic [2:0] a; if(a inside{3'b1?1}) ... //如果a含有3'b101、3'b111、3'b1x1、3'b1z1值结果都为真。
nside操作符合casex语句看上去很类似,但是两者有两个重要的区别。首先,inside操作符可以和if判断和case语句一块使用。其次,casex语句将操作符两边的Z和X都当作无关位,而inside只把inside关键字之后(表达式右边)一系列表达式中的Z和X值当作无关位,而在关键字inside前的第一个操作数中的位不视为无关位。
标签:语句,...,无关,--,inside,关键字,操作符 From: https://www.cnblogs.com/hc-zheng/p/17823719.html