线程
- 相比Verilog,SV引入了两种新的创建线程的方法——使用
fork...join_none
和fork...join_any
语句,三者对比如下图所示
- ①
fork ...join
: 父线程被阻塞,直到这个分支产生的所有子线程完成才继续执行父线程;
- ②
fork...join_any
: 父线程被阻塞,直到由此分支产生的任何一个线程完成才继续父线程(子线程同时继续执行);
- ③
fork...join_none
: 父线程继续与fork产生的所有子线程同时执行。 生成的子线程不会开始执行,直到父线程执行阻塞语句或终止;
如果看到这里还是有些模糊,我们继续向下看看三种线程运动起来的情况
是不是清晰了很多