课程设计(论文)基于VHDL语言的彩灯控制器.doc
-
资源ID:2393040
资源大小:574KB
全文页数:35页
- 资源格式: DOC
下载积分:8金币
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
课程设计(论文)基于VHDL语言的彩灯控制器.doc
目 录1 引 言11.1课程设计背景11.2可编程逻辑器件的应用41.3可编程逻辑器件的发展方向51.4 EL-ARM-820型教学实验系统介绍62 理论基础92.1 FPGA/CPLD概述92.2 VHDL语言概述112.3 Max Plus II概述133 彩灯控制器详细设计163.1设计方案163.2设计思路183.3模块设计184彩灯控制器的仿真244.1控制模块的仿真244.2检查模块的仿真244.3循环模块的仿真254.4时控模块的仿真255 小 结27参考文献28附录:设计源程序清单29基于VHDL语言的彩灯控制器学生姓名:* 指导老师:* 摘 要 本课题主要是基于可编程逻辑器件,使用硬件描述语言VHDL,采用“自顶向下”的设计方法,编写一个彩灯控制器的芯片,并使用Max Plus II软件仿真结果。本文首先介绍了可编程逻辑器件的发展过程,然后对于编写彩灯控制器相关的理论知识作了说明,接着主要讲解了彩灯控制器的设计思路与模块划分。把彩灯控制器划分为两大模块,组合起来实现了彩灯控制及花型变化。最后,使用Max Plus II仿真软件对每个模块和主程序分别进行了结果仿真,并对仿真出来的结果作了分析。关键词 可编程逻辑器件;数字逻辑系统;硬件描述语言;彩灯控制器Based on VHDL language of colored lights controllerThe student's name: TangShengYan guide teacher: WuZhiMinPick to this topic is mainly based on programmable logic devices, use VHDL VHDL, adopting "top-down" design methods, write a lantern controller chip, and use the Max Plus II software simulation results. This paper first introduced the programmable logic device development process, then write lights controller for the correlative theoretical knowledge, then explains the main explained lights controller design thoughts and module partition. The lights controller divided into two big modules, combined realization with colored lights control and patterns change. Finally, the Max Plus II simulation software for each module and main program were studied respectively, and the simulation results of simulation out results are analyzed. Keywords programmable logic devices;Digital logic system; Hardware description languages; Lights controller 1 引 言当今社会是数字化的社会,也是数字集成电路广泛应用的社会,数字电路本身在不断地进行更新换代。它由早期的电子管、晶体管、小中规模集成电路发展到超大规模集成电路(VLSIC)以及许多具有特定功能的专用集成电路。但是,随着微电子技术的发展,设计与制造集成电路的任务已不完全由半导体厂商来独立承担。系统设计师们更愿意自己设计专用集成电路(ASIC)芯片,而且希望ASIC的设计周期尽可能的短,最好是在实验室里就能设计出合适的ASIC芯片,并且立即投入实际应用之中,因而出现了现场可编程逻辑器件(FPLD),其中应用最广泛的当属现场可编程门阵列(FPGA)和复杂可编程逻辑器件(CPLD)。比较典型的就是Xilinx公司的FPGA器件系列和Altera公司的CPLD器件系列,它们开发较早,占用较大的PLD市场。目前,Altera系列产品在我国使用较多。VHDL的全名是Very High Speed IC Hardware Description Language (极高速集成电路硬件描述语言)。它是一种应用较为广泛的HDL语言,能对范围广泛的各种复杂的网络(如电路系统、印刷电路板、芯片、逻辑门等)在不同的抽象级加以描述,而且在整个设计过程中可使用同一种语言。采用VHDL作为HDL综合设计的优点有:标准语言,即设计者可在不同的环境(例如MAX PLUS II)下进行设计;仿真和综合均可采用同一种语言进行;VHDL中提供的大量的模块资源,简化了设计者的开发工作;由VHDL描述的源文件既是程序软件又可作为设计的文档。目前可编程逻辑器件(PLD)已有含单片高达100000等效门的器件出现,可实现复杂的数字系统。当系统规模不太大时,原理图输入方式描述还较适宜,但系统比较复杂时,它将难以快速有效地建立描述文件。VHDL语言能方便地进行数字系统描述,且能使逻辑综合产生更大的设计密度。正是高效VHDL技术与高密度PLD的结合使用,大大降低了复杂数字系统的设计难度,提高了工作效率。本文介绍了CPLD与FPGA逻辑器件的基本知识和相关的软件MAX PLUS II及硬件编程语言VHDL。主要论述了一个彩灯控制器从设计思路到系统仿真的整个设计过程。1.1课程设计背景随着经济的进一步发展,人们的生活也在飞速改变,各种家用电器和设备正以极快的速度进入寻常百姓家。彩灯作为一种很重要的商业娱乐生活点缀工具也没有例外地深入到人们生活的方方面面。人们正以极大的热情努力的工作并享受由此而带来的种种快乐,彩灯作为装饰的生活娱乐观赏工具,在满足了人们的视觉娱乐的同时,人们更加注重彩灯的花式、创意、节能、环保。而作为彩灯设计很重要的一部分彩灯控制方式很是重要。而作为彩灯控制的各种操作,几乎都反映在灯的明亮和熄灭上,也是可以起到花型变换的作用。而作为彩灯,它有着很大的作用,无论是节假日还是在平日的夜晚,都是必须有各种不同的反映的,于是,彩灯控制器的设计是很重要的。而基于传统的机械和纯电路的控制方式,由于它完全取决于彩灯系统所采用的硬件来保证它的正常工作,而一旦电路老化或者因为机械振动而引起的接触问题以及机械元件变形而不能及时触发电路电源开关,这类问题是经常发生,而除了选用更好的硬件系统元件几乎没有别的可靠的方法来进行避免这类故障的发生,于是,选用智能型的元件来进行系统的设计,增加系统的稳定性和可控制性是非常必须的。而随着集成电路和计算机技术的飞速发展,电子设计自动化已经发展成为可以代替设计者完成电子系统设计的重要工具。电子设计自动化系统包含专用集成电路、数字信号处理和单片机等方向,其中数字专用集成电路的一个重要分支就是可编程逻辑器件(PLD)。基于PLD的电路控制方式是可靠的和可以预测的控制方式,其安全性很高,属于智能控制的范畴。于是,在彩灯上实行这种彩灯控制方式是一种变化和进步,增加了彩灯控制的高效性,降低了彩车的故障率。PLD(Programmable Logic Device)是可编程逻辑器件的总称,PLD基本上可以完成任何数字器件的功能,从高性能CPI到简单集成电路,均可以用PLD实现。通过传统的原理图输入,或是硬件语言的描述就可以自由地设计具备某种功能的数字系统:利用软件仿真功能,可以检验设计的正确性;利用PLD的在线修改能力,可以在不必改动硬件电路的基础上进行修改设计。具备设计时间短,PCB面积小,系统的可靠性强等特点。目前,在通信、自动控制、信息处理等诸多领域发挥着重要的作用。简单介绍可编程逻辑器件的发展历程。自上世纪60年代以来,数字集成电路经历了从小规模集成电路(SSI)、中规模集成电路(MSI)、大规模集成电路(LSI)到超大集成电路(VLSI)的发展过程。期间,微电子技术迅猛发展,集成电路的集成规模几乎以平均每 12 年翻一番的速度快速增长。集成电路技术的发展也带来了设计方法的进步,先进的 EDA(电子线路设计自动化)技术将传统的“自下而上”的设计方法改变为“自上而下”的设计方法,利用计算机技术,设计者在实验室里就可以设计出合适的 ASIC(专用集成电路)芯片以满足特定电路的需要。作为ASIC的重要分支,可编程逻辑器件即PLD因其成本低、使用灵活、设计周期短、可靠性高且风险小而得到普遍应用,发展非常迅速。PLD始于上世纪 70 年代,目前已形成了许多类型的产品,其结构、工艺、集成度、速度和性能等都在不断提高和改进。一般情况下,我们可按集成度对其分类,详见图 1.1所示:可编程逻辑器件(PLD)简单PLD复杂PLDPROMPLAPALGALCPLDFPGA图 1.1可编程逻辑器件集成度分类最早的PLD是1970年制成的PROM(可编程只读存储器),它由固定的与阵列和可编程的或阵列组成。它采用熔丝工艺编程,只能写一次,不能擦除和重写,图1.2 为用PROM完成的半加器逻辑阵列,其中“·”为固定连接,“*”为可编程连接。其逻辑表达式为:F0=A0A1+A0A1F=A0A1图1.2用PROM完成的半加器20世纪70年代中期,出现了可编程逻辑阵列(PLA),它由可编程的与阵列和可编程的或阵列组成。PLA解决了PROM当输入变量增加时会引起存储容量迅速增加的问题,但价格较贵,编程复杂,支持PLA的开发软件有一定难度,因而没有得到广泛应用。20世纪70年代末期美国MMI公司率先推出可编程阵列逻辑(PAL),它由可编程的与阵列和固定的或阵列组成,采用熔丝编程方式,双极工艺制造,器件的工作速度很高,PAL的输出结构种类很多,设计灵活,成为第一个得到广泛应用的PLD。20世纪80年代初,Lattice公司发明了通用阵列逻辑(GAL),这是一种可电擦写、可重复编程并且可设置加密的PLD。它采用了输出逻辑宏单元(OLMC)的形式和 E2CMOS工艺,比PAL使用更加灵活,可取代大部分SSI和MSI数字集成电路。由于GAL是在PAL基础上设计的,能与许多种PAL器件保持兼容,可直接替代,所以目前在很多产品上仍有广泛应用。上述几种可编程逻辑器件由于阵列规模较小,片内寄存器资源不足,不够灵活,编程不便,目前只有GAL在中小规模数字逻辑方面还在应用。而现在的可编程逻辑器件以大规模、超大规模集成电路工艺制造的CPLD和FPGA为主。CPLD即复杂可编程逻辑器件,目前主要的半导体公司如Xilinx,Altera,Lattice和AMD等都有各自的CPLD产品。作为CPLD器件,至少应包含三种结构:可编程逻辑宏单元,可编程I/O单元,可编程内部连线。1.2可编程逻辑器件的应用随着电子技术的高速发展,今天的CPLD和FPGA器件在集成度、功能和性能(速度及可靠性)方面已经能够满足大多数场合的使用要求用CPLD,FPGA等大规模可编程逻辑器件取代传统的标准集成电路、接口电路和专用集成电路已成为技术发展的必然趋势。PLD在电子技术领域中的应用主要有以下三个方面。1在微机系统中的应用CPLD/FPGA可以取代现有的全部微机接口芯片,实现微机系统中的地址译码、总线控制、中断及DMA控制、DRAM管理和I/O接口电路等功能。利用CPLD/FPGA可以把多个微机系统的功能集成在同一块芯片中,即进行所谓的“功能集成”。2在通信领域中的应用现代通信系统的发展方向是功能更强、体积更小、速度更快、功耗更低。CPLD/FPGA在集成度、功能和速度上的优势正好满足通信系统的这些要求。所以现在无论是民用的转弯动电话、程控交换机、集群电台、广播发射机和调制解调器,还是军用的雷达设备、图像处理设计、遥控遥测设备、加密通信机都已广泛地使用大规模可编程逻辑器件。3在数字信号处理技术(DSP)领域中的应用DSP在很多领域内具有广泛的用途,如雷达、图像处理、数据压缩、数字电视和数字通信机等。随着DSP系统复杂程度和功能要求的提高,用DSP解决方案愈现出其缺陷性:实时性不强、灵活性太差,不适合在实验室或技术开发等场合使用等。现在,CPLD/FPGA为DS提供了解决问题的方案,CPLD/FPGA和DSP的技术结合,能够在集成度、速度(实时性)和系统功能方面满足DSP的需要。应用CPLD/FPGA设计DSP系统可以减少系统体积,提高系统的工作速度。例如,用FPGA可以将一块PC机长卡大小的图像处理板缩小到一块FPGA芯片和几片外围电路上。可编程逻辑器件是逻辑器件家族中发展最快的一类器件,可编程逻辑器件的出现使得其产品开发周期缩短、现场灵活性好、开发风险变小,随着工艺、技术及市场的不断发展,PLD产品的价格将越来越便宜、集成度越来越高、速度越来越快,再加上其设计开发采用符合国际标准的、功能强大的通用性EDA工具,可编程逻辑器件的应用前景将愈来愈广阔,CPLD/FPGA以其不可替代的地位,将越来越受到业内人士的关注。PLD在ASIC设计中也存在着广泛的应用。可编程逻辑器件是在ASIC(专用型集成电路application specific integrated circuit)设计的基础上发展起来的,在ASIC设计方法中,通常采用全定制和半定制电路设计方法,设计完成后如果不能满足要求,就得重新设计再进行验证这样就使得设计开发周期变长,产品上市时间难以保证,大大增加了产品的开发费用。CPLD/FPGA芯片是特殊的ASIC芯片,它们除具有ASIC的特点之外,还具有自身的优势。目前,ASIC的容量越来越大,密度已达到平均每平方英寸1 百万个门电路。但随着密度的不断提高,芯片则受到引脚的限制,片上芯片虽然很多,但接入内核的引脚数目却是有限的。而选用CPLD/FPGA则不存在这样的限制,因为现在可达到的金属层数目增强了产品的优势,CPLD/FPGA芯片的规模越来越大,其单片逻辑门数已达到上百万门,实现的功能也越来越强,同时可以实现系统集成。另外,与ASIC相比,可编程逻辑器件研制周期较短,先期开发费用较低,也没有最少订购数量的限制,所有这一切简化了库存管理。随着每个门电路成本的降低和每个器件中门电路数量的增加,可编程逻辑器件正在大举打入传统的门阵列领域,并已有少量的打入了标准单元ASIC的领域。1.3可编程逻辑器件的发展方向Altera以MAX CPLD确定了全新的发展方向"最大的复杂可编程逻辑器件(CPLD)供应商。Altera公司日前发布了新款MAX 器件系列,这是业界最低的CPLD,MAX系列的核心是新的体系结构,它大大地降低了成本和功耗Altera在近十五年PLD的领导地位和创新的基础上,推出了业界成本最低的CPLD。MAX器件的成本是CPLD的一半,它采用了新的查找表(LUT)体系,因此每个I/O管脚的成本是市面上最低的,而且开创了CPLD 体系的新纪元Altera摒弃了传统的宏单元体系采用了查找表(LUT)结构满足CPLD设计者的需求“基于LUT 的体系采用TSMC的0.18Lm嵌入Flash工艺,使其裸片尺寸是同样工艺下竞争器件的四分之一,大大减小的裸片尺寸使得成本比上一代MAX降低了50%。新的体系采用了为其优化的交错环形I/O管脚,进一步降低了成本,这样公司的产品将具有更大的成本优势MAX系列和上一代MAX产品相比,成本降低了一半,功耗只有其十分之一,同时保持MAX系列原有的即用性、单芯片、非易失性和易用性,MAX器件系列采用TSM成本优化的1.8V,0.18Lm以及六层金属Flash 工艺,而且新的系列容量翻了两番,性能是上一代MAXCPLD的两倍多采用MAX 器件,大批量消费类、通信、工业和计算设计的工程师能够用MAX器件替代更昂贵和不够灵活的小型ASIC和ASSP。”2 理论基础2.1 FPGA/CPLD概述随着数字集成电路的不断更新和换代,特别是可编程逻辑器件的出现,使得传统的数字系统设计方法发生了根本的改变。可编程逻辑器件的灵活性使得硬件系统设计师在实验室里用一台计算机、一套相应的EDA软件和可编程逻辑芯片就可以完成数字系统设计与生产,而其中应用最广泛的可编程逻辑器件当属FPGA和CPLD。FPGA和CPLD都是可编程逻辑器件,它们是在PAL、CAL等逻辑器件的基础上发展起来的。同以往的PAL、CAL等比较,FPGA/CPLD的规模更大,它可以替代几十甚至几千块通用IC芯片。这样的FPGA/CPLD实际上就是一个子系统部件,因此它受到了世界范围内电子工程设计人员的广泛关注和普遍欢迎。FPGA是新一代面向用户的可编程逻辑器件它的功能密度远远超过其他 PLD 器件,一块FPGA可以替代(100-200)片标准器件或者(20-40)片GAL器件,其I/O引脚数多达100 余条。所以一片 FPGA 芯片可以替代多个逻辑功能复杂的逻辑部件,或者一个小型数字系统。自FPGA问世以来,它已在许多领域获得了广泛的应用。逻辑单元型结构(LCA,Logic Cell Array)的FPGA由三部分组成,即逻辑单元阵列CLB(configurable logic block)、I/O单元、互联资源。这种类型结构的特点是通过对CLB编程实现逻辑功能;通过对I/O单元编程确定输入或输出结构;通过对互联资源编程实现 CLB之间、CLB与I/O单元之间、I/O单元之间的互联关系,从而实现用户所需要的逻辑功能。PAL结构扩展型FPGA则是在PLA基础上加以改进和扩展,大幅度增加了寄存器数量和I/O引脚数,增设了可编程互联资源,改善了互联模式,改进了阵列结构使得芯片的利用率大大提高。CPLD器件的结构是一种与阵列可编程、或阵列固定的与或阵列形式。PAL、GAL都采用这种形式,但CPLD同它们相比,增加了内部连线对逻辑宏单元和I/O单元也有重大改进。一般情况下,CPLD器件中包含三种结构:可编程逻辑宏单元、可编程I/O单元、可编程内部连线。部分CPLD器件内还集成了RAM、FIFO或双口RAM等存储器,以适应 DSP应用设计的要求。CPLD器件具有同FPGA器件相似的集成度和易用性,在速度上还有一定的优势,因此,在可编程逻辑器件技术的竞争中它与 FPGA并驾齐驱,成为两支领导可编程器件技术发展的力量之一。FPGA/CPLD之间存在一些区别,主要有如下几方面。CPLD与FPGA在价格、性能、逻辑规模和封装(包括EDA软件性能)等方面各有千秋,面对不同的开发项目,使用者应该作出最佳的选择,表2-1是对CPLD/FPGA在各个方面的比较。表2-1 CPLD与FPGA的区别器件比较点FPGACPLD结构工艺SRAMEPROM 或FLASH基本结构LUT 查找表乘积项PinPin 时延不定确定配算存储器需外挂ROM不需保密注论无保密性可加密工作电压3.3V 或2.5V5V编程工艺通过PC 机并行口或专用编程器或单片机进行配置ISP 在线编程应用主要针对要求不是很高,设计逻辑较复杂的系统,适合于完成时序较多的逻辑电路主要针对速度要求高,但设计逻辑又不是很复杂的系统,适合于完成算术和组合逻辑FPGA/CPLD的特点主要有如下几方面:1CPLD/FPGA具有用户可编程的特性。利用CPLD/FPGA,电子系统设计工程师可以在实验室中设计出专用集成芯片,实现系统集成。缩短了产品的开发、上市时间,降低了开发成本。2CPLD/FPGA.具有静态可重复编程或在线动态重构特性,使硬件的功能可象软件一样通过编程来修改。不仅使设计修改和产品升级变得十分方便,而且极大地提高了电子系统的灵活性和通用能力。3固定长度的金属线进行各逻辑块的互连使得设计的逻辑电路具有时间可预测性,避免了分段式互连结构时序不完全的预测。4FPGA/CPLD.芯片在出厂之前都做过百分之百的测试,不需要设计人员承担风险和费用,只需在自己的实验室里通过在相关的软、硬件环境下完成芯片的最终功能。其投资小,并可以节省许多潜在的花费。5FPGA/CPLD.能以最快的速度占领市场。设计人员可以反复编程、擦除、使用,或者在外围电路不动的情况下用不同软件实现不同的功能。6设计师不可或缺的重要手段IP核。它将一些在数字电路中常用,但比较复杂的功能块,如FIR滤波器,SDRAM控制器、PCI接口等设计成可以修改参数的模块,让其他用户能够直接调用这些模块,从而大大减轻了工程师的负担,避免了重复劳动。2.2 VHDL语言概述电子设计自动化(EDA)的关键技术之一是要求用形式化方法来描述数字系统的硬件电路。VHDL 硬件描述语言在电子设计自动化中扮演着重要的角色,他是EDA 技术研究的重点之一。硬件描述语言是EDA 技术的重要组成部分,VHDL 是作为电子设计主流硬件描述语言,VHDL(Very High Speed Integrated Circuit Hardware Description Language)于1983 年由美国国防部发起创建,由IEEE进一步发展并在1987年作为IEEE标准10760发布。因此,VHDL成为硬件描述语言的业界标准之一。VHDL作为IEEE的工业标准硬件描述语言,得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。VHDL语言具有很强的电路描述和建模能力,能从多个层次对数字系统进行建模和描述,从而大大简化了硬件设计任务,提高了设计效率和可靠性,使用VHDL语言,可以就系统的总体要求出发,自上而下地将设计内容细化,最后完成系统硬件的整体设计。一个完整的VHDL程序包括以下几个基本组成部分:实体(Entity),结构体(Architecture),程序包(Package),库(Library)。其中,实体是一个VHDL程序的基本单元,由实体说明和结构体两部分组成,实体说明用于描述设计系统的外部接口信号;结构体用于描述系统的行为,系统数据的流程或系统组织结构形式。程序包存放各设计模块能共享的数据类型,常数,子程序等。库用于存放已编译的实体,机构体,程序包及配置。VHDL 语言的编译环境有不同的版本,我们应用的是Altera 公司的Maxplus 软件,它的操作顺序如下:使用TEXTEDITOR 编写VHDL 程序使用COMPILER 编译VHDL 程序;使用WAVE2FORMEDITOR,SIMULAROT 仿真实验;使用TIMINGANALTZER 进行芯片的时序分析;用FLOORPLANEDITOR 锁定芯片管脚位置;使用PROGRAMMER 将编译好的VHDL 程序下载到芯片中。VHDL 进行工程设计的优点是显而易见的。1与其他的硬件描述语言相比,VHDL 具有更强的行为描述能力,从而决定了他成为系统设计领域最佳的硬件描述语言。2VHDL 丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。3VHDL 语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和已有设计的再利用功能。符合市场需求的大规模系统高效、高速地完成必须有多人甚至多个代发组共同并行工作才能实现。4对于用VHDL 完成的一个确定的设计,可以利用EDA 工具进行逻辑综合和优化,并自动的将VHDL 描述设计转变成门级网表。5VHDL 对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计。6用VHDL 语言编写的源程序便于文档管理,用源代码描述来进行复杂控制逻辑的设计,既灵活方便,又便于设计结果的交流、保存和重用。在VHDL 语言中,状态机有两种:莫尔型和米勒型。莫尔型状态机的输出仅是状态向量的函数,输出信号只和状态机所处的状态有关。图2.1 如下:CLKOUTPUTSINPUTSRES组合逻辑1寄存器组合逻辑2图2.1莫尔型状态机模型米勒型状态机的输出变化要领先一个时钟周期,它的输出既和当前状态有关,又和所有输入信号有关。换句话说,在米勒型状态机中一旦输入信号发生变化或者状态发生变化,输出新好多将随之发生变化。图2.2 如下:OUTPUTSCLKRESINPUTS组合逻辑1寄存器图2.2米勒型状态机模型由于本设计的状态变化与输入信号有关,所以采用米勒型状态机。较好的解决了五种状态(复位状态,测试状态,设置状态,烹调状态,完成状态)之间的转化。程序中,首先使控制器处于复位状态,此时把所有信号清零,再根据输入信号转换状态。综上所述,VHDL 语言的极强的行为描述能力和丰富的仿真语句及库函数,决定了它具有支持大规模设计的分析和已有设计的再利用功能5和功能6,用VHDL完成一个确定的设计,可以利用EDA 工具进行逻辑综合和优化,并自动把VHDL描述设计转变成门级网表。这种方式突破了门级设计的瓶颈,极大地减少了电路设计的时间和可能发生的错误,降低了开发成本。2.3 Max Plus II概述Max Plus II是美国Altera公司开发的软件,它具有操作系统的程序界面,采用全菜单操作和鼠标操作方式,是一个完全集成化,易学易用的可编程逻辑设计环境。它提供了功能强大,直观便捷和操作灵活的原理图输入设计功能,同时还配备了适用于各种需要的元件库,其中包含基本逻辑元件库(如与非门、反向器、触发器等),宏功能元件(包含了几乎所有74 系列的器件)以及功能强大、性能良好的类似于核的兆功能块库,但更为重要的是它提供了使用方便,精度良好的时序仿真器,能够对系统中任一元件的功能进行精确的时序仿真,精度达0.1ns,非常准确。Max Plus II开发系统是一个完全集成化、易学易用的可编程逻辑器件设计和开发系统,它提供了一种真正与结构无关的可编程逻辑设计环境。它所提供的灵活性和高效性是无可比拟的,其丰富的图形界面,辅之以完整的、可即时访问的在线文档,使设计人员能够轻松、愉快地掌握和使用Max Plus II软件。Max Plus II支持灵活多样的输入方式:原理图输入、硬件描述语言输入、波形输入,以及层次设计输入。Max Plus II的设计输入、处理和校验功能全部集成在统一的开发环境下,这样可以加快动态调试进程。它提供丰富的库单元供设计者使用,包括74系列的全部器件、多种特殊的逻辑宏功能(macro-function)和参数化功能模块(LPM: Library of Parameterized Modules),但更为重要的是Max Plus II还提供了原理图输入多层次设计功能,使得用户能设计更大规模的电路系统,以及使用方便、精度良好的时序仿真器。与传统的数字电路实验相比,Max Plus II提供灵活多样的层次化输入设计功能,具有显著的优势:1能进行任意层次的数字系统设计。传统的数字电路实验只能完成单一层次的设计,使设计者无法了解和实现多层次的硬件数字系统设计;2对系统中的任一层次或任一元件的功能进行精确的时序仿真,精度达0.1ns,因此能发现对系统可能产生不良影响的竞争冒险现象;3通过时序仿真,能迅速定位电路系统的错误所在,并随时纠正;4能对设计方案进行随时更改,并储存设计过程中所有的电路和测试文件入档;5通过编译和下载,能在FPGA或CPLD上对设计项目随时进行硬件测试验证;6如果使用FPGA和配置编程方式,将不会有器件损坏和损耗问题;7符合现代电子设计技术规范。传统的数字电路实验利用手工连线的方法完成元件连接,容易对学习者产生误导,以为只要将元件间的引脚用引线按电路图连上即可,而不必顾及引线长短,粗细弯曲方式,可能产生的分布电感和电容效应,以及电磁兼容性等等十分重要的问题。Max Plus II还提供设计校验的仿真器,其中包括功能仿真和时序仿真。仿真器的灵活性很强电路设计完成后,需要验证电路设计的逻辑功能是否正确。这是一项简单的逻辑检查,可采用功能仿真,这对于初步的逻辑功能检测非常方便。功能检查完成后,可进行时序仿真。Max Plus II的时序分析程序可以计算点到点的器件延时,确定器件引脚上的建立时间和保持时间要求,还可计算最高时钟频率。用Max Plus II软件进行逻辑设计的步骤包括:1根据所选课题的任务和设计指标要求,确定总体设计方案,画出总体方案的系统框图(亦称预设计阶段)2进行底层单元电路分析及输入设计、编译、仿真;3利用已编译正确的底层单元电路模块,画出顶层电路的原理图 ,进行编译调试和仿真测试;4撰写设计报告。Max Plus II的设计流程可以用如下图2.3给出。图形成VHDL编辑器编译网表提取数据库建立逻辑综合逻辑分割匹配延时网表提取编辑文件汇编编辑器图2.3Max Plus II 设计流程从图2.3可清晰了解到Max Plus II提供了一种与结构无关的设计环境,使设计者能方便地进行设计输入、快速处理和器件编程。他包括设计输入编辑、编译网表提取、数据库建立、逻辑综合、逻辑分割、适配、延时网表提取、编辑文件汇编以及编程下载9个步骤。3 彩灯控制器详细设计在经济和商业高度发达的今天,彩灯已成为人民日常生活不可或缺的一部分,已经逐渐为越来越多的人们所关注,在家庭中的普及率不断提高,大大的丰富和点缀了我们的生活。彩灯由不同颜色的LED 灯组成,通过控制不同颜色灯的亮与灭,呈现给人们不同的花型和图案,极大的点缀了单调的都市夜景,让城市成为了多姿多彩的不夜城。.本文采用EDA 技术,利用Max Plus II 工作平台和VHDL 设计语言,设计了一种彩灯控制器芯片,该芯片具有控制和实现彩灯花型变化的功能。3.1设计方案应用VHDL进行自顶向下的设计,是采用可完全独立于目标器件芯片物理结构的硬件描述语言。就是使用VHDL模型在所有综合级别上对硬件设计进行说明、建模和仿真测试。其设计流程如图3.1所示:1设计说明书6逻辑综合2建立VHDL行为模块型7测试向量生成3 VHDL行为仿真8功能仿真4 VHDL-RTL级建模5前端功能仿真设计完成11硬件测试9结构综合10门级时序仿真 图3.1 VHDL自顶向下设计流程基于可编程逻辑器件CPLD/FPGA 的芯片,使用硬件描述语言(VHDL)设计一个彩灯控制器芯片,并进行计算机仿真和编程下载。要求该彩灯控制器芯片能够实现如下功能:1自动检查功能:在彩灯整个工作的过程中,在任一状态的任一时刻,检查彩灯自身是否处于正常状态,各彩灯是否良好,正常亮与灭。2控制功能:当启动开关时,彩灯有规律闪烁,显示预设的花型和图案。3循环功能:当执行到程序的最后时,能跳转到起始程序,不断循环更替,直到关闭开关方停止运行。4时控功能:在设定的时间段,如春冬18:30-6:00自动亮,其他时间自动灭;夏秋19:00-7:00自动亮,其他时间自动灭。这样就可以方便操作了。根据以上设计要求,绘制出彩灯控制器外部框图如下图 3.2所示:图3.2彩灯控制器外部框图该框图的实现功能如下:CLK 是任意频率的脉冲, 经过分频电路后变成秒脉冲输入,作为时钟信号使用。JIACHA 为检查控制信号,高电平有效,用于检查彩灯自身是否处于正常状态,各彩灯是否良好,能否正常亮与灭。REMOVE 为循环控制信号,高电平有效,用于提示新一轮花型的接替变换。CHUNDONG 是春冬时间控制信号,高电平有效。用于彩灯季节的自动开关时间调整。XIAQIU 是夏秋时间控制信号,高电平有效。用于彩灯夏秋季的自动开关时间调整。LIGHT 是输出显示信号,高电平有效,用于显示不同控制情况下彩灯的显示状态。该彩灯控制器的具体工作过程是:1初始状态时,各彩灯处于低电平状态,CLK 信号作为时钟信号起到频率间隔作用,当彩灯启动时若是某处彩灯出现故障,比如彩灯烧坏或是某处电路出现问题时,检查灯CH将会亮,成警报状态;2当彩灯运行中,彩灯呈现设计的花型;3当彩灯运行后,彩灯按花型不断循环;4当季节改变时,彩灯亮与灭的时间段发生改变。电瓶高低状态在波形仿真中用于验证程序是否正常运行,彩灯有无正常工作。3.2设计思路根据该彩灯控制器的功能要求,现划分为以下4个模块:1控制模块2检查模块3循环模块4时控模块每个模块各自控制相应彩灯的亮灭,控制模块进行总体控制,彩灯的运行状态表如下表3-1所示。表3-1彩灯控制器和彩灯运行状态表彩灯控制器彩灯运行状态正常运行花型1:花型2:花型3:花型4:花型5:花型6:花型7:花型8:出现故障灯灭或花型不规则不完整电路异常CH检查灯亮季节变化相应的季节指示灯亮在每个模块中,程序中的控制信号表示如下:TOP_CLK 是脉冲控制输入信号。TOP_JIANCHA 是检查控制输入信号,高电平有效。TOP_REMOVE 是刹车控制输入信号,高电平有效。TOP_CHUNDONG 是春冬季节控制输入信号 ,高电平有效。TOP_XIAQIU 是夏秋季节控制输入信号,高电平有效。TOP_LIGHT150是彩灯显示输出信号,高电平有效。3.3模块设计控制模块的主要作用在于协调以上四个模块的正确调度与工作。控制模块的主要作用如下图3.3所示春冬控制信号夏秋控制信号主控选择模块左侧灯选择控制模块右侧灯选择控制模块检查模块CHR循环控制信号检查控制信号L图3.3控制模块作用图控制模块的主要代码如下:beginif top_youyi='1' thent<=l1;elsiftop_zuoyi='1' thent<=l2;elsiftop_jiache='1' thent<=l3;elsiftop_shche='1' thent<=l4;elset<="000000"end if;end process;u1: youyi port map(top_clk,top_youyi,l1);u2: zuoyi port map(top_clk,top_zuoyi,l2);u3: jiancha port map(top_jiache,top_clk,l3);u4: shache port map(top_shche,top_clk,l4);top_light<=t;检查模块的设计思路如下图3.4所示。图3.4检查模块设计图其中 JIANCHA 是检查控制输入信号,高电平有效,CLK 是脉冲控制输入信号。LIGHT150是汽车尾灯显示输出信号,高电平有效,状态图如上表在高电平有效情