EDA课程设计--用VHDL语言实现数字钟的设计

上传人:飞*** 文档编号:35691029 上传时间:2018-03-19 格式:DOCX 页数:32 大小:2.39MB
返回 下载 相关 举报
EDA课程设计--用VHDL语言实现数字钟的设计_第1页
第1页 / 共32页
EDA课程设计--用VHDL语言实现数字钟的设计_第2页
第2页 / 共32页
EDA课程设计--用VHDL语言实现数字钟的设计_第3页
第3页 / 共32页
EDA课程设计--用VHDL语言实现数字钟的设计_第4页
第4页 / 共32页
EDA课程设计--用VHDL语言实现数字钟的设计_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《EDA课程设计--用VHDL语言实现数字钟的设计》由会员分享,可在线阅读,更多相关《EDA课程设计--用VHDL语言实现数字钟的设计(32页珍藏版)》请在金锄头文库上搜索。

1、 用用 VHDLVHDL 语言实现数字钟的设计语言实现数字钟的设计2011 年 12 月 21 日一、一、EDAEDA 课程设计的目的与任务课程设计的目的与任务(一) 、掌握利用可编程逻辑器件和 EDA 设计工具进行电子系统设计的方法,内容包括:(1)VHDL 程序设计、输入在 ise 平台上用 VHDL 描述系统的功能(2)逻辑综合将源程序编译后,为设计系统选择一个电路实现方案,按照这个方案进行逻辑综合和优化,生成 1 个电路网表文件(3)功能仿真检查自己的设计是否达到和完成要求的逻辑功能(4)设计实现布局、布线及配置,最后生成可以写到芯片中的目标文件(5)时序仿真是适配到选定的芯片后进行的

2、仿真,它模拟芯片的实际动作,仿真时间模型严格将门级延时计算在内,可以分析出竞争与冒险,时序仿真验证过的电路与实际电路基本上已致。(6)器件编程对器件编程下载(7)测试二、二、EDAEDA 课程设计的要求课程设计的要求设计实现一个具有带预置数的数字钟,具有显示年月日时分秒的功能。用6 个数码管显示时分秒,set 按钮产生第一个脉冲时,显示切换年月日,第 2个脉冲到来时可预置年份,第 3 个脉冲到来时可预置月份,依次第用 VHDL 语言实现数字种的设计4、5、6、7 个脉冲到来时分别可预置日期、时、分、秒,第 8 个脉冲到来后预置结束,正常工作,显示的是时分秒。Up 为高电平时,upclk 有脉冲

3、到达时,预置位加 1.否则减 1,还可以在此基础上增加其它功能。用 VHDL 语言实现数字种的设计用用 VHDLVHDL 语言实现数字钟的设计语言实现数字钟的设计摘要摘要随着 IT 行业的不断发展 EDA 技术在很多行业得到了广泛的应用,在很多大学也开设了相应的课程,但只有理论知识不足以应对实际项目的开发,不足以胜任更加庞大的系统开发。本次课程设计旨在提高学生的实际动手能力和解决问题的能力。本文在该项目的实际设计中,就整体框架的设计,软件的开发,仿真,下载,调试等过程进行了一一验证。在数字钟的设计中应用了元件例化的整体思路实现,实现过程可分为分频,时分秒计数,时分秒置数,年月日计数,年月日置数

4、共五个部分,其中在年月日的计数中应用状态机的计数方法实现设计。关键字:VHDL,元件例化,数字钟用 VHDL 语言实现数字种的设计目录目录一、一、 EDAEDA 课程设计的目的与任课程设计的目的与任务务二、二、 EDAEDA 课程设计的要课程设计的要求求三、三、 摘摘要要第一章第一章 系统方系统方案案111.11.1 设计思设计思路路第二章第二章 各个模块实各个模块实现现2.12.1 分频模分频模块块用 VHDL 语言实现数字种的设计2.22.2 时分秒计数模时分秒计数模块块2.32.3 时分秒置数模时分秒置数模块块2.42.4 年月日计数模年月日计数模块块2.52.5 年月日置数模年月日置数

5、模块块2.62.6 元件例化整体模元件例化整体模块块第三章第三章 整体电路整体电路图图3.13.1 quartusquartus 生成的整体电路生成的整体电路图图用 VHDL 语言实现数字种的设计第四章第四章 课程设计总课程设计总结结第五章第五章 实验代实验代码码5.1 实验代码实验代码 第一章第一章 系统方案系统方案1.11.1 设计思路设计思路VHDL 数字钟的设计可采用多种设计方法,各个设计方法各有其优缺点。一,采用一个结构体,多个进程的设计方法。其优点是速度快,但是一个结构体,各个进程的逻辑关系比较复杂,而且代码的可读性,可移植性较差。二,状态机的设计方法,状态机结构简单,当各个状态之

6、间的转换不易处理。三,元件例化的设计方法,元件例化使各个模块之间分得更加有层次,易于读,缺点有可能使各个模块之间存在逻辑关系的冲突。用 VHDL 语言实现数字种的设计本此设计,主要采用了元件例化的设计方法,在年月日计数模块采用了状态机的设计方法实现。第二章第二章 各个模块的实现各个模块的实现2.12.1 分频模块分频模块直接将实验箱的频率用于数字钟的计数,可能会导致错误,实验箱直接给出的 1hz 频率可能不够稳定,故需要将 1khz 的频率输出进行 1000 分频。本模块直接采用单进程实现设计,本模块还包括一个置数脉冲的设置upd0,upd0 按下一次 lock 加 1,lock 为 000

7、时显示时分秒,为 001 时显示年月日,为 010 对年进行置数,为 011 对月进行置数,为 100 对日进行置数,为 101 对时进行置数,为 110 对分进行置数,为 111 对秒进行置数,lock,也连接着后面四个计数,置数,模块的 lock,以进行模块显示的选择。f10 设置的周期为 5ns,在 2.5us 处实现 1000 分频,1000 分频后的 f_clk 连接时分秒,年月日计数模块的计数时钟,置数时钟则直接输入,连接两个置数模块。以下程序是实体部分entity lo_cov isport( upd0 : in std_logic; /置数脉冲输入f10 : in std_lo

8、gic; /1khz 时钟输入f_clk : out std_logic; /分频时钟输出lock : out std_logic_vector(2 downto 0) /输入脉冲的选择); end lo_cov;以下是分频模块的仿真图像,用 VHDL 语言实现数字种的设计2.22.2 时分秒计数模块时分秒计数模块时分秒可选用多进程或者单进程的方法,多进程速度快,但是结构复杂。故本设计选用单进程方法。当秒计数到 59 时向分进位,分计到 59 且秒为 59时向时进位,当计到 23 时 59 分 59 秒时向天进位,同时对时分秒进行清零。程序中主要使用了 if elsif end if;的语句。

9、最后验证表明此设计方法可实现题目要求的功能。以下是程序的实体部分entity s_m_hour isport(clk0,clk1 : in std_logic; -clk0 工作时钟,clk1 预置脉冲 lock : in std_logic_vector(2 downto 0); /置数显示切换s0,s1 : out std_logic_vector(3 downto 0); /秒的地位高位m0,m1 : out std_logic_vector(3 downto 0); /分的低位高位h0,h1 : out std_logic_vector(3 downto 0); /时的低位高位 co : out std_logic;-hour 产生进位en : in std_log

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 教育/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号