zoukankan      html  css  js  c++  java
  • FPGA之verilog流水灯小程序

    同样话不多说直接上代码:

    //自己修改过的流水灯,从板子上的led4亮到led1,延迟改为了2s
    module led_water(
                 led,
                 clk,
                 rst_n

                 ); // 模块名及端口参数

                input clk; // 输入端口定义,50M 时钟
               input rst_n;
               output[3:0] led; // 输出端口定义
              reg[3:0] led; //变量led_out 定义为寄存器型
              reg[26:0] counter; /*变量led_out 定义为寄存器型,至于为甚么要定义27位宽,
                                          是因为延迟时间的要求,要计数100000000次的话,那么该次数
                                          值在2的26次方到2的27次方之间,所以采用27位宽*/
    /*接下来严格按照明德扬代码编写规范,一个always中只一个输出信号。第一个always块用于编写计数器*/
    always @(posedge clk or negedge rst_n)begin
    if(rst_n == 1'b0)begin
    counter <= 0;
    end
    else if(counter == 27'd99999999)begin /*时钟周期为50MHz,那么一个时钟周期就是1/50M=20ns,
    那么若要实现延迟2s下一个灯亮的话,就要计数时钟周期100000000次。*/
    counter <= 0;
    end
    else begin
    counter <= counter+1;
    end
    end
    //第二个always块用于编写流水灯
    always @(posedge clk or negedge rst_n)begin
    if(rst_n == 1'b0)begin
    led <= 4'b0000;
    end
    else if(led == 4'b0000 && counter == 99_999_999)begin
    led <= 4'b1111;
    end
    else if(counter == 99_999_999)begin
    led <= led<<1;
    end
    end
    endmodule

  • 相关阅读:
    Kafka原理与java simple producer示例
    【转载】kafka的工作原理
    Python 基本类型转换
    hadooop2.6 job pending research
    记一次zookeeper集群搭建错误的排除
    Apache Drill Install and Test
    Linux或Unix环境利用符号链接升级Maven
    Android之Linearlayouy线性布局
    Effective Java Second Edition --- Builder Pattern
    java生产者/消费者模式实现——一生产者一消费者(操作值)
  • 原文地址:https://www.cnblogs.com/curatan/p/7419144.html
Copyright © 2011-2022 走看看