我想做一个小数运算,然后显示结果。我知道$ display以整数显示。但是,如何显示确切数量的解决方案是什么?例如,我想要显示10/3 = 3.3,但显示3.0000。这是我的代码。我不想在这里使用真正的数据类型。在systemverilog中显示分数
`timescale 1ns/1ps
module fp_check
(a,b,c,d);
input logic signed [7:0] a;
input real b;
output real c;
output logic [7:0] d;
assign c = a*2;
assign d = b+1;
endmodule
module fp_test;
logic signed [7:0] a;
real b;
real c;
logic signed [7:0] d;
initial
begin
a = 3.3333;
b = 11.7;
$display("a =%f, b=%f,c=%f,d=%f", a,b,c,d);
end
fp_check s (.a(a), .b(b), .c(c), .d(d));
endmodule
输出我得到的是一个= 3.000000,B = 11.700000,C = 0.000000,d = 0.000000
我想到的是一个= 3.333333,B = 11.700000,C = 6.666666,d = 12.700000
你宣布了''和'D'为整数类型,而不是一个'real'(浮点)类型。 – toolic
将'$ display'改为'$ monitor'以避免竞争。你应该看到:'a = 3.000000,b = 11.700000,c = 6.000000,d = 13.000000' – toolic
是唯一选择使用我的输入作为真实/虚拟实境吗?我可以不使用逻辑或其他数据类型吗?由于我会在输入和输出端口上实现触发器,因此我不确定是否可以触发或触发真正的数据类型。 –