使用宏而不是functionn来显示消息有什么好处?
我目前正在systemverilog中进行一些验证,我的团队目前正在使用一些宏在成绩单中显示消息 下面是我的一个宏:使用宏而不是functionn来显示消息有什么好处?,function,macros,system-verilog,Function,Macros,System Verilog,我目前正在systemverilog中进行一些验证,我的团队目前正在使用一些宏在成绩单中显示消息 下面是我的一个宏: `define MSG_ERR(TEXT) begin $write("** Error: %9.3f%2s %16s ", `GET_TIME, `GET_UNITS, c_MODULE); $error($sformatf TEXT); end 所以它基本上是调用一些系统函数 我的问题是:使用宏而不是函数有什么好处吗 提前感谢Verilog中的,除了宏空间之外,没有全局空间
`define MSG_ERR(TEXT) begin $write("** Error: %9.3f%2s %16s ", `GET_TIME, `GET_UNITS, c_MODULE); $error($sformatf TEXT); end
所以它基本上是调用一些系统函数
我的问题是:使用宏而不是函数有什么好处吗
提前感谢Verilog中的,除了宏空间之外,没有全局空间来放置定义。这就是人们所用的。由于SystemVerilog引入了全局
包
空间,因此不再有优势。verilog中的宏只是文本替换机制,类似于c/c++宏。因此,宏可以在代码的任何部分“实例化”,只要其内容在那里是合法的
此外,正如在c/c++中一样,verilog宏具有合并和字符串化其参数、构建变量名、字符串等功能
宏有几个缺点: