【发布时间】:2022-01-16 16:19:08
【问题描述】:
我正在尝试弄清楚如何让它运行而不会出现任何错误。
module main;
(
input wire clk, reset;
input wire x, y;
output reg n, c;
s0 = 0,
s1 = 1,
s2 = 2,
s3 = 3;
state_reg;
state_next;
);
always(posedge clk, posedge reset)
begin
if (reset) begin
state_reg = s0;
end
else begin
state_reg = state_next;
end
end
always (x, y, state_reg) begin
state_next = state_reg;
n = 0;
c = 0;
case (state_reg)
s0 : begin
if (x == 0 && y == 0) begin
n = 0;
c = 0;
state_next = s0;
end
else if (x == 0 && y == 1) begin
n = 0;
c = 0;
state_next = s0;
end
else if (x== 1 && y == 0) begin
n = 0;
c = 0;
state_next = s0;
end
else if (x== 1 && y == 1) begin
n = 1;
c = 0;
state_next = s1;
end
end
s1 : begin
if (x == 0 && y == 0) begin
n = 0;
c = 0;
state_next = s0;
end
else if (x == 0 && y == 1) begin
n = 0;
c = 0;
state_next = s0;
end
else if (x== 1 && y == 0) begin
n = 0;
c = 0;
state_next = s0;
end
else if (x== 1 && y == 1) begin
n = 1;
c = 0;
state_next = s2;
end
end
s2 : begin
if (x == 0 && y == 0) begin
n = 0;
c = 0;
state_next = s0;
end
else if (x == 0 && y == 1) begin
n = 0;
c = 0;
state_next = s0;
end
else if (x== 1 && y == 0) begin
n = 0;
c = 0;
state_next = s0;
end
else if (x== 1 && y == 1) begin
n = 1;
c = 1;
state_next = s3;
end
end
s3 : begin
if (x == 0 && y == 0) begin
n = 0;
c = 0;
state_next = s0;
end
else if (x == 0 && y == 1) begin
n = 0;
c = 0;
state_next = s0;
end
else if (x== 1 && y == 0) begin
n = 0;
c = 1;
state_next = s3;
end
else if (x== 1 && y == 1) begin
n = 1;
c = 1;
state_next = s3;
end
end
endcase
endmodule
我觉得代码应该足以显示我正在尝试做的事情,但如果没有,我还附上了逻辑示意图版本的图像(我不确定如何附上 .cct 文件由于我是新手,所以在这个网站上的示意图)。对不起,伙计们,这是我第一次使用 Verilog,所以我真的很陌生,但我必须为一个零指导的荣誉项目写这篇文章。所以输出应该是如果我输入 x 或 y 0 或 1,它应该根据条件(s0、s1、s2、s3)等切换到不同的状态。如果我点击重置,它应该回到 s0 ,如果我点击 clk 或时钟变量,它应该使用输入 x 和 y 来决定下一个状态应该是什么。
编辑:这是我遇到的错误。
jdoodle.v:2: syntax error
jdoodle.v:3: error: invalid module item.
jdoodle.v:6: syntax error
jdoodle.v:6: error: Invalid module instantiation
jdoodle.v:11: error: Invalid module instantiation
jdoodle.v:12: error: Invalid module instantiation
jdoodle.v:13: error: invalid module item.
jdoodle.v:14: syntax error
jdoodle.v:17: Syntax in assignment statement l-value.
jdoodle.v:18: syntax error
jdoodle.v:20: error: invalid module item.
jdoodle.v:21: syntax error
jdoodle.v:25: error: invalid module item.
jdoodle.v:26: syntax error
jdoodle.v:26: error: Invalid module instantiation
jdoodle.v:27: error: Invalid module instantiation
jdoodle.v:31: syntax error
jdoodle.v:31: error: Invalid module instantiation
jdoodle.v:32: error: Invalid module instantiation
jdoodle.v:33: error: Invalid module instantiation
jdoodle.v:36: syntax error
jdoodle.v:36: error: Invalid module instantiation
jdoodle.v:37: error: Invalid module instantiation
jdoodle.v:38: error: Invalid module instantiation
jdoodle.v:41: syntax error
jdoodle.v:41: error: Invalid module instantiation
jdoodle.v:42: error: Invalid module instantiation
jdoodle.v:43: error: Invalid module instantiation
jdoodle.v:46: syntax error
jdoodle.v:46: error: Invalid module instantiation
jdoodle.v:47: error: Invalid module instantiation
jdoodle.v:48: error: Invalid module instantiation
jdoodle.v:53: syntax error
jdoodle.v:53: error: Invalid module instantiation
jdoodle.v:54: error: Invalid module instantiation
jdoodle.v:55: error: Invalid module instantiation
jdoodle.v:58: syntax error
jdoodle.v:58: error: Invalid module instantiation
jdoodle.v:59: error: Invalid module instantiation
jdoodle.v:60: error: Invalid module instantiation
jdoodle.v:63: syntax error
jdoodle.v:63: error: Invalid module instantiation
jdoodle.v:64: error: Invalid module instantiation
jdoodle.v:65: error: Invalid module instantiation
jdoodle.v:68: syntax error
jdoodle.v:68: error: Invalid module instantiation
jdoodle.v:69: error: Invalid module instantiation
jdoodle.v:70: error: Invalid module instantiation
jdoodle.v:75: syntax error
jdoodle.v:75: error: Invalid module instantiation
jdoodle.v:76: error: Invalid module instantiation
jdoodle.v:77: error: Invalid module instantiation
jdoodle.v:80: syntax error
jdoodle.v:80: error: Invalid module instantiation
jdoodle.v:81: error: Invalid module instantiation
jdoodle.v:82: error: Invalid module instantiation
jdoodle.v:85: syntax error
jdoodle.v:85: error: Invalid module instantiation
jdoodle.v:86: error: Invalid module instantiation
jdoodle.v:87: error: Invalid module instantiation
jdoodle.v:90: syntax error
jdoodle.v:90: error: Invalid module instantiation
jdoodle.v:91: error: Invalid module instantiation
jdoodle.v:92: error: Invalid module instantiation
jdoodle.v:97: syntax error
jdoodle.v:97: error: Invalid module instantiation
jdoodle.v:98: error: Invalid module instantiation
jdoodle.v:99: error: Invalid module instantiation
jdoodle.v:102: syntax error
jdoodle.v:102: error: Invalid module instantiation
jdoodle.v:103: error: Invalid module instantiation
jdoodle.v:104: error: Invalid module instantiation
jdoodle.v:107: syntax error
jdoodle.v:107: error: Invalid module instantiation
jdoodle.v:108: error: Invalid module instantiation
jdoodle.v:109: error: Invalid module instantiation
jdoodle.v:112: syntax error
jdoodle.v:112: error: Invalid module instantiation
jdoodle.v:113: error: Invalid module instantiation
jdoodle.v:114: error: Invalid module instantiation
【问题讨论】:
-
您面临什么样的错误?它是编译还是功能?请提供错误信息。
-
你为什么用 VHDL 标签来标记你的 Verilog 问题?
-
我用更多信息更新了帖子。让我知道这是否足够。真的很抱歉,我真的不习惯这种编码语言,所以请您给我一些耐心。
-
最好将您的问题一次限制为一个错误。这为未来的编码人员提供了更好的资源 - 如果他们有相同的错误,他们可以使用问题和答案。
-
请编辑问题以将其限制为具有足够详细信息的特定问题,以确定适当的答案。