EDA数字钟的设计实验报告 - 图文
更新时间:2023-09-13 15:55:01 阅读量: 教学研究 文档下载
成绩 指导教师 日期
五 邑 大 学 实 验 报 告
实 验 课 程 名 称:
EDA实验
院系名称: 信息工程学院 专业名称: 通信工程(物联网)
(一)实验目的:
设计并实现具有一定功能的数字钟。掌握各类计数器及它们相连的设计方法,掌握多个数码管显示的原理与方法,掌握FPGA的层次化设计方法,掌握VHDL语言的设计思想以及整个数字系统的设计。此数字钟具有时,分,秒计数显示功能,能实现清零,调节小时,分钟以及整点报时的功能。 (二)实验器材:
计算机 一台,EDA实验箱 一台。 (三)实验原理:
四)实验内容:
1.正常的时、分、秒计时功能,分别由6个数码管显示24小时、60分钟,60秒钟的计数器显示。
2.按键实现“校时”“校分”功能;
3.用扬声器做整点报时。当计时到达59’50”时鸣叫。
方案:利用试验箱上的七段码译码器(模式7),采用静态显示,系统时钟选择1Hz。整个系统可以是若干文件组成,用PORT MAP 实现的方式;也可以是一个文件用多进程方式实现;亦或者是用文本和图形混合的方式实现;亦或者是用LPM参数化模块实现。
(五)实验步骤:
1. 新建一个文件夹,命名为shuzizhong.
2. 输入源程序。打开QuartusⅡ,选择File→new命令。在New窗口中的
DesignFiles栏选择编译文件-的语言类型,这里选择VHDL File选项。然后在VHDL文本编译窗口中输入秒模块程序。
秒模块源程序如下:
library ieee;
use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity SECOND is
port(clk,clr:in std_logic;----时钟/清零信号
sec1,sec0:out std_logic_vector(3 downto 0);----秒高位/低位
co:out std_logic);-------输出/进位信号 end SECOND;
architecture SEC of SECOND is begin
process(clk,clr)
variable cnt1,cnt0:std_logic_vector(3 downto 0);---计数 begin
if clr='1' then----当ckr为1时,高低位均为0 cnt1:=\cnt0:=\
elsif clk'event and clk='1' then
if cnt1=\and cnt0=\then----当记数为58(实际是经过59个记时脉冲) co<='1';----进位
cnt0:=\低位为9
elsif cnt0<\then----小于9时 cnt0:=cnt0+1;----计数 else
cnt0:=\
if cnt1<\then----高位小于5时 cnt1:=cnt1+1; else
cnt1:=\co<='0'; end if; end if; end if; sec1<=cnt1; sec0<=cnt0; end process; end SEC;
3.文件存盘。选择File→Save As命令,找到已经设立的文件夹,存盘文件名应与实体名一致。
4.创建工程。打开并建立新工程管理窗口,选择File→New Project Wizard命令,即弹出设置窗口,命名为1023019857。
5.将设计文件加入工程中。单击Next按钮,在弹出的对话框中单击File栏后的按钮,单击Add All按钮,将与工程相关的所有VHDL文件都加入此工程。
6.选择目标芯片。单击Next按钮,选择目标器件,首先在Device Family下拉列表框中选择Cyclone系列。分别选择Package为TQFP,Pincount为144和Speed grade为8,选择此系列的具体芯片为EP3C5E144C8。
7.工具设置。单击Next按钮后,弹出的下一个窗口是EDA工具设置窗口—EDA Tool Settings.
8.结束设置。再单击Next按钮后即弹出工程设置统计窗口,单击Finish按钮,即已设定好此工程。
9.全程编译。选择Processing→Start Compilation命令,启动全程编译。
10.编译成功后,将VHDL文件设置成可调用的文件。在秒模块程序文件SECOND处于打开的情况下,选择菜单
File→Creat/Update→Creat Symbol Files for Current File,进行封装(元件文件名为SECOND),以便在高层次设计中调用。同时,在编译成功的基础上,选择Processing中的Generate Functional Simuliation Netlist生成仿真文件,以方便之后的仿真使用。
11. 选择File→new命令。在New窗口中的DesignFiles栏选择编译文件的语言类型,这里选择VHDL File选项。然后在VHDL文本编译窗口中输入分模块程序。然后对分模块程序进行保存、编译,封装成可调用的文件,取名为minute。 分模块的源程序如下:
library ieee;
use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity MINUTE is
port(en,setmin,clr,clk:in std_logic;----时钟/清零信号
MIN1,MIN0:out std_logic_vector(3 downto 0);----秒高位/低位
co:out std_logic);-------输出/进位信号 end MINUTE;
architecture MIN of MINUTE is begin
process(en,setmin,clr,clk)
variable cnt1,cnt0:std_logic_vector(3 downto 0);---计数 begin
if clr='1' then----当ckr为1时,高低位均为0 cnt1:=\cnt0:=\
elsif(clk'event and clk='1') then if (en='1' or setmin='1') then
if cnt1=\and cnt0=\then----当记数为58(实际是经过59个记时脉冲) co<='1';----进位
cnt0:=\低位为9
elsif cnt0<\then----小于9时 cnt0:=cnt0+1;----计数 else
cnt0:=\
if cnt1<\then----高位小于5时 cnt1:=cnt1+1; else
cnt1:=\co<='0'; end if; end if; end if; end iF; MIN1<=cnt1; MIN0<=cnt0; end process; end MIN;
12. 选择File→new命令。在New窗口中的DesignFiles栏选择编译文件的语言类型,这里选择VHDL File选项。然后在VHDL文本编译窗口中输入小时模块程序。然后对分模块程序进行保存、编译,封装成可调用的文件,取名为HOUR.
小时模块的源程序:
library ieee;
use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity hour is
port(reset,en ,sethour,clk : in std_logic;
daout : out std_logic_vector(7 downto 0)); end HOUR;
architecture behav of HOUR is
signal count : std_logic_vector(3 downto 0);
signal counter : std_logic_vector(3 downto 0); begin
p1: process(reset,sethour,en) begin
if reset='1' then count<=\ counter<=\
elsif(clk'event and clk='1') then
if (en='1' or sethour ='1') then if (counter<2) then if (count=9) then count<=\
counter<=counter + 1; else
count<=count+1; end if; else
if (count=3) then count<=\ counter<=\ else
count<=count+1; end if; end if; end if; end if ; end process;
daout(7 downto 4)<=counter; daout(3 downto 0)<=count; end behav;
13. 绘制原理图。选择File→new命令。在New窗口中的DesignFiles栏选择编译文件的语言类型,这里选择Block Diagram/Schematic选项,按OK按钮后将打开原理图编辑窗口。双击原理图编辑窗口任何位置,弹出输入文件的对话框,分别在Name栏键入元件名input、SECOND、minute、HOUR和输出引脚output,并用单击拖动的方法参考电路图接好电路,作为本项工程的顶层电路原理设计图。
14.全程编译。选择Processing→Start Compilation命令,启动全程编译。
15.引脚锁定。 选择Assignments→Assignments Edi按模式七设置设置相应引脚。
16. 编译文件下载。打开编程窗和配置文件。首先将适配板上的JTAG口和USB或并口通信线连好,打开电源,在工程管理窗口选择Tool→Programmer命令,弹出如图所示的编程窗口,编程模式选择JPEG,并选中下载文件右侧的第一个小方框。
17.设置编程器。选择USB-Blaster,单击左上角的Hardware Setup按钮,在弹出的窗口中设置下载接口方式。向FPGA下载SOF文件前,要选择打钩Program/Configure项,最后单击下载标示符Start按钮,即进入对目标器件FPGA的配置下载操作。当Progress显示出100%以及在底部的处理栏中出现“Configuration Succeeded”时,便是编程成功。
18.观察数码管的秒、分钟和小时的情况。
(六)实验结果: 秒模块编译成功:
生成波形文件成功:
仿真成功:
数字钟编译成功:
仿真成功:
选择芯片类型:
引脚锁定:
下载:
(七)实验总结:
通过上述的设计编程,调试,下载测试工作之后,实现了数字钟的各种基本功能,其中包括:时,分,秒计数显示功能,清零,调节小时,分钟以及整点报时。中间操作过程中遇到的问题也都逐一在实验过程中得以解决,比如说对数字钟显示58时便产生高位进位以致产生不精准的改善等。在数字钟的设计过程中,不仅对数字电路原理有了更加深刻的理解,也进一步巩固了对于QuartusII软件平台及VHDL语言编程掌握能力,掌握这门技术为今后更深层次的学习奠定了基础,使自己受益匪浅。
正在阅读:
EDA数字钟的设计实验报告 - 图文09-13
2002——2003年我国房地产行业景气分析(DOC 9页)04-22
老师是辛勤的园丁的相关作文02-04
大学生职业生涯规划考试答案03-14
湖北2009年法律职业资格证书申领的公告06-10
最新2019年高考语文仿真模拟标准试卷(共10套试卷 附答案及命题04-21
播音主持使用绕口令范本06-10
加强建筑经济成本管理的意义分析06-28
加强企业目标成本管理的探讨11-29
自动控制提纲答案01-06
- 公务员上岸同学告诉你,怎样走出面试中常见的十大误区
- 作表率,我们怎么办(办公室主任)
- 乘务员安全责任书
- 增员面试流程
- 河南省焦作市规模以上租赁和商务服务业企业应付职工薪酬数据洞察报告2019版
- 最新4社区工作者面试题
- 个人简历表
- 男教工体检必检项目
- 河南省兰考县规模以上租赁和商务服务业企业应付职工薪酬数据洞察报告2019版
- 兼职译员测试稿
- 河南省开封市规模以上租赁和商务服务业企业应付职工薪酬数据洞察报告2019版
- 永州职业技术学院校园总体规划-永州职业学院
- 最新5、培训科长笔试题(答案)
- 2019雅商酒店境外人员登记培训稀有资料,不可错过
- 小学教师求职简历范文
- 红酒知识与礼仪
- 春节给领导拜年的短信拜年词
- 2019年上半年中小学教师资格证结构化面试真题1
- 20XX年县干部培训工作目标
- 硬笔试听课
- 数字钟
- 实验
- 图文
- 报告
- 设计
- EDA
- book 3 unit 2 教案
- 建立健全建筑企业会计内部控制体系分析
- 建设行政执法工作中存在的问题及对策
- 病句-两面词的问题
- 四年级品德与社会《当危险发生的时候》说课稿
- 上汽通用五菱PDM系统的应用经验介绍
- 游戏动漫学院 动漫设计与制作 专业剖析分项自评报告 - 图文
- 2015十八大全面推进依法治国进程
- (新编)人教版一年级数学上册期末分类复习试题-用数学
- 主要负责人和安全管理人员考试题库
- 农业局民生工程年度工作报告与农业局民生工程自查报告汇编
- 2018-2019学年高中地理一轮复习:课时跟踪检测(二十六) 工业区位因素与工业地域联系
- 公安消防部队执勤业务训练大纲
- 油气田水处理工(中级理论)
- 食品毒理学思考题及答案
- 学术综合英语英语填空题翻译Unit 7
- 新北师大版九级上学期《视图与投影》练习题
- 二战英国舰队驱逐舰(系谱篇) - 图文
- 八协管服务信息报表
- 小学一年级语文教学随笔