【发布时间】:2018-08-27 21:14:30
【问题描述】:
我正在尝试模拟合成(进入 D 触发器)物理寄存器文件 (PRF)。行为形式的测试台工作正常。但是在综合之后,一些内部已经被工具重命名了,基本上,我正在尝试将功能模拟器生成的值分配到 PRF 中。这是在初始块中完成的。以下是测试平台代码的一部分。 (这是一个示例代码,在将所有位加载到所有寄存器文件方面并不完整):
1050 reg [`SIZE_DATA-1:0] test [`SIZE_RMT-1:0];
1051 integer x, y, z;
1052
1053 always @(*)
1054 begin
1055 for (x = 0; x < `SIZE_RMT; x++)
1056 begin
1057 for (y =0; y < `SIZE_DATA; y ++)
1058 begin
1059 coreTop.registerfile.PhyRegFile.ram_reg_95__63_.D = test[x][y];
1060 z = y;
1061 end
1062 z = z + 1 ;
1063 end
1064 end
ram_reg_95__63_模块的描述如下:
DFF_X1 ram_reg_95__63_ ( .D(n44180), .CK(clk), .Q(ram[6143]) );
其中,n44180 和 ram[6143] 是电线。
我得到的错误:
ncelab: *E,WANOTL (simulate_gate.sv,1059|72): A net is not a legal lvalue in this context [9.3.1(IEEE)].
我不确定我错过了什么/在哪里。
【问题讨论】:
-
"not a legal lvalue" 意思是"你不能给它赋值"。据我所知,您只能在
always块内分配给regs(不过我不确定 SystemVerilog)。
标签: verilog system-verilog test-bench