如何转义 TT2 中的 [ 和 % 字符

How to escape [ and % characters in TT2

我正在使用 TT2。我想从我的模板文件中打印 something[%0d]。但是我似乎找不到任何用于模板工具包使用的转义字符。

关于如何跳过要在 TT 下处理的 %[ 有什么建议吗?

确切的行是:

printer.print_object(.name($sformatf("[% item %]_slv_agent_cfg[%0d]:", i)), .value([% item %]_slv_agent_cfg[i]));

提前致谢

If I'm using TT to write out a TT template, is there a good way to escape [% and %]?

所以 something[\%0d] 应该可以。

你可以使用

[% "[%" %]

代替

[%

看起来像这样:

$ tpage <<<'slv_agent_cfg[% "[%" %]0d]'
slv_agent_cfg[%0d]

$ tpage <<<'slv_agent_cfg[% "[%0d]" %]'
slv_agent_cfg[%0d]

一个较短的解决方案是使用

[[%%]%

代替

[%

看起来像这样:

$ tpage <<<'slv_agent_cfg[[%%]%0d]'
slv_agent_cfg[%0d]

如果你发现自己需要转义的实例太多,你可以切换tag style


最后,您可以更改程序以首先避免序列。例如,您可以替换

"slv_agent_cfg[%0d]"

"slv_agent_cfg[\%0d]"

{"slv_agent_cfg[","%0d]"}

我不懂 Verilog,所以具体细节可能不正确,但你明白了。