




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
EDA课程设计第1章绪论1.1概述20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。而休闲时间越来越少的人们越来越没太多的时间出去搞户外活动,于是众多电子游戏相应而出,成为大家的娱乐节目。因此设计了这个两人的乒乓球游戏。而电子信息类产品的开发明显地出现了两个特点:一是开发产品的复杂程度加深;二是开发产品的上市时限紧迫。而伴随着如上两个特点的产生,相应的出现了设计上的两个问题。其一,在电子系统日趋数字化、复杂化和大规模集成化的今天,电子厂商们越加迫切地追求电子产品的高功能、优品质、低成本、微功耗和微小封装尺寸,从而使得电子设计日趋复杂。那么如何去完成这些高复杂度的电子设计呢?其二,电子产品设计周期短和上市快是电子厂商们坚持不懈的追求,那么面对日趋复杂的设计,又如何能够缩短开发时间呢?解决以上两个问题的唯一途径是电子设计自动化(EDA),即用计算机帮助设计人员完成繁琐的设计工作。1.2课题设计主要内容两人乒乓球游戏机是用8个发光二级管代表乒乓球台,中间两个发光二极管兼做乒乓球网,用点亮的发光二极管按一定方向移动来表示球的运动。在游戏机的两侧各设置发球和击球开关,甲乙双方按乒乓球比赛规则来操作开关。当甲方按动发球开关时,靠近甲方的第一个发光二极管亮,然后发光二极管由甲方向乙方依次点亮,代表乒乓球的移动。当球过网后按照设计者规定的球位乙方就可以击球。若乙方提前击球或者未击到球,则甲方得分。然后重新发球进行比赛,知道一方记分达到11分为止,记分清零,重新开始新一局比赛。第2章开发工具简介2.1EDA、VHDL简介EDA是指以计算机为工作平台,融合了应用电子技术、计算机技术、智能化技术的最新成果而开发出的电子CAD通用软件包,它根据硬件描述语言HDL完成的设计文件,自动完成逻辑编译、化简、分割、综合、优化、布局布线及仿真,直至完成对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。目前EDA主要辅助进行三个方面的设计工作:IC设计、电子电路设计和PCB设计。没有EDA技术的支持,想要完成超大规模集成电路的设计制造是不可想象的;反过来,生产制造技术的不断进步又必将对EDA技术提出新的要求。VHDL语言是一种用于电路设计的高级语言。它在80年代的后期出现。最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言。但是,由于它在一定程度上满足了当时的设计需求,于是他在1987年成为AI/IEEE的标准(IEEESTD1076-1987)。1993年更进一步修订,变得更加完备,成为AI/IEEE的AI/IEEESTD1076-1993标准。目前,大多数的CAD厂商出品的EDA软件都兼容了这种标准。自IEEE公布了VHDL的标准版本,IEEE-1076(简称87版)之后,各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本(简称93版)。现在,VHDL和Verilog作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。有专家认为,在新的世纪中,VHDL于Verilog语言将承担起大部分的数字系统设计任务。VHDL的程序结构特点是将一项工程设计,用VHDL和原理图输入进行CPLD/FPGA设计的粗略比较:在设计中,如果采用原理图输入的设计方式是比较直观的。你要设计的是什么,你就直接从库中调出来用就行了。这样比较符合人们的习惯。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。应用VHDL进行工程设计的优点是多方面的。(1)与其他的硬件描述语言相比,VHDL具有更强的行为描述能力,从而决定了他成为系统设计领域最佳的硬件描述语言。强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。(2)VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。(3)VHDL语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和已有设计的再利用功能。符合市场需求的大规模系统高效,高速的完成必须有多人甚至多个代发组共同并行工作才能实现。(4)对于用VHDL完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动的把VHDL描述设计转变成门级网表。(5)VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计。2.2方案论证2.2.1乒乓游戏机的功能两人乒乓游戏机能够模拟乒乓球比赛的基本过程和规则,并能自动裁判和记分。乒乓游戏机是用8个发光二极管代表乒乓球台,中间两个发光二极管兼做乒乓球网,用点亮的发光二极管按一定的方向移动来表示球的运动。在游戏机的两侧各设置两个开关,一个是发球开关(S1a,S1b),另一个是击球开关(S2a,S2b)。甲乙两人按乒乓球比赛的规则来操作开关。当甲方按动发球开关S1a时,靠近甲方的第一盏灯亮,然后二极管由甲向乙依次点亮,代表乒乓球在移动。当球过网后,按设计者规定的球位乙方就可以击球。若乙方提前击球或者没有击着球,则判乙方失分,甲方记分牌自动加分。然后重新发球,比赛继续进行。比赛一直进行到一方记分到11分,该局结束,记分牌清零,可以开始新的一局比赛。具体功能如下:(1)使用乒乓游戏机的甲乙双方各在不同的位置发球或击球。(2)乒乓球的位置和移动方向由灯亮及依次点燃的方向决定,球移动的速度为0.1~0.5s移动一位。游戏者根据球的位置发出相应的动作,提前击球或者出界均判失分。(3)比赛用11分为一局来进行,甲乙双方都应设置各自的记分牌,任何一方先记满11分,该方就算胜了此局。记分牌清零后,又可开始新的一局比赛。2.2.2乒乓游戏机设计思路根据乒乓游戏机功能要求,可以分成四个模块来实现,其中corna模块为整个程序的核心,它实现了整个系统的全部逻辑功能;模块CH41A在数码的片选信号时,送出相应的数据;模块sel产生数码管的片选信号;模块disp是7段译码器。2.3乒乓球各模块的设计2.3.1控制模块的设计模块CORNA分两个进程,第一个进程实现逻辑功能,第二个进程将整数的记分转换为十进制数,便于译码显示。AF,AJ,BF,BJ分别为a方发球键和接球键,b方发球键和接球键,shift表示球所在的位置。模块如图2-1所示,其vhdl程序描述如下:图2-1模块CORNA1源程序如下:Libraryieee;Useieee.std_logic_1164.all;Useieee.std_logic_unsigned.all;EntitycornalisPort(clr,af,aj,bf,bj,clk:instd_logic;Shift:outstd_logic_vector(7downto0);Ah,al,bh,bl:outstd_logic_vector(3downto0);Awin,bwin:outstd_logic);Endcornal;ArchitecturebahaveofcornalisSignalamark,bmark:integer;BeginProcess(clr,clk)Variablea,b:std_logic;Variableshe:std_logic_vector(7downto0);BeginIfclr='0'thena:='0';b:='0';she:="00000000"amark<=0;bmark<=0;elsifclk'eventandclk='1'thenifa='0'andb='0'andaf='0'then--a方发球a:='1';she;="10000000";elsifa='0'andb='0'thenbf='0'then--b方发球b:='1';she:="00000001";elsifa='1'andb='0'then--a方发球后ifshe>8thenifbj='0'then--b方过网击球amark<=amark+1;--a方加一分a:='0';b:='0';she:="00000000";elseshe:='0'&she(7downto1);--b方没有击球endif;elsifshe=0then--球从b方出界amark<=amark+1;--a方加一分a:='0';b:='0';elseifbj='0'then--b方正常击球a:='0';b:='1';elseshe:='0'&she(7downto1);--b方没有击球endif;endif;elsifa='0'andb='1'then--b方发球ifshe<16andshe/=0thenifaj='0'thenbmark<=bmark+1;a:='0';b:='0';she:="00000000";elseshe:=she(6downto0)&'0';endif;elsifshe=0thenbmark<=bmark+1;a:='0';b:='0';elseifaj='0'thena:='1';b:='0';elseshe:=she(6downto0)&'0';endif;endif;endif;endif;shift<=she;endprocess;process(clk,clr,amark,bmark)variableaha,ala,bha,bla:std_logic_vector(3downto0);variabletmp1,tmp2:integer;variablet1,t2:std_logic;beginifclr='0'then--清零aha:="0000";ala:="0000";bha:="0000";bla:="0000";tmp1:=0;tmp2:=0;t1:='0';t2:='0';elsifclk'eventandclk='1'thenifaha="0001"andala="0001"then--a方得分达到11分,则保持aha:="0001";ala:="0001";t1:='1';elsifbha="0001"andbla="0001"then--b方得分达到11分,则保持bha:="0001";bla:="0001";t2:='1';Elsifamark>tmp1thenIfala="1001"thenala:="0000";aha:=aha+1;tmp1:=tmp1+1;elseala:=ala+1;tmp1:=tmp1+1;endif;elsifbmark>tmp2thenIfbla="1001"thenbla:="0000";bha:=bha+1;mp2:=tmp2+1;elsebla:=bla+1;tmp2:=tmp2+1;endif;endif;endif;al<=ala;bl<=bla;ah<=aha;bh<=bha;awin<=t1;bwin<=t2;endprocess;endbehave;2.3.2送数据模块的设计送数据模块CH41A的模块图如图2-2所示,vhdl程序描述如下:图2-2模块CH41A源程序如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYCH41AISPORT(sel:INSTD_LOGIC_VECTOR(2DOWNTO0);D0,d1,d2,d3:INSTD_LOGIC_VECTOR(3DOWNTO0);Q:OUTSTD_LOGIC_VECTOR(3DOWNTO0));ENDCH41A;ARCHITECTUREbehaveOFCH41AISBEGINPROCESS(sel)BEGINCASEselISWHEN”100”=>q<=d0;WHEN”101”=>q<=d1;WHEN”000”=>q<=d2;WHENothers=>q<=d3;ENDCASE;ENDPROCESS;ENDbehav;2.3.3产生数码管片选信号模块的设计产生数码管片选信号模块sel的模块图如图2-3所示,vhdl程序描述如下:图2-3数码管片选信号模块sel源程序如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYselISPORT(clk:INSTD_LOGIC;sell:OUTSTD_LOGIC_VECTOR(2DOWNTO0));ENDsel;ARCHITECTUREbehavOFselISBEGINPROCESS(clk)VARIABLEtmp:STD_LOGIC_VECTOR(2DOWNTO0);BEGINIFclk’eventandclk=’1’THENIFtmp=”000”THENtmp:=”001”;ELSIFtmp=”001”THENtmp:=”100”;ELSIFtmp=”100”THENtmp:=”101”;ELSIFtmp=”101”THENtmp:=”000”;ENDIF;ENDIF;sell<=tmp;ENDPROCESS;ENDbehav;2.3.47段译码器模块的设计7段译码器模块disp的模块图如图2-4所示,vhdl的程序描述如下:图2-47段译码器模块disp源程序如下:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;ENTITYdispISPORT(d:INSTD_LOGIC_VECTOR(3DOWNTO0);Q:OUTSTD_LOGIC_VECTOR(6DOWNTO0));ENDdisp;ARCHITECTUREbehavOFdispISBEGINPROCESS(d)BEGINCASEdISWHEN”0000”=>q<=”0111111”;WHEN”0001”=>q<=”0000110”;WHEN”0010”=>q<=”1011011”;WHEN”0011”=>q<=”1001111”;WHEN”0100”=>q<=”1100110”;WHEN”0101”=>q<=”1101101”;WHEN”0110”=>q<=”1111101”;WHEN”0111”=>q<=”0100111”;WHEN”1000”=>q<=”1111111”;WHENothers=>q<=”1101111”;ENDCASE;ENDPROCESS;ENDbehav;第3章设计结果与分析3.1系统的波形仿真图3-1所示为A方发球,在恰当的时候B方接到球,当球回到A方时,A方又接到球,但B方再也没有接到球的仿真波形。图3-1乒乓球仿真波形一图3-2所示为A方两次发球,B方没有接到球,A方得到2分的仿真波形图图3-2乒乓球仿真波形二图3-3所示为A方发球,B方提前击球的情况,此时,A方得一分。图中还显示了A方发球,B方在规定的时刻没有接到球的情况,此时,A方又得一分。图3-3乒乓球仿真波形三图3-4所示为A方得分增加到11分的情况,此时awin输出高电平,输出分数保持不变。当清零信号按下时,得分清为零,awin输出恢复低电平,又可以开始新的一局比赛。图3-4乒乓球仿真波形四3.2乒乓游戏机顶层电路图乒乓游戏机电路图如图3-5所示。图3-4乒乓游戏机电路图结论通过本课程的学习,能够掌握EDA的基础知识,进一步加深了对EDA的了解,让我对它有了更加浓厚的兴趣。特别是当每一个子模块编写调试成功时,心里特别的开心。但是在编写顶层文件的程序时,遇到了不少问题,特别是各元件之间的连接,以及信号的定义,总是有错误,在细心的检查下,终于找出了错误和警告,排除困难后,程序编译就通过了,心里终于舒了一口气。在波形仿真
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 幼师证理论试题及答案
- 老人扰民面试题及答案
- 青海大学《音乐产业导读》2023-2024学年第二学期期末试卷
- 杭州职业技术学院《画法几何与透视》2023-2024学年第二学期期末试卷
- 湖州职业技术学院《合唱排练(一)》2023-2024学年第二学期期末试卷
- 人教版美术四年级下册2.点的魅力 课件
- 人教部编版高中语文必修上册第1单元吟咏青春之歌激扬青春旋律2立在地球边上放号 课件
- 全国助残日关爱残疾人20
- 闭式冷却塔设计方案
- 毕业综合实践报告5000字
- 2023年度湖南省自然科学奖项目公示材料
- 2023年养老服务有限公司简介(4个范本)
- 红色文化知识竞赛试题及答案
- 老旧住宅屋面防水工程施工方案
- 操作规程储气罐安全操作规程
- 电厂物资管理系统解决方案
- 初一数学(下)难题百道及答案
- 七年级下实数及实数的计算
- 中国古典文献学(全套)
- 《抖音平台商品销售策略研究10000字(论文)》
- 两用物项-最终用户用途证明
评论
0/150
提交评论