基于FPGA的数字跑表的设计与实现
一、设计要求
用FPGA设计并实现一个数字跑表,范围为0~59分59.99秒。可以实现数字跑表进行启动、停止计时和显示读数三个操作,可以在数码管上显示读数。
二、设计任务
2.1基本部分
(1)了解FPGA开发板,了解数字跑表的功能。
(2)VHDL语言编程实现数字跑表系统的功能模块,数字跑表进行启动、停止、显示读数操作,并具有计时清零功能;
(3)程序编译正确,在Modelsim中仿真正确;
(4)采用FPGA开发板作为开发平台,能够下载验证。
2.2提高部分
能够采用原理图设计法设计。
三、设计原理
图3.1系统框图

如图,如果要实现计时范围为0~59分59.99秒的数字跑表并在数码管上显示读数,那么需要设计时钟电路、分频电路、计数器电路、译码显示1电路。将DE1-SOC开发套件中提供的50MHZ时钟进行分频至100HZ后送入100进制计数器,计数器计满100后发出进位信号送入计秒模块的60进制计数器,计数器满60后发出进位信号送入计分模块的60进制计数器,每个计数器分别连接不同的数码管显示电路,实时显示计时效果。因此使用原理图输入设计法,使用QuartusII软件编写元件代码和绘制原理图,而后进行综合仿真。
四、设计方案
4.1 硬件设计
本设计需要用到一个稳定的50MHZ的时钟,一个500000分频的分频器,一个100进制计数器,两个60进制计数器,两个拨码开关,六个7段数码管。综上所述,DE1-SOC开发套件提供的FPGA芯片可满足对分频器和计数器的设计需求,丰富的外部设备可满足对数码管和拨码开关的需求。
图4.1 DE1-SOC开发板实物图

