闪烁LED灯Verilog
1、计数器工作原理
计数器的核心元件是触发器,基本功能是对脉冲进行计数,其所能记忆脉冲最大的数目称为该计数器的模/值。计数器常用在分频、定时等处。计数器的种类很多,按照计数方式的不同可以分为二进制计数器、十进制计数器以及任意进制计数器,按照触发器的时钟脉冲信号来源可分为同步计数器与异步计数器。按照计数增减可分为加法计数器、减法计数器以及可逆计数器。
Verilog HDL之所以被称为硬件电路描述语言,就是因为我们不是在类似C一样进行普通的编程,而是在编写一个实际的硬件电路,例如在上一讲Intel FPGA设计流程中设计的一个二选一选择器最后就是被综合称为一个真正的选择器。上面提到计数器即为加法器、比较器、寄存器以及选择器构成。
闪烁LED灯--------时序逻辑基本分频操作
滚动LED灯--------时序逻辑基本移位操作
2、题目
本节设计一个计数器,使AC620开发板上的4个LED状态每500ms翻转一次。AC620开发板上的晶振输出时钟频率为50MHz,即时钟周期为20ns。这样可以计算得出500ms = 500_000_000ns/20ns = 25_000_000,即需要计数器计数25_000_000次,也就是需要一个至少25位的计数器(225>25_000_000>224)。且每当计数次数达到需要清零并重新计数。
3、实验原理
本节硬件电路如图所示,可以看出当控制端输出低电平时LED亮。这里只需要每当计数器值记满后,翻转LED的控制端即可实现LED按照要求亮灭。
4、实验过程
本次实验主要由以下步骤组成:
创建Quartus Prime工程
编写计数器HDL描述文件
编写计数器测试脚本(testbench)
对计数器进行功能仿真
在Quartus Prime中执行布局布线
对计数器进行时序仿真
分配引脚并编译得到FPGA配置文件.sof
配置FPGA并运行
5、实验
(1)顶层文件
module led_flash(
//端口列表clk50M,Rst_n,led
);//端口定义input clk50M;input Rst_n;output reg [3:0]led;reg [24:0]cnt;always@(posedge clk50M or negedge Rst_n)begin if(!Rst_n)cnt <= 25'd0;else if(cnt==25'd24_999_999)cnt <= 25'd0;elsecnt <= cnt + 25'd1;endalways@(posedge clk50M or negedge Rst_n)beginif(!Rst_n)led <= 4'b1111;else if(cnt == 25'd24_999_999)led <= ~led;elseled <= led;endendmodule
(2)testbench文件
`timescale 1ns/1ns
`define clock_preiod 20
module led_flash_tb;reg clk50M;reg Rst_n;wire [3:0]led;led_flash led_flash0(.clk50M(clk50M),.Rst_n(Rst_n),.led(led));//生成50M时钟信号initial clk50M = 1;always #(`clock_preiod/2) clk50M = ~clk50M;initial begin Rst_n = 0;#(`clock_preiod*20+1) Rst_n = 1;#(`clock_preiod*25000000+1);$stop;endendmodule
(3)RTL视图
(4)引脚图
(5)实验结果
闪烁LED灯Verilog相关推荐
- 瑞萨开发记录02:定时器闪烁LED灯(R5F104FEA芯片)
02.定时器闪烁lED灯 一.引脚配置 1.配置LED 2.配置定时器 二.编写代码 1.定时器定时 2.LED引脚定义 3.主函数 三.烧录程序 上一篇博客记录了点亮一颗LED灯以及工程文件的配 ...
- arduino闪烁LED灯
大家好我是你们的朋友JamesBin,这篇课文能让你从0到1的学习arduino,下面让我们开始学习吧! 硬件方面 图片来源:Arduino-UNO-LED 具体包括如下: Arduino UNO电路 ...
- STM32F103RCT6闪烁LED灯
原理: 注意:这里使用迷你版,其他版本IO口设置不同,详细请查询原理图 由图可知:LED0是PA8,LED1是PD2,且都是共阳极,高电平灭,低电平亮 所以只需要控制这两个IO口的电平就能实现LED灯 ...
- cc2640软件用c语言开发,CC2640R2FTI-RTOS 拿到 TI CC2640R2F 开发板 第三件事就是使用 TI-RTOS 创建 一个任务 和 使用 信号量 超时来闪烁 LED灯...
/** data_process.c * * Created on: 2018年7月5日 * Author: admin*/#include#include#include#include#inclu ...
- STM32/51单片机实训day3——点亮LED灯、闪烁LED灯(一)理论
内 容:编写代码实现LED灯的点亮功能 学 时:2学时 知识点:分析原理图.LED灯控制原理 重点:GPIO参数配置.LED原理图分析 难点:编写 GPIO参数配置函数.LED点亮函数 时间:20 ...
- 简单的内部时钟开关LED灯Verilog代码
FPGA的设计中通常使用计数器来计时,对于采用200Mhz的系统时钟,一个时钟周期是5ns,那么表示一秒需要200000000个时钟周期,如果一个时钟周期计数器累加一次,那么计数器从0到1999999 ...
- 51单片机实验——LED灯(点亮、闪烁、流水)
文章目录 前言 一.keil创建工程 二.proteus professional搭建仿真电路 三.点亮LED灯 四.闪烁LED灯 五.流水式LED灯 总结 前言 STC89C51RC是采用8051核 ...
- keil8个led灯闪烁c语言程序,简单的STM32 汇编程序—闪烁LED
要移植操作系统,汇编是道不得不跨过去的坎.所以承接上篇的思路,我准备用汇编写一个简单的闪烁LED灯的程式.以此练习汇编,为操作系统做准备. 第一步,还是和上篇一样,建立一个空的文件夹. 第二步,因为是 ...
- 点亮LED灯(STC89C52RC芯片)
点亮第一个LED灯 1.看懂局部的led电路原理图,在看懂原理图的基础之上,熟悉那个接口比如 P2几 熟悉它的底层电路逻辑. 2.使用keil5一定要新建一个文件夹 在该文件里面 写程序 防止散 ...
最新文章
- 特斯拉研究报告:产品、工厂、技术、生态展望
- 20170824图论选讲部分习题
- 芯片项目谁支持谁负责 重大损失将予以通报
- 感知机模型的对偶形式[转载]
- 滴滴不倒闭,世界和中国的奇迹!
- 《剑指offer》--- 数组中只出现一次的数字
- 关于Promise详解
- 父母该不该把自己的收入告诉孩子?
- 百亿美元合同告吹!微软“到嘴的鸭子”飞了
- VisualGDB系列9:配置VS直接通过SSH方式访问Linux项目
- centos下mysql备份数据库命令_[CentOS]下mysql数据库常用命令总结
- 平平无奇的项目「GitHub 热点速览 v.22.10」
- 非越狱逆向开发总结文档(含iOS Extension)
- 51单片机学习制作定时闹钟及《花海》演奏
- myscript 思路整理
- 拆解 米家扫地机器人_1699元!小米米家扫地机器人拆解:真复杂
- mysql数据库存图片名_【mysql】数据库存图片,是存图片名称?还是存图片路径??...
- 一种人机友好的视频压缩方案(HMFVC)
- 合同管理数据库设计mysql_工程合同管理信息系统的数据设计理念
- Culling技术的一些介绍
热门文章
- mysql 5.7 压缩包解压安装过程
- shell小数点前不打0_shell十三问:关于${0##*/} 和${0%/*}
- A40i/T3 uboot启动时对PMU部分初始化
- internet协议dns服务器地址,DNS服务器配置使用 及全国DNS地址大全
- 自学php多久可以工作_PHP语言自学要多久才能工作
- RPC failed; curl 56 GnuTLS recv error (-9): A TLS packet with unexpected length was received
- Android程序打包安装过程
- 对C++一脸懵逼却又无比热爱的第一篇
- 白帽子挖洞第II篇作业--xray+fofa主动扫描
- 天津计算机软件工程学院,天津市软件学院是几本