10170 verilog 代码打开/关闭 7 段 LED 时出现语法错误

问题描述

我的项目是关于找到两个输入 P[3:0] 和 Q[3:0] 之间的公因子值。显示输出为 G[13:0]。 P、Q 和 G 是 2 位数字值。我正在尝试使用以下代码为两位数 7 段显示器构建一个显示模块。但是编译失败。

这是我的代码

module display(
    input[3:0] p0,q0,output reg[13:0]LEDp,LEDq,LEDg);

    always @*
    begin
        case(p0)
            4'b0000 : LEDp = 14'b11111111000000;
            4'b0001 : LEDp = 14'b11111111111001;
            4'b0010 : LEDp = 14'b11111110100100;
            4'b0011 : LEDp = 14'b11111110110000;
            4'b0100 : LEDp = 14'b11111110011001;
            4'b0101 : LEDp = 14'b11111110010010;
            4'b0110 : LEDp = 14'b11111110000010; 
            4'b0111 : LEDp = 14'b11111111111000;
            4'b1000 : LEDp = 14'b11111110000000;
            4'b1001 : LEDp = 14'b11111110010000;
            4'b1010 : LEDp = 14'b11111101000000;
            4'b1011 : LEDp = 14'b11111101111001;
            4'b1100 : LEDp = 14'b11111100100100;
            4'b1101 : LEDp = 14'b11111100110000;
            4'b1110 : LEDp = 14'b11111100011001;
            4'b1111 : LEDp = 14'b11111100010010;
            default : LEDp = 14'b01111110111111;
        endcase
    end
        
    always @*
    begin
        case (q0)
            4'b0000: LEDq = 14'b11111111000000;
            4'b0001: LEDq = 14'b11111111111001;
            4'b0010: LEDq = 14'b11111110100100;
            4'b0011: LEDq = 14'b11111110110000;
            4'b0100: LEDq = 14'b11111110011001;
            4'b0101: LEDq = 14'b11111110010010;
            4'b0110: LEDq = 14'b11111110000010;
            4'b0111: LEDq = 14'b11111111111000;
            4'b1000: LEDq = 14'b11111110000000;
            4'b1001: LEDq = 14'b11111110010000;
            4'b1010: LEDq = 14'b11111101000000;
            4'b1011: LEDq = 14'b11111101111001;
            4'b1100: LEDq = 14'b11111100100100;
            4'b1101: LEDq = 14'b11111100110000;
            4'b1110: LEDq = 14'b11111100011001;
            4'b1111: LEDq = 14'b11111100010010;
            default: LEDq = 14'b01111110111111;
        endcase
    end
    
    always @*
    begin
        case (G)
            4'b0000: LEDg = 14'b11111111000000;
            4'b0001: LEDg = 14'b11111111111001;
            4'b0010: LEDg = 14'b11111110100100;
            4'b0011: LEDg = 14'b11111110110000;
            4'b0100: LEDg = 14'b11111110011001;
            4'b0101: LEDg = 14'b11111110010010;
            4'b0110: LEDg = 14'b11111110000010;
            4'b0111: LEDg = 14'b11111111111000;
            4'b1000: LEDg = 14'b11111110000000;
            4'b1001: LEDg = 14'b11111110010000;
            4'b1010: LEDg = 14'b11111101000000;
            4'b1011: LEDg = 14'b11111101111001;
            4'b1100: LEDg = 14'b11111100100100;
            4'b1101: LEDg = 14'b11111100110000;
            4'b1110: LEDg = 14'b11111100011001;
            4'b1111: LEDg = 14'b11111100010010;
            default: LEDg = 14'b01111110111111;
        endcase
    end
endmodule

错误是:

错误 (10170): display.v(8) 文本附近的 Verilog HDL 语法错误 ï

错误 (10170):在 display.v(8) 文本“ï”附近出现 Verilog HDL 语法错误;期待“:”或“,”

错误 (10170):在 display.v(8) 靠近文本 ¼ 处的 Verilog HDL 语法错误

错误 (10170):在 display.v(8) 文本附近出现 Verilog HDL 语法错误

我可以知道我应该如何纠正它吗?我已经通过互联网搜索但没有找到解决方案。

解决方法

当我复制您的代码并在我的软件中执行它时,我注意到您的代码中没有冒号 (:),只有 fullwidth colons ()。将这个奇怪的 unicode 冒号更改为 ascii 冒号几乎解决了所有问题。您还使用未定义的 G