菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
427
0

【iCore1S 双核心板_FPGA】例程一:GPIO输出实验——点亮LED

原创
05/13 14:22
阅读数 63882

实验现象:

三色LED循环点亮。

核心源代码:

//--------------------Module_LED-----------------------------//
module LED(
    input CLK_12M,
    output FPGA_LEDR,
    output FPGA_LEDG,
    output FPGA_LEDB
);
//----------------------rst_n---------------------------------//
    reg rst_n;
    reg [6:0]cnt_rst;
    
    always@(posedge CLK_12M)
        if(cnt_rst==100)
            begin 
                rst_n <= 1'd1;
            end
        else cnt_rst <= cnt_rst + 1'd1;
        
//--------------------led_cnt-------------------------------//
    reg [27:0]cnt;
    
    always @ (posedge CLK_12M or negedge rst_n)
        if(!rst_n)
            begin
                cnt <= 28'd0;
            end
        else
            begin
                if(cnt == 28'd60000000)
                    cnt <= 28'd0;
                else 
                    cnt <= cnt + 1'd1;
            end
        
//--------------------led----------------------------------//
    reg ledr,ledg,ledb;
    
    always @ (posedge CLK_12M or negedge rst_n)
        begin
            if(!rst_n)
                begin
                    ledr <= 1'd1;
                    ledg <= 1'd1;
                    ledb <= 1'd1;
                end
            else if(((cnt > 0) || (cnt == 0)) &&  ((cnt < 28'd20000000) || (cnt == 28'd20000000)))
                begin
                    ledr <= 1'd0;
                    ledg <= 1'd1;
                    ledb <= 1'd1;
                end
            else if((cnt > 28'd20000000) &&  ((cnt < 28'd40000000) || (cnt == 28'd40000000)))
                begin
                    ledr <= 1'd1;
                    ledg <= 1'd0;
                    ledb <= 1'd1;                
                end
            else 
                begin
                    ledr <= 1'd1;
                    ledg <= 1'd1;
                    ledb <= 1'd0;
                end
        end
        
    assign FPGA_LEDR = ledr;
    assign FPGA_LEDG = ledg;
    assign FPGA_LEDB = ledb;
        
//--------------------endmodule-----------------------------//
endmodule 

代码包下载:

链接:http://pan.baidu.com/s/1jHVWIIM 密码:wlwy

发表评论

0/200
427 点赞
0 评论
收藏