《2022年EDA数字秒表设计 .pdf》由会员分享,可在线阅读,更多相关《2022年EDA数字秒表设计 .pdf(24页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、北 华 航 天 工 业 学 院综合实践总结报告综合实践名称:EDA 技术与实践数字秒表设计综合实践地点、时间教二 EDA 实验室11-12-2 学期第 1215 周专业班级:* 姓名:* 学号:* 同组人员:* 指导教师姓名:* 完 成 时 间:2012 年5 月 日名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 24 页 - - - - - - - - - 目 录一、概述二、综合实践目的.三、综合实践具体内容和纪录 1、硬件电路设计.2、程序设计及仿真波形3、数字秒表的
2、原理图4、主程序 .165、实验步骤.18 四、综合实践总结及分析19 五、综合实践所需仪器设备22六、参考资料22 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 24 页 - - - - - - - - - 一、概述秒表的逻辑结构主要由显示译码器、分频器、十进制计数器、六进制计数器和报警器组成。 在整个秒表中最关键的是如何获得一个精确的 100Hz 计时脉冲,除此之外,整个秒表还需有一个启动信号和一个归零信号,以便秒表能随意停止及启动。秒表共有 6 个输出显示,分别为
3、百分之一秒、十分之一秒、秒、十秒、分、十分,所以共有6 个计数器与之相对应, 6 个计数器的输出全都为 BCD 码输出,这样便于和显示译码器的连接。当计时达60分钟后,蜂鸣器报警。二、综合实践目的1掌握多位计数器相连的设计方法2掌握十进制、六进制计数器的设计方法3巩固多位共阴极扫描显示数码管的驱动及编码4掌握扬声器的驱动5. 掌握 EDA技术的层次化设计方法三、综合实践具体内容和记录1、硬件电路设计计数器设计这里需要四个十进制计数器(分别作为数字秒表的百分之一秒、十分之一秒、秒和分)和两个六进制计数器(分别作为数字秒表的十秒和十分),当要停止计数时, START 端置 0;当要计数器清零时,
4、CLR名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 24 页 - - - - - - - - - 端置 0. (1)十进制计数器(2)六进制计数器(3)蜂鸣器名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 24 页 - - - - - - - - - 当数字秒表计时达60 分钟的时候会产生一个进位信号,进位信号接 I 端,此蜂鸣器相当于一个分频器,
5、即输出的Q端与 QER (0)等价, Q端会有交替的十个高低电平,所以蜂鸣器会响十下。(4)分频器此分频器主要是产生100HZ的信号来加在计数器两端,100HZ 的信号加在选择器上使扫描稳定。(5)显示译码器名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 24 页 - - - - - - - - - NUM3.0 接上面选择器的Y3.0端, 而 LED6.0 接数码管的abcdefg 段。(6)选择器选择器的六个输入端分别连着六个计数器,SEL端实现对这六个端的选择,例如
6、当 SEL=000时候,选择 DAIN03.0 , 且 SEL端接 3-8译码器的 A2、A1、A0端,Y3.0接七段译码器。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 24 页 - - - - - - - - - 2、程序设计及仿真波形十进制计数器(count10.vhd)四个 10 进制计数器:用来分别对百分之一秒、十分之一秒、秒和分进行计数,其程序如下:library ieee; use ieee.std_logic_1164.all; use ieee.std
7、_logic_unsigned.all; use ieee.std_logic_arith.all; entity count10 is port( clr,start,clk:in std_logic; cout:out std_logic; daout:buffer std_logic_vector(3 downto 0); end count10; architecture behave of count10 is begin process(clr,start,clk) begin if clr=1 then daout=0000; elsif ( clkevent and clk=1
8、) then if start=1 then if daout=1001 then daout=0000;cout=1; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 24 页 - - - - - - - - - else daout=daout+1;cout=0; end if; end if; end if; end process; end behave; 波形:六制计数器( count6vhd)两个 6 进制计数器:用来分别对十秒和十分进行计数,其程序如下:li
9、brary ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity count6 is port (clk,clr,start:in std_logic; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 24 页 - - - - - - - - - daout:out std_logic_vector(3 downto 0); cout:out std_logic ); end
10、count6; architecture behave of count6 is signal temp:std_logic_vector(3 downto 0); begin process(clk,clr) begin if clr=1 then temp=0000; cout=0101 then temp=0000; cout=1; else temp=temp+1; cout=0; end if; end if; end if; end process; daout=temp; end behave; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - -
11、 - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 24 页 - - - - - - - - - 波形:蜂鸣器 (alarm.vhd) 其程序如下:library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity alarm is port(clk,I:in std_logic; q:out std_logic ); end alarm; architecture behave of alarm is signal n:integer range 0 to 2
12、0; signal q0:std_logic; begin process(clk) begin if clkevent and clk=1 then if i=0 then q0=0; n=0; elsif n=19 and i=1 then q0=not q0; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 24 页 - - - - - - - - - n=n+1; else q0=0; end if; end if; end process; q=q0; end
13、 behave; 波形:分频器( fenpin100)library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_arith.all; use ieee.std_logic_unsigned.all; entity fenpin100 is port (clr,clk:in std_logic ; q:buffer std_logic); end fenpin100; architecture behave of fenpin100 is signal counter:integer range 0 to 12499; begin
14、 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 24 页 - - - - - - - - - process (clr,clk) begin if(clkevent and clk=1) then if clr=1 then counter=0; elsif counter =12499 then counter=0; q=not q; else counterledledledledledledledledledledled=1111111; 名师资料总结 - -
15、-精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 24 页 - - - - - - - - - end case; end process; end behave; 波形:选择器 (seltime.vhd) 其程序如下:library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity seltime is port(clr,clk: in bit; dain0,dain1,dain2,dain3
16、,dain4,dain5: in std_logic_vector(3 downto 0); sel: out std_logic_vector(2 downto 0); daout: out std_logic_vector(3 downto 0); end seltime; architecture behave of seltime is signal temp:integer range 0 to 5; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 24 页
17、- - - - - - - - - begin process(clk) begin if (clr=1) then daout=0000; sel=000; temp=0; elsif (clk=1and clkevent) then if temp=5 then temp=0; else tempsel=000;daoutsel=001;daoutsel=010;daoutsel=011;daoutsel=100;daoutsel=101;daout=dain5; end case; end if; end process; end behave;名师资料总结 - - -精品资料欢迎下载
18、- - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 24 页 - - - - - - - - - 波形:3、数字秒表的原理图名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 24 页 - - - - - - - - - 4、主程序:library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ie
19、ee.std_logic_arith.all; entity zhu is port( stop,start,clk:in std_logic; sel:out std_logic_vector(2 downto 0); led:out std_logic_vector(6 downto 0); speakr:out std_logic); end zhu; architecture cheng of zhu is component FENPIN100 port (clr,clk:in std_logic ; q:buffer std_logic); end component; compo
20、nent count10 port( clr,start,clk:in std_logic; cout:out std_logic; daout:buffer std_logic_vector(3 downto 0); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 24 页 - - - - - - - - - end component; component count6 port (clk,clr,start:in std_logic; daout:out std_
21、logic_vector(3 downto 0); cout:out std_logic ); end component; component seltime port(clr,clk: in bit; dain0,dain1,dain2,dain3,dain4,dain5: in std_logic_vector(3 downto 0); sel: out std_logic_vector(2 downto 0); daout: out std_logic_vector(3 downto 0); end component; component deled port(num:in std_
22、logic_vector(3 downto 0); led:out std_logic_vector(6 downto 0); end component; component alarm port(clk,I:in std_logic; q:out std_logic ); end component; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 24 页 - - - - - - - - - signal sm:std_logic_vector(13 downto
23、 0); begin yj0: FENPIN100 port map(stop,clk,sm(0); yj1: count10 port map(stop,start,sm(0),sm(9),sm(1); yj2: count10 port map(stop,start,sm(9),sm(10),sm(2); yj3: count10 port map(stop,start,sm(10),sm(11),sm(3); yj4: count6 port map(stop,start,sm(11),sm(4),sm(12); yj5: count10 port map(stop,start,sm(1
24、2),sm(13),sm(5); yj6: count6 port map(stop,start,sm(13),sm(6),sm(8); yj7: seltime port map(stop,sm(0),sm(1),sm(2),sm(3),sm(4),sm(5),sm(6),sel(0)or sel(1)or sel(2),sm(7); yj8: deled port map(sm(7),led(0.6); yj9: alarm port map(sm(0),sm(8),speaker); end cheng; 5、实验步骤1.根据电路持点,用层次设计概念将此设计任务分成若干模块,规定每一模块
25、的功能和各模块之间的接口。2.了解软件的元件管理深层含义,以及模块元件之间的连接概念,对于不同目录下的同一设计,如何熔合。3.适配划分前后的仿真内容有何不同概念,仿真信号对象有何不同,让学生有更深一步了解。 熟悉了 CPLD 设计的调试过程中手段的名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 24 页 - - - - - - - - - 多样化。4.按适配划分后的管脚定位,同相关功能块硬件电路接口连线。5 所有模块全用 VHDL 语言描述。四、综合实践总结及分析1、系
26、统仿真结果:2、 通过硬件测试,得到如下测试结果:(1)数码管能够正确显示秒表数字。(2)给启动端( start)高电平时,能够启动计时;低电平时,能够暂停计时。(3)给清零端( stop)低电平时,能够进行秒表清零操作。(4)当计时达 60 分钟时,蜂鸣器鸣响 10 声(因为频率较大,所以时间较小,导致听到的不是连续的十声)3、实验连线:下载程序到主芯片后,按适配划分后的管脚定位,连接线路。输入接口:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 20 页,共 24 页 - - -
27、 - - - - - - 1代表归零,启动信号RESET、START 的管脚分别连接按键开关2 蜂鸣器鸣响信号SPEAKER 接蜂鸣器的输入3代表计数时钟信号CLK 的管脚同 2.5MHZ 时钟源相连输出接口:代表扫描显示的驱动信号管脚SEL2,SEL1,SEL0 和 AG 分别连接到数码管相应接口。4、总结:1 严禁带电插拔 “JTAG”下载电缆!为了安全地使用下载电缆,防止损坏下载电缆中的器件和计算机主板的并口,应在计算机及实验箱均断电的情况下,插入或拔出下载电缆。插入下载电缆的步骤:确认完全断电下载电缆并口与计算机并口相连下载电缆JTAG 口与实验箱的 JTAG 口相连接通实验箱电源接通
28、计算机电源;拔出下载电缆的步骤:关闭实验箱电源拔下JTAG 电缆插头实验箱内部连线接通实验箱电源进行功能验证。测试完毕,先断掉 EDA 实验箱的电源, 再把 JTAG 电缆的小插头插入实验箱的 JTAG 插座,然后接通实验箱电源,准备下一次的设计下载。2 所有文件应放在同一个文件夹下,文件夹名应符合要求,文名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 21 页,共 24 页 - - - - - - - - - 件名应与实体名一致, 先录入底层文件, 把某个底层文件设为当时的顶层,保
29、存、编译、仿真、退出,再录入另一个底层文件,这样把所有的文件都一一录入,最后录入顶层文件,并保存、编译、仿真,再下载顶层文件到指定器件,实现功能。5、心得体会:通过这次课程设计,我对用 EDA 技术设计简单器件有了进一步的了解,在设计过程中,计数器的设计让我对数字电路加深了了解,在一开始时总是会出现多多少少的错误,通过课本、翻阅资料,对照教材上类似的秒表设计的相关文件, 对模块的结构及原理有了更深的认识,所以编程的时候才能得心应手。对 VHDL 语言的使用也有了进一步的加强,对所用到的软件有了更加深刻的了解, 这对我们以后的学习和工作有很大的帮助。本实验综合性较高,让我们学习到了怎么去下载程序
30、,也懂得了分频原理,懂得 LED 灯的显示原理,使得我们的知识更加丰富与实用。课设期间也发现了自己的很多不足, 但是通过自己动手动脑, 既增加了知识,又对专业知识得到了提升。课设对于我们来说是锻炼,是成长,短短的几天,虽然忙碌,却很充实。虽然这并不是什么伟大的设计,但是我们了解软件的元件管理深层含义,以及模块元件之间的连接概念,熟悉了 FPGA 设计的调试过程中手段的多样化 ,看着自己的成果,让我们感到一种小小的成就感,对电子系统的设计有了浓厚的兴趣。这次课设带给我锻炼一定会有更深的意义和影响。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - -
31、 - - - 名师精心整理 - - - - - - - 第 22 页,共 24 页 - - - - - - - - - 五、综合实践所需仪器设备1.计算机一台2.EL 教学实验箱3.导线若干4. MAX+plus II 软件六、参考资料1 闫石数字电子技术基础(第五版) 高等教育出版社, 2006 2 李国洪、胡辉、 沈明山.EDA 技术与实验 .机械工业出版社,2009 3 曹昕燕、风臣、春燕:EDA 技术试验与课程设计清华大学出版社, 2006.5 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 23 页,共 24 页 - - - - - - - - - 成 绩 评 定 表指导教师评定平 时表现总 结报告验收及答 辩情况总评评定成绩:指导教师:综合实践考核小组评定评定成绩:综合实践负责人:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 24 页,共 24 页 - - - - - - - - -
限制150内