FPGA的设计中通常使用计数器来计时,对于采用200Mhz的系统时钟,一个时钟周期是5ns,那么表示一秒需要200000000个时钟周期,如果一个时钟周期计数器累加一次,那么计数器从0到199999999正好是200000000个周期,就是1秒的时钟。(时间仅供参考,具体可以根据所需要的时间来修改参数,虽然我改的时候发现很困难,并且需要大量的时间 )

首先需要定义一个32位的定时器,最大可以表示4294967295,十六进制就是FFFFFFFF,如果计数器到最大值,可以表示21.474836475秒。程序设计中是每隔0.25秒LED变化一次,一共消耗1秒做一个循环。(所有时间数据以代码为准)

在0.25秒、0.5秒、0.75秒、1秒到来的时刻分别改变LED的状态,其他时候都保持原来的值不变。(只有在LED动的那一个时刻改变LED的状态,其他时间保持不变,具体可以参考我的仿真结果)
话不多说上代码
分割线

`timescale 1ns / 1ps
module Led_test(clk_p,             // Differentia system clock 200Mhz input on board clk_n,rst_n,                 // reset ,low activeled,                   // LED,use for control the LED signal on boardfan_pwm                //fan control);input clk_p,clk_n;input rst_n;output [3:0] led;output fan_pwm;reg [31:0] timer;reg [3:0] led;assign fan_pwm =1'b0;//Differentia system clock to single end clockwire sys_clk;IBUFGDS u_ibufg_sys_clk ( .I  (clk_p    ), .IB (clk_n    ), .O  (sys_clk  ) );always @(posedge sys_clk or negedge rst_n)beginif(!rst_n)timer <= 32'd0;else if(timer == 32'd59_999_999)timer <= 32'd0;elsetimer <= timer + 1'b1;end//Led controlalways @(posedge clk_n or negedge rst_n)      //为了加快时间进度,这里我修改了参数,仅供参考beginif(!rst_n) led <= 4'b0000;else if(timer == 32'd19_999_999)led <= 4'b0001;else if(timer == 32'd29_999_999)led <= 4'b0010;else if(timer == 32'd39_999_999)led <= 4'b0100;else if(timer == 32'd49_999_999)     led <= 4'b1000;end
endmodule

测试代码

`timescale 100ns / 1psmodule sim_led_test;reg clk_p;wire clk_n;reg rst_n;wire [3:0]led;Led_test uut(.clk_p ( clk_p ),             // Differentia system clock 200Mhz input on board .clk_n ( clk_n ),.rst_n ( rst_n ),                 // reset ,low active.led   ( led   ));                // LED,use for control the LED signal on boardinitial beginclk_p = 0;rst_n = 0;#100;rst_n = 1;#20000;endalways #25 clk_p = ! clk_p;assign clk_n = ! clk_p;endmodule

仿真结果

简单的内部时钟开关LED灯Verilog代码相关推荐

  1. 蓝桥杯嵌入式G431学习之开关LED灯

    蓝桥杯嵌入式G431学习之开关LED灯 1.直接开关LED灯 在/* USER CODE BEGIN 0 / 在此写入代码 / USER CODE END 0 */ /*PD2为LED锁存器控制引脚* ...

  2. 闪烁LED灯Verilog

    1.计数器工作原理 计数器的核心元件是触发器,基本功能是对脉冲进行计数,其所能记忆脉冲最大的数目称为该计数器的模/值.计数器常用在分频.定时等处.计数器的种类很多,按照计数方式的不同可以分为二进制计数 ...

  3. 利用Simulink、STM32CUBEMX、STM32-MAT/TARGET自动生成简单的led灯闪烁代码(保姆级教程)

    1.简介 这里利用基于STM32F103RCT6的一块自带led灯的开发板,首先通过STM32CUBEMX产生.ioc配置文件,其次对Simulink进行所必须的配置,然后利用Simulink的图形化 ...

  4. linux内核3.4 led驱动,JZ2440_V3_内核驱动程序_点亮一个LED灯(示例代码)

    为了用内核驱动程序点亮一个LED灯,真是费尽周折,参考了韦东山的<嵌入式linux驱动开发完全手册>(以下简称<完全手册>)和网上很多人的blog,最终在@Carlos·Wei ...

  5. 单总线LED灯 幻彩LED灯 控制代码,以及相关记录

    使用的芯片基本信息 型号:SKC6812MINI-RV stm32控制代码 LED灯控制子程序 /*写入数据时序*/ void Send_A_bit(unsigned char VAL) {if (V ...

  6. 惠普笔记本LED灯闪烁代码故障含义

    原文地址 双灯闪烁在CQ40这类机器中比较常见,一般是开机加电屏无显示,加电10多秒后大小写和数字键盘灯开始闪烁,其实这些闪烁的次数是有含义的!就类似于台式机主板报警声一样,下面是惠普官方网站给出的报 ...

  7. 跨时钟域传输和Verilog代码

    文章目录 基本概念 一.单bit信号 1.慢时钟域信号同步到快时钟域 2.快时钟域信号同步到慢时钟域 3.结绳法处理单bit信号跨时钟域 二.多bit控制信号跨时钟域同步 三.多bit数据流跨时钟域同 ...

  8. 2.点亮LED灯的代码

    #include<reg52.h>sbit LED = P0^0; sbit ADDR0 = P1^0; sbit ADDR1 = P1^1; sbit ADDR2 = P1^2; sbi ...

  9. 使用html钮点亮对应的led灯源码,实现点亮LED灯(示例代码)

    学习目的 基于第一个驱动程序框架,加入硬件操作,实现LED的点亮和熄灭操作 在上面学习中,已经搭建好了 实现本功能主要分为以下几步: 1)查看开发板原理图,找到LED连接的GPIO引脚 2)看芯片手册 ...

最新文章

  1. python模块os测试文件是否存在及基础原信息获取
  2. python 爬虫工具
  3. 不管工作压力太大了,还是工作压力太小了;都容易引起开发人员的辞职风波...
  4. 手机耗电统计app_华为手机有哪些功能关掉比较好?
  5. pecl安装扩展(首选)
  6. 全国青少年信息学奥林匹克联赛
  7. OpenCV 4.1.2 发布,都有哪些新特性?
  8. 从入门到进阶,这10本高分书籍,优秀数据分析师越早读完越好
  9. STC8H8K系列汇编和C51实战——实现跑马灯(汇编版)
  10. 外资对我国企业兼并控制情况的资料
  11. 文本数据挖掘一般步骤
  12. python 学习(三)
  13. NOIP2018 NearlyAFO
  14. 实时车道线检测和智能告警 | 车距 + 弯道 + 车道线
  15. 校招linux基础知识,校招笔试整理 牛客网 2020小米校招(1)
  16. 脚本语言、编程语言、中间件
  17. [11]JDK9新特性
  18. 嵌入式linux开发,交叉编译qt4.8.5报错:not found (try using -rpath or -rpath-link)/home/ms/work/code/qt/opensourc
  19. 简单回顾过去一年的工作201906-202006
  20. 有些工具程序员不用也要掌握(想到就写,不定期更新)

热门文章

  1. 使命召唤10计算机丢失,windows7电脑玩使命召唤10幽灵提示丢失msvcr100.dll怎么办
  2. Shellshock漏洞回顾与分析测试 http://drops.wooyun.org/papers/3268
  3. 【微信小程序】的惊鸿一瞥
  4. 网络唤醒*Wake-on-LAN* (*WoL* or *WOL*) 设置方法
  5. FCPX | 影片消除人声
  6. Post获取数据的方法
  7. 基于java网上童装销售系统计算机毕业设计源码+系统+lw文档+mysql数据库+调试部署
  8. 前端3大JS框架走势图:vue增长最快,react或被Preact 取代
  9. AAPT2 process unexpectedly exit. Error output 的解决
  10. Squeeze-and-Excitation Networks