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 下载程序运行

相关推荐
北京青翼科技4 小时前
PCIe接口-高速模拟采集—高性能计算卡-青翼科技高品质军工级数据采集板-打造专业工业核心板
图像处理·人工智能·fpga开发·信号处理·智能硬件
dadaobusi15 小时前
verilog重音符号
fpga开发
s090713615 小时前
Xilinx FPGA ISERDES 使用详细介绍
fpga开发·xilinx·ddr·iserdes
虹科智能自动化17 小时前
虹科分享 | SocTek IP Cores:FPGA高端网络与时间同步解决方案
fpga开发·ip核·tsn时间敏感网络
秋风战士17 小时前
无线通信算法之340:信道均衡除法定标讨论
算法·fpga开发·信息与通信
FPGA小迷弟18 小时前
基于FPGA实现HDMI接口,选型/核心技术
学习·fpga开发·verilog·fpga·modelsim
szxinmai主板定制专家1 天前
基于 PC 的控制技术+ethercat+linux实时系统,助力追踪标签规模化生产,支持国产化
arm开发·人工智能·嵌入式硬件·yolo·fpga开发
博览鸿蒙2 天前
如何为春招的金三银四做好准备
fpga开发
FPGA小迷弟2 天前
FPGA处理图像需要用到的主流接口详解
学习·fpga开发·verilog·fpga·modelsim
LeoZY_2 天前
CH347 USB转JTAG功能使用笔记:CH347根据SVF文件实现任意FPGA下载
笔记·stm32·嵌入式硬件·fpga开发·硬件架构·硬件工程