必须使用端口模式声明标识符:busy。 (Verilog的)

时间:2014-06-26 22:10:09

标签: verilog

我有下面显示的Verilog代码,当我编译它时,我收到以下错误消息,代码的第一行突出显示:

错误:

  

必须使用端口模式声明标识符:busy。

代码:

module main(clk, rst, start, busy, ready, cnt, s, a);

input clk, rst;
input [3:0] start, s, a, cnt_A;

output ready;
output [3:0] cnt;

wire busy, ready;
wire [3:0] cnt;

assign start[0] = s[0] & a[0];
assign start[1] = s[1] & a[1];
assign start[2] = s[2] & a[2];
assign start[3] = s[3] & a[3];
//assign cnt_A = 4'd12;

counter ucounter(.clk(clk), .rst(rst), .start(start), .busy(busy), .ready(ready), .cnt_A(cnt_A), .cnt(cnt));

always @ (posedge clk or posedge rst) begin
    if (!rst) begin
        start <= 4'b0000;
        s <= 4'b1000;
        a <= 4'b0010;
    end
    else if (!busy) begin
        s <= s >>> 1;
    end
    else if (ready) begin
        a <= a >>> 3;
    end
end

assign cnt = cnt;

endmodule

2 个答案:

答案 0 :(得分:0)

cnt_A被列为不在端口列表中的输入。

module main(clk, rst, start, busy, ready, cnt, s, a); // <-- No cnt_A
// ...
input [3:0] start, s, a, cnt_A; // <- cnt_A here

Tim指出忙在端口列表中但未声明为输入或输出。

start的分配也不起作用。您无法分配输入。

答案 1 :(得分:0)

busy位于端口列表中,但未在模块中列为输入或输出。