如何根据测试平台的顶级参数更改SystemVerilog包内常量的值?

问题描述 投票:0回答:1

我在 SystemVerilog 中创建了一个设计模型。它使用定点数学。模块的一些顶级参数用于指定模块内计算使用的缩放因子。这会影响预定义常量的值以及缩小操作和舍入的执行方式。

现在我有多个预定义常量,然后使用 if..else.. 块根据参数值选择其中之一。有多个不同的函数几乎相同,除了它们在计算过程中使用的常量以及结果如何按比例缩小之外。

我的问题是,是否可以将顶级测试平台模块参数传递到包中并使用它来选择常量应具有的值,即使用测试平台顶级模块参数参数化包?

我有 VHDL 背景,“if 与 #if”让我感到困惑。另外,我不确定我想要做的事情是否可以在 SystemVerilog 中使用测试平台模块顶级参数进行。

system-verilog
1个回答
0
投票

您的问题非常接近XY 问题。 SystemVerilog 包无法参数化,也不能根据参数选择不同的包进行导入。如果我们有更多关于您最终需要完成的任务的具体细节,那么有很多可能的方法。

如果您打算拥有不同的顶级测试平台,则可以让每个测试平台导入不同的包以及不同的参数值以适应您的设计。

您可以将不同版本的包编译成不同的库,并在选择您想要的测试平台的同时选择您想要的库。编译脚本将是一个特定于工具的问题,而不是 SystemVerilog 语言的一部分。

您可以将函数放入包中,根据顶级测试台参数选择返回值。

© www.soinside.com 2019 - 2024. All rights reserved.