白沐沐vccc 2023-04-16 18:20 采纳率: 96.2%
浏览 14
已结题

verilog 单段流水灯

请问我这个代码为什么上板子,打开rst开关,灯不亮呀!


`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: 
// Engineer: 
// 
// Create Date: 2023/04/09 17:24:08
// Design Name: 
// Module Name: FlowingWaterLamp
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//////////////////////////////////////////////////////////////////////////////////


module FlowingWaterLamp(
    input   CLK100MHZ,
    input rst,
    input [3:1] SW,
    output reg[7:0] LED
    );
    //dir1确定单灯左右的方向,dir2确定双灯方向
    wire clk_N100;
    reg[7:0] state;
    reg[7:0] nextstate;
    
    parameter start=8'b0000_0000,
    s00=8'b1000_0000,
    s01=8'b0100_0000,
    s02=8'b0010_0000,
    s03=8'b0001_0000,
    s04=8'b0000_1000,
    s05=8'b0000_0100,
    s06=8'b0000_0010,
    s07=8'b0000_0001;
    
    divider u_DIV(.clk(clk100MHZ),.clk_N100(clk_N100));
    
    always @(posedge clk_N100) begin
        if(!rst)
            state<=8'b0000_0000;
        else
            state<=nextstate;
    end
     
    always @(posedge clk_N100) begin
        case(state) 
             start:begin
                if(SW==3'b000) nextstate<=s00;
             end       
             
             s00:begin
                if(SW==3'b000) nextstate<=s01;
             end
             
             s01:begin
                if(SW==3'b000) nextstate<=s02;
             end
             
             s02:begin
                if(SW==3'b000) nextstate<=s03;
             end
             
             s03:begin
                if(SW==3'b000) nextstate<=s04;
             end
             
             s04:begin
                if(SW==3'b000) nextstate<=s05;
             end
             
             s05:begin
                if(SW==3'b000) nextstate<=s06;
             end
             
             s06:begin
                if(SW==3'b000) nextstate<=s07;
             end
             
             s07:begin
                if(SW==3'b000) nextstate<=s00;
             end
            default:;
         endcase
    end
    
    always @(posedge clk_N100) begin
        LED<=state;
    end
    
endmodule
  • 写回答

2条回答 默认 最新

  • 努力の小熊 全国大学生物联网技术与应用大赛获奖者 2023-04-16 19:37
    关注

    结合ChatGPT4.0回答:
    根据你提供的代码,我注意到了一些可能的问题。

    首先,你的代码中引用了一个名为 "divider" 的模块,但你没有在这段代码中提供该模块。你需要确保该模块在你的设计中定义,并正确连接到 FlowingWaterLamp 模块。divider 模块应该接受一个高速时钟(如 100MHz)并输出一个较低速的时钟(如 1Hz 或其他适当的速率),以便观察流水灯效果。

    其次,在你的状态机中,你仅在开关输入为 '3'b000' 时才改变状态。如果你的开关始终为非零值,状态机将停留在初始状态,导致流水灯不工作。你需要检查你的硬件设置,并根据需要调整开关输入条件。例如,你可以将条件更改为 '3'b001',以便在开关 1 为 ON 时启动流水灯。

    最后,确保你的硬件连接正确。检查你的硬件约束文件,确保 CLK100MHZ、rst、SW 和 LED 端口与你的 FPGA 开发板上的相应引脚正确连接。

    如果仍然无法解决问题,请仔细检查你的硬件设置和代码,并考虑查看 FPGA 开发板的相关文档和示例代码。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 4月25日
  • 已采纳回答 4月17日
  • 创建了问题 4月16日

悬赏问题

  • ¥15 这种微信登录授权 谁可以做啊
  • ¥15 请问我该如何添加自己的数据去运行蚁群算法代码
  • ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
  • ¥15 网络设备配置与管理这个该怎么弄
  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来