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 = new(p)を変えたとき。それは 正常に動作しますが、数行のエラーを与える出力* E、TRNULLID:NULLポインタ逆参照。システムのVerilog
NCSIM> 10 20 256 NCSIM実行:* E、TRNULLID:NULLポインタ参照を。
の場合は表示されません。$ display(t1.p.i); $ display(t2.p.i);
システムのVerilogで作業している人はいますか?質問する正しいフォーラムですか? – Aviator
http://stackoverflow.com/help/mcve – toolic
@toolic dudeはコードだけでなく美学も問題にしています... ??あなたが問題を解決できない場合は、直接投票してください。なぜ投票して下さるのですか? – Aviator