-1
class tx;
pkt p;
int j;
function new (pkt p);
p = new();
j =10;
endfunction
task copy(pkt p);
this.p = new p;
endtask
endclass :tx
initial
begin
tx t1,t2;
pkt p;
t1 =new();
p = new();
p.i=256;
t2= new t1;
t2.j=20;
t2.copy(p);
$display(t1.j);
$display(t2.j);
$display(p.i);
$display(t1.p.i);
$display(t2.p.i);
t1.p.i=221;
$display(t1.p.i);
$display(t2.p.i);
end
endprogram
爲什麼這段代碼沒有給出輸出。當我改變t1 =新(p)。它工作正常 但給幾行錯誤輸出* E,TRNULLID:空指針取消引用。系統verilog
ncsim> run 10 20 256 ncsim:* E,TRNULLID:NULL指針解除引用。
雖然它不打印 $ display(t1.p.i); $ display(t2.p.i);
有沒有人在系統verilog上工作..?這是正確的論壇問? – Aviator
http://stackoverflow.com/help/mcve – toolic
@toolic老兄最新的代碼問題以及美學...?直接投票....如果你不能解決問題。離開它爲什麼投票下來.. – Aviator