当前位置: 首页 > news >正文

gowin GW1N4 LED

基于上已篇文章基础上增加LED闪烁的功能

 《gowin GW1N4 OSC IP 使用》 gowin GW1N4 OSC IP 使用-CSDN博客 https://blog.csdn.net/wzy15965343032/article/details/136172184?spm=1001.2014.3001.5502

代码:

module osc_test(input rst_n,output test_clk,output reg led,output led2
);
parameter BLINK_PERIOD = 12_500_000;  // LED 翻转周期//parameter BLINK_PERIOD = 0.5 / (1 / 50,000,000) = 25,000,000
//parameter BLINK_PERIOD = 0.5 / (1 / 25,000,000) = 12,500,000reg [31:0] counter;  // 32 bits counter for BLINK_PERIOD cycles
wire clkin;Gowin_OSC my_osc (.oscout(clkin)
);assign test_clk = clkin;
assign led2 = led;always @(posedge clkin or negedge rst_n) beginif (~rst_n) begin  // Reset counter and LED on negative edge of rst_ncounter <= 0;led <= 0;end else beginif (counter == BLINK_PERIOD) begin  // Toggle LED every BLINK_PERIOD cyclesled <= ~led;counter <= 0;  // Reset counterend else begincounter <= counter + 1;  // Increment counterendend
endendmodule

这段代码定义了一个名为 osc_test 的模块,其中包含了一个时钟信号 clkin,一个复位信号 rst_n,以及两个输出信号 ledled2

  • parameter BLINK_PERIOD = 12_500_000; 定义了 LED 翻转的周期,即 LED 每隔 BLINK_PERIOD 个时钟周期翻转一次。
  • reg [31:0] counter; 定义了一个 32 位的寄存器 counter,用于计数时钟周期。
  • wire clkin; 定义了一个时钟信号输入端口 clkin
  • Gowin_OSC my_osc (.oscout(clkin)); 实例化了一个名为 my_oscGowin_OSC 模块,将其输出端口 oscout 连接到 clkin
  • assign test_clk = clkin;clkin 赋值给 test_clk,用于输出测试时钟信号。
  • assign led2 = led;led 的状态赋值给 led2,使得 led2led 同步。

接下来是一个 always 块,用于控制 LED 的翻转。在时钟信号 clkin 的上升沿或复位信号 rst_n 的下降沿触发时执行。如果复位信号 rst_n 为低电平,则将 counterled 复位为 0;否则,当 counter 达到 BLINK_PERIOD 时,翻转 led 并将 counter 复位为 0,否则递增 counter

最后,注释部分是被注释掉的之前的代码,可能是之前版本的 LED 翻转实现。

http://www.lryc.cn/news/302256.html

相关文章:

  • Linux ipvlan详解(l2、l3、l3s和bridge、private和vepa模式)
  • 理解并实现OpenCV中的图像平滑技术
  • ChatGPT高效提问—prompt实践(白领助手)
  • Code Composer Studio (CCS) - Comment (注释)
  • springboot/ssm校园菜鸟驿站管理系统Java校园快递取件管理系统
  • 【Mybatis】TypeHandler使用
  • [计算机网络]---网络编程套接字
  • 分布式文件系统 SpringBoot+FastDFS+Vue.js【二】
  • 开源软件:推动软件行业繁荣的力量
  • [杂记]mmdetection3.x中的数据流与基本流程详解(数据集读取, 数据增强, 训练)
  • 阿里云香港轻量应用服务器怎么样,建站速度快吗?
  • 事务及在SpringBoot项目中使用的两种方式
  • stm32--笔记
  • 2024前端面试准备之CSS篇(二)
  • 轨道交通信号增强与覆盖解决方案——经济高效,灵活应用于各类轨道交通场景!
  • 学习数据接构和算法的第10天
  • 初识KMP算法
  • Javaweb之SpringBootWeb案例之AOP概述及入门的详细解析
  • 【Java代码洁癖】NO.2 单元测试mock显式赋值,不能忍
  • 2024.2.19
  • B端系统升级方案模板:针对美观性和体验性升级(总体方案)
  • 第九篇:node静态文件服务(中间件)
  • 软件测试-功能测试-测试流程-如何进行需求评审?对于测试人员来讲,如何从测试的角度评审需求文档?
  • 无刷电机驱动详解
  • Linux+Win双系统远程重启到Win
  • 【XR806开发板试用】+移植rosserial到XR806
  • JSON协议详解、语法及应用
  • kubeasz部署k8s:v1.27.5集群
  • RSA加密,解密,加签及验签
  • 【C++搜索】BFS:走迷宫