0

我不明白这个错误是什么意思。我想用内存做一个简单的计算器,但是这个错误跳了出来,我不知道是什么

** 错误:C:\Users\Kainy\Desktop\LOGIC\calculator\cal.v(14):输入、输出或输入输出未出现在端口列表中:f1。** 错误:C:\Users\Kainy\Desktop\LOGIC\calculator\cal.v(15):输入、输出或输入输出未出现在端口列表中:f2。

方法。好像我的 f1, f2 有一些无效的东西,我该如何解决?

module cal( a,b,c,op,clk,reset,en,r_w);     
input [3:0] a;
input [3:0] b; 
input [7:0] c; 
input [2:0] op; 
input clk;
input reset;
input en;
input r_w;



output reg [7:0] f1;
output reg [7:0] f2; 


wire [7:0] f3;




always@(a or b or op) begin
case(op)
3'b000: begin
 f1 = a;
 f3 = f1;
end

3'b001: begin
 f1 = b;
 f3 = f1;
end


3'b010: begin 
 f1 = a+b;
 f3 = f1;
end

3'b011: begin
 f1 = a - b;
 f3 = f1;
end

3'b100: begin
 f1 = a * b;
 f3 = f1;
end

3'b101: begin
 f1 = b+a;
 f3 = f1;
end

3'b110: begin
 f1 = b-a;
 f3 = f1;
end

3'b111: begin
 f1 = 0;
 f3 = 0;
end
endcase
end

mem32 mem(clk,reset,en,r_w,c,f3,f2);

endmodule
4

1 回答 1

4

您已将f1and指定f2为输出,但未在端口列表中指定它们:换句话说,f1并且f2不会出现在此行:module cal( a,b,c,op,clk,reset,en,r_w);

顺便说一句,您使用的是非常老式的样式。2001 年引入了这种风格(“ANSI 风格”):

module cal(      
  input [3:0] a,
  input [3:0] b, 
  input [7:0] c, 
  input [2:0] op, 
  input clk,
  input reset,
  input en,
  input r_w,
  output reg [7:0] f1,
  output reg [7:0] f2
); 

如果您使用这种 ANSI 样式,您的错误将永远不会发生。

我总是向我教的人推荐所有新代码的 ANSI 样式。我教这种老式的风格,但提到我这样做只是为了让他们能够理解遗留代码。

于 2016-08-30T16:04:25.960 回答