系统 Verilog 到 Specman E
System Verilog to Specman E
Specman E 中 $readmemh(file,array) 和 System verilog 中类似系统任务和函数的等效语法是什么?
我正在将现有的 System verilog 代码转换为 Specman E,我已经转换并实现了大部分概念,除了下面的少数系统方法。请帮助我在 Specman E 中实现如下方法。
$readmemh(file_s,data_2d_i);//For converting SV code into Specman E
在 vr_ad 包中有一个等效的方法。假设您有一个名为 data_2d_i 的 vr_ad_mem 对象,例如,您可以打电话
data_2d_i.readmemh(file_s,0,1000,0,1000);
将该文件中的地址 0..1000 读入内存。
示例:
import vr_ad/e/vr_ad_top;
extend sys {
mem: vr_ad_mem;
keep mem.addressing_width_in_bytes == 1;
keep mem.size == 1000;
run() is also {
var data_2d_l: list of byte;
-- read first 16 bytes of mem-file and store the result in a list
mem.readmemh("mem.txt", 0, 15, 0, 15);
data_2d_l = mem.fetch(0, 16);
print data_2d_l;
};
};
Specman E 中 $readmemh(file,array) 和 System verilog 中类似系统任务和函数的等效语法是什么?
我正在将现有的 System verilog 代码转换为 Specman E,我已经转换并实现了大部分概念,除了下面的少数系统方法。请帮助我在 Specman E 中实现如下方法。
$readmemh(file_s,data_2d_i);//For converting SV code into Specman E
在 vr_ad 包中有一个等效的方法。假设您有一个名为 data_2d_i 的 vr_ad_mem 对象,例如,您可以打电话
data_2d_i.readmemh(file_s,0,1000,0,1000);
将该文件中的地址 0..1000 读入内存。
示例:
import vr_ad/e/vr_ad_top;
extend sys {
mem: vr_ad_mem;
keep mem.addressing_width_in_bytes == 1;
keep mem.size == 1000;
run() is also {
var data_2d_l: list of byte;
-- read first 16 bytes of mem-file and store the result in a list
mem.readmemh("mem.txt", 0, 15, 0, 15);
data_2d_l = mem.fetch(0, 16);
print data_2d_l;
};
};