欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    基于EDA技术的智能函数发生器设计.doc

    • 资源ID:4148195       资源大小:911.50KB        全文页数:26页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于EDA技术的智能函数发生器设计.doc

    .数字电子技术课程设计题目:基于EDA技术的智能函数发生器设计院 系:专业班级:姓 名:学 号:小组成员:指导教师:完 成 日 期 2013年 12月目录1引言12 QUARTUS软件、FPGA硬件介绍23总体方案44五个模块原理图和功能仿真54.1控制模块原理图和功能仿真54.2七段译码器模块原理图和功能仿真65整体电路框图和功能仿真96智能函数发生器实物展示127设计总结14参考文献15附录161引言20世纪末,电子技术获得了飞速的发展,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。而休闲时间越来越少的人们越来越没太多的时间出去搞户外活动,于是众多电子游戏相应而出。因此设计了这个两人的乒乓球游戏。而电子信息类产品的开发明显地出现了两个特点:一是开发产品的复杂程度加深;二是开发产品的上市时限紧迫。而伴随着如上两个特点的产生,相应的出现了设计上的两个问题。其一,在电子系统日趋数字化、复杂化和大规模集成化的今天,电子厂商们越加迫切地追求电子产品的高功能、优品质、低成本、微功耗和微小封装尺寸,从而使得电子设计日趋复杂。那么如何去完成这些高复杂度的电子设计呢?其二,电子产品设计周期短和上市快是电子厂商们坚持不懈的追求,那么面对日趋复杂的设计,又如何能够缩短开发时间呢?解决以上两个问题的唯一途径是电子设计自动化(EDA),即用计算机帮助设计人员完成繁琐的设计工作。我采用了FPGA来设计,从中巩固了自己的专业知识,也有利于提高自己分析问题的能力,让理论与实际得到了完美的结合。对硬件描述语言VHDL语言的掌握也更加熟练,对于QUARTUS的设计流程有了更系统的学习。现代电子产品的发展越来越快, 各种新型电子元器件和智能化的电子产品已经在国民经济的各个领域和人民生活的各个方面得到了日益广泛的应用。实现这种进步的主要原因就是生产制造技术和电子设计技术的发展。其中电子玩具的发展也是在日益成熟。乒乓球游戏机控制电路是有甲、乙双方参赛,有裁判控制发“球”的三人乒乓球游戏机;它能完成自动裁判和自动计分是一个带数字显示的模拟游戏机。其结构简单、成本低、易操作,安全性强、无污染。乒乓球游戏机还能在娱乐的同时提高我们的反应、应变能力。具有良好的市场发展前景。2 Quartus软件、FPGA硬件介绍Quartus II是美国Altera公司自行设计的第四代PLD开发软件可以完成PLD的设计输入、逻辑综合、布局与布线、仿真、时序分析、器件编程的全过程同时还支持SOPC(可编程片上系统)设计开发,是继MAX+plusII后的新一代开发工具,适合大规模FPGA的开发。它是CPLD/FPGA集成化开发软件,具有完善的可视化设计环境。Quartus提供了方便的设计输入方式、快速的编译和直接易懂的器件编程。能够支持逻辑门数在百万门以上的逻辑器件的开发,并且为第三方工具提供了无缝接口。该软件支持的器件有:Stratix 、Stratix GX、Stratix、Mercury、MAX3000A、MAX 7000B、MAX 7000S、MAX 7000AE、MAX 、FLEX6000、FLEX10K、FLEX10KA、FLEX10KE、Cyclone、Cyclone 、APEX 、APEX20KC、APEX20KE和ACEX1K系列。Quartus软件包的编程器是系统的核心,提供功能强大的设计处理,设计者可以添加特定的约束条件来提高芯片的利用率。Quartus II提供了更优化的综合和适配功能,改善了对第三方仿真和时域分析工具的支持。Quartus II还包括DSP Builder开发工具,支持系统级的开发,支持Niso II入式核,IP核和用户定义逻等。由于它是一门迅速发展的新技术,涉及面广,内容丰富,理解各异,目前尚无统一的看法。FPGA(FieldProgrammable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA的开发相对于传统PC、单片机的开发有很大不同。FPGA以并行运算为主,以硬件描述语言来实现;相比于PC或单片机(无论是冯诺依曼结构还是哈佛结构)的顺序操作有很大区别,也造成了FPGA开发入门较难。目前国内有专业的FPGA外协开发厂家,如北京中科鼎桥ZKDQ-TECH等。FPGA开发需要从顶层设计、模块分层、逻辑实现、软硬件调试等多方面着手。FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输入输出模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。 现场可编程门阵列(FPGA)是可编程器件,与传统逻辑电路和门阵列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的结构。FPGA利用小型查找表(16×1RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。FPGA的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式,并最终决定了FPGA所能实现的功能,FPGA允许无限次的编程。主流的FPGA仍是基于查找表技术的,已经远远超出了先前版本的基本性能,并且整合了常用功能(如RAM、时钟管理和DSP)的硬核(ASIC型)模块。FPGA芯片主 要由7部分完成,分别为:可编程输入输出单元、基本可编程逻辑单元、完整的时钟管理、嵌入块式RAM、丰富的布线资源、内嵌的底层功能单元和内嵌专用硬件模块。3总体方案乒乓游戏机可由控制模块(my111)和四个七段译码器模块(disp0、disp1、disp2、disp3)组成。设计框图如下:图3.1乒乓游戏机系统框图设计思路:(1)建立一个工程:核心模块和四个七段译码器模块。分别输入五个模块的vhdl代码并生成原理图。(2)在该个工程中,分别引用(1)中的五个原理图,用原理图完成乒乓游戏机的设计。(3)编译完成后,功能仿真。(4)设计特色功能,并重新下载调试。 (5)进一步完善,并拍照和记录数据。特色功能:一局之内,任何一方先记满11分比赛结束,同时蜂鸣器报响。 在比赛期间,每进一球,记分牌加一分,同时进球方所对应的LED灯发光工作一次。4五个模块原理图和功能仿真4.1控制模块原理图和功能仿真图4.1控制模块原理图图4.2控制模块功能仿真说明: 信号clk周期为2ns,clr为清零键,所以常置1。af为a方发球,aj为a方接球。bf为b方发球,bj为b方接球。ah、al为a方分数的高位和低位。bh、bl为b方分数的高位和低位。Shift为球每移动一位的LED灯。awin为a方赢球,bwin为b方赢球。4.2七段译码器模块原理图和功能仿真图4.3七段译码器disp0模块原理图说明:此模块为数码管控制模块,功能是控制七段数码管对转换后的数字量进行显示,使其完成甲方和乙方各自得分记录显示。其中D3.0接数据转换模块的输出端口,Q6.0连接七段扫描数码管的段输入a、b、c、d、e、f、g,利用其控制特性在数码管上显示出参加乒乓球游戏的甲乙双方各自的得分。图4.4七段译码器模块disp0功能仿真说明:ah为a方得分高位, q00-q06为一个数码管所对应的。由上面仿真图可以看出,译码模块完成了对数据在数码管上正确地显示。波形符合要求。图4.5七段译码器disp1模块原理图图4.6七段译码器模块disp1功能仿真说明:al为a方得分低位, q10-q16为第二个数码管所对应的。图4.7七段译码器disp2模块原理图图4.8七段译码器模块disp2功能仿真说明:bh为b方得分高位, q20-q26为第三个数码管所对应的。图4.9七段译码器disp3模块原理图图4.10七段译码器模块disp3功能仿真说明:bl为b方得分低位, q30-q36为第四个数码管所对应的。5整体电路框图和功能仿真图5.1乒乓游戏机整体框图图5.2乒乓游戏机功能仿真(1)说明:信号clk周期为2ns,clr为清零键,常置高电平。当a方发球,在恰当的时间b方接到球,当球回到a方时,a方又接到球,但b方没有再接到球的波形仿真,从图中可以看出来乒乓球的行动路线,并可以看出,此时a方得一分。图5.3乒乓游戏机功能仿真(2)说明:信号clk周期为2ns,clr置高电平时。a方两次发球,b方没有接到球,a方得2分的仿真波形图。图5.4乒乓游戏机功能仿真(3)说明:a方发球,b方提前击球的情况,此时,a方得1分。图中还显示了a方发球,b方在规定的时候没有接到球的情况,此时a方又得1分。图5.5乒乓游戏机功能仿真(4)说明:当b方发球,a方在恰当的位置接到球,而b方没有接到球的情况,此时,a方得1分。图5.6乒乓游戏机功能仿真(5)说明:当a方得分增加到11分的情况,此时awin输出高电平,输出分数保持不变。当按下清零键后,得分清为零,awin输出恢复低电平,又开始新的一局。6智能函数发生器实物展示图6.1乒乓球下载实验板说明:sw11为bf,sw10为bj,sw0为af,sw1为aj,sw17为clk时钟信号,sw16为clr清零键。LEDR2-LEDR9 为八盏显示乒乓球移动的位置。LEDG0表示a得11分获胜,LEDG1表示b得11分获胜。此图表示a方得11分,b方得1分,a方获得胜利。图6.2乒乓球下载实验板说明: sw11为bf,sw10为bj,sw0为af,sw1为aj,sw17为clk时钟信号,sw16为clr清零键。LEDR2-LEDR9 为八盏显示乒乓球移动的位置。LEDG0表示a得11分获胜,LEDG1表示b得11分获胜。此图表示a方得8分,b方得11分,b方获得胜利。 7设计总结 本课题在选题及研究过程是在周丽婕和赵兰老师的悉心指导下完成的。老师们多次询问研究过程,并为我们指点迷津,帮助我们开拓思路,精心点拨,热忱鼓励。应用FPGA技术完成乒乓游戏机的设计,设计简单。可以看到利用FPGA技术完成一个电子设计,可以节省我们开发时间,从而大大提高我们的效率。采用新的技术就是为了提高我们效率,快速完成设计任务。我们两人为一小组,我们一组设计乒乓游戏机,在所做的过程中我们一直坚信是可以完成的,并且在老师们的帮助下我们实现了两个基本模块:控制模块、七段译码器模块和各自的特色模块。对VHDL语言的自顶向下设计方法有了进一步的认识;在底层文件具备的条件下,使用原理图可以使设置更加简单。使程序清晰,增加可读性。熟悉了写电子设计试验报告的方法,为写毕业设计论文奠定了一定的基础。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。参考文献1张亦华等主编. 数字逻辑设计实验技术与EDA工具M.北京:邮电大学出版社,20032朱正伟 王其红 韩学超 编著 EDA技术及应用第二版M,清华大学出版社,2013年3月第二版,起始页码P284-P291。附录主模块VHDLLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY my111 IS PORT(clr,af,aj,bf,bj,clk:IN STD_LOGIC;shift:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);ah,al,bh,bl:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);awin,bwin:OUT STD_LOGIC);END my111;ARCHITECTURE behave OF my111 ISSIGNAL amark,bmark:INTEGER;BEGINPROCESS(clr,clk)VARIABLE a,b:STD_LOGIC;VARIABLE she:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGIN IF clr='0'THEN a:='0' b:='0' she:="00000000" amark<=0; bmark<=0;ELSIF clk'EVENT AND clk='1' THEN IF a='0' AND b='0' AND af='0' THEN a:='1' she:="10000000"ELSIF a='0' AND b='0' AND bf='0' THEN b:='1' she:="00000001"ELSIF a='1' AND b='0' THEN IF she>8 THEN IF bj='0' THEN amark<=amark+1; a:='0' b:='0' she:="00000000" ELSE she:='0'&she(7 DOWNTO 1); END IF;ELSIF she=0 THEN amark<=amark+1; a:='0' b:='0'ELSE IF bj='0' THEN a:='0' b:='1' ELSE she:='0'&she(7 DOWNTO 1); END IF;END IF;ELSIF a='0' AND b='1' THEN IF she<16 AND she/=0 THEN IF aj='0' THEN bmark<=bmark+1; a:='0' b:='0' she:="00000000" ELSE she:=she(6 DOWNTO 0)&'0' END IF;ELSIF she=0 THEN bmark<=bmark+1; a:='0' b:='0'ELSE IF aj='0' THEN a:='1' b:='0' ELSE she:=she(6 DOWNTO 0)&'0' END IF;END IF;END IF;END IF;shift<=she;END PROCESS;PROCESS(clk,clr,amark,bmark)VARIABLE aha,ala,bha,bla:STD_LOGIC_VECTOR(3 DOWNTO 0);VARIABLE tmp1,tmp2:INTEGER;VARIABLE t1,t2:STD_LOGIC;BEGIN IF clr='0' THEN aha:="0000" ala:="0000" bha:="0000" bla:="0000" tmp1:=0; tmp2:=0; t1:='0' t2:='0'ELSIF clk'EVENT AND clk='1' THEN IF aha="0001" AND ala="0001" THEN aha:="0001" ala:="0001" t1:='1' ELSIF bha="0001" AND bla="0001" THEN bha:="0001" bla:="0001" t2:='1' ELSIF amark>tmp1 THEN IF ala="1001" THEN ala:="0000" aha:=aha+1; tmp1:=tmp1+1; ELSE ala:=ala+1; tmp1:=tmp1+1; END IF; ELSIF bmark>tmp2 THEN IF bla="1001" THEN bla:="0000" bha:=bha+1; tmp2:=tmp2+1; ELSE bla:=bla+1; tmp2:=tmp2+1; END IF; END IF; END IF; al<=ala; bl<=bla; ah<=aha; bh<=bha; awin<=t1; bwin<=t2; END PROCESS;END behave;七段译码器VHDLdisp0LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY disp0 IS PORT(ah:IN STD_LOGIC_VECTOR(3 DOWNTO 0); q0:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END disp0;ARCHITECTURE behave OF disp0 ISBEGIN PROCESS(ah) BEGIN CASE ah IS WHEN"0000"=>q0<="1000000" WHEN"0001"=>q0<="1111001" WHEN"0010"=>q0<="0100100" WHEN"0011"=>q0<="0110000" WHEN"0100"=>q0<="0011001" WHEN"0101"=>q0<="0010010" WHEN"0110"=>q0<="0000010" WHEN"0111"=>q0<="1011000" WHEN"1000"=>q0<="0000000" WHEN OTHERS=>q0<="0010000" END CASE; END PROCESS;END behave;disp1LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY disp1 IS PORT(al:IN STD_LOGIC_VECTOR(3 DOWNTO 0); q1:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END disp1;ARCHITECTURE behave OF disp1 ISBEGIN PROCESS(al) BEGIN CASE al IS WHEN"0000"=>q1<="1000000" WHEN"0001"=>q1<="1111001" WHEN"0010"=>q1<="0100100" WHEN"0011"=>q1<="0110000" WHEN"0100"=>q1<="0011001" WHEN"0101"=>q1<="0010010" WHEN"0110"=>q1<="0000010" WHEN"0111"=>q1<="1011000" WHEN"1000"=>q1<="0000000" WHEN OTHERS=>q1<="0010000" END CASE; END PROCESS;END behave;disp2LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY disp2 IS PORT(bh:IN STD_LOGIC_VECTOR(3 DOWNTO 0); q2:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END disp2;ARCHITECTURE behave OF disp2 ISBEGIN PROCESS(bh) BEGIN CASE bh IS WHEN"0000"=>q2<="1000000" WHEN"0001"=>q2<="1111001" WHEN"0010"=>q2<="0100100" WHEN"0011"=>q2<="0110000" WHEN"0100"=>q2<="0011001" WHEN"0101"=>q2<="0010010" WHEN"0110"=>q2<="0000010" WHEN"0111"=>q2<="1011000" WHEN"1000"=>q2<="0000000" WHEN OTHERS=>q2<="0010000" END CASE; END PROCESS;END behave;disp3LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY disp3 IS PORT(bl:IN STD_LOGIC_VECTOR(3 DOWNTO 0); q3:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END disp3;ARCHITECTURE behave OF disp3 ISBEGIN PROCESS(bl) BEGIN CASE bl IS WHEN"0000"=>q3<="1000000" WHEN"0001"=>q3<="1111001" WHEN"0010"=>q3<="0100100" WHEN"0011"=>q3<="0110000" WHEN"0100"=>q3<="0011001" WHEN"0101"=>q3<="0010010" WHEN"0110"=>q3<="0000010" WHEN"0111"=>q3<="1011000" WHEN"1000"=>q3<="0000000" WHEN OTHERS=>q3<="0010000" END CASE; END PROCESS;END behave;引脚说明表

    注意事项

    本文(基于EDA技术的智能函数发生器设计.doc)为本站会员(laozhun)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开