SV run : Fatal: (SIGSEGV) Bad handle or reference.

SVTB编译并没有出错,一旦运行就会出现** Fatal: (SIGSEGV) Bad handle or reference.
错误指向了driver的new函数
错误原因:组件new的顺序错误,同时要注意new函数调用参数的申明。

原错误代码

rcvr = new("rcvr",sb.receiver_mbox, reg_io);
drvr = new("drvr", gen.out_box, sb.driver_mbox,  reg_io);
sb = new("sb");

改正后的正确代码

sb = new("sb");
rcvr = new("rcvr",sb.receiver_mbox, reg_io);
drvr = new("drvr", gen.out_box, sb.driver_mbox,  reg_io);

当然如果先在sb里定义了参数传递也会出错,因为调用的driver和rcvr都还没生成呢

sb = new("sb",drvr.out_box,rcvr.out_box);
rcvr = new("rcvr",sb.receiver_mbox, reg_io);
drvr = new("drvr", gen.out_box, sb.driver_mbox,  reg_io);

你可能感兴趣的:(SV语法,UVM,sv)