查看: 2376|回复: 2

流水灯代码

[复制链接]
  • TA的每日心情
    奋斗
    2018-11-23 09:58
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    发表于 2016-8-17 21:43:25 | 显示全部楼层 |阅读模式
    分享到:
    下面是流水灯的代码,内含解释。
    module Running_LED
    (
            //输入端口
            CLK_50M,RST_N,       
            //输出端口
            led               
    );

    input CLK_50M;
    input RST_N;
    output [7:0] led;

    reg [7:0] led; // 8个LED
    reg [23:0] counter;//分频计数器
    reg [3:0] led_state; //定义状态机的变量  9种情况 4位二进制表示
    reg clk_div;  //分频器变量

    always @(posedge CLK_50M)   //时钟上升沿、、、、。
      begin
         if(counter==24'h500000) //计数器
          begin
            clk_div<=~clk_div;  //产生新的频率,分频器产生
            counter<=24'h000000;
          end
         else
            counter<=counter+1'b1;
      end


    always @(posedge clk_div or negedge RST_N)
    begin
        if(!RST_N)
          begin
           led<=8'hff;
           led_state<=4'b0;
                    if(led_state > 4'b1000)
                            led_state <= 4'b0000;
          end
        else
         begin
          case (led_state)  //状态机
            4'b0000: led<=8'b1111_1111;
            4'b0001: led<=8'b1111_1110;
            4'b0010: led<=8'b1111_1101;
            4'b0011: led<=8'b1111_1011;
            4'b0100: led<=8'b1111_0111;
            4'b0101: led<=8'b1110_1111;
            4'b0110: led<=8'b1101_1111;
            4'b0111: led<=8'b1011_1111;
            4'b1000: led<=8'b0111_1111;
            default:led<=8'b0000_0000;
          endcase
         led_state<=led_state+1'b1;
        end
    end

    endmodule

    1、下面介绍阻塞赋值和非阻塞赋值的用法:
         阻塞赋值(=)是顺序执行的,一般用于组合逻辑电路
         非阻塞赋值(<=)是并行执行的,一般用于时序逻辑电路
    **FPGA所谓的并行,并不是所有的都是并行的,在硬件语法中是指always @(xxxx)的并行。
    但是always模块语句里面的代码,有些是并行,有些是顺序的。并行中有顺序。
    2、组合逻辑电路和时序逻辑电路的区别
        时序逻辑电路(简称组合电路)包含记忆单元,输出不仅与输入有关,而且与其他时刻的输入状态有关。   组合逻辑电路简称时序电路)不包含记忆单元,输出与输入有关,与其他时刻的输入状态无关。




    回复

    使用道具 举报

  • TA的每日心情
    难过
    2021-2-27 22:16
  • 签到天数: 1568 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    发表于 2016-8-17 22:10:00 | 显示全部楼层
    谢谢分享,流水灯的程序和使用网上也比较多,我去看看有没有类似的
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2014-2-12 10:49
  • 签到天数: 150 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2016-8-18 09:26:57 | 显示全部楼层
    学习了!
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-11-20 21:39 , Processed in 0.126663 second(s), 19 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.