Verilog:对标量线的错误引用';价值';不是合法的注册表或变量左值

Verilog:对标量线的错误引用';价值';不是合法的注册表或变量左值,verilog,Verilog,我被这个密码困住了。我不明白为什么我的值不能反转 module PREDIV( input wire QUARTZ, output wire VALUE); always @ (posedge QUARTZ) assign VALUE= ~VALUE; endmodule 有几个问题 您不应在始终块中使用分配关键字 在进行程序分配时(在始终块中的分配),应将信号声明为reg类型,而不是导线。这就是您的错误消息所指的内容 对于顺序逻辑,应该使用非阻塞分配:存在一些问

我被这个密码困住了。我不明白为什么我的
值不能反转

module PREDIV(
    input wire QUARTZ,
     output wire VALUE);

always @ (posedge QUARTZ)
    assign VALUE= ~VALUE;

endmodule

有几个问题

您不应在
始终
块中使用
分配
关键字

在进行程序分配时(在
始终
块中的分配),应将信号声明为
reg
类型,而不是
导线
。这就是您的错误消息所指的内容


对于顺序逻辑,应该使用非阻塞分配:
存在一些问题

您不应在
始终
块中使用
分配
关键字

在进行程序分配时(在
始终
块中的分配),应将信号声明为
reg
类型,而不是
导线
。这就是您的错误消息所指的内容


对于顺序逻辑,您应该使用非阻塞分配:
看起来代码在
始终
块中使用阻塞分配。
始终
块应仅使用非阻塞分配

代码应该类似于:

always @(posedge QUARTS)
Value <= ~Value; 
始终@(posedge夸脱)

值看起来代码正在
始终
块中使用阻塞赋值。
始终
块应仅使用非阻塞分配

代码应该类似于:

always @(posedge QUARTS)
Value <= ~Value; 
始终@(posedge夸脱)
价值