Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
错误(10170):Verilog HDL语法错误,在final_lab.sv(46)文本附近;违约;;期待;完";_Verilog - Fatal编程技术网

错误(10170):Verilog HDL语法错误,在final_lab.sv(46)文本附近;违约;;期待;完";

错误(10170):Verilog HDL语法错误,在final_lab.sv(46)文本附近;违约;;期待;完";,verilog,Verilog,您好,我在verilog中遇到以下错误,我不知道为什么我似乎无法解决它。请帮忙 错误:错误(10170):Verilog HDL语法错误在final_lab.sv(46) 近文本“默认”;期待“结束” 代码 模块最终实验室(时钟50、开关、LED、钥匙、HEX5、HEX4、HEX3、HEX2、HEX1、HEX0); 输入逻辑时钟50; 输入逻辑[6:1]开关; 输入逻辑[3:0]键; 输出逻辑[9:0]LEDR; 输出逻辑[6:0]HEX5、HEX4、HEX3、HEX2、HEX1、HEX0; 逻

您好,我在verilog中遇到以下错误,我不知道为什么我似乎无法解决它。请帮忙

错误:错误(10170):Verilog HDL语法错误在final_lab.sv(46) 近文本“默认”;期待“结束”

代码

模块最终实验室(时钟50、开关、LED、钥匙、HEX5、HEX4、HEX3、HEX2、HEX1、HEX0);
输入逻辑时钟50;
输入逻辑[6:1]开关;
输入逻辑[3:0]键;
输出逻辑[9:0]LEDR;
输出逻辑[6:0]HEX5、HEX4、HEX3、HEX2、HEX1、HEX0;
逻辑[6:1]我们拥有什么;
逻辑复位;
逻辑键一,键三;
分配whatWeHave=6'b000000;
总是用梳子
开始
如果(whatWeHave[6:1]==SW[6:1])
开始
keytree=0;
keyOne=0;
whatWeHave=whatWeHave;
结束
否则如果(什么有[6:1]SW[6:1])
开始
whatWeHave=whatWeHave-1;
keyOne=1;
keytree=0;
结束
其他的
开始
whatWeHave=whatWeHave;
keyOne=0;
keytree=0;
结束
违约
开始
whatWeHave=6'bxxxxxx;
keyOne=1'bx;
键三=1'bx;
结束
结束
正常光一号(.clk(时钟_50),.reset(开关[9]),.L(键三),.R(键零),.NL(发光二极管[2]),.NR(1'b0),.lightOn(发光二极管[1]);
正常光二号(.clk(CLOCK_50),.reset(SW[9]),.L(keytree),.R(keyZero),.NL(LEDR[3]),.NR(LEDR[1]),.lightOn(LEDR[2]);
正常光三级(.clk(CLOCK_50),.reset(SW[9]),.L(keytree),.R(keyZero),.NL(LEDR[4]),.NR(LEDR[2]),.lightOn(LEDR[3]);
普通灯四个(.clk(CLOCK_50),.reset(SW[9]),.L(keytree),.R(keyZero),.NL(LEDR[5]),.NR(LEDR[3]),.lightOn(LEDR[4]);
正常照明5(.clk(时钟_50),.reset(开关[9]),.L(键三),.R(键零),.NL(发光二极管[6]),.NR(发光二极管[4]),.lightOn(发光二极管[5]);
正常灯六个(.clk(时钟_50),.reset(开关[9]),.L(键三),.R(键零),.NL(1'b0),.NR(发光二极管[5]),.lightOn(发光二极管[6]);
端模

在逻辑中使用默认值的位置是不合适的。default关键字通常与case语句一起使用,而不与if-else条件一起使用


在嵌套的if-else中,最终的else(无条件)将类似于default执行。看起来您正在尝试设置两个默认条件。试着修改你的逻辑

这是错误的语法。基本上,我们使用default作为case语句的最后一部分。不能将defaultif-else语句一起使用。
只需删除default关键字,然后使用另一个if-else语句而不是所有的if else语句;您可以在最后一部分中使用带有default关键字的case语句。

与前面两个答案相同,if else语句中不存在default

仔细想想,在default语句之前有一个else语句,它将覆盖以前未涉及的所有情况,然后在case语句中执行default操作。

尝试对开始/结束块使用一致的缩进,因为这有助于发现此类问题。
module final_lab (CLOCK_50,  SW, LEDR, KEY, HEX5, HEX4, HEX3, HEX2, HEX1,HEX0); 
    input logic CLOCK_50; 
    input logic [6:1] SW; 
    input logic [3:0] KEY;

    output logic [9:0] LEDR; 
    output logic [6:0] HEX5, HEX4, HEX3, HEX2, HEX1, HEX0;

    logic [6:1] whatWeHave;
    logic reset;
    logic keyOne , keyThree;  


    assign whatWeHave = 6'b000000;

    always_comb 
        begin
        if (whatWeHave[6:1] == SW[6:1])
            begin
            keyThree = 0;
            keyOne = 0;
            whatWeHave = whatWeHave;
            end

        else if (whatWeHave[6:1] < SW[6:1])
            begin
            whatWeHave = whatWeHave+1;
            keyThree = 1;
            keyOne = 0;
            end

        else if (whatWeHave[6:1] > SW[6:1])
            begin
            whatWeHave = whatWeHave-1;
            keyOne = 1;
            keyThree = 0;
            end

        else
            begin
            whatWeHave = whatWeHave;
            keyOne = 0;
            keyThree = 0; 
            end 

        default
            begin 
            whatWeHave = 6'bxxxxxx;
            keyOne = 1'bx;
            keyThree = 1'bx;
            end
        end


    normalLight one (.clk(CLOCK_50), .reset(SW[9]), .L(keyThree), .R(keyZero), .NL(LEDR[2]), .NR(1'b0), .lightOn(LEDR[1]));

    normalLight two (.clk(CLOCK_50), .reset(SW[9]), .L(keyThree), .R(keyZero), .NL(LEDR[3]), .NR(LEDR[1]), .lightOn(LEDR[2]));

    normalLight three (.clk(CLOCK_50), .reset(SW[9]), .L(keyThree), .R(keyZero), .NL(LEDR[4]), .NR(LEDR[2]), .lightOn(LEDR[3]));

    normalLight four (.clk(CLOCK_50), .reset(SW[9]), .L(keyThree), .R(keyZero), .NL(LEDR[5]), .NR(LEDR[3]), .lightOn(LEDR[4]));

    normalLightLight five (.clk(CLOCK_50), .reset(SW[9]), .L(keyThree), .R(keyZero), .NL(LEDR[6]), .NR(LEDR[4]), .lightOn(LEDR[5]));

    normalLight six (.clk(CLOCK_50), .reset(SW[9]), .L(keyThree), .R(keyZero), .NL(1'b0), .NR(LEDR[5]), .lightOn(LEDR[6]));
endmodule