Events 规格错误:改变|下降|上升的参数必须是(短)标量
我有一个现有的验证环境,具有长度为Events 规格错误:改变|下降|上升的参数必须是(短)标量,events,specman,e,Events,Specman,E,我有一个现有的验证环境,具有长度为LEN的简单端口。 此外,当只有一个相关端口位上升时,会发生以下事件: // Port declaration: port_a : inout simple_port of uint(bits:LEN) is instance; port_b : inout simple_port of uint(bits:LEN) is instance; ... // Events that use the ports for 1 moni
LEN
的简单端口。
此外,当只有一个相关端口位上升时,会发生以下事件:
// Port declaration:
port_a : inout simple_port of uint(bits:LEN) is instance;
port_b : inout simple_port of uint(bits:LEN) is instance;
...
// Events that use the ports for 1 monitor:
event event_a is rise (smp.port_a$[idx:idx])@clock;
event event_b is rise (smp.port_b$[idx:idx])@clock;
***有许多监视器,每个监视器都有自己的idx
、event\u a
和event\u b
问题是我需要将LEN
define更改为64,所有事件现在都失败,因为Specman无法在64位总线上定义事件(即使事件实际上仅在1位上“查看”)
你知道如何解决这个问题吗?感谢您的帮助。实际上,不支持这种形式的事件定义:
event event_a is rise (smp.port_a$[idx:idx])@clock;
在上升时间表达式中不支持位切片。(也记录在
“e语言引用”中的“事件”章节
如果您只对该64位信号的一位感兴趣,则可以将该端口定义为简单的\u位端口
并将位片放入hdl_路径中,如下所示:
idx:uint(bits:6);
keep idx==34; // the specific bit to this monitor.
port_a : in simple_port of bit is instance;
keep port_a.hdl_path()==read_only(append("signal_name[",idx,":",idx,"]"));
然后将事件定义为:
event event_a is rise(port_a$)@sim;