uvm编译的一些分享

很久之前写过一个非常简单的uvm_model
文章地址
但是没有提编译的一些细节:
这里面一部分是封装在package中的,一部分则是直接在.f文件直接加载的。
组件主要是通过package封装的,至于case以及sequence则采用,直接加载的方式。
这样做的原因是,如果case以及sequence也采用package封装的话,会给调用rtl中的hierarchy造成很多的麻烦。

1
2
3
4
5
6
7
8
../tc/vcs_pkg.svh
../tc/user_plus.sv
../tc/seq/base_sequence.sv
../tc/seq/sequence_normal.sv
../tc/tc_base.sv
../tc/tc_normal.sv
../tc/tc_direct.sv
../tc/tc_random.sv

以上是tc.f文件

1
2
3
import  uvm_pkg::*;
import base_utils_pkg::*;
import env_pkg::*;

以上是vcs_pkg.svh的内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
+incdir+../env
+incdir+../harness
+incdir+../reg
+incdir+../tc
+incdir+../utils
+incdir+../utils/tx_utils
+incdir+../utils/rx_utils
+incdir+../utils/base_utils
../comm/sv_define.sv
../comm/glb_plus.sv
../utils/base_utils/my_interface.sv
../utils/base_utils/base_utils_pkg.svh
../utils/tx_utils/tx_utils_pkg.svh
../utils/rx_utils/rx_utils_pkg.svh
../env/env_pkg.svh
-f ../tc/tc.f
../harness/harness.sv

以上是tb.f的相关内容。

作者

Mch Wang

发布于

2022-06-11

更新于

2023-05-17

许可协议

评论