SystemVerilog 是否支持嵌套包?
Does SystemVerilog support nested packages?
我有一个工具可以生成用于 UVM 测试平台的 .sv RAL 文件。问题是这个文件将寄存器块创建为一个包。我的问题是,对于我的测试台,我想导入多个 .sv RAL 文件(代表不同的 reg 块)。
为此,我想创建一个包 all_my_regs_pkg.sv 并将其他包包含到该包中。我遇到编译错误并查看它,似乎 SystemVerilog 中不支持嵌套包。
那么我要用的时候需要手动导入每个reg block包吗?我想我可以用导入创建一个文件,然后“包含它”,但这是唯一的方法吗?
SystemVerilog 不允许嵌套包声明。对您来说最好的事情是定义一个文件,该文件是包导入语句的列表,并让用户 `include
在需要的地方使用该文件。
这是另一个 SV 功能,它允许您链接包导入,但您必须明确 export
一个符号,您将导入到一个包中以供下一个包导入。请参阅 1800-2012 LRM
中的 26.6 从包 中导出导入的名称
我有一个工具可以生成用于 UVM 测试平台的 .sv RAL 文件。问题是这个文件将寄存器块创建为一个包。我的问题是,对于我的测试台,我想导入多个 .sv RAL 文件(代表不同的 reg 块)。
为此,我想创建一个包 all_my_regs_pkg.sv 并将其他包包含到该包中。我遇到编译错误并查看它,似乎 SystemVerilog 中不支持嵌套包。
那么我要用的时候需要手动导入每个reg block包吗?我想我可以用导入创建一个文件,然后“包含它”,但这是唯一的方法吗?
SystemVerilog 不允许嵌套包声明。对您来说最好的事情是定义一个文件,该文件是包导入语句的列表,并让用户 `include
在需要的地方使用该文件。
这是另一个 SV 功能,它允许您链接包导入,但您必须明确 export
一个符号,您将导入到一个包中以供下一个包导入。请参阅 1800-2012 LRM