我遇到了这个错误。尽管我全部寻求网络,但我找不到好的答案。
我想为任务中的reg分配条件值。错误是:
错误:VCP2648 CONTROL_UNIT_TASKS.V:(60,50(:reg Initializer必须是常数:dr == 10'b000000000000?1'b1: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,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;
您正在初始化一个变量。您只能将变量初始化为恒定值。取而代
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);
begin
reg isDR_Zero;
reg isAC_Zero;
isDR_Zero=(DR==10'b0000000000)?1'b1:1'b0;
isAC_Zero=(AC==10'b0000000000)?1'b1:1'b0;
end
endtask