FPGA 第13讲 计数器

news/2024/12/28 16:10:45/

时间:2024.12.14

一、学习内容

1.计数器

      计数是一种最简单基本的运算,计数器就是实现这种运算的逻辑电路,计数器在数字
系统中主要是对脉冲的个数进行计数,以实现测量、计数和控制的功能,同时兼有分频功
能。

       计数器在数字系统中应用广泛,如在电子计算机的控制器中对指令地址进行计数,以
便顺序取出下一条指令,在运算器中作乘法、除法运算时记下加法、减法次数,又如在数
字仪器中对脉冲的计数等等。
       计数器也是在 FPGA 设计中最常用的一种时序逻辑电路,根据计数器的计数值我们可
以精确的计算出 FPGA 内部各种信号之间的时间关系,每个信号何时拉高、何时拉低、拉
高多久、拉低多久都可以由计数器实现精确的控制。而让计数器计数的是由外部晶振产生
的时钟,所以可以比较精准的控制具体需要计数的时间。

       计数器一般都是从 0 开始计数,计数到我们需要的值或者计数满溢出后清零,并可以进行不断的循环,3 位数的十进制计数器最大可以计数到 999,4 位数的最大可以计数到 9999;3 位数的二进制计数器最大可以计数到 111(7),4 位数的最大可以计数到 1111(15)。

2.实验目标

 让计数器计数 1s 时间间隔,来实现 led 灯每隔 1s 闪烁一次的效果。

3.原理图

征途 Pro 开发板 LED 灯为低电平点亮。

二、实验

1.准备工作

建立文件夹存放工程,建立文件体系

2.绘制波形图和模块框图

模块框图

      主要是通过设计一个 1s 计数器来实现 led 灯闪烁的效果,所以给模块取名为 counter。计数器肯定需要时钟和复位信号,因为计数器的计数就是靠时钟的脉冲来提供的,所以没有其他额外的输入信号了,而输出我们则使用一个 led 灯来观察计数器计数后的效果,所以需要又一个输出信号名为 led_out。

波形图

     本章实例的重点就是如何控制好计数器,对于计数器来说只要控制好什么时候开始计数,什么时候清零的问题那么就可以完全掌控计数器了。

首先考虑什么时候开始计数的问题(也可以先考虑什么时候清零的问题),这个系统除了时钟和复位没有外界的其他输入了,所以只要复位一撤销,时钟沿来到就可以立刻进行计数,所以我们不需要太关系计数开始的条件,也可以默认为没有条件。
       然后是考虑计数器什么时候清零的问题,计数器不是会计数满自动清零,但计数到多少后清零是需要我们考虑的。

重点:计数 1s 的时间需要计数器计数多少个数。

http://www.ppmy.cn/news/1556526.html

相关文章

Android RXjava实现子线程做耗时操作,比new Thread和handler更香

1.首先是在build.gradle里面引用下面两个库 implementation ‘io.reactivex.rxjava2:rxandroid:2.0.1’ implementation ‘io.reactivex.rxjava2:rxjava:2.0.7’ 2.创建CompositeDisposable 。CompositeDisposable是一个存放Disposable的集合,它是一个容器 CompositeDisposable…

汽车SoC芯片及其安全岛设计与未来发展趋势(学习笔记)

SoC系列已发布多篇文章,之前应该发布到4.3章节,后续还有包含常见汽车SoC,SoC评价指标,产业链及发展趋势等,均见已发布完整版本付费资源,链接如下: 汽车SoC芯片及其安全岛设计与未来发展趋势&am…

linkedList add方法源码分析

特点:它基于双向链表实现 双向链表结构:每个节点都包含数据部分、前驱指针(指向前一个节点)和后继指针(指向后一个节点)在链表中间插入和删除元素时非常高效查询性能较低:因为它需要从链表的头…

flask_sqlalchemy event监听查询事件

flask_sqlalchemy event监听查询事件 在Flask-SQLAlchemy中,可以使用事件监听器来监控查询事件。这可以通过listens_for(ModelClass, “event_name”)装饰器来实现,其中ModelClass是你想要监控的模型类,event_name是你想要监控的事件名称&…

运维 mysql、redis 、RocketMQ性能排查

MySQL查看数据库连接数 1. SHOW STATUS命令-查询当前的连接数 MySQL 提供了一个 SHOW STATUS 命令,可以用来查看服务器的状态信息,包括当前的连接数。 SHOW STATUS LIKE Threads_connected;这个命令会返回当前连接到服务器的线程数,即当前…

推送本地仓库到远程git仓库

目录 推送本地仓库到远程git仓库1.1修改本地仓库用户名1.2 push 命令1.3远程分支查看 推送本地仓库到远程git仓库 删除之前的仓库中的所有内容,从新建库,同时创建一个 A.txt 文件 清空原有的远程仓库内容,重新创建一个新的仓库,…

[x86 ubuntu22.04]投影模式选择“只使用外部”,外部edp屏幕无背光

1 问题描述 CPU:G6900E OS:ubuntu22.04 Kernel:6.8.0-49-generic 系统下有两个一样的 edp 屏幕,投影模式选择“只使用外部”,内部 edp 屏幕灭,外部 edp 屏幕无背光。DP-1 是外部 edp 屏幕,eDP-1…

Redis内存淘汰策略有哪些

Redis内存淘汰策略有哪些 简单来说: volatile-lru(least recently used):从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰 volatile-ttl:-------------------要…