返回介绍

25.2 `define宏

发布于 2020-09-09 22:55:57 字数 1160 浏览 1021 评论 0 收藏 0

In Verilog, the `define macro text can include a backslash ( \ ) at the end of a line to show continuation on the next line.

In SystemVerilog, the macro text can also include `", `\`" and ``.

An `" overrides the usual lexical meaning of ", and indicates that the expansion should include an actual quotation mark. This allows string literals to be constructed from macro arguments.

A `\`" indicates that the expansion should include the escape sequence \", e.g.

`define msg(x,y) `"x: `\`"y`\`"`"

This expands:

$display(`msg(left side,right side));

to:

$display("left side: \"right side\"");

A `` delimits lexical tokens without introducing white space, allowing identifiers to be constructed from arguments, e.g.

`define foo(f) f``_suffix

This expands:

‘foo(bar)

to:

bar_suffix

The ‘include directive can be followed by a macro, instead of a literal string:

‘define home(filename) ‘"/home/foo/filename‘"
‘include ‘home(myfile)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文