在这种情况下,reg不是合法的左值[6.1.2(IEEE)]

时间:2017-08-14 04:09:22

标签: verilog

我使用两个文件ncverilogsell.v selltest.v,其日志文件显示:

`ncelab: *E,RANOTL (./selltest.v,6|36): A reg is not a legal lvalue in this context [6.1.2(IEEE)].
vendor vendor(NT5,NT10,clk,reset,cola,change);


ncelab: *E,RANOTL (./selltest.v,6|43): A reg is not a legal lvalue in this context [6.1.2(IEEE)].
ncverilog: *E,ELBERR: Error during elaboration (status 1), exiting.`


    只有我的selltest.v"vendor vendor(NT5,NT10,clk,reset,cola,change);",而且我不知道发生了什么,我的计划的一部分如下

`timescale 1ns/1ns

module test_vendor;

reg NT5 , NT10 , clk , reset;

//wire cola , change;
reg cola , change;

vendor vendor(NT5,NT10,clk,reset,cola,change); 

1 个答案:

答案 0 :(得分:1)

您正在尝试将模块输出连接到reg。你不能这样做:你必须开网(即wire /等)。有关端口连接规则,请参阅2005 LRM中的12.3.9:

  

只有网络或结构网表达才是一个接收器   分配

这一切都在SystemVerilog中得到了清理,其中regs和wire之间的区别得到了纠正/澄清。

' lvalue'是一个可以出现在作业左侧的东西(左值),也就是说它可以分配给它,也就是“下沉”。