流水灯电路设计_说明书.doc_第1页
流水灯电路设计_说明书.doc_第2页
流水灯电路设计_说明书.doc_第3页
流水灯电路设计_说明书.doc_第4页
流水灯电路设计_说明书.doc_第5页
免费预览已结束,剩余19页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

西华大学课程设计说明书 摘要:本设计采用EDA技术,通过FPGA芯片实现了流水灯电路的设计,本文采用Verilog 硬件描述语言描述流水灯电路,完成对电路的功能仿真。输入信号采用4-2线编码成相应的状态量,流水灯的循环点亮方式采用状态机的设计思路,实现环形计数器的功能。输出部分通过组合逻辑电路实现。与传统的设计方式相比,本设计由于采用了FPGA芯片来实现,它将大量的电路功能集成到一个芯片中,并且可以由用户自行设计逻辑功能,提高了系统的集成度和可靠性。关键词:EDA技术、FPGA芯片、硬件描述语言、状态机、环形计数器Abstract: Based on the EDA technology,this design realized the control circuit of automobiles taillights through the FPGA chip, this article has used the Verilog hardware description language description the control circuit of automobiles taillights, and the electric circuit function simulation was successed.The input signal uses 4-2 coder codeing to the corresponding states, the taillights circulation lightens the way to use the state machine the design mentality, the realization ring counter function.The part of output was designed by combinatory logic electric circuit.Compares with the traditional design way, because this design used the FPGA chip to realize, it the massive electric circuit function will integrate to a chip in, and might independently design the logical function by the user, enhanced the system integration rate and the reliability.Keywords:Electronic Design Automatic technology,Flied Programmable,Gate Array,Hardware DescriptionLanguage, State Machine, Ring Counter目录前言11、EDA技术和流水灯设计简介21.1、EDA技术的介绍21.2、EDA技术的发展21.3、EDA技术的发展趋势31.4、FPGA器件介绍31.5、CPLD器件介绍41.6、流水灯简介42、设计方案的论证52.1、设计内容52.2、方案比较52.3、方案论证92.4、方案选择103、设计实现113.1、Quartus2的简化设计流程113.2、有源晶振电路123.3、供电电路123.4、配置电路123.5、实现步骤133.6、流水灯源代码133.7、流水灯电路仿真174、系统调试与验证184.1、系统调试184.2、系统验证185、总结195.1、流水灯设计的认识与收获195.2、致谢196、参考文献21第 22 页 前言硬件描述语言HDL是相对于一般的计算机软件语言,如:C、PASCAL而言的。HDL语言使用与设计硬件电子系统的计算机语言,它能描述电子系统的逻辑功能、电路结构和连接方式。设计者可利用HDL程序来描述所希望的电路系统,规定器件结构特征和电路的行为方式;然后利用综合器和适配器将此程序编程能控制FPGA和CPLD内部结构,并实现相应逻辑功能的的门级或更底层的结构网表文件或下载文件。目前,就FPGA/CPLD开发来说,比较常用和流行的HDL主要有ABEL-HDL、AHDL和VHDL。随着电子技术的发展,人们的生活水平和质量不断提高,生活设备的智能化程度也越来越高,这些都离不开电子产品的进步。现代电子产品在性能提高、复杂度增大的同时,价格却一直呈下降趋势,而且产品更新换代的步伐也越来越快,实现这种进步的主要因素是生产制造技术和电子设计技术的发展。前者以微细加工技术为代表,目前已进展到深亚微米阶段,可以在几平方厘米的芯片上集成数千万个晶体管。后者的核心就是EDA技术,EDA是指以计算机为工作平台,融合应用电子技术、计算机技术、智能化技术最新成果而研制成的电子CAD通用软件包,主要能辅助进行三方面的设计工作:IC设计,电子电路设计,PCB设计。没有EDA技术的支持,想要完成上述超大规模集成电路的设计制造是不可想象的,反过来,生产制造技术的不断进步又必将对EDA技术提出新的要求。随着电子技术的发展和人们对电子设计开发的难度及周期要求,EDA技术必将广发应用于电子设计的各个领域,因此本设计也采用了EDA的设计方法,其设计的优越性明显高于传统的设计方法。流水灯广泛用于夜晚装饰,可以使我们的生活更为丰富多彩。此设计采用可编程逻辑器件实现。能够实现灯光的移动和闪亮效果,同时还能够发挥出可编程器件的灵活性特点,改动电路能够实现多种效果。LED灯的个数为8个以上。1、EDA技术和流水灯设计简介1.1、EDA技术的介绍EDA是电子设计自动化(Electronic Design Automation)缩写,是90年代初从CAD(计算机辅助设计)、CAM(计算机辅助制造)、CAT(计算机辅助测试)和CAE(计算机辅助工程)的概念发展而来的。EDA技术是以计算机为工具,根据硬件描述语言HDL( Hardware Description language)完成的设计文件,自动地完成逻辑编译、化简、分割、综合及优化、布局布线、仿真以及对于特定目标芯片的适配编译和编程下载等工作。硬件描述语言HDL是相对于一般的计算机软件语言,如:C、PASCAL而言的。HDL语言使用与设计硬件电子系统的计算机语言,它能描述电子系统的逻辑功能、电路结构和连接方式。设计者可利用HDL程序来描述所希望的电路系统,规定器件结构特征和电路的行为方式;然后利用综合器和适配器将此程序编程能控制FPGA和CPLD内部结构,并实现相应逻辑功能的的门级或更底层的结构网表文件或下载文件。目前,就FPGA/CPLD开发来说,比较常用和流行的HDL主要有ABEL-HDL、AHDL和VHDL。 1.2、EDA技术的发展可将EDA技术分为三个阶段。(1)七十年代为CAD阶段,人们开始用计算机辅助进行IC版图编辑、PCB布局布线,取代了手工操作,产生了计算机辅助设计的概念。(2)八十年代为CAE阶段,与CAD相比,除了纯粹的图形绘制功能外,又增加了电路功能设计和结构设计,并且通过电气连接网络表将两者结合在一起,实现了工程设计,这就是计算机辅助工程的概念。CAE的主要功能是:原理图输入,逻辑仿真,电路分析,自动布局布线,PCB后分析。(3)九十年代为ESDA阶段,尽管CAD/CAE技术取得了巨大的成功,但并没有把人从繁重的设计工作中彻底解放出来。在整个设计过程中,自动化和智能化程度还不高,各种EDA软件界面千差万别,学习使用困难,并且互不兼容,直接影响到设计环节间的衔接。基于以上不足,人们开始追求:贯彻整个设计过程的自动化,这就是ESDA即电子系统设计自动化。1.3、EDA技术的发展趋势目前的EDA产业正处在一场大变革的前夕,对更低成本、更低功耗的无止境追求和越来越短的产品上市压力正迫使IC供应商提供采用0.13m或以下的千万门级的系统芯片,而这些系统芯片的高复杂性设计更加依赖于EDA供应商提供全新的设计工具和方法以实现模拟前后端、混合信号和数字电路的完全整合。然而,这些新的需求为当代EDA工具和设计方法带来了不少新的挑战与机会。例如,如何在工艺上防止模拟电路与数字电路之间的干扰;现有的大部份EDA工具最多只能处理百万门级设计规模,随着IC设计向千万门级以上规模发展,现有EDA工具和方法必须进行升级。如何融合各EDA供应商的工具,以便向IC设计界提供更高效能和更方便的RTL-to-GDSII或Conc-ept-to-GDSII整合设计环境;为保证深亚微米(0.13m或以下)和更低内核工作电压(1.8V或以下)时代的信号完整性和设计时序收敛,必须采用新的设计方法。半导体工艺的每一次跃升都促使EDA工具改变自己,以适应工艺的发展;反过来EDA工具的进步又推动设计技术的发展。可以说EDA工具是IC设计产业的背后推手。系统芯片(SOC)正在迅速地进入主流产品的行列。由此引发的“芯片就等于整机”的现象,将对整个电子产业形成重大的冲击。种种迹象表明,整个电子产业正在酝酿着一场深刻的产业重组,这将为许多新兴的企业提供进入这一行业的最佳。1.4、FPGA器件介绍FPGA(FieldProgrammable Gate Array)可以达到比PLD更高的集成度,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展起来的,具有更复杂的布线结构和逻辑实现。PLD器件和FPGA的主要区别在于PLD是通过修改具有固定内连电路得逻辑功能来进行编程,而FPGA是通过修改一根或多根分割宏单元的基本功能块的内连线的布线来进行编程。它一般由可嵌入式阵列块(EAB)、逻辑阵列块(LAB)、快速互联通道(Fast Track)、IO单元(IOE)组成。Altera Cyclone II 采用全铜层、低K值、1.2伏SRAM工艺设计,裸片尺寸被尽可能最小的优化。采用300毫米晶圆,以TSMC成功的90nm工艺技术为基础,Cyclone II 器件提供了4,608到68,416个逻辑单元(LE),并具有一整套最佳的功能,包括嵌入式18比特x18比特乘法器、专用外部存储器接口电路、4kbit嵌入式存储器块、锁相环(PLL)和高速差分I/O能力。Cyclone II 器件扩展了FPGA在成本敏感性、大批量应用领域的影响力,延续了第一代Cyclone器件系列的成功。由于FPGA是基于查找表(LUT)结构的器件,且每个LAB由10个LE组成,一个LE由LUT和寄存器组成,适合于时序逻辑电路的设计。1.5、CPLD器件介绍CPLD是Complex Programmable Logic Device的缩写,它是有最早的PLD器件发展形成的高密度可编程逻辑器件,它具有编程灵活、集成度高、设计开发周期短、适用范围宽、开发工具先进、设计制造成本低、对设计者的硬件经验要求低、标准产品无需测试、保密性强、价格大众化等特点。 CPLD是一种用户根据各自需要而自行构造逻辑功能的数字集成电路。其基本设计方法是借助集成开发软件平台,用原理图、硬件描述语言等方法,生成相应的目标文件,通过下载电缆(“在系统”编程)将代码传送到目标芯片中,实现设计的数字系统。许多公司都开发出了CPLD可编程逻辑器件。比较典型的就是Altera、Lattice、Xilinx世界三大权威公司的产品。如 Altera公司的MAXII器件,就是其极具代表性的一类CPLD器件,是有史以来功耗最低、成本最低的CPLD。MAX II CPLD基于突破性的体系结构,在所有CPLD系列中,其单位I/O引脚的功耗和成本都是最低的。 Altera公司的MAX7000A系列器件是高密度、高性能的EPLD,它是基于第二代MAX结构,采用CMOS EPROM工艺制造的。该系列的器件具有一定得典型性,其他结构都与此结构非常的类似。它包括逻辑阵列块、宏单元、扩展乘积项、可编程连线阵列和IO控制部分。由于大多数CPLD是基于乘积项的“与或”结构,故适合设计组合逻辑电路。1.6、流水灯简介流水灯广泛用于夜晚装饰,可以使我们的生活更为丰富多彩。流水灯的设计采用可编程逻辑器件实现。能够实现灯光的移动和闪亮效果,同时还能够发挥出可编程器件的灵活性特点,改动电路能够实现多种效果。LED灯的个数为8个以上。2、设计方案的论证2.1、设计内容流水灯的设计采用可编程逻辑器件实现。能够实现灯光的移动和闪亮效果,同时还能够发挥出可编程器件的灵活性特点,改动电路能够实现多种效果。LED灯的个数为8个以上。2.2、方案比较方案一:所设计的流水灯是利用AT89C51单片机的P0口、P2口等的功能来完成信号的输入和转换,最终的显示结果通过发光LED显示出来。图2.2.1 单片机流水灯原理图图2.2.2 单片机流水灯仿真图图2.2.3 单片机流水灯复位电路图2.2.4 单片机流水灯晶振电路图2.2.5 单片机流水灯最小系统电路方案二:所设计的流水灯运用电子电路设计,本方案主要利用状态控制器,状态译码器。状态控制器主要用于记录用于流水灯的控制状态,通过状态译码器分别点亮相应状态的信号灯。方案三:所设计的流水灯基于现场可编程逻辑门阵列FPGA,通过EDA技术,采用VerilogHDL硬件描述语言实现流水灯电路设计。 图2.2.6 EDA流水灯原理图 图2.2.7 电路结构2.3、方案论证通过方案一二的比较可以看出,利用单片机所设计的流水灯比运用的电子电路所设计的流水灯具有明显的优越性。利用单片机控制的硬件电路比较简单,软件方面程序也不复杂。制作原理简单,但功能作用并不低于电子电路设计的,方便小巧又通俗易懂。因此方案一要优于方案二。通过方案一三的比较,可以看出方案一的设计使用分立元件电路较为多,因此会增加电路调试难度,且电路的不稳定性也会随之增加,而采用FPGA芯片实现的电路,由于在整体性上较好,在信号的处理和整个系统的控制中,FPGA的方案能大大缩减电路的体积,提高电路的稳定性。此外其先进的开发工具使整个系统的设计调试周期大大缩短,一般来讲,同样的逻辑,基于FPGA要比基于单片机要快很多,因为它们工作的原理是完全不同的。单片机是基于指令工作的,同样的激励到达单片机后,单片机首先要判断,然后读取相应的指令,最后作出相应,这每一步都是需要在单片机的时钟驱动下一步步的进行。而基于FPGA则是把相应的逻辑“暂时”固化为硬件电路了,它对激励作出的响应速度就是电信号从FPGA的一个管脚传播另一个管脚的传播速度,当然这指的是异步逻辑,同时电信号也要在芯片内进行一些栅电容的充放电动作,但这些动作都是非常非常快的。2.4、方案选择 根据多方面考量,选择方案三来实现本次流水灯设计。因为随着电子技术的不断发展,电子产品想体积越来越小、设计时间越来越短、集成度越来越精密、产品周期越来越短、成本越来低、功能越来越强大等方向发展。使用Verilog硬件描述的流水灯可根据需要调试系统特性、性能及成本,快速使得产品推向市场,扩展产品的生命周期并且避免硬件描述语言的更新换代。3、设计实现 本设计由现场可编程门矩阵(FPGA)作为控制芯片,通过VreilogHDL硬件描述语言设计,运用自顶而下的设计思想,按功能逐层分割实现层次化的设计。 图3.1.1 自顶向下的设计流程3.1、Quartus2的简化设计流程图3.1.2 简化设计流程3.2、有源晶振电路采用有源晶振作为时钟信号源,它是一个完整的振荡器,其内部除了石英晶体外还有阻容软件和晶体管,有源晶振信号质量好,比较稳定,而且连接方式比较简单。主要是作为电源滤波,通常使用的为一个电容和电感组成的PI型滤波网络,输出端使用一个小阻值电阻过滤信号。串电阻可减小反射波,避免反射波叠加引起过冲,减少谐波以及阻抗匹配,减小回波干扰及导致的信号过冲。由于本设计所用的为20MHZ的晶振,而20MHz以下的晶体晶振基本上都是基频的器件,稳定度好,20MHz以上的大多是谐波的(如3次谐波、5次谐波等等),稳定度差,因此我们使选用频的器件,毕竟倍频用的PLL电路需要的周边配置主要是电容、电阻、电感,其稳定度和价格方面远远好于晶体晶振器件。3.3、供电电路本设计中使用到了三个电源,第一是+5V的电源,用于为上拉电阻提供电压;第二是+3.3V电源,用于为FPGA芯片提供工作电压;第三是+2.5V电源,用于为FPGA芯片内核工作提供电压。在FPGA芯片管脚上,+2.5V电源必须接在内核电源输入端(VCCINT)上,而VCCIO是芯片输入输出引脚工作电源,根据输入输出的设备不同,可以接2.5 V、3.3 V或5.0 V。特别注意的是EPC1PC8的工作电压必须为3.3V,且该配置芯片属于Flash Memory闪存)器件,具有可擦写的功能。3.4、配置电路配置电路采用被动串行(PS)模式,为了利用ByteBlasterMV下载电缆配置EP1K30TC144器件,3.3V的电源应该接上拉电阻,电缆的VCC脚连到3.3V电源,而器件的VCCINT的引脚连接到相应的2.5V,对于PS配置电路,器件的VCCIO引脚必须连接到2.5V。上拉电阻接到配置器件的电源端,这里接到了+5V电源端。nCS接到nCONFIG端,OE接到nSTATUS端,DCLK与DCLK相连接,DATA与DATA0相连接。nCEO引脚端悬空。3.5、实现步骤1、在Quartus2中新建一个工程(硬件)。2、在SOPC Builder中根据自己的需要加入CPU/RAM/PIO/PLL等IP核。3、利用SOPC Build产生Quartus2能够识别的文件。4、在1中新建的工程中加入3中生成的文件。5、加入输入、输出以及双向端口,并根据需要对其命名。6、对5中命名的输入、输出核双向端口根据选定的FPGA进行列脚分配。7、编译工程。8、下载编辑代码到FPGA。9、利用Nios 2 IDE 新建另一个工程(软件)。10、根据2中的资源,编写项目需要的代码。11、编译、下载并调试,查看运行结果,知道正确。12、如果需要,将11中生成的代码下载到代码Flash中。3.6、流水灯源代码采用有限状态机设计一个彩灯控制器,要求控制18个LED灯实现如下的演示花型:从两边往中间逐个亮;全灭;从中间往两边逐个亮;全灭;循环执行上诉过程。程序如下:/*引脚锁定基于DE2,芯片为EP2C35F672*/Module liushuiled(clk50M,reset,z);(*chip_pin=“N2”*)input clk50M; /时钟信号及用引脚属性定义语句进行引脚锁定(*chip_pin=“N25”*)input reset; /复位信号及引脚锁定(*chip_pin=“AD12,AE12,AE13,AF13,AE15,AD15,AC14,AA13,Y13,AA14,AC21,AD21,AD23,AD22,AC22,AB21,AF23,AE23”*)output reg17:0z;reg4:0state;reg23:0count;wire clk4hz;parameter S0=d0,S1=d1, S2=d2, S3=d3, S4=d4, S5=d5, S6=d6, S7=d7, S8=d8, S9=d9,S10=d10, S11=d11, S12=d12, S13=d13, S14=d14, S15=d15, S16=d16, S17=d17, S18=d18, S19=d19;always (posedge clk50M) /从50MHz分频产生4Hz时钟信号begin if(count=12500000)count=0; else count=count+1;endassign clk4hz=count23; /产生4Hz时钟信号always (posedge clk4hz) /此过程描述状态转移begin if(reset)state=S0; /同步复位 else case(state) S0:stste=S1; S1:stste=S2;S2:stste=S3;S3:stste=S4;S4:stste=S5;S5:stste=S6;S6:stste=S7;S7:stste=S8;S8:stste=S9;S9:stste=S10;S10:stste=S11;S11:stste=S12;S12:stste=S13;S13:stste=S14;S14:stste=S15;S15:stste=S16;S16:stste=S17;S17:stste=S18;S18:stste=S19;S19:stste=S0;default:state=S0;endcaseend always (state) /此过程产生输出逻辑(OL)begin case(state)S0:z=18b000000000000000000; /全灭S1:z=18b100000000000000001; /从两边往中间逐个亮S2:z=18b110000000000000011;S3:z=18b111000000000000111;S4:z=18b111100000000001111;S5:z=18b111110000000011111;S6:z=18b111111000000111111;S7:z=18b111111100001111111;S8:z=18b111111110011111111;S9:z=18b111111111111111111;S10:z=18b000000000000000000; /全灭S11:z=18b000000001100000000; /从中间往两边逐个亮S12:z=18b000000011110000000;S13:z=18b000000111111000000;S14:z=18b000001111111100000;S15:z=18b000011111111110000;S16:z=18b000111111111111000;S17:z=18b001111111111111100;S18:z=18b011111111111111110;S19:z=18b111111111111111111;default:z=18b000000000000000000; endcase;end endmodule3.7、流水灯电路仿真通过QuartusII软件,我们进行了仿真,其仿真波形如下图:图3.7.1 流水灯仿真波形图4、系统调试与验证4.1、系统调试在QuartusII软件中,通过对所设计的硬件描述语言代码进行波形仿真后,达到了预期效果,于是,我们在该软件上进行下载配置设置。在Assignments菜单下选中Devices,在Family栏选择ACEX1K,选中EP1K30TC144-2器件。再在Assignments菜单下选中Pins按照相应要求对管脚进行锁定。最后在Tools菜单下,选中Programmer,对配置方式进行设置,这里选择Passive Seril(PS)被动串行模式。选择好要下载的硬件设备后点击Start即可开始编程下载了。调试过程为在线调试。在通过调试中,我们发现了很多问题,现归纳如下:1、在软件上能实现仿真的程序不一定在硬件电路上就能运行,原因有很多,这里是由于电路中的时钟频率太快,若不增加一个分频电路,灯闪烁时间太快,肉眼无法观察,故设计了一个20MHZ到2HZ的分频电路。2、调试中的实际问题需要考虑,人同时按多个键的同步性,不能达到时钟的精度,比如模拟键盘的输入状态是高电平有效,我们设计的结构是按键按下为低,这是若要实现该电路的控制就需要同时按下2个键,为了使输入状态实现只需按下一个键的按键控制,需要对按键逻辑取反。3、由于分频的运算很大,故增加分频电路后,在QuartusII软件中则不能进行正确的仿真,可以直接将程序下载到电路板上去调试。4.2、系统验证为验证所设计程序是否正确,将程序下载进行硬件测试。在MAX+PLUS2开发环境中进行管脚锁定,连接好下载线,然后将目标文件下载到器件中。经过测试,流水灯样式一共四种。第0种样式为样式1、2、3的综合,且可以通过按键调节显示样式;通过按键能够调节流水灯变化快慢,速度0为最慢速度,而速度3为最快速度;当前流水灯样式和变化速度也能够通过数码管显示出来;同时为了突出按键效果,按键被按下时,蜂鸣器能够发出鸣叫声。5、总结5.1、流水灯设计的认识与收获经过为期十天的努力终于完成流水灯的设计,流水灯是由七个部分组成,其中包括分频器、速度控制器、样式选

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论