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

相关推荐
南檐巷上学6 小时前
基于FPGA的正弦信号发生器、滤波器的设计(DAC输出点数受限条件下的完整正弦波产生器)
fpga开发·数字信号处理·dsp·dds
嵌入式-老费10 小时前
Linux Camera驱动开发(fpga + csi rx/csi tx)
fpga开发
ALINX技术博客1 天前
【202601芯动态】全球 FPGA 异构热潮,ALINX 高性能异构新品预告
人工智能·fpga开发·gpu算力·fpga
JJRainbow1 天前
SN75176 芯片设计RS-232 转 RS-485 通信模块设计原理图
stm32·单片机·嵌入式硬件·fpga开发·硬件工程
s9123601011 天前
FPGA眼图
fpga开发
北京青翼科技1 天前
【PCIe732】青翼PCIe采集卡-优质光纤卡- PCIe接口-万兆光纤卡
图像处理·人工智能·fpga开发·智能硬件·嵌入式实时数据库
minglie11 天前
verilog信号命名规范
fpga开发
XINVRY-FPGA1 天前
中阶FPGA效能红线重新划定! AMD第2代Kintex UltraScale+登场,记忆体频宽跃升5倍
嵌入式硬件·fpga开发·硬件工程·dsp开发·fpga
南檐巷上学2 天前
基于FPGA的音频信号监测识别系统
fpga开发·音频·verilog·fpga·傅立叶分析·fft·快速傅里叶变换
Aaron15882 天前
基于RFSOC的数字射频存储技术应用分析
c语言·人工智能·驱动开发·算法·fpga开发·硬件工程·信号处理