1、_EDA实习设计报告课题名称:VHDL实现抢答器的设计 专业班级: 信息08-2 姓 名: 韩松 06号 指导老师: 蔡靖 2011年7月7日精品资料_精品资料目 录一 EDA数字技术的发展及应用21.1 EDA技术的发展与应用21.2设计的主要内容及要求21.3 本次设计的目的及意义3二 设计整体思路3三 单元模块设计部分43.1 抢答模块的设计23.2 计分模块的设计33.3 计时模块的设计43.4 数据选择模块的设计63.5 例化连接部分7五 EDA抢答器设计心得9参考文献11一 EDA数字技术的发展及应用1.1 EDA技术的发展与应用现代电子产品几乎渗透了社会的各个领域EDA技术是电子
2、设计的发展趋势, EDA工具从数字系统设计的单一领域,应用范围己涉及模拟、微波等多个领域,可实现各个领域电子系统设计的测试、设计仿真和布局布线等。设计者只要完成对电子系统的功能描述,就可利用计算机和EDA工具,进行设计处理,最终得到设计结果。随着大规模集成电路技术和计算机技术的不断发展,即使是普通的电子产品的开发,EDA技术常常使一些原来的技术瓶颈得以轻松突破,从而使产品的开发周期大为缩短、性能价格比大幅提高。不言而喻,EDA技术将迅速成为电子设计领域中的极其重要的组成部分。从目前的EDA技术来看,其发展趋势是政府重视、使用普及、应用文泛、工具多样、软件功能强大。 在信息通信领域,要优先发展高
3、速宽带信息网、深亚微米集成电路、新型元器件、计算机及软件技术、第三代移动通信技术、信息管理、信息安全技术,积极开拓以数字技术、网络技术为基础的新一代信息产品,发展新兴产业,培育新的经济增长点。1.2设计的主要内容及要求本次课程设计的主要目的旨在通过独立完成一个 “电子时钟”的设计,达到对EDA技术的熟练掌握,提升对EDA技术及应用课程所学内容的掌握和应用。以计算机为工具,设计者在EDA软件平台上,用硬件描述语言VHDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。Quartus2在基于VHDL程
4、序设计中拥有输入设计流程 ,其包括设计输入,综合,适配,仿真测试和编程下载等方法。Quartus2与其他应用软件相比,他提供了更强大、更直观便捷和操作灵活的原理图输入设计功能,同时还配备了更丰富的适用于各种需要的元件库,其中包括基本的逻辑元件,宏功能元件,以及类似于IP核的参数可设置的宏功能块LPM库。与传统的数字电路实验相比,Quartus2提供原理图输入设计功能具有不可比拟的优势和先进性:1) 设计者不必具备许多诸如编程技术,硬件描述语言等知识就能迅速入门,完成较大规模的电路设计系统。2) 能进行任意层次的数字系统设计,传统的数字电路实验只能完成单一层次的设计。3) 能对系统中的任意层次,
5、或任一元件的功能进行精确的时序仿真。4) 通过时序仿真能迅速定位电路系统中的错误所在,并及时纠正。1.3 本次设计的目的及意义第一,加深对VHDL语言设计的理解;第二,通过对抢答器的设计加深对EDA课程的理解;第三,通过对抢答器的设计了解简易集成电路的设计思路;二 设计整体思路在本次课程设计中使用Altera公司的EPF10K10系列的FPGA芯片,基于实验室现有的DE-2实验板,实现“抢答器”的设计要求。(1) 设计一个可以容纳四组参赛队进行比赛的电子抢答器。(2) 具有第一抢答信号的鉴别和锁存功能。(3) 具有计时(10秒)功能。(4) 具有(自动)计分功能。(5) 具有犯规自动(减分)设
6、置电路。 精品资料三 单元模块设计部分单元模块设计部分分四个部分,包括:抢答模块,计时模块,计分模块,数据选择模块。每个模块的作用分别为:1.抢答模块:实现四路抢答功能,以选手最快速度将拨码开关置1为抢答成功。 2.计分模块:实现每位选手答题的计分功能,有手动加分减分功能,当选手抢答成功后10秒仍未答题则自动减分。3.计时模块:实现选手答题的计时功能,若选手抢答成功后没有答题则计时模块会发出信号给计分模块。4.数据选择模块:当选手抢答成功后,以该选手的号码最为数据选择的地址,数据选择将计时模块的减分信号线与该选手的计分模块相连接,若选手没有答题则扣分。 3.1 抢答模块的设计其程序如下: li
7、brary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity qiangda isport( a:in std_logic; b:in std_logic; c:in std_logic; d:in std_logic; en_out:out std_logic; en:in std_logic; adrout:out std_logic_vector(3 downto 0); led_out:buffer std_logic_vector(6 downto 0);end qiangda;archit
8、ecture bhv of qiangda is signal key_in:std_logic_vector(3 downto 0);begin process(en)begin if en=1 then key_in=a&b&c&d; else key_inled:=1000000;-0 when1000=led:=1111001;-1 when0100=led:=0100100;-2 when0010=led:=0110000;-3 when0001=led:=0011001;-4 when others=led:=null; end case; led_out=led;end proc
9、ess;process(a,b,c,d)begin en_out=a or b or c or d; adrout=key_in;end process; end bhv; 3.2 计分模块的设计其程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity jifen is port(a:in std_logic; b:in std_logic; c:in std_logic; led_out:out std_logic_vector(6 downto 0);end jifen;arc
10、hitecture bhv of jifen is signal cnt_a:std_logic_vector(2 downto 0); signal cnt_b:std_logic_vector(2 downto 0); signal cnt_c:std_logic_vector(2 downto 0); signal cnt:std_logic_vector(2 downto 0);beginprocess(a)begin if aevent and a=1 then cnt_b=cnt_b+1; end if; end process; process(b)begin if bevent
11、 and b=1 then cnt_a=cnt_a-1; end if;end process;process(c)begin if cevent and c=1 then cnt_c=cnt_c-1; end if;end process; process(cnt)begin cntled_outled_outled_outled_outled_outled_outled_outled_outled_outled_outled_outled_outled_outled_outled_outled_outnull; end case;end process;end bhv; 3.3 计时模块的
12、设计其程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity jishi isport( clk:in std_logic; rst:in std_logic; rst1:in std_logic; led_out:out std_logic_vector(6 downto 0); en1:out std_logic);end jishi;architecture bhv of jishi is signal cnt:std_logic_vector(27 downto 0); s
13、ignal nclk: std_logic; signal cntdata:std_logic_vector(3 downto 0);beginprocess(clk,rst,rst1)begin if rst=0 or rst1=0then nclk=1; elsif clkevent and clk=1 then cnt=cnt+1; if cnt=x2faf080 then cnt=x0000000; nclk=0; else nclk=1; end if; end if;end process;process(nclk,rst)begin if rst=0 then cntdata=1
14、001;en1=0; elsif nclkevent and nclk=0 then cntdata=cntdata-1; if cntdata=0000 then cntdata=0000; en1=1; else en1led_outled_outled_outled_outled_outled_outled_outled_outled_outled_outled_outled_outled_outled_outled_outled_outnull; end case; end process;end bhv;3.4 数据选择模块的设计其程序如下: library ieee;use iee
15、e.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity xuanze isport( enin:in std_logic; adr:in std_logic_vector(3 downto 0); jian_a:out std_logic; jian_b:out std_logic; jian_c:out std_logic; jian_d:out std_logic);end xuanze;architecture bhv of xuanze is beginprocess(adr)begin case adr is when1
16、000=jian_ajian_bjian_cjian_dnull; end case;end process;end bhv; 3.5 例化连接部分其程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity zonghe isport(clk:in std_logic; a:in std_logic; b:in std_logic; c:in std_logic; d:in std_logic; en:in std_logic; rst:in std_logic; aa:in std
17、_logic; ab:in std_logic; ac:in std_logic; ad:in std_logic; ja:in std_logic; jb:in std_logic; jc:in std_logic; jd:in std_logic; qdout:out std_logic_vector(6 downto 0); jf_a:out std_logic_vector(6 downto 0); jf_b:out std_logic_vector(6 downto 0); jf_c:out std_logic_vector(6 downto 0); jf_d:out std_log
18、ic_vector(6 downto 0); js:out std_logic_vector(6 downto 0); off1:out std_logic_vector(7 downto 0):=11111111; off2:out std_logic_vector(7 downto 0):=11111111);end zonghe;architecture bhv of zonghe iscomponent qiangdaport( a:in std_logic; b:in std_logic; c:in std_logic; d:in std_logic; en_out:out std_
19、logic; en:in std_logic; adrout:out std_logic_vector(3 downto 0); led_out:buffer std_logic_vector(6 downto 0);end component;component jishiport( clk:in std_logic; rst:in std_logic; rst1:in std_logic; led_out:out std_logic_vector(6 downto 0); en1:out std_logic);end component;component jifenport(a:in s
20、td_logic; b:in std_logic; c:in std_logic; led_out:out std_logic_vector(6 downto 0);end component;component xuanzeport( enin:in std_logic; adr:in std_logic_vector(3 downto 0); jian_a:out std_logic; jian_b:out std_logic; jian_c:out std_logic; jian_d:out std_logic);end component; signal lin_er:std_logi
21、c; signal lin_ad:std_logic_vector(3 downto 0); signal lin_ee:std_logic; signal lin_ja:std_logic; signal lin_jb:std_logic; signal lin_jc:std_logic; signal lin_jd:std_logic;beginu1:qiangda port map(en=en,a=a,b=b,c=c,d=d,en_out=lin_er,adrout=lin_ad,led_out=qdout);u2:jishi port map(clk=clk,rst=rst,rst1=
22、lin_er,en1=lin_ee,led_out=js);u3:xuanze port map(adr=lin_ad,enin=lin_ee,jian_a=lin_ja,jian_b=lin_jb,jian_c=lin_jc,jian_d=lin_jd);u4:jifen port map(a=aa,b=ja,c=lin_ja,led_out=jf_a);u5:jifen port map(a=ab,b=jb,c=lin_jb,led_out=jf_b);u6:jifen port map(a=ac,b=jc,c=lin_jc,led_out=jf_c);u7:jifen port map(
23、a=ad,b=jd,c=lin_jd,led_out=jf_d);end bhv;例化连接原理图: 五 EDA抢答器设计心得首先,通过本次设计,我学会了综合运用各种知识,使得我理论学习得到应用,对我深刻掌握理论知识是很有帮助的,同时也帮助我提高独立分析问题和解决问题的能力,这对以后的工作是很有帮助的。在这次设计中,我花了不少的时间,其中有苦也有乐。苦的是我付出了不少的汗水,乐的是在付出的过程中我得到了许多,也学会了许多。因为一个人的能力毕竟有限,在设计方面难免会出现这样那样的错误,但正是这些错误促进了我的进步。根据电路的特点,我用层次化结构化设计概念,将此项设计任务分成若干模块,规定每一模块的
24、功能和各模块之间的接口,然后再将各模块合起来联试,这培养我了层次化设计的概念。在这次课程设计中,我真正体会到了知识的重要性。在设计的过程中,遇到问题我会先独立思考,到自己不能解决的时候我就会和同学讨论,实在解决不了我就会向指导老师请教,应该说从功能的实现到流程图的绘制,从程序的编写到程序的检查,从程序的调试到实验报告的写作,其间每一个过程都凝聚着大家对我的帮助。在设计的过程中我进一步养成了软件设计的方法,了解了设计的步骤,进一步加深了对EDA课程设计这门课的理解,增强了以后学习的兴趣,为以后的工作积累了一定的经验,感谢老师给我们提供这次设计的机会。此次课程设计不仅加强了我对专业知识的学习与了解
25、,更有许多的感慨,主要有以下几点:(1) 加强了我们动手、思考和解决问题的能力。我们很少能有这种机会来锻炼自己,通过这次课程设计,起到了很好的锻炼效果。(3)我沉得做课程设计同时也是对课本知识的巩固和加强,课本的知识太多,平时课间的学习并不能很好的理解程序的功能,所以在这次课程设计过程中,我们了解了很多程序的功能,并且对于其在实际中的使用有了更多的认识。我觉得我们做任何事情都要沉下心来做,遇到问题时千万不能急躁,要冷静的分析问题,这是解决问题的最好的方法,也是最有效的方法。 最后,我要感谢老师和同学们给我的帮助,没有你们的帮助,我是不能完成此次课程设计的,真的很感谢你们!参考文献1电子技术课程设计指导 彭介华 高等教育出版社.2000年出版2 EDA技术及应用教程 梁勇、李会萍等 机械工业出版社3CPLD数字电路设MAX+plus廖裕评等 清华大学出版社,20014 EDA实用技术及应用 刘艳萍、高振斌、李志军 国防工业出版社5 EDA技术及其应用 潘松、赵敏笑 科学出版社(2007-12出版)6 EDA技术及应用实践 高有堂 清华大学出版社(2006-08出版)Welcome ToDownload !欢迎您的下载,资料仅供参考!精品资料
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100