




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、EDA课程设计基于FPGA的八路彩灯 控制系统设计学院: 通信与电子工程学院 班级: 电子111 姓名: 唐志华 学号: 2011131018 指导老师: 朱磊 日期: 2014年12月17日 摘 要人类社会已进入到高度发达的信息化社会,信息化社会的发展离不开电子信息产品开发技术、产品品质的提高和进步,电子信息产品随着科学技术的进步,其电子器件和设计方法更新换代的速度日新月异,实现这种进步的主要原因就是电子设计技术和电子制造技术的发展,其核心就是电子设计自动化(ElectronicsDesignAutomation)技术,EDA技术的发展和推广应用又极大地推动了电子信息产业的发展。为保证电子系
2、统设计的速度和质量,适应“第一时间推出产品”的设计要求,EDA技术正逐渐成为不可缺少的一项先进技术和重要工具。目前,在国内电子技术教学和产业界的技术推广中已形成“EDA热”,完全可以说,掌握EDA技术是电子信息类专业学生、工程技术人员所必备的基本能力和技能。EDA技术在电子系统设计领域越来越普及,本设计主要利用VHDL语言在EDA平台上设计一个电子数字钟,它的计时为24小时小时制,显示满刻度为23时59分59秒,另外还具有校时功能和闹钟功能。总的程序由几个各具不同功能的单元模块程序拼接而成,其中包括分频程序模块、时分秒计数和校时程序模块、数据选择器程序模块、显示程序模块。并且使用QUARTUS
3、 II软件进行电路波形仿真。关键词:数字钟; EDA; VHDL语言 AbstractThe human society has entered the information society is highly developed, the development of the information society cannot do without the electronic information product development, improve the quality of the products and the progress, the electronic info
4、rmation products with the progress of science and technology, the electronic devices and the design method of the update speed of development change rapidly, realize the main reason for this improvement is the electronic design technology and electronic manufacturing technology, the core of which is
5、 the electronic design automation (Electronics Design Automation) technology, EDA technology development and application has greatly promoted the development of electronic information industry. In order to ensure the quality and speed of electronic system design, the first time meet design requireme
6、nts to launch products, EDA technology has become an indispensable and important tool for advanced technology. At present, the technology of domestic electronic technology teaching and industry has formed EDA hot, can say, master EDA technology is necessary for electronic information majors, enginee
7、ring and technical personnel of the basic abilities and skills.EDA technology is becoming more and more popular in the field of electronic system design, this design using the VHDL language to design a digital clock on the platform of EDA, its time for 24 hours, the full scale of the display is twen
8、ty-three fifty-nine 59 seconds, also has a school function and alarm clock function. Unit module spliced total program consisting of several different functional form, including frequency program module, every minute counts and school program module, data selector program module, display module. And
9、 the use of QUARTUS II software for circuit simulation.Keywords: digital clock; EDA; VHDL language目 录摘 要IAbstractII第1章 绪论11.1 系统背景11.2 课题基本内容2第2章 软件简介32.1 QuartusII简介32.2 Verilog HDL简介4第3章 方案选择及总体设计83.1 设计目的83.2 功能设计83.3 设计方案8第4章 系统调试104.1 工程建立及存盘104.2 工程项目的编译114.3 目标芯片的选择114.4 时序仿真13第5章 波形仿真分析145.1
10、 主程序8路彩灯145.2 分频器165.3 频率选择模块165.4 彩灯运行方式的选择175.5 总的原理图18结论19参考文献20程序清单21II第1章 绪论1.1 系统背景在20世纪后半期,随着计算机和集成电路的迅速发展,专用集成电路设计难度不断提升,电子设计周期日益缩短,电子系统设计面临着严峻的考验。为了解决这一问题,电子设计人员需要新的设计方法和高层次的设计工具,而EDA技术就在这一现实背景下产生了。EDA技术作为现代电子技术的核心,它以大规模可编程逻辑器件为设计载体,以硬件描述语言HDL为系统逻辑描述的主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计开发工
11、具,对设计文件自动完成逻辑化简、逻辑编译、逻辑分割、逻辑综合、布局布线,以及逻辑优化和仿真测试,直至实现既定的电子系统功能。FPGA(FieldProgrammable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。以硬件描述语言(Verilog或VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至 FPGA 上进行测试,是现代 IC设计验证的技术主流。这些可编辑元件可以被用来实现一些基
12、本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器(Flipflop)或者其他更加完整的记忆块。系统设计师可以根据需要通过可编辑的连接把FPGA内部的逻辑块连接起来,就好像一个电路试验板被放在了一个芯片里。一个出厂后的成品FPGA的逻辑块和连接可以按照设计者而改变,所以FPGA可以完成所需要的逻辑功能。FPGA一般来说比ASIC(专用集成电路)的速度要慢,无法完成复杂的设计,但是功耗较低。但是他们也有很多的优点比如可以快速成品,可以被修改来改正程序中的错误和更便宜的造价。厂商也可能
13、会提供便宜的但是编辑能力差的FPGA。因为这些芯片有比较差的可编辑能力,所以这些设计的开发是在普通的FPGA上完成的,然后将设计转移到一个类似于ASIC的芯片上。另外一种方法是用CPLD(Complex Programmable Logic Device,复杂可编程逻辑器件)。FPGA的开发相对于传统PC、单片机的开发有很大不同。FPGA以并行运算为主,以硬件描述语言来实现;相比于PC或单片机(无论是冯诺依曼结构还是哈佛结构)的顺序操作有很大区别,也造成了FPGA开发入门较难。目前国内有专业的FPGA外协开发厂家,如北京中科鼎桥ZKDQ-TECH等。FPGA开发需要从顶层设计、模块分层、逻辑实
14、现、软硬件调试等多方面着手。FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输入输出模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。 现场可编程门阵列(FPGA)是可编程器件,与传统逻辑电路和门阵列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的结构。FPGA利用小型查找表(161RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了既可实现组合逻辑功能又可实现时
15、序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。FPGA的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式,并最终决定了FPGA所能实现的功能,FPGA允许无限次的编程。FPGA电源要求输出电压范围从1.2V到5V,输出电流范围从数十毫安到数安培。可用三种电源:低压差(LDO)线性稳压器、开关式DC-DC稳压器和开关式电源模块。最终选择何种电源取决于系统、系统预算和上市时间要求。如果电路板空间是首要考虑因素,低输出噪声十分重要,或者系统要求对输入电压变化和负载瞬变做出快速响应
16、,则应使用LDO稳压器。LDO功效比较低(因为是线性稳压器),只能提供中低输出电流。输入电容通常可以降低LDO输入端的电感和噪声。LDO输出端也需要电容,用来处理系统瞬变,并保持系统稳定性。也可以使用双输出LDO,同时为VCCINT和VCCO供电。如果在设计中效率至关重要,并且系统要求高输出电流,则开关式稳压器占优势。开关电源的功效比高于LDO,但其开关电路会增加输出噪声。与LDO不同,开关式稳压器需利用电感来实现DC-DC转换。1.2 课题基本内容1、设计一个七段数码管动态扫描电路。数码管个数为8个,共阴极接法。2、设计一电路,控制上述电路实现“12345678”八个数字的显示,要求显示方式
17、为:(1)自左至右逐个点亮数码管,最后全亮;再重复以上动作。(2)自左至右点亮数码管,每次只点亮一个,最后全息灭,再重复以上动作。(3) 先中间两个点亮,再依次向外点亮;全亮后,再依次向中间熄灭;重复上述步骤。第2章 软件简介2.1 QuartusII简介Quartus II 是Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。Quartus II可以在XP、Linux以及Uni
18、x上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三放EDA工具。此外,Quartus II 通过和DSP Builder工具与Matlab / Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开
19、发、可编程逻辑设计于一体,是一种综合性的开发平台。Maxplus II 作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。目前Altera已经停止了对Maxplus II 的更新支持,Quartus II 与之相比不仅仅是支持器件类型的丰富和图形界面的改变。Altera在Quartus II 中包含了许多诸如SignalTap II、Chip Editor和RTL Viewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了Maxplus II 友好的图形界面及简便的使用方法。Altera Quartus II 作为一种可编程逻辑的设计环境, 由
20、于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。Quartus II提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,包括:可利用原理图、结构框图、VerilogHDL、AHDL和VHDL完成电路描述,并将其保存为设计实体文件;芯片(电路)平面布局连线编辑;LogicLock增量设计方法,用户可建立并优化系统,然后添加对原始系统的性能影响较小或无影响的后续模块;功能强大的逻辑综合工具;完备的电路功能仿真与时序逻辑仿真工具;定时/时序分析与关键路径延时分析;可使用SignalTap II逻辑分析工具进行嵌入式的逻辑分析;支持软件源文件的添加和创建,并将它
21、们链接起来生成编程文件;使用组合编译方式可一次完成整体设计流程;自动定位编译错误;高效的期间编程与验证工具;可读入标准的EDIF网表文件、VHDL网表文件和Verilog网表文件;能生成第三方EDA软件使用的VHDL网表文件和Verilog网表文件。Altera的Quartus II可编程逻辑软件属于第四代PLD开发平台。该平台支持一个工作组环境下的设计要求,其中包括支持基于Internet的协作设计。Quartus平台与Cadence、ExemplarLogic、 MentorGraphics、Synopsys和Synplicity等EDA供应商的开发工具相兼容。改进了软件的LogicLoc
22、k模块设计功能,增添 了FastFit编译选项,推进了网络编辑性能,而且提升了调试能力。支持MAX7000/MAX3000等乘积项器件DSP Builder 12.0新的数字信号处理(DSP)支持通过系统控制台,与MATLAB的DDR存储器进行通信,并具有新的浮点功能,提高了设计效能,以及DSP效率。 经过改进的视频和图像处理(VIP)套装以及视频接口IP通过具有边缘自适应算法的Scaler II MegaCore功能以及新的Avalon-Streaming (Avalon-ST)视频监视和跟踪系统IP内核,简化了视频处理应用的开发。 增强收发器设计和验证更新了Arria V FPGA的收发器
23、工具包支持,进一步提高收发器数据速率(对于Stratix V FPGA,高达14.1 Gbps)。2.2 Verilog HDL简介Verilog HDL是目前应用最为广泛的硬件描述语言Verilog HDL可以用来进行各种层次的逻辑设计,也可以进行数字系统的逻辑综合,仿真验证和时序分析等。Verilog HDL适合算法级,寄存器级,逻辑级,门级和版图级等各个层次的设计和描述Verilog HDL是一种硬件描述语言(hardware description language),为了制作数字电路而用来描述ASICs和FPGA的设计之用。Verilog 的设计者想要以 C 编程语言为基础设计一种语
24、言,可以使工程师比较容易学习。Verilog的设计初衷是成为一种基本语法与C语言相近的硬件描述语言。这是因为C语言在Verilog设计之初,已经在许多领域得到广泛应用,C语言的许多语言要素已经被许多人习惯。一种与C语言相似的硬件描述语言,可以让电路设计人员更容易学习和接受。不过,Verilog与C语言还是存在许多差别。另外,作为一种与普通计算机编程语言不同的硬件描述语言,它还具有一些独特的语言要素,例如向量形式的线网和寄存器、过程中的非阻塞赋值等。总的来说,具备C语言的设计人员将能够很快掌握Verilog硬件描述语言。Verilog所用到的所有变量都属于两个基本的类型:线网类型和寄存器类型。线
25、网与我们实际使用的电线类似,它的数值一般只能通过连续赋值,由赋值符右侧连接的驱动源决定。线网在初始化之前的值为x(trireg类型的线网是一个例外,它相当于能够储存电荷的电容器)。如果未连接驱动源,则该线网变量的当前数值为z,即高阻态。 寄存器与之不同,它可以保存当前的数值,直到另一个数值被赋值给它。在保持当前数值的过程中,不需要驱动源对它进行作用。如果未对寄存器变量赋值,它的初始值则为x。Verilog中所说的寄存器类型变量与真实的硬件寄存器是不同的,它是指一个储存数值的变量。如果要在一个过程(initial过程或always过程)里对变量赋值,这个变量必须是寄存器类型的。寄存器类型的变量有
26、以下几种:reg(普通寄存器)、integer(整数)、time(时间)、real(实数),其中reg作为一般的寄存器使用最为普遍。本次课程设计中将会用到reg寄存器。使用Verilog描述硬件的基本设计单元是模块(module)。构建复杂的电子电路,主要是通过模块的相互连接调用来实现的。模块被包含在关键字module、endmodule之内。实际的电路元件。Verilog中的模块类似C语言中的函数,它能够提供输入、输出端口,可以实例调用其他模块,也可以被其他模块实例调用。模块中可以包括组合逻辑部分、过程时序部分。例如,四选一的多路选择器,就可以用模块进行描述。它具有两个位选输入信号、四个数据
27、输入,一个输出端。空白符空白符是指代码中的空格(对应的转义标识符为b)、制表符(t)和换行(n)。如果这些空白符出现在字符串里,那么它们不可忽略。除此之外,代码中的其他空白符在编译的时候都将会被视为分隔标识符,即使用2个空格或者1个空格并无影响。不过,在代码中使用合适的空格,可以让上下行代码的外观一致(例如使赋值运算符位于同一个竖直列),从而提高代码的可读性。注释为了方便代码的修改或其他人的阅读,设计人员通常会在代码中加入注释。与C语言一样,有两种方式书写注释。第一种为多行注释,即注释从/*开始,直到*/才结束;另一种为单行注释,注释从/开始,从这里到这一行末尾的内容会被系统识别为注释。某些电
28、子设计自动化工具,会识别出代码中以特殊格式书写、含有某些预先约定关键词的注释,并从这些注释所提取有用的信息。这些注释不是供人阅读,而是向第三方工具提供有关设计项目的额外信息。例如,某些逻辑综合工具可以从注释中读取综合的约束信息。大小写敏感性Verilog是一种大小写敏感的硬件描述语言。其中,它的所有系统关键字都是小写的。标识符及保留字Verilog代码中用来定义语言结构名称的字符称为标识符,包括变量名、端口名、模块名等等。标识符可以由字母、数字、下划线以及美元符($)来表示。但是标识符的第一个字符只能是字母、数字或者下划线,不能为美元符,这是因为以美元符开始的标识符和系统任务的保留字冲突。和其
29、他许多编程语言类似,Verilog也有许多保留字(或称为关键字),用户定义的标识符不能够和保留字相同。Verilog的保留字均为小写。变量类型中的wire、reg、integer等、表示过程的initial、always等,以及所有其他的系统任务、编译指令,都是关键字。可以查阅官方文献以完整的关键字的列表。转义标识符转义标识符(又称转义字符),是由开始,以空白符结束的一种特殊编程语言结构。这种结构可以用来表示那些容易与系统语言结构相同的内容(例如在系统中被用来表示字符串,如果字符串本身的内容包含一个与之形式相同的双引号,那么就必须使用转义标识符)。下面列出了常用的几种转义标识符。除此之外,在反
30、斜线之后也可以加上字符的ASCII,这种转义标识符相当于一个字符。常用的转义标识符有n(换行)、t(制表位)、b(空格)、(反斜杠)和(英文的双引号)等。除了系统提供的26种逻辑门、晶体管原语,Verilog也提供用户自定义原语(User Defined Primitive, UDP)。原语与模块的层次结构类似,但是原语的输入输出关系是完全通过查表实现的。组合逻辑的用户自定义原语的核心是真值表,时序逻辑的用户自定义原语的核心是激励表。设计人员需要在状态表中罗列可能出现的输入和输出情况。如果在实际使用过程中,遇到状态表中没有定义的情况,则输出不确定值x。使用自定义原语很直观,但是如果输入变量较多
31、,状态表就会变得很复杂。在很多情况中,用户自定义原语并不能被逻辑综合工具转换。编程语言接口(Program Language Interface, PLI)提供了通过C语言函数对Verilog数据结构进行存储、读取操作的途径。Verilog编程语言接口的发展先后经过了三代,其中第一代为任务或函数子程序,它可以在C程序和Verilog设计之间传递数据;第二代为存取子程序,它可以在用户自定义C程序和Verilog的内部数据表示的接口上被使用;第三代为Verilog过程接口,它进一步扩展了前两代编程语言接口的功能。通过使用编程语言接口,设计人员可以自定义接口的功能,然后通过类似调用系统任务的方式调用
32、这些自定义功能。这样,设计人员可以很大程度地扩展他们能使用的功能,例如监视、激励、调试功能,或者用它来提取设计信息、显示输出等。第3章 方案选择及总体设计3.1 设计目的(1)掌握VHDL语言的基本运用;(2)掌握QuartusII的简单操作;(3)掌握一个基本EDA课程设计的操作3.2 功能设计1、设计一个七段数码管动态扫描电路。数码管个数为8个,共阴极接法。2、设计一电路,控制上述电路实现“12345678”八个数字的显示,要求显示方式为:(1)自左至右逐个点亮数码管,最后全亮;再重复以上动作。(2)自左至右点亮数码管,每次只点亮一个,最后全息灭,再重复以上动作。(3) 先中间两个点亮,再
33、依次向外点亮;全亮后,再依次向中间熄灭;重复上述步骤。3.3 设计方案整个系统共有三个输入信号:控制彩灯节奏快慢的基准时钟信号CLK,彩灯变化频率选择开关xuanping,彩灯花样选择开关xuanhuayang;共有8个输出信号out7.0,分别用于控制八路彩灯。系统整体框图如下: 图3-3 8整体框图主要模块组成:时序控制电路模块和显示电路模块。时序控制电路模块由分频和选频两部分构成,可以控制彩灯变化的快慢。以下为各模块框图: 图3-4 8路彩灯模块 图3-5 8分频模块 图3-6 8选频模块 图3-7 彩灯运行方式选择模块第4章 系统调试4.1 工程建立及存盘(1)打开 Quartus,单
34、击“File”菜单,选择 FileNew Project Wizard,对话框如下:分别输入项目的工作路径、项目名和实体名,单击Finish。如图4-1所示:图4-1 建立 New Project(2)单击“File”菜单,选择New,弹出小对话框,双击“VHDL File,即选中了文本编辑方式。在出现的“Vhdl1.vhd”文本编辑窗中键入VHDL程序,输入完毕后,选择FileSave As,即出现“Save As”对话框。选择自己建立好的存放本文件的目录,然后在文件名框中键入文件名,按“Save”按钮。(3) 建立工程项目,在保存VHDL文件时会弹出是否建立项目的小窗口,点击“Yes”确定
35、。即出现建立工程项目的导航窗口,点击“Next”,最后在出现的屏幕中分别键入新项目的工作路径、项目名和实体名。注意,原理图输入设计方法中,存盘的原理图文件名可以是任意的,但VHDL程序文本存盘的文件名必须与文件的实体名一致,输入后,单击“Finish”按钮。4.2 工程项目的编译单击工具条上的编译符号开始编译,并随着进度不断变化屏幕,编译完成后的屏幕如图4-2所示。图4-2 编译完成图4.3 目标芯片的选择选择菜单 Assignments 选项的下拉菜单中选择器件 Device ,如图4-3所示。图4-3 选择结点设置在弹出的对话框中的 Family(器件序列栏)对应的序列名,EP1C3 对应
36、的是 Cyclone 系列。在 Available Devices里选择 EP1C3T144-C8 (有时需要把 Show advanced devices的勾消去,以便显示出所有速度级别的器件)。注意:所选器件必须与目标板的器件型号完全一致。在图中,单击“Device and Pin Options”,在弹出的“Device and Pin Options”窗口中,单击“Unused Pins”标签。选择“As output driving an unspecified signal ”(由于学习机的“FPGA”具有很多功能,为了避免使用引脚对其它器件造成影响,保证本系统可靠工作,将未使用引
37、脚设定为输出不定状态)后,单击确定后,无误后单击“OK”。4.4 时序仿真建立波形文件:选择 FileNew,在New窗中选中“Other File”标签。在出现的屏幕中选择“Vector Waveform File”项出现一新的屏幕。在出现的新屏幕中,双击“Name”下方的空白处,弹出“Insert Nod or Bus”对话框,单击该对话框的“Node Finder”。在屏幕中的 Filter 中选择 Pins,单击“List”。而后,单击“”,所有输入/输出都被拷贝到右边的一侧,这些正是我们希望的各个引脚,也可以只选其中的的一部分,根据实际情况决定。然后单击屏幕右上脚的 “OK”。在出现
38、的小屏幕上单击“OK”。如图4-4所示。图4-4添加结点设定仿真时间宽度。选择 Edit End time选项,在End time选择窗中选择适当的仿真时间域,以便有足够长的观察时间。波形文件存盘。选择FileSave as 选项,直接存盘即可。第5章 波形仿真分析5.1 主程序8路彩灯仿真结果如下图:(1)当sel为“00”时, 8路彩灯被选中运行方式一,即自左至右逐个点亮数码管,最后全亮;再重复以上动作。此时波形图如下:图4-4 8路彩灯仿真注:由于rst高电平时是复位,所以仿真时便将它一直设为低电平。(2)当sel为“01”时, 8路彩灯被选中运行方式二,即自左至右点亮数码管,每次只点亮
39、一个,最后全息灭,再重复以上动作。此时波形图如下:图4-5(3) 当sel为“10”时, 8路彩灯被选中运行方式三,即先中间两个点亮,再依次向外点亮;全亮后,再依次向中间熄灭;重复上述步骤。此时波形图如下:图4-6注:由于之前都有9个状态,这个彩灯的花样只需要8个状态即可,但为了与主控时序进程中的状态转换设计相符合,我将最后一个状态变为全零即与第一个状态相同。所以在此仿真中有连续两个clk上升沿出现全零的状况。5.2 分频器CLK频率计算:根据人的视觉暂留现象,一个数码管所要显示的字符只要在一秒内点亮24次以上,则感觉上该数码管没有熄灭一样。若8只数码管要出现这种效果,要求在一秒内每只数码管要
40、闪亮24次以上。则CLK频率应为24X8192Hz以上,为了减少闪烁现象,达到较好的显示效果,取CLK频率为1024Hz,每秒内每个数码管显示次数为128次。图5-2 分频器仿真5.3 频率选择模块仿真结果如下:图5-3频率选择模块仿真结果分析:当S为高电平时,clkout选择CLK2,当S为低电平时,选择CLK1。5.4 彩灯运行方式的选择图5-4 彩灯运行方式的选择仿真结果分析:此时这的CLK相当于一个切换键,是为了切换彩灯的运行方式。起初S为“00”此时选择方式1;当clk来了一个上升沿时,S变为“01”此时选择方式二;当clk再来一个上升沿时,S变为“10”此时选择方式三。然后将S引脚
41、与主程序模块color8的sel脚相接。所以我们可以通过clk键在这三种方式中选择彩灯的花样。5.5 总的原理图图5-5 总原理图仿真结果:图4-6 总仿真图当xuanhuayang取不同的值时,out输出的花样也随之变化。同时,xuanping为通过输入高低电平来控制out的变化频率。结论通过这次EDA课程设计,使我受益匪浅。这不仅增强了我对EDA设计的兴趣,更巩固了基本的电路设计流程、方法以及技巧。具备了这些基本知识,为今后的自主学习奠定了良好的基础。并进一步熟练了对QuartusII软件的操作。在编写程序的过程中,遇到了很多问题,使我发现自己以前学习上存在的不足。通过与同学探讨和请教老师
42、,终于把问题都解决了,并加深了对数字时钟原理和设计思路的了解。在设计中还是需要注意一些常见的问题,比如实体名、项目名等,还有在编写VHDL文件时,一些文件名也是需要注意的;在编写程序的过程中,信号与变量的使用是一个特需要注意的,进程中一个信号不应有多个复制源,信号的复值是在进程结束之时,而变量的复值是立即的,在书写时容易出错的地方是,信号的赋值与变量的赋值符号,信号作为全局的联络线,信号往往不允许在多个进程中被赋值,因为进程之间是并行的;整个系统是由多个底层元件组成,底层元件之间的相互连接是通过信号实现。总之,通过这次的设计,进一步了解了EDA技术,收获很大,对软件编程、排错调试、相关仪器设备
43、的使用技能等方面得到较全面的锻炼和提高。参考文献1蒋立平等. 数字逻辑电路与系统设计M. 北京:电子工业出版社,20082南京理工大学电子技术中心. EDA设计实验指导书M. 南京:南京理工大学,20113延明等. 数字逻辑设计实验与EDA技术M. 北京:北京邮电大学出版社,20064郭永贞等. 数字电路实验与EDA技术M. 南京:东南大学出版社,20105聂小燕等. 数字电路EDA设计与应用M. 北京:人民邮电出版社,2010程序清单主程序:8路彩灯LIBRARY ieee;USE ieee.std_logic_1164.ALL;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;ENTITY color8 IS PORT (clk,rst:IN std_LOGIC; sel:in std_LOGIC_VECTOR(1 DOWNTO 0); aout:OUT std_LOGIC_VECTOR(7 DOWNTO 0);END color8;ARCHITECTURE color OF color8 ISTYPE state_1 IS (s0,s1,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论