EDA课程设计基于CPLD的汽车尾灯控制系统.doc
成绩 课 程 设 计 说 明 书课程设计名称: EDA技术课程设计 题 目: 设计汽车尾灯控制电路 学 生 姓 名: 专 业: 学 号: 指 导 教 师: 日期:2012年 6月 11 日 目录1前言31.1设计的目的31.2 设计要求31.3 功能分析31.4 EDA的介绍41.4.1 EDA技术的概念41.4.2 EDA技术的特点41.4.3 EDA设计流程41.5硬件描述语言(VHDL)51.5.1 VHDL的介绍51.5.2 VHDL语言的特点52.总体方案设计63.protel各电路模块及分析73.1时钟产生电路部分73.2电源供应电路部分73.3现场可编程门阵列FPGA电路部分83.4JTAG下载电路部分93.5发光显示部分104.各单元模块的设计124.1汽车状态模块124.1.1设计的汽车状态模块124.1.2汽车状态控制的程序代码124.2 左尾灯控制模块与右尾灯控制模块134.2.1左尾灯控制模块134.2.2 汽车左灯HDL语言如下144.2.3 设计的右尾灯控制模块154.2.4汽车右灯HDL语言如下164.3 时钟模块174.3.1时钟控制模块174.3.2周期为2s的时钟源程序184.3.3周期为500ms的时钟源程序184.4各模块流程图195 系统的仿真与调试205.1汽车状态模块的仿真与分析205.2汽车尾灯左灯模块仿真及分析205.3汽车尾灯右灯模块仿真及分析215.4时钟模块仿真及分析215.5整个系统的仿真及分析225.6整个顶层设计电路图23总结23参考文献24附图251前言随着科学技术的全面发展,汽车制造工艺得到了不断的进步,使得汽车已经成为现代人们主要的交通工具。人们了解到它们快捷、快速之于,也同时意识到汽车潜在的安全隐患,所以对具有汽车行驶状况提示作用的汽车尾灯进行研究是非常必要的。1.1设计的目的通过该课程设计,让学生掌握EDA的基本方法,熟悉VHDL语言和一种EDA软件(QUARTUS II),并能利用EDA软件设计一个电子技术综合问题,进一步培养学生分析解决工程实际问题的能力,为以后的毕业设计和进行工程实际问题的研究打下设计基础。1.2 设计要求汽车尾灯左、右各有3个,从中间开始编号,分别用L1、L2、L3,R1、R2、R3表示。当汽车转向时,按L1L1L2L1L2L3全亮L1(或R1R1R2R1R2R3全亮R1)次序循环亮,亮持续为2秒;当汽车刹车时,所有尾灯同时以2Hz的频率闪烁;正常行驶时,所有尾灯灭。输入信号有左、右转向和刹车。1.3 功能分析从以上设计要求,将本系统分成四个功能设计模块:(1)汽车状态模块:该模块接收左转、右转、刹车和正常行驶的控制信号,根据所接受的信号控制左尾灯控制模块和右尾灯控制模块。(2)左尾灯控制模块:接受汽车状态模块的控制信号对左边三个尾灯的亮与灭进行控制。(3)右尾灯控制模块:接受汽车状态模块的控制信号对右边三个尾灯的亮与灭进行控制。(4)时钟模块:由于当汽车转弯时尾灯按照一定顺序循环亮灭,亮持续时间为2s,而刹车时尾灯又以2Hz的频率闪烁,故该模块提供周期为2s和500ms的时钟信号供左尾灯控制模块和右尾灯控制模块控制尾灯的亮灭。1.4 EDA的介绍 1.4.1 EDA技术的概念EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。1.4.2 EDA技术的特点利用EDA技术进行电子系统的设计,具有以下几个特点: 用软件的方式设计硬件; 用软件方式设计的系统到硬件系统的转换是由有关的开发软件自动完成的; 设计过程中可用有关软件进行各种仿真; 系统可现场编程,在线升级; 整个系统可集成在一个芯片上,体积小、功耗低、可靠性高。因此,EDA技术是现代电子设计的发展趋势。1.4.3 EDA设计流程典型的EDA设计流程如下:1、文本/原理图编辑与修改。首先利用EDA工具的文本或图形编辑器将设计者的设计意图用文本或图形方式表达出来。 2、编译。完成设计描述后即可通过编译器进行排错编译,变成特定的文本格式,为下一步的综合做准备。 3、 综合。将软件设计与硬件的可实现性挂钩,是将软件转化为硬件电路的关键步骤。4、 行为仿真和功能仿真。利用产生的网表文件进行功能仿真,以便了解设计描述与设计意图的一致性。5、适配。利用FPGA/CPLD布局布线适配器将综合后的网表文件针对某一具体的目标器件进行逻辑映射操作,其中包括底层器件配置、逻辑分割、逻辑优化、布局布线。适配报告指明了芯片内资源的分配与利用、引脚锁定、设计的布尔方程描述情况。 6、 功能仿真和时序仿真。7、 下载。如果以上的所有过程都没有发现问题,就可以将适配器产生的下载文件通过FPGA/CPLD下载电缆载入目标芯片中。1.5硬件描述语言(VHDL)1.5.1 VHDL的介绍VHDL(Very-High-Speed Integrated Circuit Hardware Description Language)主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本1.5.2 VHDL语言的特点1.用VHDL代码而不是用原理图进行设计,意味着整个电路板的模型及性能可用计算机模拟进行验证。2.VHDL元件的设计与工艺无关,与工艺独立,方便工艺转换。3.VHDL支持各种设计方法,自顶向下、自底向上或者混合的都可以。4.可以进行从系统级到逻辑级的描述,即混合描述。5.VHDL区别于其他的HDL,已形成标准,其代码在不同的系统中可交换建模。2.总体方案设计第一种方案:通过把脉冲电路,开关控制电路,三进制电路,译码与显示驱动电路等模块组合来实现。首先,通过555定时器构成多谐振荡器产生频率为1hz的脉冲信号,该脉冲信号用于供给双J-K触发器构成的三进制计数器和开关控制电路中的三输入与非门的输入信号。其次,双J-K触发器构成的三进制计数器产生00,01,10的循环信号,此信号提供左转,右转,停止的原始信号。最后,左转,右转,停止的原始信号通过6个与非门以及7410提供的高低电位信号,将原始信号分别输入到左,右的3个汽车尾灯上,得到的信号即可输入到发光二极管上,实现所需功能。这种方案的实现复杂,成本高,调试起来不容易成功,太过繁琐。 第二种方案:用复杂可编程器件CPLD,用VHDL对汽车尾灯控制电路进行设计,并用Quartus软件进行CPLD芯片的编译和下载,生成是集成化的数字电路。这种方案没有传统设计中的接线问题,硬件功能的改变可以通过编程来修改,所以故障率低,可靠性高,而且体积小,体现了EDA技术在数字电路设计中的优越性。3.protel各电路模块及分析3.1时钟产生电路部分时钟产生电路是由有源晶振实现的图5.1.1时钟电路3.2电源供应电路部分此电源供应电路由四个三极管和一个齐纳二极管和电容加上LM2576构成,为总电路提供电源如下图5.2.1。图5.2.1电源供应电路LM2576是降压型开关稳压器,LM2576具有非常小的电压调整率和电流调整率,LM2576具有3A 的负载驱动能力,LM2576能够输出3.3V、5V、12V、15V 的固定电压和电压可调节的可调电压输出方式。LM2576 应用时比较简单且外围元件较少,LM2576内置频率补偿电路和固定频率振荡器。 LM2576 系列产品的开关频率为52KHz,所以应用时可以使用小尺寸的滤波元件。 LM2576 可以高效的取代一般的三端线性稳压器,LM2576能够充分的减小散热片的面积, LM2576在一些应用条件下甚至可以不使用散热片。在规定的输入电压和输出负载的条件下,LM2576 输出电压的误差范围为±4;振荡器的振荡频率误差范围为±10;典型的待机电流为50A,芯片内置过流保护电路和过热保护电路。 开关电压调节器LM2576的详细介绍 特点 1,3.3V、5V、12V、15V 的固定电压输出和可调节电压输出 2,可调节电压输出的范围为1.23V 到30V,其线性调整率和负载调整率最大可以有±4的误差。 3,负载电流达到3A 4,输入电压达到36V 5,只需四个外围元件 6,内置固定频率为52kHz 的振荡器 7,高效率 8,内置过热保护电路和过流保护电路3.3现场可编程门阵列FPGA电路部分 本电路选用的是现场可编程门阵列FPGA,采用的是EPF10K10LC84型号,EPF10K10LC84属于FPGA中FLEX10K系列,如下图5.3.1。图5.3.15现场可编程门阵列FPGA电路它是Altera公司生产的很成功的FPGA系列之一。FLEX10K系列采用重复可构造的CMOS SRAM工艺,把连续的快速通道互连与独特的嵌入式阵列结构相结合,同时也结合了众多可编程器件的优点来完成普通门阵列的宏功能。每个FLEX10K器件还包括一个嵌入式阵列和一个逻辑阵列,它能让设计人员轻松地开发出集储存器、数字信号处理器及特殊逻辑等强大功能于一身的芯片。此外,FLEX10K所具有的多电压功能可以全面支持以不同电压工作的产品,同时它还备有多款封装供设计者选择。3.4JTAG下载电路部分图5.4.1 JTAG下载电路JTAG也是一种国际标准测试协议(IEEE 1149.1兼容),主要用于芯片内部测试。现在多数的高级器件都支持JTAG协议,如DSP、FPGA器件等。标准的JTAG接口是4线:TMS、TCK、TDI、TDO,分别为模式选择、时钟、数据输入和数据输出线。 相关JTAG引脚的定义为:TCK为测试时钟输入;TDI为测试数据输入,数据通过TDI引脚输入JTAG接口;TDO为测试数据输出,数据通过TDO引脚从JTAG接口输出;TMS为测试模式选择,TMS用来设置JTAG接口处于某种特定的测试模式;TRST为测试复位,输入引脚,低电平有效。GND TI还定义了一种叫SBW-JTAG的接口,用来在引脚较少的芯片上通过最少的利用引脚实现JTAG接口,它只有两条线,SBWTCK,SBWTDIO。实际使用时一般通过四条线连接,VCC,SBWTCK,SBTDIO,GND,这样就可以很方便的实现连接,又不会占用大量引脚。 JTAG最初是用来对芯片进行测试的,基本原理是在器件内部定义一个TAP(Test Access Port测试访问口)通过专用的JTAG测试工具对进行内部节点进行测试。JTAG测试允许多个器件通过JTAG接口串联在一起,形成一个JTAG链,能实现对各个器件分别测试。现在,JTAG接口还常用于实现ISP(In-System Programmable;在线编程),对FLASH等器件进行编程。 JTAG编程方式是在线编程,传统生产流程中先对芯片进行预编程现再装到板上因此而改变,简化的流程为先固定器件到电路板上,再用JTAG编程,从而大大加快工程进度。JTAG接口可对PSD芯片内部的所有部件进行编程。 在硬件结构上,JTAG 接口包括两部分:JTAG 端口和控制器。与JTAG 接口兼容的器件可以是微处理器(MPU)、微控制器(MCU)、PLD、CPL、FPGA、ASIC 或其它符合IEEE1149.1 规范的芯片。IEEE1149.1 标准中规定对应于数字集成电路芯片的每个引脚都设有一个移位寄存单元,称为边界扫描单元BSC。它将JTAG 电路与内核逻辑电路联系起来,同时隔离内核逻辑电路和芯片引脚。由集成电路的所有边界扫描单元构成边界扫描寄存器BSR。边界扫描寄存器电路仅在进行JTAG 测试时有效,在集成电路正常工作时无效,不影响集成电路的功能。3.5发光显示部分发光显示部分由六个发光二极管组成图5.5.1发光显示部分 LED(Light Emitting Diode),发光二极管,是一种固态的半导体器件,它可以直接把电转化为光。LED的心脏是一个半导体的晶片,晶片的一端附在一个支架上,一端是负极,另一端连接电源的正极,使整个晶片被环氧树脂封装起来。半导体晶片由两部分组成,一部分是P型半导体,在它里面空穴占主导地位,另一端是N型半导体,在这边主要是电子。但这两种半导体连接起来的时候,它们之间就形成一个P-N结。当电流通过导线作用于这个晶片的时候,电子就会被推向P区,在P区里电子跟空穴复合,然后就会以光子的形式发出能量,这就是LED发光的原理。而光的波长也就是光的颜色,是由形成P-N结的材料决定的。4.各单元模块的设计4.1汽车状态模块4.1.1设计的汽车状态模块汽车状态模块如图3.1.1所示,源程序如下,汽车状态模块PRECONTROL。图3.1.1 汽车状态模块PRECONTROL其中LEFT、RIGHT、STOP分别表示左转、右转和刹车信号,对应的输出引脚LFT、RIT、LR分别表示左有效、右有效和刹车有效。真值表如表2.1.1所示:信号LEFTRIGHTSTOPLFTRITLR意义逻辑状态000000正常行驶100100左转弯010010右转弯001001刹车表3.1.1 汽车状态控制信号与输出信号真值表4.1.2汽车状态控制的程序代码汽车状态控制的程序如下library ieee;use ieee.std_logic_1164.all;entity precontrol isport(left:in std_logic;right:in std_logic;stop:in std_logic;lft:out std_logic;rit:out std_logic;lr:out std_logic);end precontrol;architecture one of precontrol isbeginprocess(left,right,stop)variable condition:std_logic_vector(2 downto 0);begincondition:=left&right&stop;case condition iswhen "000"=>lft<='0'rit<='0'lr<='0'-汽车正常行驶when "100"=>lft<='1'rit<='0'lr<='0'-汽车左转弯when "010"=>lft<='0'rit<='1'lr<='0'-汽车右转弯when "001"=>lft<='0'rit<='0'lr<='1'-汽车刹车when others=>null;end case;end process;end one;4.2 左尾灯控制模块与右尾灯控制模块4.2.1左尾灯控制模块设计的左尾灯控制模块如图3.2.1所示,源程序见下图3.2.1 左尾灯控制模块LEFTCONTROL对各输入与输出引脚的说明如下:CLK:接受时钟信号,用于尾灯的顺序循环亮灭。CLK将接收两种不同频率的时钟信号即周期为2s和500ms中的一种,具体接收哪一种由该模块的时钟使能输出信号CLK2SEN和CLK500MSEN决定。EN:与汽车状态模块PRECONTROL的LFT引脚连接,用于使能该左尾灯控制模块。LR:汽车刹车输入信号,与汽车状态控制模块PRECONTROL的LR引脚相连。由于当汽车左转弯、正常行驶和刹车时,该模块EN引脚都将接收到低电平,故而需要通过判断LR和EN的引脚电平才能判断汽车当前是处于刹车状态还是右转弯或正常行驶状态。L2、L1、L0:汽车左边的三个尾灯控制信号。CLK2SEN、CLK500MSEN:时钟的选择信号。这两个引脚将根据汽车当前所处的状态使能相应的时钟。当汽车出处于左转弯时,CLK2SEN输出高电平,CLK500MSEN输出低电平,此时CLK将接收到周期为2s的时钟信号以满足按L1L1L2L1L2L3全亮L1依次序循环灭,再依次亮灭,亮持续为2s对时钟的需要;当汽车处于刹车状态时,CLK2SEN输出低电平,CLK500MSEN输出高电平,此时CLK将接收到周期为500ms的时钟信号以满足汽车刹车是所有尾灯以2Hz的频率闪烁的设计要求。4.2.2 汽车左灯HDL语言如下 library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity leftcontrol isport(clk:in std_logic;en:in std_logic;-汽车左转弯模块使能信号输入lr:in std_logic;-汽车刹车信号输入,高有效l2,l1,l0:out std_logic;-三个左尾灯控制信号输出clk2sen,clk500msen:out std_logic);-2s和500ms时钟使能信号输出end entity leftcontrol;architecture one of leftcontrol issignal clkop:std_logic;beginclkop<=clk;com1:process(en,clk,lr)variable tmp:std_logic_vector(2 downto 0);variable clken:std_logic_vector(1 downto 0);beginif lr='1' then tmp:=clkop&clkop&clkop;clken:="01"-汽车刹车,周期为500ms的时钟使能elsif clk'event and clk='1' then if en='1' then -汽车左转弯if tmp="111" then tmp:="110"clken:="10"-周期为2s的时钟使能elsif tmp="000" then tmp:="111"-在左转弯时灯全灭后再全息亮else tmp:=tmp(1 downto 0)&'1'-end if; end if; end if;r2<=tmp(2);l1<=tmp(1);l0<=tmp(0);clk2sen<=clken(1);clk500msen<=clken(0);end process;end one;4.2.3 设计的右尾灯控制模块右尾灯控制模块如图3.2.4所示,源程序见下 图3.2.4右尾灯控制模块RIGHTCONTROL右尾灯控制模块RIGHTCONTROL各引脚功能与左尾灯控制模块LEFTCONTROL各引脚功能相似,这里不再详述。4.2.4汽车右灯HDL语言如下library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity rightcontrol isport(clk:in std_logic;en:in std_logic; -汽车右转弯模块使能信号输入lr:in std_logic; -汽车刹车信号输入,高有效r2,r1,r0:out std_logic; -三个右尾灯控制信号输出clk2sen,clk500msen:out std_logic); -2s和500ms时钟使能信号输出end entity rightcontrol;architecture one of rightcontrol issignal clkop:std_logic;beginclkop<=clk;com1:process(en,clk,lr)variable tmp:std_logic_vector(2 downto 0);variable clken:std_logic_vector(1 downto 0);beginif lr='1' then tmp:=clkop&clkop&clkop;clken:="01"-汽车刹车,周期为500ms的时钟使能elsif clk'event and clk='1' then if en='1' then -汽车右转弯if tmp="111" then tmp:="110"clken:="10"-周期为2s的时钟使能elsif tmp="000" then tmp:= "111"-在右转弯时灯全灭后再全息亮else tmp:=tmp(1 downto 0)&'1' -灯每隔2s亮一个end if; end if; end if;r2<=tmp(2);r1<=tmp(1);r0<=tmp(0);clk2sen<=clken(1);clk500msen<=clken(0);end process;end one;4.3 时钟模块4.3.1时钟控制模块2s时钟模块和500ms时钟模块分别如图3.3.1和图3.3.2所示: 图3.3.1 2s时钟模TIMER2S 图3.3.2 500ms时钟模块TIMER500MS左尾灯控制模块LEFT通过CLK2SEN和CLK500MSEN来控制该模块CLK接收到的时钟信号的实现原理如下图3.3.3所示:图3.3.3 时钟选择实现原理图当汽车左转弯时,左尾灯控制模块LEFTCONTROL使能,此时该模块CLK2SEN输出高电平,CLK500MSEN输出低电平,并分别与TIMER2S和TIMER500MS相与,则TIMER500MS相当于被禁止,后经或门连接至该LEFTCONTROL模块的CLK引脚,故而CLK将接收到TIMER2S发出的周期为2s的时钟信号。当汽车刹车时,左尾灯控制模块LEFTCONTROL也使能,此时该模块CLK2SEN输出低电平,CLK500MSEN输出高电平,并分别与TIMER2S和TIMER500MS相与,则TIMER2S相当于被禁止,后经或门连接至该LEFTCONTROL模块的CLK引脚,故而CLK将接收到TIMER500MS发出的周期为500ms的时钟信号。当汽车正常行驶时尾灯均灭,此时不需要时钟参与,左尾灯控制模块LEFTCONTROL的CLK2SEN和CLK500MSEN处于任意状态。4.3.2周期为2s的时钟源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity timer2s isport(clk:in std_logic;clkout:out std_logic);end entity timer2s;architecture one of timer2s isbeginprocess(clk)variable counter:std_logic_vector(7 downto 0);variable qclkout:std_logic;begin if clk'event and clk='1' then -以128Hz为基本时钟源,对其上升沿计数if counter="11111111" then -计数个数为256个即256×128Hz2sqclkout:=not qclkout;clkout<=qclkout;counter:="00000000"-计数器满则输出反相计数器清零else counter:=counter+1;-每捕捉到一个基本时钟源上升沿计数器加一end if; end if; end process;end architecture one;同样,右尾灯控制模块RIGHTCONTROL的CLK时钟信号的接收与左尾灯控制模块LEFTCONTROL的实现原理一样,它们共用TIMER2S和TIMER500MS这两个时钟模块,这里不再详述其实现原理。4.3.3周期为500ms的时钟源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity timer500ms isport(clk:in std_logic;clkout:out std_logic); architecture one of timer500ms isbeginprocess(clk)variable counter:std_logic_vector(7 downto 0);variable qclkout:std_logic;begin if clk'event and clk='1' then -以128Hz为基本时钟源,对其上升沿计数if counter="01000000" then-计数个数为64个即64×128Hz0.5sqclkout:=not qclkout;clkout<=qclkout;counter:="00000000"-计数器满则输出反相计数器清零else counter:=counter+1; -每捕捉到一个基本时钟源上升沿计数器加一 end if; end if; end process;end architecture on4.4各模块流程图5 系统的仿真与调试5.1汽车状态模块的仿真与分析当输入的信号为左转,右转或停止的其中一个信号时又VHDL程序实现后,波形如下图4.1.1汽车状态仿真波形如图当输入端有一个为高电平时,输出端相应的输出高电平,表明在状态中高电平试有效5.2汽车尾灯左灯模块仿真及分析 汽车尾灯左灯模版由VHDL仿真实现后波形如下图4.2.1汽车尾灯左灯模块仿真波形对时序仿真图进行分析:clk为时钟信号 en和ir 分别为使能信号en2s和en500ms分别为周期时钟信号。当en和en500ms输入为高电平时l0,l1,l2同时开始亮,又依次熄灭,再依次亮灭。 5.3汽车尾灯右灯模块仿真及分析汽车尾灯右灯模块由VHDL仿真实现后波形如下图4.3.1汽车尾灯右灯模块仿真波形对时序仿真图进行分析:clk为时钟信号 en和ir 分别为使能信号en2s和en500ms分别为周期时钟信号。当en和en500ms输入为高电平时l0,l1,l2同时开始亮,又依次熄灭,再依次亮灭。5.4时钟模块仿真及分析汽车尾灯时钟模块timer2s和timer500ms仿真波形如下图4.4.1汽车尾灯时钟模块timer2s仿真波形图4.4.2汽车尾灯时钟模块timer500ms仿真波形对汽车尾灯时钟模块仿真的分析:如图所示,首先生成一个500ns的时钟脉冲,通过时钟分频把2s的脉冲分成一个40ns的脉冲,实现了信号同步。5.5整个系统的仿真及分析 整个系统VHDL仿真波形如下图4.5.1整个系统VHDL仿真波形对汽车尾灯整个系统仿真的分析:当输入lift为高电平时候左灯l7,l8,l9依次亮和依次灭。当输入right为高电平时侯右灯l4,l5,l6依次亮和依次灭。当输入stop为高电平时候,左右的6个灯一起亮和灭闪烁5.6整个顶层设计电路图整个顶层设计电路图如下图4.6.1整个顶层设计电路图总结通过两星期的紧张工作,最后完成了我的设计任务汽车尾灯控制器的设计。通过本次课程设计的学习,我深深的体会到设计课的重要性和目的性。本次设计课不仅仅培养了我们实际操作能力,也培养了我们灵活运用课本知识,理论联系实际,独立自主的进行设计的能力。它不仅仅是一个学习新知识新方法的好机会,同时也是对我所学知识的一次综合的检验和复习,使我明白了自己的缺陷所在,从而查漏补缺。希望学校以后多安排一些类似的实践环节,让同学们学以致用。在设计中要求我要有耐心和毅力,还要细心,稍有不慎,一个小小的错误就会导致结果的不正确,而对错误的检查要求我要有足够的耐心,通过这次设计和设计中遇到的问题,也积累了一定的经验,对以后从事集成电路设计工作会有一定的帮助。在应用VHDL的过程中让我真正领会到了其并行运行与其他软件顺序执行的差别及其在电路设计上的优越性。用VHDL硬件描述语言的形式来进行数字系统的设计方便灵活,利用EDA软件进行编译优化仿真极大地减少了电路设计时间和可能发生的错误,降低了开发成本,这种设计方法必将在未来的数字系统设计中发挥越来越重要的作用。参考文献1王金明.数字系统设计与V额日咯个HDL.北京:电子工业出版社,2008.102黄仁欣.EDA技术实用教程.北京:清华大学出版社,20063曹昕燕,周凤臣,聂春燕.EDA技术实验与课程设计.北京:清华大学出版社,2006.54杨亦华,延明.数字电路EDA入门.北京:北京邮电大学出版社,20035潘松 ,黄继业.EDA技术与VHDL,北京,清华大学出版社,20066陈赜 主编CPLD/FPGA与ASIC设计实践教程科学出版社 2005.8 7 王金明 主编数字系统设计与Verilog HDL(第三版) M电子工业出版社,2009.1.8 谢自美 主编电子线路设计.实验.测试(第二版)M华中理工大学出版社,2003.10.附图Protel设计原理图