首页 > 解决方案 > Specman e:同时发生的事件错误

问题描述

在我的环境中,我有一个信号不能在两个时间点之间改变。为了验证它,我使用expect规则:

my_signal : uint; 
event first_e; -- First time point
event second_e; -- Second time point
expect @first_e => {[0..]*(not {change(my_signal)}); @second_e} @clock;

问题是@second_e并且change(my_signal)发生在同一个周期(并且没关系)但expect规则失败。

你知道如何解决它吗?也许有一些方法可以指定事件顺序或告诉在同一个周期发生是可以的?

谢谢您的帮助

标签: specmane

解决方案


您的序列没有指定相同的周期是可以的。

尝试这个:

event my_sig_change is change(my_signal)@clock;
expect @first_e => {[0..]* not @my_sig_change; @second_e or (@second_e and @my_sig_change) } @clock;

推荐阅读