我有一个预处理器宏,它代表了我的设计中的分层路径。如何从预处理器宏创建一个字符串
实施例:
`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设置为设计中的块,作为字符串。我已经定义了分层路径,并且在指定hdl_paths时试图重用这些路径,所以我没有定义两次相同的路径。我的测试平台将使用分层路径和字符串路径。
有什么打算,一旦你拥有了它与字符串呢? '%m'说明符会帮助你吗? – toolic 2013-03-12 23:35:24
@toolic - 我更新了一些更详细的问题。我需要将路径作为字符串(用于UVM后门寄存器访问)以及作为分层路径(用于某些其他功能)。 '%m'不会帮助,因为我需要模块外的作用域中的路径。 – dwikle 2013-03-13 03:00:05