01
线程控制
1.概述
线程,即独立运行的程序;
线程需要被触发执行,可以结束或者不结束;
在module中的initial和always,都可以看作独立的线程,他们在仿真0时刻开始,而选择结束或者不结束;
在硬件模块中都是always语句块,所以可以看成是独立运行的线程,而且会一直占用仿真资源,因为他们不会结束;
验证环境需要initial语句块,在仿真过程中,验证环境中的对象可以创建和销毁,故验证环境的资源是动态的;
验证环境中的initial语句块有两种方式:begin……end或者fork……join;
Begin……end中语句顺序执行,而fork……join中语句并发执行;
与fork……join类似的并行语句有fork……join_any、fork……join_none;
线程的执行轨迹是呈树状结构,即任何线程都应该有父线程;
父线程可以开辟若干子线程,父线程可以暂停或者终止子线程;
当子线程终止时,父线程可以继续执行;