Macros 两个宏;“完成”;彼此
编辑:似乎现在正在工作 我正在尝试编写两个宏,用于包装任何代码。例如:Macros 两个宏;“完成”;彼此,macros,system-verilog,Macros,System Verilog,编辑:似乎现在正在工作 我正在尝试编写两个宏,用于包装任何代码。例如: `define start_of_macro()begin\ fork\ begin\ #20us;\ end\ begin\ end 第二部分: `define end_of_macro()begin\ end\ join_any disable_fork;\ end 并使用类似这样的方式: `start_of_macro while(1)begin #20ns; end `end_of_m
`define start_of_macro()begin\
fork\
begin\
#20us;\
end\
begin\
end
第二部分:
`define end_of_macro()begin\
end\
join_any disable_fork;\
end
并使用类似这样的方式:
`start_of_macro
while(1)begin #20ns; end
`end_of_macro
由于每个宏本身都不合法,所以我不断地出错。有什么办法克服这个问题吗
提前谢谢 我猜你是想在等待20微秒的同时做出一些事情。在开始宏中有一个额外的
end
。应该是:
`define start_of_macro()\
begin\
fork\
begin\
#20us;\
end\
begin
`define end_of_macro()\
end\
join_any\
disable_fork;\
end
在关闭宏中还有一个额外的begin
。应该是:
`define start_of_macro()\
begin\
fork\
begin\
#20us;\
end\
begin
`define end_of_macro()\
end\
join_any\
disable_fork;\
end
宏展开后,介于打开宏和关闭宏之间的代码将驻留在
开始
(从开始
)和结束
(从结束
)之间。我想你是在尝试与20微秒的等待并行。在开始宏中有一个额外的end
。应该是:
`define start_of_macro()\
begin\
fork\
begin\
#20us;\
end\
begin
`define end_of_macro()\
end\
join_any\
disable_fork;\
end
在关闭宏中还有一个额外的begin
。应该是:
`define start_of_macro()\
begin\
fork\
begin\
#20us;\
end\
begin
`define end_of_macro()\
end\
join_any\
disable_fork;\
end
宏展开后,介于打开宏和关闭宏之间的代码将位于
开始
(从开始
)和结束
(从结束
)之间。您没有显示足够的代码来提供帮助。请记住,文本宏对SystemVerilog语法一无所知,所以应该确定每个宏本身不是合法的SystemVerilog语法。但是您需要向我们显示您希望结果是什么样子。请确保)begin
之间有一个空格,并且在teer`\`之后不应有空格。您没有显示足够的代码来提供帮助。请记住,文本宏对SystemVerilog语法一无所知,所以应该确定每个宏本身不是合法的SystemVerilog语法。但是您需要向我们展示您希望结果是什么样子。确保在)begin
之间有一个空格,并且在teer`\`之后不应该有空格。它是宏宏的结尾,不需要begin
/end
语句。它是宏的结尾,不需要begin
/end
语句。