高云fpga.Tang Nano 4k(GW1NSR-4C)呼吸灯

一、环境搭建

        - 软件安装略。在官网下载即可,有免费个人使用的社区版。

        - 程序下载:装好驱动直接点这个就可以下载高云fpga.Tang Nano 4k(GW1NSR-4C)呼吸灯_第1张图片 

 二、代码(如下三个文件)

高云fpga.Tang Nano 4k(GW1NSR-4C)呼吸灯_第2张图片 

        - 顶层模块(文件main.v)

module top_hdl(
    input sys_clk,  
    input sys_rst_n,

    output reg led
);
localparam CNT_MAX = 27_000;
localparam precision = 27;


reg flag;
reg [14:0] cnt;
reg [14:0] Duty_cycle_ratio;

initial begin
    flag = 1'b0;
    cnt = 15'b0;
    Duty_cycle_ratio = 15'b0;
end

always @ (posedge sys_clk) begin
    if(!sys_rst_n) begin
        cnt <= 15'd0;
    end else begin
        if(cnt >= CNT_MAX)begin
            cnt <= 15'd0;
        end else begin
            cnt <= cnt + 15'd1;
        end
    end
end

always @(posedge sys_clk)begin
    if(sys_rst_n == 1'b0)begin
        flag <= 1'b0;
    end else if(Duty_cycle_ratio == CNT_MAX)begin
        flag <= ~flag;
    end
end

always @(posedge sys_clk)begin
    if(sys_rst_n == 1'b0)begin
        Duty_cycle_ratio <= 15'b0;
    end else if(cnt == 15'b0) begin
        if(Duty_cycle_ratio < CNT_MAX)
            Duty_cycle_ratio <= Duty_cycle_ratio + precision;
        else 
            Duty_cycle_ratio <= Duty_cycle_ratio;
    end else begin
        if(Duty_cycle_ratio == CNT_MAX)
            Duty_cycle_ratio <= 15'b0;
        else 
            Duty_cycle_ratio <= Duty_cycle_ratio;
    end
end

always @(posedge sys_clk)begin
    if(sys_rst_n == 1'b0)begin
        led <= 1'b0;
    end else if(Duty_cycle_ratio >= cnt && flag == 1'b0)begin
        led <= 1'b0;
    end else if(Duty_cycle_ratio < cnt && flag == 1'b0)begin
        led <= 1'b1;
    end else if(Duty_cycle_ratio >= cnt && flag == 1'b1)begin
        led <= 1'b1;
    end else begin
        led <= 1'b0;
    end 
end

endmodule   //top_hdl end

        - 测试文件(文件testbeach.v)

`timescale 1ns/1ps

module top_hdl_tb;

localparam PERIOD = 37;      //ns

reg clk;
reg rst_n;

always #(PERIOD/2) clk <= !clk;

initial begin 
    rst_n = 0;
    clk = 0;
    
    #(PERIOD*100)
    rst_n = 1;
end

top_hdl top_hdl_ut0(
    .sys_clk(clk),  
    .sys_rst_n(rst_n),

    .led()
);

endmodule   //top_hdl_tb end

        - 引脚约束文件(文件kb1.cst)

IO_LOC "led" 10;
IO_PORT "led" PULL_MODE=NONE DRIVE=8;
IO_LOC "sys_rst_n" 14;
IO_PORT "sys_rst_n" PULL_MODE=UP;
IO_LOC "sys_clk" 45;
IO_PORT "sys_clk" PULL_MODE=UP;

三、modulesim

        - 略

四、代码下载(需要先进行代码的编译)

        - 高云fpga.Tang Nano 4k(GW1NSR-4C)呼吸灯_第3张图片

         -   高云fpga.Tang Nano 4k(GW1NSR-4C)呼吸灯_第4张图片           - 高云fpga.Tang Nano 4k(GW1NSR-4C)呼吸灯_第5张图片

         - 高云fpga.Tang Nano 4k(GW1NSR-4C)呼吸灯_第6张图片

五、看到开发板开始呼吸就是完成了功能。 

 

你可能感兴趣的:(fpga开发,学习)