EDA拔河比赛实习报告.doc

上传人:仙人指路1688 文档编号:4146490 上传时间:2023-04-07 格式:DOC 页数:17 大小:368.50KB
返回 下载 相关 举报
EDA拔河比赛实习报告.doc_第1页
第1页 / 共17页
EDA拔河比赛实习报告.doc_第2页
第2页 / 共17页
EDA拔河比赛实习报告.doc_第3页
第3页 / 共17页
EDA拔河比赛实习报告.doc_第4页
第4页 / 共17页
EDA拔河比赛实习报告.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《EDA拔河比赛实习报告.doc》由会员分享,可在线阅读,更多相关《EDA拔河比赛实习报告.doc(17页珍藏版)》请在三一办公上搜索。

1、目 录摘要21课程设计的任务和基本要求 21.1设计目的 2 1.2设计要求 31.3设计方案 32设计过程 32.1 总体设计 32.2主要模块设计 42.2.1模块1 42.2.2模块2 62.2.3模块3 72.2.3模块4 82.3整体电路图块 103 系统仿真 134 电路功能验证 155心得体会 17参考文献 18摘 要EDA是电子设计自动化(Electronic Dedign Automation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。20世纪90年代,国际上电子和计算

2、机技术较先进的国家一直在积极探索新的电子电路设计方法,并在设计方法、工具等方面进行了彻底的变革,取得了巨大的成功。在电子技术设计领域,可编程逻辑器件(如CPLD、FPGA)的应用,已得到广泛的普及,这些器件为数字系统的设计带来了极大的灵活性,这些器件可以通过软件编程而对其硬件结构和工作方式进行重构,从而使得硬件的设计可以如同软件设计那样方便快捷。这一切极大的改变了传统的数字系统设计方法、设计过程和设计观念,促进了EDA技术的迅速发展。EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动完成逻辑编译、简化、分割、综合、优化、布局、布线、和仿真

3、,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。EDA技术的出现,极大地提高了电路设计的效率好可操作性,减轻了设计者的劳动强度。利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或者PCB版图的整个过程的计算机上自动处理完成。现在对EDA的概念或范畴用得很宽。包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA的应用。目前EDA技术已在各大公司、企事业单位和科研教学部门广泛使用。例如在飞机制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到E

4、DA技术。我们学习EDA就是为了以后更好的进行电子信息设计控制工作。这门学科需要有坚实厚重的理论功底做依托,同时不能忽视实践的必要性。任何一门工科性质的技术都不能离开实际操作,在发现问题解决问题的过程中可以检验并巩固我们的理论知识,并提高实际创造创新能力。基于以上原因,学院认真组织本次课程设计活动。通过一些小的设计学生对EDA这门课程和技术由感性认识上升到理性认识并有初步的设计能力。1课程设计的任务和基本要求1.1设计目的通过设计一个简易拔河比赛游戏机(1) 熟练掌握EDA软件QUARTUS II的使用方法;(2) 能利用EDA软件QUARTUS II进行一个电子技术综合问题的设计;(3)掌握

5、FPGA系统各种外围接口的灵活运用,培养实验的仿真及下载技能。(4) 掌握按键分配、CLOCK调用、LED数码管等外围接口的Verilog HDL语言编程;(5)通过软件编程和仿真理解并体会VHDL语言的常用编写语言和语法规 ;(6)培养分析、寻找和排除电子电路中常见故障的能力;1.2设计要求1 设计一个能进行拔河游戏的电路。2 电路使用15个(或9个)发光二极管(机器限制的话可以选用六个发光二极管)开机后只有中间一个发亮,此即拔河的中心点。3 游戏双方各持一个按钮,迅速地、不断地按动,产生脉冲,谁按得快,亮点就向谁的方向移动,每按一次,亮点移动一次。4 亮点移到任一方终端二极管时,这一方就获

6、胜,此时双方按钮均无作用,输出保持,只有复位后才使亮点恢复到中心。5 用数码管显示获胜者的盘数,并设置复位按钮。1.3设计方案设计方案 一按钮信号即输入的脉冲信号,每按一次按钮都应能进行有效的计数。用可逆计数器的加、减计数输入端分别接受两路脉冲信号,可逆计数器原始输出状态为0000,经译码器输出,使中间一只二极管发亮。当计数器进行加法计数时,亮点向右移;进行减法计数时,亮点向左移。由一个控制电路指示谁胜谁负,当亮点移到任一方终端时,由控制电路产生一个信号,使计数器停止计数。将双方终端二极管“点亮”信号分别接两个计数器的“使能”端,当一方取胜时,相应的计数器进行一次计数,这样得到双方取胜次数的显

7、示。设置一个“复位”按钮,使亮点回到中心,取胜计数器也要设置一个“复位”按钮,使之能清零。设计方案 二 设置两个按钮分别代表两个选手,用按钮高电平信号输出表示选手用力一次。将两个按钮信号分别接入两个计数器,用来存储他们的的用力情况。然后将他们的用力情况接入一个比较模块的两个输入端,假设一方比另一方多用力一次,那么将亮点向该方向移位一次。他们用力情况比较即结果处理的全部可能可以全部列出。这样拔河较量的过程和结果就可以通过亮点的变化表示出来。然后需要在任意一方胜利时设定两名选手的按键功能失效。只有复位接触这处设定后才能再次按键比赛。同时设定在一方胜利时给出胜利信号,作为一个上升脉冲接入胜利次数计数

8、器。计数器输出通过译码器后在LED数码管上显示出来。胜利计数器的复位端口独立设为胜利次数显示复位键。通过比较,我个人认为第二种方法得心应手,设计思路更简单,更条理,所以采用第二种设计方案。2设计过程2.1 总体设计 (1)先设计一个分频器,用来对比赛信号的输出频率进行控制。可以这样理解:我要怎样认为参赛一方获得了暂时的领先优势呢,答案是我可以设计参赛方按键若干次后才认为亮点向它那方移动一次。这样可以更真实的反应比赛过程。这个设想我通过分频器来实现。当然,老师给出的要求是领先按一次就认为亮点移动一次,我就可以直接把我的分频器改为不变分频,这样只需在分频程序里改动一点数据即可,也容易做到。为了硬件

9、验证的简单同时兼顾程序的可扩展性,我这里的分频器以三分频来设计。即先设计一个三分频器。(2)设计一个四位16进制计数器。这个东西因为有之前的实验基础,思路相对比较清晰。复位端,使能端和进位输出端都保存设计,方便以后任意选择性使用。(3)设计一个比较模块。这个模块主要为了对双方选手的用力情况进行一个比较。优势情况不同,经过比较,参赛方的优势可以通过电子绳的中心即一排二极管的亮点的移动来体现。这个只需要把选手的所有可能优势情况列出,并写出对应的亮点显示序列即可。当亮点移动到任意一端的终点后,设定有一个输出端为0,这个输出端接到之前用力计数器和分频器的使能端,限制比赛继续,即双方按键暂时失效。在胜利

10、的同时输出一个进位信号,用以后继胜利次数计数。(4)设计胜利次数统计和显示的模块。这一模块由计数器和译码器两个部分组成,其实就是之前我们做的七段数码管显示。该部分里的计数器的使能端始终保持1,而把复位键作为胜利次数显示的复位键。(5)子模块设计完后进行整体组合。22模块设计2.2.1模块1 分频器设计 分频器设计的原理和思想其实就是一个计数器,只是把进位端作为分频输出端,而把其他不需要的端口设计省略。计数周期由程序内预置的计数上限来自由控制。我这里为了对比赛双方按键选项有效进行暂停复位的控制还加入了复位和使能控制端,与比赛信号计数器的使能,复位端口对应着一起使用。其实比赛过程中的用力情况是通过

11、比赛信号计数器来反应的。比赛计数器的那两个端口已经足够使用。但是为了扩展分频器的功能,这两个端口还是暂时保留。原理图如下 VHDL源程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity clkgen is port(clk:in std_logic; rst4:in std_logic; en4:in std_logic; clk3:out std_logic); end entity clkgen; architecture art of clkgen issignal ct:

12、integer range 0 to 8;beginprocess (clk,rst4,en4) begin if rst4=1 then clk3=0;elsif clkevent and clk=1 then if en4=1 then if ct2 then ct=ct+1; clk3=0; else ct=0; clk3=1; end if; end if;end if;end process;end architecture art;2.2.2模块2 二位16进制计数器设计 原理图如下语言程序如下library ieee;use ieee.std_logic_1164.all;use

13、 ieee.std_logic_unsigned.all;entity cnt4b is port(clk1,ena1,rst1:in std_logic; dout1,cout1:buffer std_logic_vector(3 downto 0);end cnt4b;architecture art of cnt4b is begin process(clk1,ena1,rst1) beginif rst1=1 then dout1=0000; elsif clk1event and clk1=1 then if ena1=1 then dout1=dout1+1;end if;end

14、if;if dout1=9 then cout1=cout1+1; else cout1=0000;end if; end process;end architecture art;2.2.3模块3 比较模块 比较的对象是两个拔河信号计数器输出的四位2进制数,所以模块的这两个输入端口接入的数据类型务必设定为逻辑位矢量型。因为要由它的比较结果来控制前面的使能情况。所以本模块要专门设定一个输出与前面部分进行联系。这个模块要有拔河绳亮点显示功能,故要有七位输出对应七个二极管。它的另一个重要功能是为以后的胜利次数计数器提供计数脉冲,所以每到亮点移至一段时要有一个类似进位的计数输出端。由于我采用的是双方

15、分别处理的方式,所以许多非控制类端口都需要双份。原理图如下源程序如下library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity lmov is port (kl ,kr:in std_logic_vector(3 downto 0) ;led:out std_logic_vector(6 downto 0);en : out std_logic;dl: buffer std_logic;dr: buffer std_logic;rst3:in std_logic);end ;architectu

16、re one of lmov isbegin process(rst3,kl,kr)begin if rst3=1 then led=0001000;en=1;dl=0;dr=0;elsif kl-kr=1 then led=0010000;en=1;dl=0;dr=0;elsif kl-kr=2 then led=0100000;en=1;dl=0;dr=0;elsif kl-kr=3 then led=1000000;en=0;dl=1;dr=0;elsif kr-kl=1 then led=0000100;en=1;dl=0;dr=0;elsif kr-kl=2 then led=000

17、0010;en=1;dl=0;dr=0;elsif kr-kl=3 then led=0000001;en=0;dr=1;dl=0;elsif kr-kl=0 then led=0001000;en=1;dl=0;drddout1ddout1ddout1ddout1ddout1ddout1ddout1ddout1ddout1ddout1ddout1ddout1ddout1ddout1ddout1ddout1ddout1a,clk3=a1,rst4=rst,en4=e); -u2:clkgen port map (clk=b,clk3=b1,rst4=rst,en4=e); -u3:cnt4b

18、port map (clk1=a1,rst1=rst,ena1=e,dout1=kl1); u4:cnt4b port map (clk1=b1,rst1=rst,ena1=e,dout1=kr1); u5:lmov port map (en=e,kl=kl1,kr=kr1,rst3=rst,led=led,dl=dl1,dr=dr1);u6:cnt4b port map (clk1=dl1,rst1=rstj,ena1=f,dout1=x);U7:decled port map (din=x,ddout1=lshu);-名字关联方式u8:cnt4b port map (clk1=dr1,rs

19、t1=rstj,ena1=f,dout1=y);U9:decled port map (din=y,ddout1=rshu);-名字关联方式end architecture one;源程序生成的原理图:我自己通过原理图方法设计的原理图:3 系统仿真【1】 分频器 部分仿真波形在使能端有效,复位端无效时,输入三次脉冲输出一次脉冲。使能端和复位端的优先级高于时钟端。【2】 计数器 部分仿真波形【3】 比较模块 部分仿真波形kl,kr两个输入的比较结果在led的亮点变化上会表现出来。如果出现他们两个的差值为3,则dl或dr会输出一次脉冲。但是这里rst3和en若不与其他模块联合使用,则他们的置位情况

20、并不影响kl,kr的输入。不过rst3可以影响led,en和dl,dr的输出情况.注意,这里的en是输出端,它是用这个模块控制前面信号模块的关键所在。【4】 显示 模块部分仿真波形【5】整体 模块显示波形本次实习要实现的功能在这个波形图里都可以得到仿真。a或b脉冲来三次,记录用力一次。用力差值达到三次,则显示胜利一次,并且锁住代表用力的按键。需要rst来复位使重新启用。而计数可以由rstj随时清零。4 电路功能验证硬件验证选择电路模式6用85四个按键分别代表a,b,rst,rst1,D1D7是拔河电子绳数。码管8,7分别显示指示a,b选手的胜利次数。管脚设置如下:下载过程可简单理解为软件程序,

21、波形仿真,管脚下载完成后,先用下载装置线将电脑和硬件相连;然后直接点菜单栏tools下Programmer打开下载操作窗口,确定文件存在和USB连线无误后,其他都可默认,直接点击Start下载。成功下载完后,我试着操作:发现当连续按8号键多次后亮点接连移向最左端,然后8.7键失去作用,同时八号数码管显示1,只有按下6键后两信号键才重新有效。继续操作8,7号键,亮点会规律性变化,移置任意一端后,不在接受拔河输入同时继续记数一次。复位以后重新比赛。只要按下5号键,记数显示就恢复为0.通过观察,发现硬件仿真结果完全符合设计构想和实习要求。5心得体会参考文献1 潘松著.EDA技术实用教程(第二版). 北京:科学出版社,2005.2 康华光主编.电子技术基础 模拟部分. 北京:高教出版社,2006.3 阎石主编.数字电子技术基础. 北京:高教出版社,2003.4谭会生 张昌凡.EDA技术及应用(第二版) 西安电子科技大学出版社5相关网络资源。

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

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号