篇6-禁止属性not,蕴含操作符(交叠蕴含与非交叠蕴含)
1.禁止属性
当期望属性为假时,可以采用关键词not,用来表示属性永远不为真.
2.蕴含/implication
(1) 蕴含等效于if-then结构,蕴含左边的叫做"先行算子",右边叫做"后续算子";
(2) 先行算子是约束条件;当先行算子成功时,后续算子才会被计算;如果先行算子不成功,那么整个属性就默认地认为成功,这叫做"空成功";
(3) 蕴含结构只能被用在属性定义中,不能在序列中使用;
(4) 补充:为什么使用蕴含?
(1)上图中p7在每一个时钟上升沿寻找序列的有效开始,即在每个时钟上升沿检查信号a是否为高;如果a在给定的任何时钟上升沿不为高,检验器将产生一个错误信息;但这并不是一个有效的错误信息,因为并不关心只检查信号a的电平; 这个错误表明在这个时钟周期没有得到检验器的有效起始点;
(2)为了避免上图中写法引入的大量错误信息,属性需要被定义为在检查的起始点无效时忽略这次检查,这时需要采用蕴含;
2.1交叠蕴含/overlapped implication/|->
交叠蕴含用符号“|->”表示。如果先行算子匹配,在同一个时钟周期计算后续算子表达式。
2.2非交叠蕴含/non-overlapped implication/|=>
非交叠蕴含用符号“|=>”表示。如果先行算子匹配,在下一个时钟周期计算后续算子表达式。后续算子表达式的计算总是有一个时钟周期的延迟。
3.蕴含的扩展
3.1 后续算子带固定延迟的蕴含
3.2 使用序列作为先行算子的蕴含
下图中,1s,2s,3s表示属性的有效开始;