gpt4 book ai didi

verilog - 在 verilog 中显示实数,但 bitstoreal 仅返回 0.000000

转载 作者:行者123 更新时间:2023-12-02 16:56:03 25 4
gpt4 key购买 nike

我试图在 modelsim 中模拟我的 verilog 代码期间显示实数。但我只得到 0 作为输出。我正在尝试使用 bitstoreal 系统功能。我不太擅长 verilog,所以这可能是一个愚蠢的初学者错误。

以下是我的代码:

reg [31:0] y[1:0];
integer file;
localparam [31:0] test = 32'h3fb0d05d;

task read_data_from_fifo();
begin
file = $fopen("/tmp/data.fifo", "r");
$fread(y, file);
$display("y0 = %d, %f, %h", $bitstoreal(y[0]), $bitstoreal(test), $bitstoreal(y[0]));
$display("y1 = %f, %f, %h", y[1], $bitstoreal(32'h5dd0_b03f), y[1]);
end
endtask

(任务从初始开始 block 调用)输出:

# y0 =          0, 0.000000, 00000000
# y1 = 3742779199.000000, 0.000000, df16473f

感谢所有帮助。

更新

看起来 bitstoreal 仅支持 double float (64 位)。因为

localparam [63:0] test = 64'h_3FF61A0BE5109071;
$display("%f", $bitstoreal(test));

结果

1.381359

最佳答案

使用$bitstoshortreal:...$shortrealtobits 将值从 Shortreal 类型转换为实数的 32 位向量表示数字。$bitstoshortreal 将 $shortrealtobits 创建的位模式转换为 Shortreal 的值类型。...

关于verilog - 在 verilog 中显示实数,但 bitstoreal 仅返回 0.000000,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19709164/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com