Initialization 如何在Verilog中为任务中的reg赋值?
我已经面对了这个错误。虽然我搜索了整个网络,但我没有找到好的答案 我想为任务中的注册表分配一个条件值。 错误是: 错误:VCP2648控制单元任务。v:(60,50):Reg初始值设定项必须是常量:DR==10'b0000000000?1'b1:1'b0”; 我为产生此错误的任务编写的代码如下:Initialization 如何在Verilog中为任务中的reg赋值?,initialization,task,verilog,assign,Initialization,Task,Verilog,Assign,我已经面对了这个错误。虽然我搜索了整个网络,但我没有找到好的答案 我想为任务中的注册表分配一个条件值。 错误是: 错误:VCP2648控制单元任务。v:(60,50):Reg初始值设定项必须是常量:DR==10'b0000000000?1'b1:1'b0”; 我为产生此错误的任务编写的代码如下: task Registers_Inc_Generator(output PC_inc,DR_inc,AC_inc, input [7:0]D,T, input[5:0]B, input[9:0] AC,
task Registers_Inc_Generator(output PC_inc,DR_inc,AC_inc, input [7:0]D,T, input[5:0]B, input[9:0] AC,DR, input R,Z);
reg isDR_Zero=(DR==10'b0000000000)?1'b1:1'b0;
reg isAC_Zero=(AC==10'b0000000000)?1'b1:1'b0;
endtask
如果有人能帮助我,我将不胜感激。谢谢。错误消息是不言自明的。当您
reg isDR_Zero=(DR==10'b0000000000)?1'b1:1'b0;
您正在初始化变量。您只能将变量初始化为常量值。您必须先声明变量,然后将其赋值:
错误消息是不言自明的
reg isDR_Zero=(DR==10'b0000000000)?1'b1:1'b0;
您正在初始化变量。您只能将变量初始化为常量值。您必须先声明变量,然后将其赋值:
您还可以在初始化时避免使用三元运算符。您可以执行类似于-isDR_Zero=DR==10'h0;isAC_Zero=AC==10'h0;您也可以在初始化时避免使用三元运算符。您可以执行类似于-isDR_Zero=DR==10'h0;isAC_Zero=AC==10'h0;