【发布时间】:2013-03-12 22:03:08
【问题描述】:
我有一个预处理器宏,它表示我的设计中的分层路径。
例子:
`define HPATH top.chip.block
我需要构造一个包含`HPATH 值的字符串,所以在我的示例中,字符串应该等于top.chip.block。
有没有办法构造这样的字符串?
以下尝试均无效:
string hpath;
hpath = "`HPATH"; // Results in hpath = "`HPATH"
hpath = \"``HPATH\"; // Doesn't compile
hpath = `HPATH; // Doesn't compile
我希望hpath 等同于执行此分配hpath = "top.chip.block",但使用`HPATH 而不是再次指定路径。
我无法使用%m,因为我需要在顶级 UVM 环境中使用字符串,而不是在模块中。
更多背景知识:我想这样做的原因是因为我在 UVM 类库中使用了后门寄存器访问。后门 API 需要将 hdl_path 设置为设计中的块,作为字符串。我已经为分层路径定义了`defines,并在指定 hdl_paths 时尝试重用这些路径,因此我没有两次定义相同的路径。我的测试台将同时使用分层路径和字符串路径。
【问题讨论】:
标签: macros verilog system-verilog