Tang-Nano-1K测试

Tang-Nano-1K文档

晶振输入47脚为27MHZ

只需安装教育版云源软件一个软件,正常情况不用安装编程器软件

云源软件很轻量,编译的很快

按键led测试

led_prj.cst

bash 复制代码
IO_LOC "o_led[2]" 11;
IO_PORT "o_led[2]" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8;
IO_LOC "o_led[1]" 10;
IO_PORT "o_led[1]" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8;
IO_LOC "o_led[0]" 9;
IO_PORT "o_led[0]" IO_TYPE=LVCMOS33 PULL_MODE=UP DRIVE=8;
IO_LOC "i_rst_n" 13;
IO_PORT "i_rst_n" IO_TYPE=LVCMOS33 PULL_MODE=UP;
IO_LOC "i_clk" 47;
IO_PORT "i_clk" IO_TYPE=LVCMOS33 PULL_MODE=UP;
IO_LOC "i_key_B" 44;
IO_PORT "i_key_B" IO_TYPE=LVCMOS33 PULL_MODE=UP;

led.v

verilog 复制代码
module  led
#(
    parameter P_CLK_FREQ_MHZ = 27,  // 时钟频率,单位MHz,默认27MHz
    parameter P_DEBOUNCE_MS  = 20,   // 消抖时间,单位ms,默认20ms
    parameter L_CNT_WIDTH    = 32  // 需要外部计算后传入
)
(
    input   wire    i_clk     ,    //系统时钟50Mhz
    input   wire    i_rst_n   ,    //全局复位
    input   wire    i_key_B      ,   //按键B输入信号
    output reg [2:0] o_led // 110 R, 101 B, 011 G
);

// 根据时钟频率和消抖时间计算需要计数的最大值
localparam L_MAX_CNT = P_CLK_FREQ_MHZ * 1000 * P_DEBOUNCE_MS;
reg     [L_CNT_WIDTH-1:0]  r_cnt  ;

// ==================================================
//  r_cnt :记录按键按键的时间
// ==================================================
always@(posedge i_clk or negedge i_rst_n)
    if(i_rst_n == 1'b0)
        r_cnt <= {(L_CNT_WIDTH+1){1'b0}};
     //按键松开,计数器清零
    else if(i_key_B == 1)
        r_cnt <= {(L_CNT_WIDTH+1){1'b0}};
     //按键按下时,计数器计数
    else if(i_key_B == 1'b0 && r_cnt < L_MAX_CNT-1)
        r_cnt <= r_cnt + 1'b1;
    else
    //如果按键一直不释放,则r_cnt维持最大值,防止多次触发
        r_cnt <= r_cnt;
        
// ==================================================
//  o_led :输出灯信号
// ==================================================
always@(posedge i_clk or negedge i_rst_n)
    if(i_rst_n == 1'b0)
        o_led <= 3'b000;
     //计数快满时,产生一个时钟周期的脉冲,因为按住不松手时,计数器会维持在L_MAX_CNT-1
    else if(r_cnt ==  L_MAX_CNT-3)
        o_led <= o_led+1;
    else
        o_led <= o_led;
endmodule

led_prj.tcl

tcl 复制代码
set rtl_dir "D:/workspace/gitee/0/ming-verilog_prj/ming-verilog/src/gowin/rtl"
add_file $rtl_dir/led.v
add_file $rtl_dir/led_prj.cst

编译下载

依次点击 1,2,3,4,5 下载程序运行

相关推荐
421!3 小时前
ESP32学习笔记之GPIO
开发语言·笔记·单片机·嵌入式硬件·学习·算法·fpga开发
dMing`4 小时前
基于FPGA的简易数据采集系统
fpga开发·fpga·adc·dac
LCMICRO-133108477467 小时前
长芯微LD9689完全P2P替代AD9689,是一款双通道、14位、2.0 GSPS/2.6 GSPS模数转换器(ADC)
网络·单片机·嵌入式硬件·网络协议·fpga开发·硬件工程·高速adc
萨文 摩尔杰18 小时前
GPS原理学习
学习·fpga开发
Huangichin18 小时前
跟着Gemini学System Verilog
fpga开发
LCMICRO-1331084774621 小时前
长芯微LDC90810完全P2P替代ADC128D818,是一款八通道系统监控器,专为监控复杂系统状态而设计。
stm32·单片机·嵌入式硬件·fpga开发·硬件工程·模数转换芯片adc
s09071361 天前
保姆级教程十二:USB摄像头接入!ZYNQ+OpenCV+FPGA硬件加速图像处理实战(视觉终极篇)
图像处理·opencv·fpga开发·zynq·硬件加速
CoderIsArt1 天前
FPGA-based 量子电路仿真
fpga开发
碎碎思2 天前
升级版流水灯:用FPGA控制上千颗RGB LED
fpga开发
FPGA-ADDA2 天前
第二篇:Xilinx 7系列FPGA详解——从Spartan到Virtex
fpga开发·fpga·sdr·rfsoc