我想知道Verilog中$ display系统任务中%m的用法
我正在学习verilog。
这是本书中给出的示例代码。最好有人用更多的例子来解释这一点,这在书中似乎还不清楚
//the highest-level module called top. No argument is required. This
//is a useful feature)
$display("This string is displayed from %m level of hierarchy");
-- This string is displayed from top.p1 level of hierarchy
答案 0 :(得分:1)
免费的IEEE Std 1800-2012,第21.2.1.6节层次名称格式指出:
%m格式说明符不接受参数。相反,它 使显示任务打印设计的层次结构名称 调用的元素,子例程,命名块或带标签的语句 包含格式说明符的系统任务。这在以下情况下很有用 有许多调用系统任务的模块实例。
这里是一个例子:
module top;
buff b0 (.buf_in(1'b0), .buf_out());
endmodule
module buff (
input buf_in,
output buf_out
);
wire a;
inv i0 (.in(buf_in), .out(a ));
inv i1 (.in(a ), .out(buf_out));
initial $display("Inside hierarchy %m");
endmodule
module inv (
input in,
output out
);
assign out = ~in;
initial $display("Inside hierarchy %m");
endmodule
输出:
Inside hierarchy top.b0
Inside hierarchy top.b0.i0
Inside hierarchy top.b0.i1