【发布时间】:2017-08-17 16:13:44
【问题描述】:
当我尝试使用 $realtobits() 函数从 SystemVerilog 中的数组访问一个值时,我从 ModelSim 得到了一些愤怒:
reg [1:0] TEST_VALUE;
localparam real TEST_TABLE [0:3] = { 8, 9, 10, 11 };
initial begin
TEST_VALUE = $realtobits( TEST_TABLE[2] );
$display( "0x%X", TEST_VALUE );
end
我可以编译它,但是当我尝试在 ModelSim 中加载设计以进行仿真时,我得到:
# vsim -voptargs=+acc work.top
# Loading sv_std.std
# Loading work.top
# ** Error: (vsim-PLI-3077) /home/russv/sdi2x_hdmi/firmware/shared/video/video_signal_format_table.sv(64): $realtobits : Function takes only one argument of type real.
# Region: /top
# Error loading design
(操作文字:$realtobits : Function takes only one argument of type real.)
在我看来,通过索引real 值的数组,我应该访问单个实数类型的值。而且只有一个参数——函数调用中没有逗号。
想法?最后我实际上是想访问一个二维数组,但我觉得如果我能破解这个测试用例,我就可以解决这个问题。
【问题讨论】:
标签: system-verilog