我正试图在路线后模拟过程中监控一个内部信号。
所以我在verilog代码中使用了 $display
语法。
然而,在控制台中没有显示任何内容。
我在我的verilog代码中使用了以下语法
always @(negedge clk)
begin
$display("Decimal: %d", idatabuf);
end
所以我的问题是 $display
语法是否不适用于路径后模拟?
无论如何,我将粗略地将内部信号作为输出。但是,如果语法 $display
有效,我的生活会更容易。
答案 0 :(得分:0)
没有。 $ display不可合成,因此它仅适用于行为模拟。 所有不可合成的代码部分,例如&在合成过程中忽略#。
答案 1 :(得分:0)
正如Laleh所说,$display
不可合成。要做你想做的事,你应该在你的测试平台中使用合成后的信号分层参考。例如在您的测试平台中,您可以添加:
always@*
$display("Decimal: %d", u_top.u_mymod.idatabuf);`
每次更改时都应打印idatabuf
。
N.B。:如果您要监控的信号是内部信号而不是分层模块的引脚,则综合工具倾向于简化逻辑优化。如果要监视此类信号,则应绑定以驱动黑盒输入。在Synopsys工具中,制作黑盒子的最简单方法是创建一个空模块。
module BlackBox (I,O);
parameter SIZE=1;
input [SIZE-1:0] I;
output[SIZE-1:0] O;
endmodule