




已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录 摘 要IIAbstractIII第一章 工程背景1一、EDA技术与发展1(一)大规模可编程器件1(二)硬件描述语言2(三)软件开发工具2(四)实验开发工具3(五)EDA的发展前景3二、VHDL的简介4三、MaxPlus II的简介6第二章 设计原理7一、组合逻辑电路的设计方法7(一)组合逻辑电路的分类7(二)组合逻辑电路的设计方法与缺点7(三)组合逻辑电路的VHDL设计方法8二、FPGA的介紹9(一)产品设计10(二)FPGA在电路设计中的应用10(三)系统级应用10三、CPLD的介绍11四、CPLD于FPGA的关系12第三章 系统设计与实现13一、 设计准备13二 、设计构思13(一)设计要求13(二)功能分析14(三)项目设计方案14(四)系统的方案流程图:15三、VHDL设计15(一)频率计数模块15(二)灯移模块16(三)数码管扫描模块17四、编译与仿真20(一)频率计数模块仿真20(二)灯移模块仿真21(三)数码管扫描模块仿真22五、实验调试结果22设计过程的心得体会23致谢24参考文献25II 摘 要 随着现代社会的发展,现在的游戏是越来越多样化,拔河现在不仅仅用一个绳子来比赛也科技用电子来模拟,使游戏变的更加有有趣味。 本次设计使用 Quartus II工具来设计拔河游戏机的实现。其主要是实现拔河游戏的功能,其中分为两大模块,即分为玩家输入模块和控制模块。通过双方按键的快慢多少来进行比较,己方按一次加一,对方按一次减一,知道有一方累计加到四次方为赢。关键字:FPGA ;拔河;波形图 ;ASM图IIAbstract With the development of science and technology, now the game is more and more diversified, the tug of war is now not only used a rope to match technology with electronic simulation, the game becomes more interesting. The design and implementation using the Quartus II tool to design the tug-of-war game. The main function is the tug-of-war game function, which is divided into two modules, namely the game player input module and control module. Through both keys to compare your speed, according to one plus one, the other by one minus one, know that there is a cumulative four party to win.Keywords: FPGA; tug of war; waveform diagram; ASM diagramIII基于FPGA的拔河游戏机设计第一章 工程背景一、EDA技术与发展EDA技术是现代电子信息工程领域的一门新技术,同时也是现代电子设计技术和电子制造技术的核心。EDA技术是依赖功能强大的计算机,在EDA工具软件平台上开发出来的一整套电子系统设计的软硬件工具,并提供了先进的电子系统设计方法。近三十年来, EDA技术的发展大致经历了三个阶段:CAD阶段(20世纪70年代80年代中期)这一阶段分别研制了一些单独的软件工具,人们开始利用计算机取代手工劳动,辅助进行集成电路版图编辑,PCB布局布线等工作。CAE阶段(20世纪80年代中期90年代初)这一阶段在集成电路与电子系统设计方法学以及设计工具集成化方面取得了很多成果。CPLD的推广与FPGA的出现,特别是各种硬件描述语言的出现、应用和标准化方面的重大进步为EDA的发展奠定了基础。EDA阶段(20世纪90年代至今)这一阶段硬件描述语言的标准化得到进一步确立,从而出现了以高级语言描述、系统仿真和综合技术为特征的第三代EDA技术。它大大提高了设计效率,使设计者从摆脱了大量的辅助性工作,将精力集中于创造性的方案与概念的理解上。未来EDA技术将向深度和广度两个方面发展,有专家认为,21世纪将是EDA技术快速发展的时期,并且EDA技术将是对21世纪产生重大影响的十大技术之一。一般情况下,利用EDA技术进行电子系统设计,最终目标是完成专用集成电路ASIC的设计和实现。基于可编程器件EDA技术主要包括如下四个要素:(一)大规模可编程器件 可编程逻辑器件(PLD,Programmable Logic Device)即部分功能可由软件程序更改的器件。它是当前数字系统设计的主要硬件基础,是硬件编程语言VHDL的物理实现工具。可编程逻辑器件使用计算机,利用软件,硬件对器件进行系列编程,然后通过程序指挥芯片配置连线和编程器件,把应连接的元件,单元连接起来。根据用户编写的不同程序就可以制造出有不同电路功能的器件。并在设计阶段进行仿真(Emulation)使得微电子设计实现了早期集成和软硬件联合验证。CPLD实际是一个子系统部件,具有可编程性和实现方案容易改动的特点。它具有更高的集成度,它允许更多的输入信号,乘积和宏单元。CPLD内含多个I/O块和逻辑块。这些逻辑块可以使用可编程内连线的布线来实现相互间联系。每一个逻辑块就相当于一片220V10和236V18的PLD。有乘积阵列,乘积项分配机构和宏单元。I/O块通常具有逻辑功能和较强的I/O控制功能。目前大部分CPLD器件还具有兼容于IEEE1149.1(JTAG)标准测试激励端和边界扫描能力,以及兼容于PCI接口协议的输入输出缓冲器。(二)硬件描述语言硬件描述语言(HDL)是一种用文本形式来描述和设计电路的语言,它可以使电子系统设计者利用这种语言来描述自己的设计思想和电子系统的行为并建立模型,然后利用EDA工具进行仿真,自动综合到门级电路,可用ASIC或CPLD/FPGA实现其功能。目前其中最有代表性的是美国国防部开发VHDL(Very-High-Speed Integrated Circuit HDL),Verilog公司开发的Verilog HDL。HDL(IEEE1164)和Verilog HDL(IEEE1364)被IEEE列为工业标准,被众多EDA工具所支持,在电子工程领域,已成为事实上通用的HDL。将担负几乎全部的数字系统设计任务。VHDL主要用于描述数字系统的结构,行为,功能和接口。VHDL语言形式及描述风格与句法类似于一般的计算机高级语言。VHDL的程序结构特点是,将一项工程设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(即端口)或内部。在对一个设计实体定义了外部界面后,一旦其内部开发完成,其它设计就可以直接调用这个实体。这种设计实体分成内外部分的概念就是VHDL系统设计的基本点。(三)软件开发工具 MAX+PLUS II是Altera公司的第三代CPLD开发工具软件,它集成了可编程逻辑器件的设计环境。它可以在多种平台上运行提供了灵活和高效的界面。设计者无需精通器件内部的复杂结构,只需用自己熟悉的设计输入工具(原理图,波形图或硬件描述语言等)进行设计输入。MAX+PLUS II将这些设计软件换成目标结构所要求的格式,从而使设计者能够轻松的掌握和使用MAX+PLUS II软件。MAX+PLUS II具有以下特点:开放的接口。与结构无关(指VHDL描述逻辑综合前与结构无关)。多平台。完全集成化。多种设计库。模块化工具。硬件描述语言(HDL)。开放核的特点。Megacore功能。(四)实验开发工具利用EDA技术进行电子系统设计的下载与硬件验证工具,主要包括: 实验或开发所需的各类信号模块,包括时钟、脉冲、高低电平等;通用数字式和扫描驱动类接口,包括各类输入显示或指示模块;模拟器件及接口,包括模拟信号的放大,比较及A/D转换模块;监控程序模块;目标芯片适配座以及FPGA/CPLD目标芯片和编程下载电路。当前,EDA的主要应用方向为微控制器,ASIC和DSP等方面。(五)EDA的发展前景 二十世纪后半期,随着集成电路和计算机技术的飞速发展,数字系统也得到了飞速发展,其实现方法经历了由分立元件,SSI,MSI到LSI,VLSI以及UVLSI的过程。同时,为了提高系统的可靠性与通用性,微处理器和专用集成电路(ASIC)逐渐取代了通用全硬件LSI电路,而在这二者中,ASIC以其体积小,重量轻,功耗低,速度快,成本低,保密性好而脱颖而出,总的说来,ASIC的制作可粗略地分为掩膜方法和现场可编程方法两大类。目前,业界大量可编程逻辑器件(PLD),尤其是现场可编程器件(FPLD)被大量的应用在ASIC的制作中。在可编程集成电路的开发过程中,电子设计自动化(EDA)技术应运而生。EDA技术的出现,不仅为了电子系统的设计带来了一场革命性的变化,从某种角度来说,也成为其发展的必然。EDA代表了当今电子设计技术的最新发展方向,它的基本特征是:设计人员按照“自顶向下”的设计方法,对整个系统进行方案设计和功能划分,系统的关键电路用一片或几片专用集成电路(ASIC)实现,然后采用硬件描述语言(HDL)完成系统行为级设计,最后通过综合器和适配器生成最终的目标器件,这样的设计方法被称为高层次设计(High-Lever-Design)方法1。10多年前,电子设计的基本思路还是选用标准集成电路“自底向上”地构造出一个新的系统,这样的设计方法就如同一砖一瓦建造金字塔,不仅效率低、成本高而且容易出错。自顶向下法是一种从系统抽象定义到具体电路实现,从高层到低层直至具体逻辑电路,逐步由粗到细的分层次、分模块的设计方法。当今,自顶向下的设计方法已经是EDA技术的首选设计方法。应用VHDL进行自顶向下的设计方法,利用功能分割手段将设计由上到下进行层次化和模块化分割,也就是使用VHDL模型在所有综合级别上对硬件设计进行说明、建模和仿真测试。其分割过程为:系统功能功能块逻辑块具体电路。这种设计方法是逐步逼近具体电路。采用这种设计方法将系统分割为不同的功能模块后,每个模块可以用不同的工作小组来完成,这样就提高了产品开发的效率。自顶向下的设计流程如图1.1所示:11硬件测试1设计说明书2建立VHDL行为模型3VHDL行为仿真4VHDL-RTL级建模5前段功能仿真 6 逻辑综合7测试向量生成 8功能仿真10 门级时序仿真9结构综合设计完成 图1.1 自顶向下的设计流程图未来EDA技术将向深度和广度两个方面发展,有专家认为,21世纪将是EDA技术快速发展的时期,并且EDA技术将是对21世纪产生重大影响的十大技术之一2-3。二、VHDL的简介在传统的硬件电路设计中,主要的设计文件是电路原理图,而采用硬件描述语言(Hardware Describe Language ,HDL)设计系统硬件电路时主要使HDL编写源程序。所谓硬件描述语言,是一种用形式化方法来描述数字电路和设计数字逻辑系统的计算机语言。它可以使数字逻辑电路设计者用软件编程的方式来描述电子系统的逻辑功能、电路结构和连接形式,利用这种语言来描述自己的设计思想,然后利用 EDA 工具进行仿真,自动综合到门级电路,再用ASIC或CPLD/FPGA实现其功能。目前这种称之为高层设计的方法已被广泛采用。据统计,在美国硅谷目前约有80%的ASIC和FPGA/CPLD使采用HDL方法设计的。硬件描述语言的发展至今已有二十多年的历史,并成功地应用于设计的各个阶段:建模、仿真、验证和综合等。到20世纪80年代时,已出现了上百种硬件描述语言,如ABEL、HDL、AHDL,它们对设计自动化曾起到了极大的促进和推动作用,与传统的门级描述方式相比,它更适合大规模系统的设计。但是,这些语言由不同的EDA厂商开发,互不兼容,一般各自面向特定的设计领域与层次,不支持多层次设计,层次间翻译工作要由人工完成,而且众多的语言使用户无所适从。因此急需一种面向设计的多领域、多层次、并得到普遍认同的标准硬件描述语言。进入 80年代后期,硬件描述语言向着标准化的方向发展。1985年美国国防部正式推出了高速集成电路硬件描述语言VHDL(Very-High-Speed Integrated Circuit Hardware Description Language),VHDL和Verilog HDL 语言适应了这种趋势的要求,先后成为IEEE标准4-5。VHDL诞生于1982年。1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言 。自IEEE公布了VHDL的标准版本,IEEE-1076(简称87版)之后,各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本,(简称93版)。现在,VHDL和Verilog作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。有专家认为,在新的世纪中,VHDL与Verilog语言将承担起大部分的数字系统设计任务6。VHDL语言可读性强,易于修改和发现错误,覆盖面广,描述能力强,能支持硬件的设计,验证,综合和测试,包括系统行为级、寄存器传输级和逻辑门级多个设计层次,支持结构、数据流和行为三种描述形式的混合描述,因此VHDL几乎覆盖了以往各种硬件描述语言的功能,整个自顶向下或自底向上的电路设计过程都可以用VHDL来完成7。 VHDL还具有以下优点:(1)VHDL的宽范围描述能力使它成为高层次设计的核心,将设计人员的工作重心提高到了系统功能的实现与调试,而花较少的精力于物理实现。(2)VHDL可以用简洁明确的代码描述来进行复杂控制逻辑的设计,灵活且方便,而且也便于设计结果的交流、保存和重用。(3)VHDL的设计不依赖于特定的器件,方便了工艺的转换。(4)VHDL是一个标准语言,为众多的EDA厂商支持,因此移植性好8-10。三、MaxPlus II的简介MAX+PLUSII是Altera公司在Windows环境下开发的可编程逻辑设计软件平台。它可以在多种平台上运行,提供了灵活和高效的界面。设计者无需精通器件内部的复杂结构,只需用自己熟悉的设计输入工具(原理图,波形图或硬件描述语言等)进行设计输入。MAX+PLUSII将这些设计软件换成目标结构所要求的格式,从而使设计者能够轻松的掌握和使用MAX+PLUSII软件。MAX+PLUSII具有以下特点:开放的接口。与结构无关(指VHDL描述逻辑综合前与结构无关)多平台完全集成化多种设计库模块化工具硬件描述语言(HDL)开放核的特点,允许设计人员添加自己的宏函数Megacore功能(Megacore是为复杂的系统及功能提供的、经过校验的HDL网表文件,能使器件实现最优化设计。MAXplus软件的设计流程如图1.2所示。设计输入有四种方式:原理图输入、文本输入、EDIF网表输入及波形输入方式。文本输入是采用硬件描述语言程序作为输入,建立VHDL行为模型。编译是主要完成器件的选择及适配、逻辑的综合及器件的装入、延时信息的提取。设计仿真指只需通过计算机就能对所设计的数字系统从各种不同层次的系统性能特点完成一系列准确的测试与仿真操作。器件编程是对设计进行下载即将编程数据放到具体的可编程器件中,以便进行硬件调试和验证。设计输入项目编译设计仿真器件编程硬件下载测试设计修改图1.2 软件的设计流程图 第二章 设计原理一、组合逻辑电路的设计方法所谓组合逻辑电路就是在任何时刻,输出状态只决定于同一时刻各输入状态的组合,而与先前的状态无关的逻辑电路。在VHDL设计中,组合逻辑电路通常写成逻辑图(卡诺图),然后转化成真值表。通过真值表来控制输入输出状态。(一)组合逻辑电路的分类根据数字电路中输入输出的函数关系,组合逻辑电路可以由逻辑代数和卡诺图(如图2.1)来分析和设计。组合逻辑电路有以下特点:(1) 输入,输出之间没有反馈延迟通路。(2) 电路中不含记忆单元。图2.1 卡诺图(二)组合逻辑电路的设计方法与缺点组合逻辑电路的设计,通常以电路简单,所用器件最少为目标。在前面所介绍的用代数法和卡诺图法来化简逻辑函数,就是为了获得最简的形式,以便能用最少的门电路来组成逻辑电路。但是,由于在设计中普遍采用中,小规模集成电路产品,因此应根据具体情况,尽可能减少所用的器件数目和种类,这样可以组装好的电路结构紧凑,达到工作可靠而且经济的目的。组合逻辑电路的设计步骤是:(1)根据对电路逻辑功能的要求,列出真值表;(2)由真值表写出逻辑表达式;(3)简化和变换逻辑表达式,从而画出逻辑图;(4)编写组合逻辑电路设计程序。这种设计方法的缺点是:实际上,从信号输入到稳定输出需要一定的时间。由于从输入到输出的过程中,不同通路上门的级数不同或者门电路平均延迟时间的差异,使信号从输入经不同通路传输到输入级的时间不同。由于这个原因,可能会使逻辑电路产生错误的输出。通常把这种现象称为竞争冒险。而我们在这个设计中利用VHDL来编程,就可以惊醒系统行为描述,可以从逻辑行为上对模块进行描述和设计,大大降低了设计难度;描述的设计思想,电路结构和逻辑关系清晰明了,便于存档,查看,维护和修改,支持大规模设计的分解和已有设计的再利用。这也是VHDL之所以流行和我们选择它来进行设计的原因。(三)组合逻辑电路的VHDL设计方法现代数字系统的设计采用基于EDA(Electronic Design Automation)技术的自顶向下(Top To Down)的设计方法,即从整个系统的功能出发,自顶向下将系统划分成若干功能模块或子系统。一般的数字系统(或子系统)可以划分为受控器(又称数据子系统)和控制器(又称控制子系统)。受控器主要完成数据的采集、存储、运算处理和传输,在控制器发出的控制信号下进行,同时又反馈信号给控制器。控制器是执行算法的核心,是我们设计工作的首要任务,其控制功能可以用逻辑电路来实现,在EDA技术平台上,用VHDL设计,经过寄存器传输级(RTL)模拟验证后综合形成门级网表后,再进行门级仿真。用VHDL描述真值表一般需要两个进程:一个是时钟进程,控制状态机在时钟有效沿根据条件得到下一个状态并进行状态迁移;另一个进程是组合进程,不受时钟控制,由输出相关的信号触发,该进程根据触发信号决定组合逻辑电路的输出状态值。有时也采用三个进程模型来描述真值表,把时钟进程中形成下一个状态的功能分离出来,单独作为一个组合进程。该模型中,状态的迁移比2个进程的模型延迟一个节拍,而且最后综合出来的电路也稍大,但其优点是在描述复杂真值表时,3个进程模型的可读性好,修改比较方便。在VHDL设计中,可以不需要进行繁琐的时钟脉冲产生等步骤,可以简便地定义状态变量,将状态描述成进程,这个进程可以传出信号来控制其他进程,从而实现各种功能。应用VHDL进行逻辑电路设计的具体步骤如下:(1)根据系统要求确定状态数量输入件和各状态输出信号的,并画出画出卡诺图;(2)化简卡诺图化简成为最简单的逻辑关系(3)按照逻辑关系编写真值表的VHDL 设计程序;(4) 利用EDA 工具对组合逻辑电路的功能进行仿真验证。在VHDL语言中,组合逻辑电路的真值表通常用枚举型数据进行定义,每个状态均可表达为CASE_WHEN语句结构中的一条CASE语句,其输出组合逻辑可以用并行信号赋值语句或独立的进程描述,生成的硬件电路较简单,也就是节省硬件资源。无论与基于VHDL的其他设计方案相比,还是与可完成相同功能的CPU相比,组合逻辑电路都有难以超越的优越性,主要表现在以下几个方面:(1)控制灵活方便;(2)结构模式相对简单,设计方案相对固定,以及可定义符号化枚举类型的状态,对发挥VHDL综合器强大的优化功能提供了有利条件;(3)组合逻辑电路容易构成性能良好的逻辑模块,不受前一状态的影响(4)组合逻辑电路系统由纯硬件电路构成,它的运行不依赖软件指令的逐条执行,而且在它的设计中可使用完整的容错技术,所以组合逻辑电路具有极高的可靠性。编程完成后将程序下载到CPLD芯片上,就完成了数字系统的设计14-15。二、FPGA的介紹 目前以硬件描述语言(Verilog 或 VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至 FPGA 上进行测试,是现代 IC 设计验证的技术主流。这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器(Flipflop)或者其他更加完整的记忆块。系统设计师可以根据需要通过可编辑的连接把FPGA内部的逻辑块连接起来,就好像一个电路试验板被放在了一个芯片里。一个出厂后的成品FPGA的逻辑块和连接可以按照设计者而改变,所以FPGA可以完成所需要的逻辑功能。FPGA一般来说比ASIC(专用集成芯片)的速度要慢,无法完成复杂的设计,而且消耗更多的电能。但是他们也有很多的优点比如可以快速成品,可以被修改来改正程序中的错误和更便宜的造价。厂商也可能会提供便宜的但是编辑能力差的FPGA。因为这些芯片有比较差的可编辑能力,所以这些设计的开发是在普通的FPGA上完成的,然后将设计转移到一个类似于ASIC的芯片上。另外一种方法是用CPLD(复杂可编程逻辑器件备)。(一)产品设计把相对成熟的技术应用到某些特定领域如通讯,视频,信息处理等等开发出满足行业需要并能被行业客户接受的产品这方面主要是FPGA技术和专业技术的结合问题,另外还有就是与专业客户的界面问题产品设计还包括专业工具类产品及民用产品,前者重点在性能,后者对价格敏感产品设计以实现产品功能为主要目的,FPGA技术是一个实现手段在这个领域,FPGA因为具备接口,控制,功能IP,内嵌CPU等特点有条件实现一个构造简单,固化程度高,功能全面的系统产品设计将是FPGA技术应用最广大的市场,具有极大的爆发性的需求空间产品设计对技术人员的要求比较高,路途也比较漫长不过现在整个行业正处在组建首发团队的状态,只要加入,前途光明产品设计是一种职业发展方向定位,不是简单的爱好就能做到的!产品设计领域会造就大量的企业和企业家,是一个近期的发展热点和机遇。(二)FPGA在电路设计中的应用连接逻辑,控制逻辑是FPGA早期发挥作用比较大的领域也是FPGA应用的基石事实上在电路设计中应用FPGA的难度还是比较大的这要求开发者要具备相应的硬件知识(电路知识)和软件应用能力(开发工具)这方面的人才总是紧缺的,往往都从事新技术,新产品的开发成功的产品将变成市场主流基础产品供产品设计者应用在不远的将来,通用和专用IP的设计将成为一个热门行业!搞电路设计的前提是必须要具备一定的硬件知识在这个层面,干重于学,当然,快速入门是很重要的,越好的位子越不等人电路开发是黄金饭碗(三)系统级应用 系统级的应用是FPGA与传统的计算机技术结合,实现一种FPGA版的计算机系统如用XilinxV-4, V-5系列的FPGA,实现内嵌POWERPCCPU, 然后再配合各种外围功能,实现一个基本环境,在这个平台上跑LINUX等系统这个系统也就支持各种标准外设和功能接口(如图象接口)了这对于快速构成FPGA大型系统来讲是很有帮助的。这种山寨味很浓的系统早期优势不一定很明显,类似ARM系统的境况但若能慢慢发挥出FPGA的优势,逐渐实现一些特色系统也是一种发展方向。若在系统级应用中,开发人员不具备系统的扩充开发能力,只是搞搞编程是没什么意义的,当然设备驱动程序的开发是另一种情况,搞系统级应用看似起点高,但不具备深层开发能力,很可能会变成爱好者,就如很多人会做网页但不能称做会编程类似以上是几点个人开发,希望能帮助想学FPGA但很茫然无措的人理一理思路。这是一个不错的行业,有很好的个人成功机会。但也肯定是一个竞争很激烈的行业,关键看的就是速度和深度当然还有市场适应能力。 三、CPLD的介绍可编程逻辑器件(Programmable Logic Device ,PLD)是当前数字系统设计的主要硬件基础,是硬件编程语言VHDL的物理实现工具。可编程逻辑器件对数字系统设计自动化起着推波助澜的作用,可以说,没有可编程逻辑器件就没有当前的数字电路自动化。所谓可编程逻辑器件(Programmable Logic Device, PLD)即部分功能可由软件程序更改的器件。可编程逻辑器件使用计算机,利用软件,硬件对器件进行系列编程,然后通过程序指挥芯片配置连线和编程器件,把应连接的元件,单元连接起来。根据用户编写的不同程序就可以制造出有不同电路功能的器件。并在设计阶段进行仿真(Emulation)使得微电子设计实现了早期集成和软硬件联合验证。可编辑器件即部分功能可由软件程序更改的器件,主要有Xilinx公司的FPGA和Altera公司的CPLD器件系列,它们开发较早,占用了较大的PLD市场。FPGA/CPLD与其他ASIC相比,它们不仅可以解决使电子系统小型化,低功耗,高可靠性等问题,而且其设计开发周期短,开发软件投入少,芯片价格不断降低,设计制造成本低,开发工具先进,标准产品无需测试,质量稳定以及可实时在线检验等优点。CPLD实际是一个子系统部件,具有可编程性和实现方案容易改动的特点。它具有更高的集成度,它允许更多的输入信号,乘积和宏单元。CPLD内含多个I/O块和逻辑块。这些逻辑块可以使用可编程内连线的布线来实现相互间联系。每一个逻辑块就相当于一片220V10和236V18的PLD。有乘积阵列,乘积项分配机构和宏单元。I/O块通常具有逻辑功能和较强的I/O控制功能。目前大部分CPLD器件还具有兼容于IEEE1149.1(JTAG)标准测试激励端和边界扫描能力,以及兼容于PCI接口协议的输入输出缓冲器,这种芯片正受到世界电子工程设计人员的欢迎。本设计中使用EPM7128SLC84-15芯片来下载程序。四、CPLD于FPGA的关系 早在1980年代中期,FPGA已经在PLD设备中扎根。CPLD和FPGA包括了一些相对大数量的可以编辑逻辑单元。CPLD逻辑门的密度在几千到几万个逻辑单元之间,而FPGA通常是在几万到几百万。CPLD和FPGA的主要区别是他们的系统结构。CPLD是一个有点限制性的结构。这个结构由一个或者多个可编辑的结果之和的逻辑组列和一些相对少量的锁定的寄存器。这样的结果是缺乏编辑灵活性,但是却有可以预计的延迟时间和逻辑单元对连接单元高比率的优点。而FPGA却是有很多的连接单元,这样虽然让它可以更加灵活的编辑,但是结构却复杂的多。CPLD和FPGA另外一个区别是大多数的FPGA含有高层次的内置模块(比如加法器和乘法器)和内置的记忆体。一个因此有关的重要区别是很多新的FPGA支持完全的或者部分的系统内重新配置。允许他们的设计随着系统升级或者动态重新配置而改变。一些FPGA可以让设备的一部分重新编辑而其他部分继续正常运行。第三章 系统设计与实现一、 设计准备本次设计中,首先做了如下准备工作:查阅了大量的中英文文献,对国内外CPLD/FPGA应用技术和状态机的描述方法及当前最先进的硬件描述语言和可编程ASIC的应用及发展现状有了一定的了解,为本次设计提供了许多有益的启示。深入地研究了组合逻辑电路的特点,并细致分析了各种实现控制的特征,从而总结出选择组合逻辑电路最佳描述方式的方法,为用CPLD/FPGA进行拔河游戏机设计的硬件实现打下了一个坚实的基础。重点深入的学习了CPLD/FPGA的物理结构和特征。弄清其中的硬件资源数量和特点及其使用方法与有关注意事项。为充分、有效地利用器件资源做好了准备工作。学习了VHDL语言的基本知识和使用它来设计数字系统硬件电路的基本方法、基本设计思想,为灵活的设计和开发奠定了基础。认真的学习和掌握了MAX+PLUS软件。二 、设计构思(一)设计要求 拔河游戏机设计的要求如下: 拔河游戏机是一种能容纳甲乙双发参加游戏的电路,由一排发光的二极管标示拔河的绳,又甲方双方按钮开关时发光二极管向乙方延伸,当延伸到二极管的终点时,则该方胜。 设计一个能进行拔河游戏机的电路 电路使用7个发光二极管,开始时只有中间一个二极管发光,这是拔河的终点。 游戏双方在两边各持一个按钮,游戏开始后,都不停的按动按钮,谁按得快。亮点就像谁得方向移动,按动一次,移动一次,亮点移动到乙方得终端二极管时,这一方获胜,此时双方得按钮都无效,只有复会后才能使亮点回到中心。由裁判下达比赛开始命令后,甲乙双方才能输入信号,否则,输入信号无效。 用数码管显示获胜者的盘数,每次比赛结束自动给获胜方加分。 (二)功能分析拔河游戏机的主要功能就是能够对比赛双方的按键次数进行计数,然后通过比较同等时间内按键的次数,利用LED电子绳来表示当前按键情况。复位键主要使电子绳led的位置复位和计数器的值进行初始化,1个led灯为有一方胜利指示灯。再用开发板上的3位共阳数码管来显示双方比分。(三)项目设计方案 我们通过使用八盏LED灯来表示,其中前七盏表示拔河过程,剩下的一盏作为报警使用。开始时拔河的中心在第四盏灯,当按下开始按钮的时候比赛双方才能开始比赛,比赛双方通过按按键来进行比赛,每按一下灯就前进一下,直到灯到一方的尽头比赛才算结束。再用开发板上的3位共阳数码管来显示双方比分。 由要实现的功能分析主要是对按键相方有效按键次数进行计数,再比较同一个时刻双方按键次数的差来确定比赛的实时状况;然后通过显示模块在硬件中显示实时情况,同时当led到达最边一个时,产生一个始能信号,使计数器停止计数,并保持输出;输入需要对比赛相方的按键进行消抖,增加比赛公平。主要软件模块为分频模块,按键计数模块,消抖模块,比较模块电子绳移动控制模块,数码管动态显示模块 。(四)系统的方案流程图:图3.1系统的方案流程图三、VHDL设计利用VHDL硬件描述语言,对拔河游戏机控制逻辑电路进行设计如下:(一)频率计数模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY cnt10 ISPORT(clk,rst,en: in STD_LOGIC; cout:OUT STD_LOGIC; cq:OUT STD_LOGIC_VECTOR( 2 DOWNTO 0);END ENTITY cnt10;ARCHITECTURE ONE OF cnt10 ISBEGINPROCESS(clk, rst,en)VARIABLE cqi:STD_LOGIC_VECTOR(2 DOWNTO 0);BEGINIF rst = 1 THENcqi:=(OTHERS=0);ELSIF clkEVENT AND clk = 1 THENIF en = 1 THENIF cqi 0);END IF;END IF;END IF;IF cqi = 3 THEN cout = 0;ELSE cout = 1;END IF;cq:0)是计数器异步复位,ELSIF clkEVENT AND clk =1THEN 是检验时钟上升沿,IF en =1THEN表示检测是否允许计数,IF cqi0),表示大于9,计数值清零。IF cqi = 3 THEN cout = 0表示计数大于9,输出进位信号。(二)灯移模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY Imov ISPORT(kI,kr: IN STD_LOGIC_VECTOR(2 DOWNTO 0);led:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);en:OUT STD_LOGIC;rst:STD_LOGIC);END;ARCHITECTURE ONE OF Imov ISBEGINPROCESS(rst,kI,kr)BEGINIF rst = 1 THEN Ied = “1110111”; en=1;ELSIF kI-kr = 1 THEN Ied =“1101111”;en=1;ELSIF kI-kr = 2 THEN Ied =“1011111”;en=1;ELSIF kI-kr = 3 THEN Ied =“0111111”;en=0;ELSIF kI-kr = 1 THEN Ied =“1111011”;en=1;ELSIF kI-kr = 2 THEN Ied =“1111101”;en=1;ELSIF kI-kr = 3 THEN Ied =“1101110”;en=0;ELSIF kI-kr = 0 THEN Ied =“1110111”;enbt=“10111111”;abt=“11011111”;abt=“1110111”;abt=“1111011”;abt=“1111101”;abt=“1111110”;abt=“1111111”;END CASE;END PROCESS P1;P2:PROCESS(clk)VARIABLE ct:INTEGER RANGE 0 TO 5000;BEGINIF clkEVENT AND clk = 1 THENIFct49999 THENct:=ct+1;clk1=0;ELSEct:=0;clk1=1;END IF;END IF;END PROCESS P2;PROCESS(clk1)BEGINIF clk1ENENT AND clk1=1 THENIF cnt45 THENcnt4=cnt4+1;ELSEcnt4sgsgsgsgsgsgNULL;END CASE;END PROCESS;END;说明:clkevent是指信号clk是否发生跳变,若发生了则返回ture,否则为假,clk=1是跳变后clk为高电平。合起来就是当clk信号的上升沿则.IF clkEVENT AND clk = 1 THEN/clkevent是指信号clk是否发生跳变,若发生了则返回ture,否则为假,clk=1是跳变后clk为高电平。合起来就是当clk信号的上升沿则.四、编译与仿真图3.2 编译与仿真图(一)频率计数模块仿真图3.3 频率计数模块仿真图 说明:计数器设计为一个十位的计数器,能够满足比赛过程中按键输入次数的需要。计数器主要通过对输入按键信号的上升沿计数,并且当复位信号rse=0时,对计数器进行异步清零;当开始信号start提供一个下降沿时和始能输入en=1时,计数开始,否则输出保持。 而当计数器计到10b11111111时,会自动清零,但比赛中这种情况很难发生。(二)灯移模块仿真 图3.4 灯移模块仿真图 说明:主要利用按键数的差的值来确定led灯的位置,而且当led在两边时,报警灯亮,en=0,并自动为获胜方比分bcd码加1。程序中设计当选手经过减法器后按键数的差为10时,电子绳中间的灯亮,为11时上面第三个亮,为12时上面第二个亮,为13时上面第1个亮,并且报警灯亮,en=0,获胜方比分的bcd码自动加1,。为9时上面第5个亮,为8时上面第6个亮,为7时上面第7个亮,并且报警灯亮,en=0,获胜方比分的bcd码自动加1。(三)数码管扫描模块仿真图3.5 数码管扫描模块仿真图 说明:把比分的bcd码译为7段码,并使比分在数码管上按时钟的频率动态显示出来。 当一个时钟上升沿来临时显示一个位的值,然后按照此规律不断地进行循环显示。五、实验调试结果(1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025陕西西安建工第五建筑集团有限公司3月招聘笔试历年参考题库附带答案详解
- 2025陕西榆林市吴堡县县属国有企业招聘笔试历年参考题库附带答案详解
- 2025贵州安立航空材料有限公司招聘工作人员及笔试历年参考题库附带答案详解
- 2025湖南省低空经济发展集团有限公司招聘12人(第二次)模拟试卷带答案详解
- 2025浙江温州交运集团选聘温州低空经济发展有限公司副总经理1人笔试历年参考题库附带答案详解
- 2025年六安金寨县红旅客运有限公司公开招聘劳务外包制旅游客车储备驾驶员2名笔试历年参考题库附带答案详解
- 2025内蒙古赛雅人力资源服务有限公司面向社会公开招聘196名劳务派遣列车服务人员笔试历年参考题库附带答案详解
- 2025科学技术部国际科技合作中心SKAO国际组织职员招聘考前自测高频考点模拟试题及答案详解(夺冠系列)
- 2025广西来宾市政协办公室招聘所属事业单位后勤服务控制数人员1人考前自测高频考点模拟试题及1套完整答案详解
- 2025昆明市晋宁区文化和旅游局招聘编外工作人员(1人)模拟试卷附答案详解(黄金题型)
- 荣耀机试题库及答案
- 云南省云南师大附中2026届高考适应性月考卷地理及答案(一)
- 卫生系统保密教育课件
- 中医全科课件下载
- 拒绝烟草诱惑向“吸烟”说不!课件-2024-2025学年高二下学期世界无烟日主题班会
- 4《少给父母添麻烦》公开课一等奖创新教案(第二课时)
- T-JLJY 01 -2023 幼儿园教育装备配置规范
- 《SLT631-2025水利水电工程单元工程施工质量验收标准》知识培训
- 马拉松志愿者培训
- 企业信息化标准规范-全面剖析
- 临床微生物学检验 2细菌形态学检查、培养和分离技术 学习资料
评论
0/150
提交评论