用VHDL语言实现数字钟的设计
2011年12月21日
一、EDA课程设计的目的与任务
(一)、掌握利用可编程逻辑器件和EDA设计工具进行电子系统设计的方法,内容包括:
(1)VHDL程序设计、输入——在ise平台上用VHDL描述系统的功能 (2)逻辑综合——将源程序编译后,为设计系统选择一个电路实现方案,按照这个方案进行逻辑综合和优化,生成1个电路网表文件
(3)功能仿真——检查自己的设计是否达到和完成要求的逻辑功能
(4)设计实现——布局、布线及配置,最后生成可以写到芯片中的目标文件 (5)时序仿真——是适配到选定的芯片后进行的仿真,它模拟芯片的实际动作,仿真时间模型严格将门级延时计算在内,可以分析出竞争与冒险,时序仿真验证过的电路与实际电路基本上已致。 (6)器件编程——对器件编程下载 (7)测试
二、EDA课程设计的要求
设计实现一个具有带预置数的数字钟,具有显示年月日时分秒的功能。用6个数码管显示时分秒,set按钮产生第一个脉冲时,显示切换年月日,第2个脉冲到来时可预置年份,第3个脉冲到来时可预置月份,依次第4、5、6、7
用VHDL语言实现数字种的设计
个脉冲到来时分别可预置日期、时、分、秒,第 8个脉冲到来后预置结束,正常工作,显示的是时分秒。Up为高电平时,upclk有脉冲到达时,预置位加1.否则减1,还可以在此基础上增加其它功能。
用VHDL语言实现数字种的设计
用VHDL语言实现数字钟的设计
摘要
随着IT行业的不断发展EDA技术在很多行业得到了广泛的应用,在很多大学也开设了相应的课程,但只有理论知识不足以应对实际项目的开发,不足以胜任更加庞大的系统开发。本次课程设计旨在提高学生的实际动手能力和解决问题的能力。
本文在该项目的实际设计中,就整体框架的设计,软件的开发,仿真,下载,调试等过程进行了一一验证。在数字钟的设计中应用了元件例化的整体思路实现,实现过程可分为分频,时分秒计数,时分秒置数,年月日计数,年月日置数共五个部分,其中在年月日的计数中应用状态机的计数方法实现设计。
关键字:VHDL,元件例化,数字钟
用VHDL语言实现数字种的设计
目录
一、 EDA课程设计的目的与任务····························Ⅰ 二、 EDA课程设计的要求··································Ⅱ 三、 摘要···············································Ⅲ 第一章 系统方案·········································1 1.1设计思路············································· 第二章 各个模块实现······································ 2.1分频模块·············································· 2.2时分秒计数模块········································ 2.3时分秒置数模块········································ 2.4年月日计数模块········································ 2.5年月日置数模块········································ 2.6元件例化整体模块······································ 第三章 整体电路图········································· 3.1 quartus生成的整体电路图······························ 第四章 课程设计总结········································ 第五章 实验代码··········································· 5.1实验代码 ··············································
用VHDL语言实现数字种的设计
第一章 系统方案
1.1设计思路
VHDL数字钟的设计可采用多种设计方法,各个设计方法各有其优缺点。
采用一个结构体,多个进程的设计方法。其优点是速度快,但是一个结
一,
构体,各个进程的逻辑关系比较复杂,而且代码的可读性,可移植性较差。 二, 三,
状态机的设计方法,状态机结构简单,当各个状态之间的转换不易处理。 元件例化的设计方法,元件例化使各个模块之间分得更加有层次,易于
读,缺点有可能使各个模块之间存在逻辑关系的冲突。
本此设计,主要采用了元件例化的设计方法,在年月日计数模块采用了状态机的设计方法实现。
第二章 各个模块的实现
2.1分频模块
直接将实验箱的频率用于数字钟的计数,可能会导致错误,实验箱直接给出的1hz频率可能不够稳定,故需要将1khz的频率输出进行1000分频。本模块直接采用单进程实现设计,本模块还包括一个置数脉冲的设置upd0,upd0按下一次lock加1,lock为000时显示时分秒,为001时显示年月日,为010对年进行置数,为011对月进行置数,为100对日进行置数,为101对时进行置数,为110对分进行置数,为111对秒进行置数,lock,也连接着后面四个计数,置数,模块的lock,以进行模块显示的选择。f10设置的周期为5ns,在2.5us处实现1000分频,1000分频后的f_clk连接时分秒,年月日计数模块的计数时钟,置数时钟则直接输入,连接两个置数模块。 以下程序是实体部分