在 case 语句中更新多个变量

3
我已经找了一段时间,如果我使用不当的术语,请原谅...
代码的目标是在输入为0时更新Aout1和Aout0,输出对应于7段显示器,但是我遇到了以下错误:
“错误(10170):Verilog HDL语法错误FourBitAdder.v(55)附近的文本:“,”;期望“;”。检查并修复在指定关键字之前或之后立即出现的任何语法错误。”
下面是引起问题的代码片段...
always @*
case (A)
4'b0000 : Aout1 = 7'b1000000, Aout0 = 7'b1000000; //00

我尝试将代码改为以下形式,虽然在软件方面没有出现任何错误,但我的硬件(7段数码管)与我之前只更改一个变量时的工作方式不同。

always @*
case (A)
4'b0000 : Aout1 = 7'b1000000; 4'b0000 : Aout0 = 7'b1000000; //00

提前感谢您:)

1个回答

5

在冒号后使用beginend语句。

always @* begin
    case(A)
        4'b0000: begin
            Aout1 = 7'b1000000;
            Aout0 = 7'b1000000;
        end
        4'b0001: begin
            Aout1 = 7'b0000011;
            Aout0 = 7'b0000011;
        end

    endcase
end

3
当您想在只允许放置一条语句的位置放置多个语句时,必须使用“begin”和“end”。 - dave_59

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接