13-and构造/intersect构造/or构造
资料来源
(1) SVA中的与或非(and_or_not) (qq.com)
(2) system verilog assertions应用指南
(3) 硅芯思见:【90】SVA中的序列表达式操作符 (qq.com)
1.and构造
(1) 二进制运算符“and”可以用来逻辑地组合两个序列。当两个序列都成功时整个属性才成功。
(2) 两个序列必须具有相同的起始点,但是可以有不同的结束点。
(3) 检验的起始点是第一个序列的成功时候的起始点,而检验的结束点是使得属性最终成功的另一个序列成功时的点。
2.and构造实例
序列s27a和s27b时两个独立的序列。属性p27将两者用运算符“and”组合起来。当两个序列都成功时,属性成功。
3.intersect构造
(1) “intersect”运算符和“and”运算符相似,它有一个额外要求: 两个序列必须在相同时刻开始且结束于同一时刻。换句话说,两个序列的长度必须相等。
(2) intersect两侧都是序列,不能是property;
4.intersect构造实例
属性p28检验与属性p27相同的情况。唯一的区别是它使用的是“intersect”构造而不是“and”构造。
5.or构造
(1) 二进制运算符“or”可以用来逻辑地组合两个序列。只要其中一个序列成功,整个属性就成功。
(2) 两个序列必须具有相同的起始点,但是可以有不同的结束点。
(3) 整个属性的成功点取决于最早匹配成功的sequence,只要两个序列有一个匹配成功,整个属性就认为匹配;
6.or构造实例
序列s29a和s29b时两个独立的序列。属性p29将两者用运算符“or”组合起来。当其中一个序列成功,整个属性就成功。