EDA课程设计
更新时间:2024-07-08 10:12:01 阅读量: 综合文库 文档下载
用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连接时分秒,年月日计数模块的计数时钟,置数时钟则直接输入,连接两个置数模块。 以下程序是实体部分
用VHDL语言实现数字种的设计
entity lo_cov is
port( upd0 : in std_logic; //置数脉冲输入 f10 : in std_logic; //1khz时钟输入 f_clk : out std_logic; //分频时钟输出 lock : out std_logic_vector(2 downto 0) //输入脉冲的选择 ); end lo_cov;
以下是分频模块的仿真图像,
2.2 时分秒计数模块
时分秒可选用多进程或者单进程的方法,多进程速度快,但是结构复杂。故本设计选用单进程方法。当秒计数到59时向分进位,分计到59且秒为59时向时进位,当计到23时59分59秒时向天进位,同时对时分秒进行清零。程序中主要使用了if elsif end if;的语句。最后验证表明此设计方法可实现题目要求的功能。 以下是程序的实体部分
entity s_m_hour is port( 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_logic //使能端
用VHDL语言实现数字种的设计
); end s_m_hour; 以下是仿真的电路图
2.3时分秒置数模块
时分秒置数模块不同于计数模块,置数模块我选用了另一个置数时钟,也可
以说是置数脉冲。时分秒置数有使能端口en(高有效),置数使能端口tn,通过tn(tn=0时置数是减1模式,tn=1时是加1模式)判定是加1还是减1。当输入长度为三位的lock为101时对时进行置数,当lock为110时对分进行置数,当lock为111时对秒进行置数。
时分秒的置数实现方式可有多种方法,可用状态机,多进程和单进程等方法
实现,相比于别的设计方法,单进程的设计方法易于实现,没有复杂的对应关系,而且本功能的实现不许过于复杂的逻辑关系。本设计使用了单进程 内部使用嵌套的if elsif end if 语句实现预期的功能。以下是该功能的输入输出端口:
entity s_m_yuz1 is port( 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);--时输入端口 tn : in std_logic; --tn=1预置数加1,tn=0预置数减1 en : in std_logic --使能端口,高有效 );
end s_m_yuz1;
用VHDL语言实现数字种的设计
以下分别是时分秒的置数仿真波形图
对时进行置数的功能仿真波形图
对分的置数的功能仿真波形图
对秒的置数的功能仿真波形图
2.4年月日计数模块
用VHDL语言实现数字种的设计
年月日的计数模块与时分秒的计数模块稍有不同,年月日需要考虑闰年2月
份的情况,闰年到来时2月份为29天,其他情况2月份为28天。本设计同样可采用多种设计方法,由于出现不同月份的天数有可能天数不一样的情况,故本设计采用状态机的设计方法实现,每个月份作为一个状态,采用了两个进程的设计方法,一个为组合逻辑设计,另一个为时序控制进程,已达到最优化,同时设计了进位脉冲,当计满12个月时向年产生进位,年数加1。以下是实体部分
entity daymony1 is port(
clk0,clk1 : in std_logic;
da0,da1 : out std_logic_vector(3 downto 0); mo0,mo1 : out std_logic_vector(3 downto 0); ya0,ya1 : out std_logic_vector(3 downto 0); co : out std_logic; --月向年产生进位的进位端 en : in std_logic; lock : in std_logic_vector(2 downto 0) ); end daymony1;
以下是年月日计数功能仿真波形
2.5年月日置数模块
年月日置数模块不同于时分秒的置数模块,在年月日的置数模块中我们需
要考虑闰年相对应的闰月的情况,就会出现不同的年份对应的2月的天数的不
用VHDL语言实现数字种的设计
同,其他的可将1,3,5,7,8,10,12归成一类,这几个月每个月的天数是31天,而4,6,9,11这几个月又归为一类,每个月有30天,二月分为特殊的一类,视是否为闰年而定天数,闰年有29天,非闰年为28天。En使能端,高有效。tn为置数模式的选择控制端,tn=1时置数处于加1模式,tn=0置数处于减1模式,lock为置数对象的选择。Lock=010时对年进行置数,lock=011时对月进行置数,lock=100时对天进行置数。
本设计对于本模块使用了单进程,内部使用了if elsif end if; 语句实现预
期的功能。以下是该置数模块的实体部分:
entity yuzhis is port(
clk1,tn : in std_logic; --clk1为置数时钟,tn=1置数处于加模式 en : in std_logic; --使能端口 lock : in std_logic_vector(2 downto 0); --置数的对象选择 da0,da1 : out std_logic_vector(3 downto 0); mo0,mo1 : out std_logic_vector(3 downto 0); ya0,ya1 : out std_logic_vector(3 downto 0) ); end yuzhis;
对年进行置数的功能仿真波形
正在阅读:
EDA课程设计07-08
浙江省建设工程钱江杯奖(优质工程)结构质量要求细则01-22
初中数学北师大版《七年级下》《第五章 三角形》《5.5 探索三角形全等的条件》精选同步练习试题11-23
苏教版数学五年级下册同步教案-第4单元 分数的意义和性质-3 分数的基本性质及约分(2课时)04-30
腾飞吧祖国作文450字06-18
贷款新规及信贷从业人员“八不准”解读05-24
保研面试常见问题09-19
一年级课堂常规训练口令集锦04-09
中国的崛起(小学生需要的资料) - 图文10-01
奥宸工程保修管理作业指引(讨论稿)11-17
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 课程
- 设计
- EDA
- 2014审核检查表4.2.003
- 热机效率计算典型题
- 六年级上学期5-6单元测验卷
- 2010-2011温州大学期末考试试卷试卷大学物理B
- 配套K12七年级生物上学期期末试卷(含解析) 济南版
- 新材料与江苏沿海工程建设江苏省验收申请表 - 图文
- 服装店开业送什么礼品 送幅什么样的字画好?
- 地质大学201406作业答案
- 配套K122011高考生物总复习 专题3限时自测38 新人教版选修1
- 龙北大道高压旋喷桩施工专项方案
- 2018-2019学年第二学期六年级班主任工作计划
- 中国应急物流政策研究
- 《牛奶可乐经济学》读后感集锦
- QLQB C-208-2014 乘用车零部件电磁兼容性规范(柳汽标准)
- 福建省龙岩市永定区湖坑中学2018届中考语文补考试题
- 《朱元璋》经典台词
- 预埋件及化学锚栓计算
- 75th燃气锅炉
- 厕浴间地面聚胺酯涂膜防水施工
- 发展汉语中级写作范文阅读4