4.2 软件设计
一百进制计数器采用两个十进制计数器级联的方式实现,六十进制计数器采用十进制和六进制计数器级联的方式实现。
4.2.1 分频器

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_ARITH.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY CLOCK IS
PORT(CLK:IN STD_LOGIC;CLKOUT:OUT STD_LOGIC);
END CLOCK;
ARCHITECTURE RTL OF CLOCK IS
SIGNAL CLK_1_REG: STD_LOGIC := '1';
BEGIN
CLKOUT<=CLK_1_REG;
PROCESS(CLK)
VARIABLE COUNT :INTEGER RANGE 0 TO 500000;
BEGINIF(CLK'EVENT AND CLK='1')THENIF COUNT = 500000 THENCOUNT:=0;CLK_1_REG<=NOT CLK_1_REG;ELSECOUNT:=COUNT+1;END IF;END IF;END PROCESS;END RTL;

4.2.2 数码管显示电路

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY HEX IS
PORT(   HEXIN:IN STD_LOGIC_VECTOR(3 DOWNTO 0);HEXOUT:OUT STD_LOGIC_VECTOR(6 DOWNTO 0));
END HEX;
ARCHITECTURE RTL OF HEX IS
BEGIN
PROCESS(HEXIN)
BEGINCASE HEXIN ISWHEN "0000" => HEXOUT <="1000000";WHEN "0001" => HEXOUT <="1111001";WHEN "0010" => HEXOUT <="0100100";WHEN "0011" => HEXOUT <="0110000";WHEN "0100" => HEXOUT <="0011001";WHEN "0101" => HEXOUT <="0010010";WHEN "0110" => HEXOUT <="0000010";WHEN "0111" => HEXOUT <="1011000";WHEN "1000" => HEXOUT <="0000000";WHEN "1001" => HEXOUT <="0010000";WHEN "1010" => HEXOUT <="0001000";WHEN "1011" => HEXOUT <="0000011";WHEN "1100" => HEXOUT <="1000110";WHEN "1101" => HEXOUT <="0100001";WHEN "1110" => HEXOUT <="0000110";WHEN OTHERS => HEXOUT <="1000000";END CASE;END PROCESS;
END RTL;

4.2.3 十进制计数器

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY COUNTER10 ISPORT(CLK,CLR,EN: IN STD_LOGIC;DOUT : OUT STD_LOGIC_VECTOR (3 DOWNTO 0);COUT : OUT STD_LOGIC);
END COUNTER10;
ARCHITECTURE RTL OF COUNTER10 IS
BEGINPROCESS(CLK,CLR,EN)VARIABLE Q : STD_LOGIC_VECTOR (3 DOWNTO 0);BEGINIF CLR = '1' THEN Q := (OTHERS => '0');ELSIF CLK'EVENT AND CLK = '1' THENIF EN = '1' THEN IF Q < 9 THEN Q := Q + 1;ELSE Q := (OTHERS => '0');END IF;END IF;END IF;IF Q = "0000" THEN COUT <= '1';ELSE COUT <= '0'; END IF;DOUT <= Q;    END PROCESS;
END RTL;

4.2.4 六进制计数器

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITY COUNTER6 IS
PORT(CLK,CLR,EN: IN STD_LOGIC;DOUT : OUT STD_LOGIC_VECTOR (3 DOWNTO 0);CO : OUT STD_LOGIC);
END COUNTER6;
ARCHITECTURE RTL OF COUNTER6 IS
BEGIN
PROCESS(CLK,CLR,EN)
VARIABLE Q : STD_LOGIC_VECTOR (3 DOWNTO 0);
BEGIN
IF(CLR='1')THENQ:="0000";CO<='0';
ELSIF(CLK'EVENT AND CLK = '1') THENIF(EN='1')THENIF(Q <5)THENQ := Q + 1;ELSEQ := (OTHERS => '0');END IF;END IF;
END IF;
IF Q = "0000" THEN CO <= '1';
ELSECO <= '0';
END IF;
DOUT <= Q;
END PROCESS;
END RTL;




QQ:1187060103

[FPGA]基于FPGA的数字跑表相关推荐

  1. FPGA - 基于FPGA的HDMI显示

    写在前面 HDMI接口很早之前就想调试了,由于没有时间,就拖到了现在,而且毕业设计也是和视频处理系统有关,就趁这个机会把这个接口调试下. 开发环境 vivado 18.3 pynq - z2 HDMI ...

  2. 计算机键盘接入fpga,基于FPGA的键盘接口设计毕业论文.doc

    单片机论文,优秀毕业论文,外文翻译,毕业论文设计,毕业过关论文,毕业设计,毕业设计说明,毕业论文,单片机毕业论文,基于单片机毕业论文,毕业论文终稿,毕业论文初稿,毕业论文设计,单片机论文,本文档支持完 ...

  3. CASE_02 基于FPGA的数字钟万年历

             该系类博客序言和资源简介可浏览该博客:PREFACE FPGA经典案例序言 快速了解该系列博客的内容与可用 资源. 目录 1 简介 2 数字钟计数方案 2.1 计数方案一 2.2 计 ...

  4. 基于 FPGA 的数字抢答器设计

    下面是基于 FPGA 的数字抢答器设计,在quartusII下,modelsim下仿真,编程语言VHDL.   1.抢答器的工作原理 主持人宣布可以抢答后,在 20s 的定时时间内若有人按键抢答,则这 ...

  5. 基于FPGA的数字时钟设计

    基于FPGA的数字时钟设计 芯片与开发板 技术指标 1.具有正常的日时分秒技术显示功能,用七个数码管分别显示日,时,分,秒. 2.有按键校日,校时,校分,校秒. 3.利用led模拟整点报时功能. 4. ...

  6. 基于FPGA数字时钟的设计(附源码)

    大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分.大侠可以关注"FPGA技术江湖"微信公众号,在"闯荡江湖"."行侠仗义"栏里获取其 ...

  7. 基于FPGA的遥控数字时钟设计

    基于FPGA的遥控数字时钟设计报告 ​ ​ Author:张宏宇 摘要 ​ 数字时钟是一种通过数字显示时间的计时装置,本次项目采用Cyclone Ⅳ系列芯片,使用QuartusII开发环境,使用Ver ...

  8. 基于FPGA的数字识别实现

    前言 数字识别在我们生活中很常见,比如车牌识别.本篇博客就将介绍数字识别的方法,由于只是研究数字识别的方法,我们就不用硬件平台,而是用Modelsim和Matlab来仿真验证. 具体方法如下: 我们用 ...

  9. 基于FPGA的直接数字频率合成器的的设计和实现设计和实现

    摘要 :直接数字频率合成技术是一种先进的频率合成技术.本文介绍了直接数字合成( DDS )的组成及工作原理,给出了基于公司的 FPGA 实现多波形信号发生器的设计过程,设计在 Quartu s Ⅱ 中 ...

最新文章

  1. Windows 10离线安装.NET Framework 3.5
  2. OpenStack部署
  3. web应用的目录结构
  4. java 计算小费_java-以某些形状显示数字
  5. BZOJ 1613: [Usaco2007 Jan]Running贝茜的晨练计划
  6. 上元之夜丨《大数据》与您共度佳节!
  7. VS2017安装或卸载错误1303
  8. Java判断某年是不是闰年
  9. win10安装pytorch很慢,如何解决?
  10. opencv 之 icvCreateHidHaarClassifierCascade 分类器信息初始化函数部分详细代码注释。...
  11. ask调制流程图_ASK调制解调系统设计与仿真MATLAB课程设计
  12. Tushare数据工具介绍
  13. git 如何把develop分支代码合并到master主分支
  14. 抖音关键词排名优化技巧,手把手教你怎样优化抖音关键词
  15. Linux下为命令取别名
  16. python-常用算法
  17. 元素布局之排排坐、对齐齐
  18. 【独家】谁是钉钉最大的反对派?
  19. 社交营销还是要走到线下
  20. 【通信】【2】《宽带太赫兹通信技术》的笔记和一些简单的词汇的意思(误

热门文章

  1. android studio电影院选座,8排电影院选座最佳位置
  2. java从控制台输入数组_Java将控制台输入的一行整数转成整型数组
  3. 薅羊毛 Colab使用外部数据的7种方法!
  4. 科研福利!国内TOP3的超算中心,免费领2000核时计算资源
  5. NLP、炼丹技巧和基础理论文章索引
  6. OpenKG 祝大家新春快乐
  7. 论文浅尝 | 低资源文本风格迁移数据集
  8. 论文浅尝 | 基于知识库的自然语言理解 01#
  9. 爬取词库,使用jieba分词库,自定义dict.txt文件+将搜狗词库.scel文件为.txt文件
  10. 列表、字典补充点、strJoin方法、set()集合、和深浅拷贝