超过飞飞系列-ZYNQ之FPGA学习3.1点亮LED灯(基于正点原子ZYNQ)

一、基础知识

LED灯原理图

  1. 由于二极管样机与ZYNQ的管教相连,只需要改变与LED灯相连的ZYNQ管脚的电平,LED灯的亮灭状态就会发生变化。
  2. 高电平——亮,低电平——灭。
  3. 频率50MHz,周期20ns(1/50MHz)。1S需要累加5000 000次。
    二、程序
module LED_twrinkle(
    input               clk,                                    //输入时钟
    input               rst_n,                                  //输入复位
    
    output[1:0]         led                                     //输出LED
    );
    
 reg [25:0]cnt;                                                 //50000000二进制位26位,所以从0到25是26位
 
 assign led = (cnt < 26'd2500_0000) ? 2'b01 : 2'b10;            //当250000000次计数前为1亮,后为0灭
 
 always @ (posedge clk or negedge rst_n) begin                  //时钟上升沿,复位下降沿
    if(!rst_n)                                                  //是否复位
        cnt <= 26'd0;                                           //复位为0
    else if(cnt < 26'd5000_0000)                                 //当小于50000000次时
        cnt <=cnt+1'b1;                                          //计数值+1   
    else 
        cnt <= 26'd0;                                           //否则计数值为0
 end   
    
endmodule

三、总结

  1. 关于testbench还是没明白,看看后面能搞懂不
  2. 程序编写一开始正确,再打开出现错误,不知道因为什么
  3. 想出波形图,不知道是不是因为没有板子,还是哪里操作失误,只有直线
原创文章 26 获赞 4 访问量 804

猜你喜欢

转载自blog.csdn.net/qq_42280105/article/details/105691907