EDA课程设计报告-数字秒表.doc

上传人:爱问知识人 文档编号:5014497 上传时间:2020-01-28 格式:DOC 页数:14 大小:217.50KB
返回 下载 相关 举报
EDA课程设计报告-数字秒表.doc_第1页
第1页 / 共14页
EDA课程设计报告-数字秒表.doc_第2页
第2页 / 共14页
EDA课程设计报告-数字秒表.doc_第3页
第3页 / 共14页
EDA课程设计报告-数字秒表.doc_第4页
第4页 / 共14页
EDA课程设计报告-数字秒表.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《EDA课程设计报告-数字秒表.doc》由会员分享,可在线阅读,更多相关《EDA课程设计报告-数字秒表.doc(14页珍藏版)》请在三一文库上搜索。

1、石家庄经济学院信息工程学院电子信息工程专业EDA技术课程设计报告题目: 数字秒表 姓 名 学 号 班 级 指导教师 2011年 1 月 12 日课程设计任务书班级 4081090102 姓名 学号 课程设计题目 数字秒表 课程设计起止日期 2010-12-27 至 2011-1-14 实习地点 实验楼308 课程设计内容与要求: 设计一个以0.01s为基准计时信号的实用数字式秒表。 要求:1、及格:计时显示范围059min59.59s; 2、中:具有清零、启动计时、暂停计时及继续计时功能,操作按键(开关)不超过两个; 3、良:有倒计时功能; 4、优:具有记录最近10次计时操作结果的功能。 指导

2、教师 2010 年12 月 27 日一、设计原理与技术方法:包括:电路工作原理分析与原理图、元器件选择与参数计算、电路调试方法与结果说明;软件设计说明书与流程图、软件源程序代码、软件调试方法与运行结果说明。(一)设计流程1、设计实验目的: 在MAX+plusII软件平台上,熟练运用VHDL语言,完成数字时钟设计的软件编程、编译、综合、仿真,使用EDA实验箱,实现数字秒表的硬件功能。2、设计原理总体框图:本系统设计采用自顶向下的设计方案,系统的整体组装设计原理框图如图(1)所示,它主要由控制模块、时基分频模块,计时模块和显示模块四部分组成。各模块分别完成计时过程的控制功能、计时功能与显示功能。数

3、字秒表计时控制电路计时电路 显示电路控制状态机时基分频电路计数器扫描电路七段译码器六十进制计数器六十进制计数器六十进制计数器 图1 数字秒表系统原理框图3、数字秒表组成及功能:1)计时控制模块的作用是针对计时过程进行控制。计时控制模块可用俩个按钮来完成秒表的启动、停止和复位。 2) 时基分频模块的作用把输入时钟信号变为分频输出信号,输出频率为100Hz的时钟脉冲。 3)计时模块执行计时功能,计时方法和计算机一样是对标准时钟脉冲计数。他是由三个十进制计数器和三个六进制计数器构成,其中毫秒位、秒位和分位采用十进制计数器,分秒位和十秒位十分位采用六进制计数器。4)计时显示电路的作用是将计时值在LED

4、数码管上显示出来。计时电路产生的值经过BCD七段译码后,驱动LED数码管。计时显示电路的实现方案采用扫描显示。4、系统硬件要求:1、时钟信号为2.5MHz;2、FPGA芯片型号EPM7128LC844,6个7段扫描共阴级数码显示管;3、按键开关(复位、启动);5、设计内容及步骤:1)根据电路特点,用层次设计概念。将此设计任务分成若干模块,规定每一模块的功能和各模块之间的接口,同时加深层次化设计概念;2)软件的元件管理深层含义,以及模块元件之间的连接概念,对于不同目录下的同一设计,如何熔合;3)适配划分前后的仿真内容有何不同概念,仿真信号对象有何不同,有更深一步了解。4)按适配划分后的管脚定位,

5、同相关功能块硬件电路接口连线;5)所有模块采用VHDL语言设计。6、硬件实现 将时序仿真正确的文件下载到实验箱中的EPM7128LC844中,通过合适的管脚分配,将相应的管脚连接起来,验证设计是否完成设计要求;(二)数字秒表的总体设计图(图2) 图2 数字秒表的总体设计图(三)数字秒表各个模块的VHDL语言设计1、时基分频模块 将实验箱提供的2.5MHz的时钟脉冲分频后变成100Hz的脉冲,该模块的VHDL设计代码如下:library ieee; use ieee.std_logic_1164.all;entity cb10 is port(clk: in std_logic; co:out

6、std_logic);end cb10;architecture art of cb10 is signal counter:integer range 0 to 24999;begin process(clk) begin if (clk=1 and clkevent) then if counter=12499 then counter=0; else counter=counter+1; end if; end if; end process;process(counter)begin if counter=24999 then co=1; else co=0; end if; end

7、process;end art;2、计数模块十进制计数模块的VHDL设计如下:library ieee; use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity TEN isport(clk,clr,en:in std_logic; Y:out std_logic_vector(3 downto 0); co:out std_logic);end entity TEN;architecture art of TEN is signal count10:std_logic_vector(3 downto 0);begi

8、n Y=count10;process(clk,clr,en)beginif clr=1 then count10=0000;elsif (clkevent and clk=1)thenif (en=1)thenif count10=1001then count10=0000;co=1;else count10=count10+1; co=0;end if;end if;end if;end process;end art;六进制计数模块的VHDL设计如下:library ieee; use ieee.std_logic_1164.all;use ieee.std_logic_unsigned

