我有如下所示的 Verilog 代码,当我编译它时,我收到以下错误消息,并且代码的第一行突出显示:
Error:
标识符必须用端口模式声明:busy。
Code:
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
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
正如蒂姆指出的,繁忙位于端口列表中,但未声明为输入或输出。
还有分配给start
不管用。您无法分配输入。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)