在系统 verilog/uvm 中处理定义的最佳方式是什么

what is the best way to handle defines in system verilog/uvm

我有一个被很多团队使用的验证组件。我有一个 defineADDRESS_WIDTH,我将它设置为所有团队所有要求的最大值。

但这看起来不是理想的解决方案。有没有一种方法可以用 SV/UVM 的方式来处理。

我想了几个办法

这留下了一个潜在的漏洞,有人可能会更新一个地方而不更改另一个地方。

请让我知道还有哪些其他更好的解决方案。

提前致谢。

使用 package 定义 interface 和验证组件将使用并因此保持同步的参数。每个团队都可以修改包以满足他们的需要。

创建另一个包,指定这些参数值的合法范围,并让接口或验证使用断言来检查团队包的值。