#systemverilog# 关于基于systemveriog验证平台的RTL+TB文件编译顺序问题的讨论
不知道大家有没有想过一个问题:我们的验证DUT,是使用基于verilog 编写的代码;我们的验证平台,是使用基于systemverilog编写的代码。而且,哎验证平台中还存在其它种类繁多的编程结构,比如 interface 文件、bind 文件、各种package文件等。VCS工具在进行编译的时候,到底是先编译的谁?后编译的谁?因为不同的编译顺序,将会引发编译问题。
SystemVerilog仿真阶段
SystemVerilog仿真包含三个步骤或阶段:
编译(compilation)
细化(elaboration)
运行时(run-time)
静态实例世界
许多SystemVerilog组件实例在仿真开始前的elaboration 阶段就被创建。一旦仿真开始,这些组件实例既不会被创建也不会被销毁,而是贯穿整个仿真过程持续存在。我们将其称为静态实例世界。属于这个世界的组件包括:
模块实例(module instances)
- <
接口实例(interface instance)