如何在Verilog中初始化整数数组?
在Samir Palnitkar的《Verilog HDL:数字设计和合成指南》第36页上,它说,阵列“在Verilog中允许reg、integer、time和矢量寄存器数据类型。”例如,它声明了一个整数阵列,其计数为如何在Verilog中初始化整数数组?,verilog,Verilog,在Samir Palnitkar的《Verilog HDL:数字设计和合成指南》第36页上,它说,阵列“在Verilog中允许reg、integer、time和矢量寄存器数据类型。”例如,它声明了一个整数阵列,其计数为整数[0:7]。如何用一组值初始化数组(计数) 我翻遍了那本书,寻找如何初始化(计数)的指针,但我找不到任何帮助 是像编码一样简单的解决方案,整数计数[0:7]={2,3,5,7,11,13,17,19}?对于Verilog,您可以使用系统任务$readmemh()/$readme
整数[0:7]代码>。如何用一组值初始化数组(计数)
我翻遍了那本书,寻找如何初始化(计数)的指针,但我找不到任何帮助
是像编码一样简单的解决方案,整数计数[0:7]={2,3,5,7,11,13,17,19}代码>?对于Verilog,您可以使用系统任务$readmemh()
/$readmemb()
或
通过
分配
一个
条目
在
a
时间
在
a
程序性
块
(添加额外的行以反映冗长)
如果赋值是某种表达式,则重新开始使用for循环。如果数字是完全唯一的,则需要编写许多语句
分配整个数组的能力(例如:integer count[0:7]={2,3,5,7,11,13,17,19};
amdarrayB=arrayA;
)是SystemVerilog的一项功能。现代Verilog模拟器是SystemVerilog模拟器。通常,启用SystemVerilog只需将文件扩展名从.v更改为.sv即可。对于Verilog,您可以使用系统任务分配一个数组$readmemh()
/$readmemb()
或
通过
分配
一个
条目
在
a
时间
在
a
程序性
块
(添加额外的行以反映冗长)
如果赋值是某种表达式,则重新开始使用for循环。如果数字是完全唯一的,则需要编写许多语句
分配整个数组的能力(例如:integer count[0:7]={2,3,5,7,11,13,17,19};
amdarrayB=arrayA;
)是SystemVerilog的一项功能。现代Verilog模拟器是SystemVerilog模拟器。通常,启用SystemVerilog只需将文件扩展名从.v更改为.sv是的,Verilog中允许使用reg、integer、time和vector寄存器数据类型的数组
初始化阵列时,请确保在初始块内执行此操作
您可以使用for循环进行初始化
`module test;
integer i;
integer count[0:7];
initial
begin
for(i=0;i<8;i=i+1)
count[i]=i**2;
for(i=0;i<8;i=i+1)
$display(count[i]);
end
endmodule`
模块测试;
整数i;
整数计数[0:7];
最初的
开始
对于(i=0;iYes),Verilog中允许使用reg、integer、time和vector寄存器数据类型的数组
初始化阵列时,请确保在初始块内执行此操作
您可以使用for循环进行初始化
`module test;
integer i;
integer count[0:7];
initial
begin
for(i=0;i<8;i=i+1)
count[i]=i**2;
for(i=0;i<8;i=i+1)
$display(count[i]);
end
endmodule`
模块测试;
整数i;
整数计数[0:7];
最初的
开始
对于(i=0;不可用。使用纯Verilog无法分配整个阵列。我只是在3个模拟器上尝试了它,确保它们配置为Verilog-1995(并使用Verilog-2001再次运行)。SystemVerilog可以分配整个阵列(使用相同的模拟器验证)另外,i++
是SystemVerilog,它在Verilog中不存在。你是对的,Greg。我在EDA中编写了这个代码,所以我不记得之前和之后的增量。是的,这可以在SV中完成,但在Verilog中,我们可以像i=i+1;不。使用纯Verilog,你不能分配整个阵列。我只是在3个模拟器上尝试了它,确保它们是conf为Verilog-1995配置(并使用Verilog-2001再次运行)。SystemVerilog可以分配整个阵列(使用相同的模拟器验证)。另外,i++
是SystemVerilog,它在Verilog中不存在。你是对的,Greg。我在EDA中编写了此代码,因此我不记得之前和之后的增量。是的,这可以在SV中完成,但在Verilog中,我们可以像i=i+1一样完成;