我们知道,verilog语法标准中是没有program的,program是systemverilog语法标准新增的内容。
那么,为什么要新增一个program呢?主要考量是基于电路的竞争与冒险。
为避免仿真和设计竞争问题(race condition),systemverilog中引入了program的概念。
所有与设计相关的线程在module中执行,而与验证有关的线程则在program中运行。在仿真过程中,这两种线程运行在不同的时间步(time step),从而解决了竞争问题。
module与program的区别:
Program和module的另一个区别是module允许嵌套,而program不允许。