gpt4 book ai didi

system-verilog - systemverilog 中关联数组中的 first()、next() 方法

转载 作者:行者123 更新时间:2023-12-04 02:50:10 26 4
gpt4 key购买 nike

我写了一个简单的代码来测试数组中的不同方法。这是代码:

module assoc_arr;
int temp,imem[*];
initial
begin
imem[ 2'd3 ] = 1;
imem[ 16'hffff ] = 2;
imem[ 4'b1000 ] = 3;
if(imem.first(temp))
$display(" First entry is at index %0db ",temp);
if(imem.next(temp))
$display(" Next entry is at index %0h after the index 3",temp);
// To print all the elements alone with its indexs
if (imem.first(temp) )
do
$display( "%d : %d", temp, imem[temp] );
while ( imem.next(temp) );
end
endmodule

这里有一条警告:“在通配符关联数组上使用指定方法是非标准的。”在 imem.first(temp) 和 imem.next(temp) 处。

为什么会出现这个警告??

最佳答案

因为语言规范不允许。来自 1800-2012 SystemVerilog 规范的第 7.9.4 节。

The syntax for the first() method is as follows:

function int first( ref index );

where index is an index of the appropriate type for the array in question. Associative arrays that specify a wildcard index type shall not be allowed.

您可以在此处下载语言引用:

http://standards.ieee.org/getieee/1800/download/1800-2012.pdf

我相信如果您将示例更改为使用非通配符数组,它会起作用并且您不会收到警告。

例子:

int temp[bit[15:0]];

关于system-verilog - systemverilog 中关联数组中的 first()、next() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17924061/

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