Quartus II使用——2 LED灯闪烁

1.学习要求

目标:实现LED灯(D8)间隔1s闪烁一次

需求分解:D8所对应的输出信号为LED0,对应FPGA管脚号为G15,置该位为低电平,LED灯点亮。间隔1s闪烁1次,即D8的LED灯点亮500ms,再熄灭500ms,便实现了1s闪烁1次的效果。

 2.仿真分析

clk是50Mhz时钟,那么一个周期为(1X10^9)/(50X10^6)=20ns,1秒对应50000000个时钟周期,500ms=25000000个时钟周期。

注:rst_n为高电平有效,当其置高后,遇到的第一个clk上升沿,led灯为低电平点亮。

3.代码编写

module led_ctrl(
       input       clk,
       input       rst_n,
       output reg  led
       );
       parameter time_500m=25000000;
       always@(posedge clk or negedge rst_n)begin
            if(!rst_n)
                cnt<=0;
            else if(cnt==time_500m-1)
                cnt<=0;
            else
                cnt<=cnt+1;
      end
       always@(posedge clk or negedge rst_n)begin
             if(!rst_n)
                led<=1;
            else if(cnt==time_500m-1)
                led<=~led;
            else;
       end
endmodule

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值