во время выполнения моего кода у меня есть фатальная ошибка в коде элемента последовательности:
Fatal: (SIGSEGV) Плохая ручка или ссылка. Время: 7 нс. Итерация: 1 Процесс: / uvm_pkg :: uvm_task_phase :: execute / # FORK # 137 (# ublk # 215181159 # 137) _4f630787 Файл: SB.sv
Фатальная ошибка в функции top_sv_unit / _seq_item :: отобразить в SEQ_ITEM.sv строка 61
Код позиции последовательности указан ниже:
typedef enum{
aw_phase,
w_phase,
b_phase,
ar_phase,
r_phase
} phases;
class _seq_item extends uvm_sequence_item;
`uvm_object_utils(_seq_item)
phases phase1;
rand logic [3:0]awid;
rand logic [31:0]awaddr;
rand logic [7:0]awlen;
rand logic [2:0]awsize;
rand logic [1:0]awburst;
rand logic [1:0]awlock;
rand logic [3:0]awcache;
rand logic [2:0]awprot;
//write_data_phase
rand logic [3:0]wid;
randc logic [31:0]wdata[15:0];
rand logic [3:0]wstrb[15:0];
rand logic wlast;
//write_resp_phase
rand logic [3:0] bid;
rand logic [1:0] bresp;
//read_address_phase
rand logic [3:0]arid;
rand logic [31:0]araddr;
rand logic [7:0]arlen;
rand logic [2:0]arsize;
rand logic [1:0]arburst;
rand logic [1:0]arlock;
rand logic [3:0]arcache;
rand logic [2:0]arprot;
//read_data_phase
rand logic [3:0]rid;
logic [31:0]rdata[15:0];
rand logic [1:0]rresp;
logic rlast;
function void display();
string s="asd";
$display("____________%s__________",s);
if(phase1 == aw_phase)begin //line 61
$display("phase=awphase");
$display("awid = %d",awid);
$display("awaddr = %d",awaddr);
$display("awlen = %h",awlen);
$display("awsize = %h",awsize);
$display("awburst = %h",awburst);
$display("awlock = %h",awlock);
$display("awcache = %h",awcache);
$display("awprot = %h",awprot);
end
else if(phase1 == w_phase)begin
$display("phase=wphase");
$display("wid = %h",wid);
$display("wdata = %p",wdata);
$display("wstrb = %p",wstrb);
$display("wlast = %h",wlast);
end
else if(phase1 == b_phase)begin
$display("phase=bphase");
$display("bid = %h",bid);
$display("bresp = %h",bresp);
end
if(phase1 == ar_phase)begin
$display("phase=arphase");
$display("arid = %h",arid);
$display("araddr = %d",araddr);
$display("arlen = %h",arlen);
$display("arsize = %h",arsize);
$display("arburst = %h",arburst);
$display("arlock = %h",arlock);
$display("arcache = %h",arcache);
$display("arprot = %h",arprot);
end
else if(phase1 == r_phase)begin
$display("phase=rphase");
$display("rid = %h",rid);
$display("rdata = %p",rdata);
$display("rresp = %p",rresp);
$display("rlast = %h",rlast);
end
endfunction
endclass