Compiler errors verilog分配编译器错误
我有一个基本的编译器错误,我无法理解。 代码: 错误是:Compiler errors verilog分配编译器错误,compiler-errors,variable-assignment,verilog,Compiler Errors,Variable Assignment,Verilog,我有一个基本的编译器错误,我无法理解。 代码: 错误是: Error: E:/Modeltech_pe_edu_10.0/examples/FloatingPt.v(20): near "=": syntax error, unexpected '=', expecting IDENTIFIER or TYPE_IDENTIFIER or '#' or '(' 在过程构造之外有过程代码 real a1; initial begin if(en==3'b001) begin
Error: E:/Modeltech_pe_edu_10.0/examples/FloatingPt.v(20): near "=": syntax error, unexpected '=', expecting IDENTIFIER or TYPE_IDENTIFIER or '#' or '('
在过程构造之外有过程代码
real a1;
initial
begin
if(en==3'b001)
begin
a1=$bitstoreal(in1[31:0]);
end
end
在过程构造之外有过程代码
real a1;
initial
begin
if(en==3'b001)
begin
a1=$bitstoreal(in1[31:0]);
end
end
如果您试图为其他数据类型设置
wire
的值或在程序块内(始终
或初始
),则Verilog中的赋值由assign
语句完成
在您的示例中,缺少一个始终
块:
always @(*) begin
if(en==3'b001) begin
a1=$bitstoreal(in1[31:0]);
end
end
如果您不确定自己在做什么,那么将总线分配给
real
类型也可能会有问题。您可能需要将其编写为a1=$itor(in1)代码>如果您试图为其他数据类型设置导线
的值或在程序块内(始终
或初始
),则Verilog中的赋值由赋值
语句完成
在您的示例中,缺少一个始终
块:
always @(*) begin
if(en==3'b001) begin
a1=$bitstoreal(in1[31:0]);
end
end
如果您不确定自己在做什么,那么将总线分配给real
类型也可能会有问题。您可能需要将其编写为a1=$itor(in1)代码>我不希望它在初始块中。还有别的办法吗?是的。使用任务或函数。查看此内存模型。->Sim模型->LPDDR Verilog模型。这个模型是mobile_ddr.v。你可以看到这个模型如何使用一些程序块进行高级控制,然后调用包含计算组的任务。我不希望它在初始块中。还有别的办法吗?是的。使用任务或函数。查看此内存模型。->Sim模型->LPDDR Verilog模型。该模型是mobile_ddr.v。您可以看到该模型如何使用一些程序块进行高级控制,然后调用包含计算组的任务。如果我不想包含always块,我该如何做?不可能对实际类型执行连续赋值。我认为它们是作为寄存器实现的。如果我不想包含一个always块,我该怎么做?不可能对实类型进行连续赋值。我认为它们是作为寄存器实现的。