FPGA key操控流水灯代码详解 报错10170 10122

module keyled    


(
input sys_clk,
input sys_rest_n,
input [3:0] key,                //按键输入信号
output reg[3:0] led        //led输出信号

);                         


reg  [23:0]cnt;              //时钟计数
reg  [1:0]led_ctrl;                 //按键状态

//用于计数0.2s的计数。
always @ (posedge sys_clk or negedge sys_rest_n)
begin
    if(!sys_rest_n)
        cnt <= 24'd0;
        else
            if(cnt<24'd10000000)
                cnt <= cnt + 1'b1;
            else
                cnt <= 24'd0;
end

always @(posedge sys_clk or negedge sys_rest_n)
begin
    if(!sys_rest_n)
        led_ctrl <= 2'd0;
    else
        if(cnt == 24'd10000000)
            led_ctrl<=led_ctrl+1'b1;
        else
            led_ctrl<=led_ctrl;
end

always @(posedge sys_clk or negedge sys_rest_n)
begin
    if(!sys_rest_n)
        led <= 4'b0000;
        
        else if(key[0]==1'b0)       
    case(led_ctrl)
           2'd0   : led<=4'b1000;   
             2'd1   : led<=4'b0100;
             2'd2   : led<=4'b0010;
             2'd3   : led<=4'b0001;
              default  : led<=4'b0000;
            endcase
            
        else if(key[1]==1'b0)
            case(led_ctrl)
             2'd0   : led<=4'b0001;
            2'd1   : led<=4'b0010;
             2'd2   : led<=4'b0100;             
            2'd3   : led<=4'b1000;
              default  : led<=4'b0000;
            endcase
            
        else if(key[2]==1'b0)
            case(led_ctrl)
             2'd0   : led<=4'b1111;
             2'd1   : led<=4'b0000;
             2'd2   : led<=4'b1111;
             2'd3   : led<=4'b0000;
             default : led<=4'b0000;      
            endcase
        

    /*else if(key[0]==1'b0)
             case (led_ctrl)
            2'b00   : led  <=  4'b1000;
            2'b01   : led<=  4'b0100;
            2'b10   : led  <=4'b0010;
            2'b11   : led<=4'b0001;
            default  : led<=4'b0000;
        endcase
    else if (key[1]==1'b0)  //按键2按下时,从左向右的流水灯效果
        case (led_ctrl)
            2'b00   : led<=4'b0001;
            2'b01   : led<=4'b0010;
            2'b10   : led<=4'b0100;
            2'b11   : led<=4'b1000;
            default  : led<=4'b0000;
        endcase
    else if (key[2]==1'b0)  //按键3按下时,LED闪烁
        case (led_ctrl)
            2'b00   : led<=4'b1111;
            2'b01   : led<=4'b0000;
            2'b10   : led<=4'b1111;
            2'b11   : led<=4'b0000;
            default  : led<=4'b0000;
        endcase
            
            */
            
        else if(key[3]==1'b0) 
            led = 4'b1111;
        else
            led = 4'b0000;    
end


endmodule

//下面的报错找了很久,是因为符号的问题!!!

eb14340525154d9ea985a81eaa9141d0.png

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 10170是Verilog HDL语法错误的错误代码。这意味着在编写Verilog代码时,出现了语法错误,导致编译器无法正确解析代码。要解决此问题,需要仔细检查代码并修复语法错误。常见的语法错误包括拼写错误、缺少分号、括号不匹配等。 ### 回答2: 10170 Verilog HDL 语法错误是指在编写 Verilog HDL 高级硬件描述语言代码的过程中,程序出现了语法错误并无法通过编译。在 Verilog HDL 中,语法错误指的是编写的代码不符合语法规则,或是存在一些无法识别的字符、注释符号等等。 在实际的编写过程中,可能存在以下几种情况导致10170 Verilog HDL 语法错误: 1. 语法错误:可能会在 Verilog HDL 代码中使用不正确的语法结构或使用不合法的变量、符号、数字以及操作符等,这都可能会导致语法错误的出现。 2. 变量命名错误:在命名变量时,可能会出现拼写错误、使用了不允许的特殊字符或者命名方式不符合规范等问题,这也有可能导致语法错误的出现。 3. 描述错误:在 Verilog HDL 中存在多种描述方法,如果在编写代码时选择了错误的描述方法或者使用的描述方法出现错误,也有可能会导致语法错误的出现。 4. 硬件配置不匹配:有时候可能会因为硬件配置与代码描述不匹配而导致语法错误,例如描述了不存在的硬件模块等。 如果遇到10170 Verilog HDL 语法错误,应该按照以下步骤进行排查和解决: 1. 检查代码规范性:通过检查代码结构,变量、符号、数字以及操作符等语法使用情况,可以排查可能的语法错误。 2. 检查变量命名:确保所使用的变量命名不存在拼写错误,不包含非法字符且符合规范。 3. 检查描述方法:确保所使用的描述方法正确无误,包括模块、端口、线路、寄存器、状态机等。 4. 检查硬件配置:确保所描述的硬件配置与实际硬件配置匹配,以防止因硬件配置不匹配而导致语法错误。 总之,对于 Verilog HDL 语法错误,需要耐心地仔细检查代码,一步一步地解决问题,确保代码的正确性和可靠性。此外,通过逐步排查语法错误,还可以提升对语法规则的理解和掌握程度。 ### 回答3: 10170 Verilog HDL语法错误通常指在编写Verilog HDL代码时,程序无法通过编译而导致的错误。常见的语法错误包括: 1. 括号未正确匹配。在编写Verilog HDL代码时,常常会使用括号来组合信号。如果括号未正确匹配,就会导致语法错误。 2. 分号未正确使用。在Verilog HDL代码中,分号一般用于分隔语句。如果分号未正确使用,就会报错。 3. 语句未正确结束。在Verilog HDL代码中,每条语句都需要以分号结束。如果语句未正确结束,就会报错。 4. 模块声明错误。在Verilog HDL代码中,模块声明是非常重要的一部分。如果模块声明出现错误,就会导致编译错误。 5. 变量命名错误。在Verilog HDL代码中,变量命名需要遵循一定的规则。如果变量命名错误,就会导致编译错误。 解决这些语法错误的方法包括: 1. 仔细检查代码。检查代码是否存在括号匹配、分号错误、模块声明错误、变量命名错误等。 2. 使用编辑器。使用专门的编辑器可以帮助减少语法错误的发生。 3. 参考手册。Verilog HDL手册中有详细的语法规则和示例,可以帮助解决语法错误。 4. 寻求帮助。如果无法解决语法错误,可以寻求别人的帮助,包括教师、同学、论坛等。 总之,遵循语法规则,认真检查代码,能够有效预防和解决Verilog HDL语法错误。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值