9、.all;entity SIX isport(clk,clr,en:in std_logic; Y:out std_logic_vector(3 downto 0); co:out std_logic);end entity SIX;architecture art of SIX is signal count6:std_logic_vector(3 downto 0);begin Y=count6;process(clk,clr,en)beginif clr=1 then count6=0000;elsif (clkevent and clk=1)thenif (en=1)thenif co

10、unt6=0101then count6=0000;co=1;else count6=count6+1; co=0;end if;end if;end if;end process;end art;3、显示模块计时显示电路的作用是将计时值在LED数码管上显示出来。计时电路产生的值经过BCD七段译码后,驱动LED数码管。计时显示电路的实现方案采用扫描显示。(1)选择器, 选通六个数码管分别显示时钟各位。代码如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity CZ isport(clk

11、,clr:in std_logic; x,y,z:out std_logic);end CZ;architecture art of CZ issignal count_3:std_logic_vector(2 downto 0);beginx=count_3(0);y=count_3(1);z=count_3(2);process(clk,clr)beginif(clr=1)then count_3=000;elsif(clkevent and clk=1)thenif(count_3=100)then count_3=count_3+1;else count_3=000; end if;e

12、nd if;end process;end art;(2)计数器library ieee;use ieee.std_logic_1164.all;entity choice_6 isport(a:in std_logic_vector(3 downto 0); b:in std_logic_vector(3 downto 0); c:in std_logic_vector(3 downto 0); d:in std_logic_vector(3 downto 0); e:in std_logic_vector(3 downto 0); f:in std_logic_vector(3 downt

13、o 0); x,y,z:in std_logic; bcd:out std_logic_vector(3 downto 0); end choice_6;architecture art of choice_6 issignal sel:std_logic_vector(2 downto 0);begin sel=x&y&z;process(sel)beginif(sel=000)then bcd=a;elsif(sel=001)then bcd=b;elsif(sel=010)then bcd=c;elsif(sel=011)then bcd=d;elsif(sel=100)then bcd

14、=e;else bcd=f;end if;end process;end art; (3)BCD译码器library ieee;use ieee.std_logic_1164.all;entity bcd isport(d:in std_logic_vector(3 downto 0); y:out std_logic_vector(6 downto 0);end entity bcd;architecture art of bcd isbeginwith d select y=1111110when0000, 0110000when0001, 1101101when0010, 1111001

15、when0011, 0110011when0100, 1011011when0101, 1011111when0110, 1110000when0111, 1111111when1000, 1111011when1001, 0000000when others;end architecture art;(四)系统仿真(1)时基分频模块的仿真: 图3 时基分频模块的仿真分析:将实验箱上2.5M的时钟信号进行25000的分频,得到100Hz的时钟信号。(2)十进制波形仿真:图4 十进制波形仿真分析:每一个时钟脉冲到来,计数值加1,到9进1返回0。(3)六进制波形仿真: 图5六进制波形仿真分析:每一

16、个时钟脉冲到来,计数值加1,到5进1返回0。(4)选择器CZ波形仿真:图6 图6 选择器CZ波形仿真分析;CLK,CLR为输入信号,X、Y、Z为输出信号。(5)计数器的波形仿真:图7图7计数器的波形仿真分析:X、Y、Z是输入信号。a是百分秒计数器,b是十分秒计数器,c是秒计数值,d是十秒计数器,e是分计数器,f是十分计数器,s_10min是十分计数器,hour是小时计数器。它们均为输入信号。X、Y、Z的组合选择六个数码管将六位数值显示出来。(6)BCD七段译码器的波形仿真:图8 BCD七段译码器的波形仿真(7)整个数字秒表的波形仿真:图9 图 9整个数字秒表的波形仿真分析:秒表开始从零开始计数

17、,每次增加10ms。工作很正常的进行。(五)课程设计工作记录包括:设计步骤与时间安排、调试步骤与时间安排、课题完成结果说明(1)时间安排记录: 2010-12-272010-12-28:确定设计题目为数字秒表,并查阅相关资料。2010-12-292011-01-02:进行各程序模块的设计,在实验箱上进行验证仿真。2011-01-032011-01-07:将各个模块综合在一起,进行整体的设计,调试无误后,下载到实验箱上进行仿真,直至程序正确无误的运行。(2)运行结果说明:本设计完成到中的水平;开始状态,复位开关CLR处在低电平状态,暂停开关EN处在高电平,秒表开始从零开始计数,每次增加10ms。

18、工作很正常的进行; 将EN拨到低电平,秒表计时停止,再拨到高,继续计时; 将CLR拨到高电平,计时恢复到零,再拨到低电平,再次从零开始计时。(3)实验心得 经过快三个星期的工作,我终于完成了我的设计任务数字秒表;开始做设计时总是会犯一些错误,只有经过不停的改错不停的编译得到正确的程序说明了作为软件编程人员是不能粗心大意的;秒表的顶层设计经保存,编译,管脚分配后,下载到FPGA芯片EPM7128LC844后,可以得到较为满意的结果,感觉很欣慰。通过这次设计,对CPLD和FPGA有了进一步认识,希望在以后的学习和工作上有所应用;感谢各位老师的督促和耐心指导。注:此表可加附页注:此表可加附页课程设计验收指导教师评语及成绩:成绩指导教师签字 年 月 日教研室主任意见教研室主任签字年 月 日

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 研究报告 > 商业贸易


经营许可证编号:宁ICP备18001539号-1