Verilog 网表模拟:非法;“左值”;关于这点
我试图模拟合成(到D触发器)物理寄存器文件(PRF)。行为形式的测试台工作正常。但是在综合之后,一些内部构件已经被工具重命名,基本上,我正在尝试将功能模拟器生成的值分配到PRF中。这是在初始块中完成的。下面是测试台代码的一部分。(这是一个示例代码,在将所有位加载到所有寄存器文件方面并不完全完整): 其中,Verilog 网表模拟:非法;“左值”;关于这点,verilog,system-verilog,uvm,test-bench,Verilog,System Verilog,Uvm,Test Bench,我试图模拟合成(到D触发器)物理寄存器文件(PRF)。行为形式的测试台工作正常。但是在综合之后,一些内部构件已经被工具重命名,基本上,我正在尝试将功能模拟器生成的值分配到PRF中。这是在初始块中完成的。下面是测试台代码的一部分。(这是一个示例代码,在将所有位加载到所有寄存器文件方面并不完全完整): 其中,n44180和ram[6143]为导线 我得到的错误是: ncelab: *E,WANOTL (simulate_gate.sv,1059|72): A net is not a legal l
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)].
我不确定我错过了什么/哪里 永远不允许在Verilog或SystemVerilog中按程序分配导线。您可以做以下几件事:
force
语句分配D
输入并等待一个时钟周期以捕获它们,然后release
it李>
DFF_X1
内部,看看是否可以按程序将Q
寄存器放入其中DFF_X1
模块替换为您自己的行为模型,您可以在其中为Q
变量赋值始终块中的reg
s分配给always
块(不过,我对SystemVerilog不太确定)。
DFF_X1 ram_reg_95__63_ ( .D(n44180), .CK(clk), .Q(ram[6143]) );
ncelab: *E,WANOTL (simulate_gate.sv,1059|72): A net is not a legal lvalue in this context [9.3.1(IEEE)].