请教用Verilogams写输出电流的一个问题
时间:10-02
整理:3721RD
点击:
我用verilogams写了一个模块,输入是2位码字,输出是对应的电流
module (Iout, Ain);//Iout为输出电流,Ain为2位输入码字
output Iout;
input [0:1] Ain;
electrical Iout;
logic [0:1] Ain;
parameter real I = 6E-9; //基准电流
real iout; //内部电流变量;
always @(*) begin
case (Ain)//根据输入编码决定iout的值
2'b00: begin iout = 5.0; end
2'b01: begin iout = 4.0; end
2'b11: begin iout = 3.0; end
2'b11: begin iout = 2.0; end
endcase
end
analog
I(Iout) <+ iout*I;//通过Iout和基准电流相乘得到最后输出电流
end
结果编译的时候这句报错:I(Iout) <+ iout*I;说是“illegal expression primary",请问怎么解决啊?
module (Iout, Ain);//Iout为输出电流,Ain为2位输入码字
output Iout;
input [0:1] Ain;
electrical Iout;
logic [0:1] Ain;
parameter real I = 6E-9; //基准电流
real iout; //内部电流变量;
always @(*) begin
case (Ain)//根据输入编码决定iout的值
2'b00: begin iout = 5.0; end
2'b01: begin iout = 4.0; end
2'b11: begin iout = 3.0; end
2'b11: begin iout = 2.0; end
endcase
end
analog
I(Iout) <+ iout*I;//通过Iout和基准电流相乘得到最后输出电流
end
结果编译的时候这句报错:I(Iout) <+ iout*I;说是“illegal expression primary",请问怎么解决啊?
等式两边赋值类型不一样?建议考察一下这个问题。
I是保留字吧?