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);