sv提供了下列处理并发进程的能力:
fork...join并发结构,
通过mailbox实现进程间的通信,
通过semaphore实现进程互斥与仲裁,
通过event实现进程之间的同步
一:fork...join
fork...join能够启动产生多个并发进程,提供三种并发方式:fork...join,fork...join_any,fork...join_none
1: fork...join
执行fork语句的进程,并阻塞父进程的执行,直到fork...join中所有进程(子进程)中止
可以将子进程放在begin...end里,如下图。process1与process2同时执行;直到20ns并且eventA被触发,才结束整个fork...join的结构,执行父线程。
2:fork...join...any
父进程会被阻塞直到任意一个子进程结束
3:fork...join...none
父进程不会被阻塞,父进程会立即与产生的所有进程并发操作