systemverilog中的信箱,事件以及旗语机制都是为了实现进程中的通信,在学习三种机制之前,一直以为三种机制功能类似。现在发现其实三种机制包括了进程之间通信的三个方面。
信箱的作用主要是让不同的进程进行数据传递以及跨类的方法调用,使用信箱机制的好处在于,不需要引入复杂的引用层次,就可以在一个对象中调用其它对象的方法处理数据,如果被调用方法的类的代码发生了改变,不需要对代码整体进行修改。
事件的作用是实现进程之间通信的同步,也就是通过事件产生对进程的阻塞和执行,实现进程间的握手,避免进程处理的时序发生错误。
旗语主要是为了使某些资源同时只能被指定个数的进程访问,避免两个并行进程同时对某些数据进行修改,从而产生未知的错误。