Specman - Error: Cannot access null port expression
Specman - Error: Cannot access null port expression
我有一个具有以下功能的监视器 fields/events:
uart_env.e:
unit uart_monitor_u like uvm_monitor{
smp : uart_signal_map_u; //ptr to smp
keep smp == get_enclosing_unit(uart_env_u).smp;
kind : uart_monitor_u_kind_t;
};
uart_monitor.e:
extend uart_monitor_u{
!port_data_b : inout simple_port of bit; -- pointer to the data-bit port
event clk_e is rise (smp.port_uart_clk$) @sim;
event data_deassert is fall (port_data_b$) @uart_clk_e;
.......
.......
};
uart_rx_monitor.e:
extend RX uart_monitor_u{
keep soft port_data_b == smp.port_rxdi;
.....
.....
};
uart_types.e:
type uart_monitor_u_kind_t: [ RX, TX ];
uart_signal_map.e:
extend uart_signal_map_u {
p_def port_uart_clk bit;
p_def port_uart_clk_period real;
p_def port_resetn bit;
p_def port_br_clk_period real;
p_def port_uart_int bit;
p_def port_txdo bit;
p_def port_rxdi bit;
......
......
};
相关文件的编译顺序:
import uart_types;
import uart_env;
import uart_monitor;
import uart_rx_monitor;
由于某种原因,我在尝试编译时遇到了以下错误:
*** 错误:无法访问空端口表达式。
@uart_monitor 中的第 22 行
事件 data_deassert 是秋天 (port_data_b$) @uart_clk_e;
port_data_b 指针标记为 do-not-generate。所以它仍然是 NULL。
尝试删除“!”来自它
我有一个具有以下功能的监视器 fields/events: uart_env.e:
unit uart_monitor_u like uvm_monitor{
smp : uart_signal_map_u; //ptr to smp
keep smp == get_enclosing_unit(uart_env_u).smp;
kind : uart_monitor_u_kind_t;
};
uart_monitor.e:
extend uart_monitor_u{
!port_data_b : inout simple_port of bit; -- pointer to the data-bit port
event clk_e is rise (smp.port_uart_clk$) @sim;
event data_deassert is fall (port_data_b$) @uart_clk_e;
.......
.......
};
uart_rx_monitor.e:
extend RX uart_monitor_u{
keep soft port_data_b == smp.port_rxdi;
.....
.....
};
uart_types.e:
type uart_monitor_u_kind_t: [ RX, TX ];
uart_signal_map.e:
extend uart_signal_map_u {
p_def port_uart_clk bit;
p_def port_uart_clk_period real;
p_def port_resetn bit;
p_def port_br_clk_period real;
p_def port_uart_int bit;
p_def port_txdo bit;
p_def port_rxdi bit;
......
......
};
相关文件的编译顺序:
import uart_types;
import uart_env;
import uart_monitor;
import uart_rx_monitor;
由于某种原因,我在尝试编译时遇到了以下错误: *** 错误:无法访问空端口表达式。 @uart_monitor 中的第 22 行 事件 data_deassert 是秋天 (port_data_b$) @uart_clk_e;
port_data_b 指针标记为 do-not-generate。所以它仍然是 NULL。 尝试删除“!”来自它