EDA汽车尾灯控制 .docx
精品名师归纳总结EDA 技术应用课程设计报告专业:通信工程班级:09312 班姓名:某某某指导老师:杨祖芳曾凡忠2021 年 05 月 20 日可编辑资料 - - - 欢迎下载精品名师归纳总结目录1 引言 11.1 设计的目的 11.2 设计的基本内容 12 EDA、VHDL简介 12.1 EDA技术 12.2 硬件描述语言( VHDL) 23 汽车尾灯把握器的设计过程 33.1 系统需求分析 33.2 汽车尾灯把握器的工作原理 33.3 各组成模块原理及程序 44 系统仿真 94.1 分频模块仿真及分析 94.2 汽车尾灯主控模块仿真及分析104.3 左边灯把握模块仿真及分析 114.4 右边灯把握模块仿真及分析 124.5 整个系统仿真及分析 13终止语 15指导老师看法 16参考书目 16可编辑资料 - - - 欢迎下载精品名师归纳总结1 引 言随着人们生活水平的提高,汽车的消费量越来越大。由于人们也越来越忙, 不管是夜晚仍是阴雨、 大雾等天气缘由的影响, 人们都开着车在纵横交叉的大路上行驶。为了提高人们因夜晚或因天气缘由在纵横交叉的大路上驾驶的安全系数,也是为了削减交通事故的发生。 我们接受了先进的 EDA技术, Quartus工作平台和 VHDL语言,设计了一种基于 FPGA的汽车尾灯把握系统, 并对系统进行了仿真机验证。 这一把握电路, 结构简洁、性能稳固、 操作便利、抗干扰才能强。将它应用于现代汽车, 不受黑夜或大雾、 阴雨天气因素的影响, 可以提高安全行驶,防止交通事故的发生。真正的让消费者驾驶汽车的便利和安全。1.1 设计的目的其一、设计一个能适应现代汽车智能化进展要求的汽车尾灯把握电路。改善以前的汽车尾灯把握系统,降低汽车尾灯把握器的生产成本。其二、学好VHDL 这门硬件描述语言,加深对 VHDL语言学问的懂得和把握,提高学习才能和创新 才能,使自己适应不断进展的 21 世纪。1.2 设计的基本内容依据运算机中状态机原理,利用VHDL设计汽车尾灯把握器的各个模块,并使用 EDA 工具对各模块进行仿真验证。汽车尾灯把握器的设计分为4 个模块: 时钟分频模块、 汽车尾灯主控模块, 左边灯把握模块和右边灯把握模块。 把各个模块整合后就形成了汽车尾灯把握器。 通过输入系统时钟信号和相关的汽车把握信号,汽车尾灯将正确显示当前汽车的把握状态。2 EDA、VHDL简介2.1 EDA 技术EDA技术的概念EDA是电子设计自动化( Electronic Design Automation)的缩写,在 20 世纪 90 岁月初从运算机帮忙设计( CAD)、运算机帮忙制造( CAM)、运算机帮忙测试( CAT)和运算机帮忙工程( CAE)的概念进展而来的。 EDA技术就是以运算机为工具, 设计者在 EDA软件平台上, 用硬件描述语言 HDL完成设计文件, 然后由运算机自动的完成规律编译、 化简、分割、综合、优化、布局、布线和仿真, 直至对于特定目标芯片的适配编译、规律映射和编程下载等工作。可编辑资料 - - - 欢迎下载精品名师归纳总结EDA技术的特点利用 EDA技术进行电子系统的设计,具有以下几个特点:用软件的方式设计硬件。用软件方式设计的系统到硬件系统的转换是由有关的开发软件自动完成的。 设计过程中可用有关软件进行各种仿真。 系统可现场编程, 在线升级。 整个系统可集成在一个芯片上,体积小、功耗低、牢靠性高。因此, EDA技术是现代电子设计的进展趋势。EDA设计流程典型的 EDA设计流程如下 :1、文本/ 原理图编辑与修改。 第一利用 EDA工具的文本或图形编辑器将设计者的设计意图用文本或图形方式表达出来。2、编译。完成设计描述后即可通过编译器进行排错编译,变成特定的文本格式,为下一步的综合做预备。3、 综合。将软件设计与硬件的可实现性挂钩, 是将软件转化为硬件电路的关键步骤。4、 行为仿真和功能仿真。 利用产生的网表文件进行功能仿真, 以便明白设计描述与设计意图的一样性。5、适配。利用 FPGA/CPLD布局布线适配器将综合后的网表文件针对某一具 体的目标器件进行规律映射操作, 其中包括底层器件配置、 规律分割、规律优化、布局布线。 适配报告指明白芯片内资源的支配与利用、 引脚锁定、 设计的布尔方程描述情形。6、 功能仿真和时序仿真。7、 下载。假如以上的全部过程都没有发觉问题, 就可以将适配器产生的下载文件通过 FPGA/CPLD下载电缆载入目标芯片中。8 、 硬件仿真与测试。2.2 硬件描述语言( VHDL) VHDL简介VHDLVery-High-SpeedIntegratedCircuitHardwareDescription Language主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具 有硬件特点的语句外, VHDL的语言形式和描述风格与句法是特别类似于一般的可编辑资料 - - - 欢迎下载精品名师归纳总结运算机高级语言。 VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分, 及端口 和内部(或称不行视部分) ,既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后, 一旦其内部开发完成后, 其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。VHDL语言的特点1. 用 VHDL代码而不是用原理图进行设计, 意味着整个电路板的模型及性能可用运算机模拟进行验证。2. VHDL元件的设计与工艺无关,与工艺独立,便利工艺转换。3. VHDL支持各种设计方法,自顶向下、自底向上或者混合的都可以。4. 可以进行从系统级到规律级的描述,即混合描述。5. VHDL区分于其他的 HDL,已形成标准, 其代码在不同的系统中可交换建模。3 汽车尾灯把握器的设计过程3.1 系统需求分析依据现代交通规章,汽车尾灯把握器应中意以下基本要求:1. 汽车正常使用是指示灯不亮2. 汽车右转时,右侧的一盏灯亮3. 汽车左转时,左侧的一盏灯亮4. 汽车刹车时,左右两侧的指示灯同时亮5. 汽车夜间行驶时,左右两侧的指示灯同时始终亮,供照明使用3.2 汽车尾灯把握器的工作原理汽车尾灯把握器就是一个状态机的实例。 当汽车正常行驶时全部指示灯都不亮。当汽车向右转弯时,汽车右侧的指示灯RD1亮。当汽车向左侧转弯时,汽车 左侧的指示灯 LD1 亮。当汽车刹车时, 汽车右侧的指示灯 RD2和汽车左侧的指示灯 LD2同时亮。当汽车在夜间行驶时, 汽车右侧的指示灯 RD3和汽车左侧的指示灯 LD3同时始终亮。通过设置系统的输入信号:系统时钟信号CLK,汽车左转弯把握信号 LEFT,汽车右转弯把握信号 RIGHT,刹车信号 BRAK,E夜间行驶信号 NIGHT和系统的输出信号: 汽车左侧 3 盏指示灯 LD1、LD2、LD3 和汽车右侧 3 盏指示灯RD1、RD2、RD3实现以上功能。系统的整体组装设计原理如图3.1 ( a)以及系统可编辑资料 - - - 欢迎下载精品名师归纳总结设计整体框图如图 3.1 (b)所示。图 3.1( a)系统的整体组装设计原理图 3.(1 b)3.3 各组成模块原理及程序汽车尾灯把握器有 4 个模块组成, 分别为: 时钟分频模块、 汽车尾灯主控模块, 左边灯把握模块和右边灯把握模块,以下介绍各模块的详细设计。时钟分频模块整个时钟分频模块的工作框图如图3.2 。CLKCP图 3.2 时钟分频模块工作框图时钟分频模块由 VHDL程序来实现,下面是其中的一段 VHDL代码:可编辑资料 - - - 欢迎下载精品名师归纳总结ARCHITECTURE ART OF SZ ISSIGNAL COUNT:STD_LOGIC_VECTOR7 DOWNTO 0。BEGIN PROCESSCLKBEGINIF CLK'EVENT AND CLK = '1'THEN COUNT <= COUNT + 1 。END IF。END PROCESS。CP<= COUNT3。END ART 。汽车尾灯主控模块汽车尾灯主控模块工作框图如图3.3(a)所示以及工作原理框图 3.3(b)。CTRLLEFTLPRIGHTRPBRAKELRNIGHTBRAKE_LEDNIGHT_LED图 3.3( a)主控模块工作框图图 3.3( b)主控模块工作原理框图数据入口: RIGHT :右转信号。可编辑资料 - - - 欢迎下载精品名师归纳总结LEFT:左转信号。 BRAKE :刹车信号。 NIGHT :夜间行驶信号 。数据出口: LP:左侧灯把握信号。RP:右侧灯把握信号。 LR:错误把握信号。 BRAKE_LED :刹车把握信号。 NIGHT_LED :夜间行驶把握信号。汽车尾灯主控模块由 VHDL程序来实现,下面是其中的一段VHDL代码:ARCHITECTURE ART OF CTRL IS BEGINNIGHT_LED<=NIGHT 。BRAKE_LED<=BRAKE 。PROCESSLEFT,RIGHTVARIABLE TEMP:STD_LOGIC_VECTOR1 DOWNTO 0。BEGINTEMP:=LEFT & RIGHT 。CASE TEMP ISWHEN "00" =>LP<='0' 。RP<='0'。LR<='0' 。WHEN "01" =>LP<='0' 。RP<='1'。LR<='0' 。WHEN "10" =>LP<='1' 。RP<='0'。LR<='0' 。WHEN OTHERS=>LP<='0' 。RP<='0'。LR<='1' 。END CASE 。END PROCESS。END ART。左边灯把握模块左边灯把握模块的工作框图如图3.4(a)所示以及工作原理框图 3.4(b)。LCCLK LP LRBRRAKENIGHTLEDL LEDBLEDN图 3.4( a)左边灯把握模块的工作框图可编辑资料 - - - 欢迎下载精品名师归纳总结图 3.4( b)左边灯把握模块的工作原理框图数据入口: CLK :时钟把握信号。LP:左侧灯把握信号。LR:错误把握信号。 BRAKE :刹车把握信号。 NIGHT :夜间行驶把握信号。数据入口: LEDL :左侧 LD1 灯把握信号。 LEDL :左侧 LD2 灯把握信号。 LEDN :左侧 LD3 灯把握信号。左边灯把握模块由 VHDL程序来实现,下面是其中的一段VHDL代码:ARCHITECTURE ART OF LC IS BEGINLEDB<=BRAKE 。LEDN<=NIGHT 。PROCESSCLK,LP,LR BEGINIF CLK'EVENT AND CLK = '1' THEN IFLR ='0'THENIFLP = '0'THEN LEDL<='0' 。ELSELEDL<='1' 。END IF。ELSELEDL <='0' 。END IF。END IF。END PROCESS。可编辑资料 - - - 欢迎下载精品名师归纳总结END ART。右边灯把握模块右边灯把握模块的工作框图如图3.5(a)所示以及工作原理框图 3.5(b)。RCCLK RP LRBRRAKENIGHTLEDRLEDB LEDN图 3.5 (a)右边灯把握模块的工作框图图 3.5 ( b)右边灯把握模块的工作原理框图数据入口: CLK :时钟把握信号。RP:右侧灯把握信号。 LR:错误把握信号。 BRAKE :刹车把握信号。 NIGHT :夜间行驶把握信号。数据出口: LEDR:右侧 RD1 灯把握信号。 LEDB :右侧 RD2 灯把握信号。 LEDN :右侧 RD3 灯把握信号。右边灯把握模块由 VHDL程序来实现,下面是其中的一段VHDL代码:ARCHITECTURE ART OF RC IS BEGINLEDB<=BRAKE 。LEDN<=NIGHT 。PROCESSCLK,RP,LR可编辑资料 - - - 欢迎下载精品名师归纳总结BEGINIF CLK'EVENT AND CLK = '1' THEN IFLR = '0'THENIFRP = '0'THENLEDR <='0'。ELSELEDR <= '1'。END IF 。ELSELEDR <='0'。END IF。END IF。END PROCESS。END ART。4 系统仿真4.1 分频模块仿真及分析分频模块由 VHDL程序实现后,其功能仿真如图 4.1 (a)所示已经时序仿真仿真图如图 4.1 (b)所示。图 4.1 (a)分频模块功能仿真图可编辑资料 - - - 欢迎下载精品名师归纳总结图 4.1 ( b)分频模块时序仿真图对其仿真图进行仿真分析:如以下图 , 第一生成一个 600ns 的时钟脉冲,通过时钟分频把 600ns 的脉冲分成一个 40ns 的脉冲,实现了信号同步。4.2 汽车尾灯主控模块仿真及分析汽车尾灯主控模块由 VHDL程序实现后,其功能仿真图如图 4.2 (a)所示以准时序仿真如图 4.2 (b)所示。图 4.2( a)主控模块功能仿真图可编辑资料 - - - 欢迎下载精品名师归纳总结图 4.2( b)主控模块时序仿真图对时序仿真图进行分析: RIGHT,LEFT,NIGHT,BRAKE为输入信号, RIGHT为 1 表示右转, LEFT为 1 表示左转, NIGHT为 1 表示夜间行路, BRAKE为 1 表示刹车。RP,LP,NIGHT_LED,BRAKE_LE为D输出信号。如以下图:当 RIGHT为 1 时,产 生一个 RP为 1 的信号脉冲输出,当 LEFT为 1 时,产生一个 LP为 1 的信号脉冲输出,当 NIGHT为 1 时,产生一个 NIGHT_LED为 1 的信号脉冲输出。当BRAKE可编辑资料 - - - 欢迎下载精品名师归纳总结为 1 时,产生一个 BRAKE_LE为D4.3 左边灯把握模块仿真及分析1 的信号脉冲输出。可编辑资料 - - - 欢迎下载精品名师归纳总结左边灯把握模块由 VHDL程序实现后,其功能仿真图如图 4.3 (a)所示以准时序仿真如图 4.3 ( b)所示。图 4.3a左边灯把握模块功能仿真图可编辑资料 - - - 欢迎下载精品名师归纳总结图 4.3(b)左边灯把握模块时序仿真图对时序仿真图进行分析: LP, LR,NIGHT,BRAKE为输入信号, LP 为 1 表示左转, LR 为 1 表示右转, NIGHT 为 1 表示夜间行路, BRAKE为 1 表示刹车。LEDL,LEDB,LEDN为输出信号 , 表示汽车左侧的三盏灯。如以下图:当LP 为 1 时, LEDL输出为 1 表示左侧灯亮,当 BRAKE为 1 时, LEDB输出为 1 表示左侧灯亮, 当 NIGHT为 1 时, LEDN输出为 1 表示左侧灯亮。当 LR为 1 时,左侧三盏灯输出均为 0。即没有灯亮。4.4 右边灯把握模块仿真及分析右边灯把握模块由 VHDL程序实现后,其功能仿真图如图4.4 (a)所示以准时序仿真如图 4.4 ( b)所示。图 4.4(a)右边灯把握模块功能仿真图可编辑资料 - - - 欢迎下载精品名师归纳总结图 4.4(b)右边灯把握模块时序仿真图对时序仿真图进行分析: RP,LR,NIGHT,BRAKE为输入信号, LR 为 1 表示左转, RP 为 1 表示右转, NIGHT 为 1 表示夜间行路, BRAKE为 1 表示刹车。LEDR,LEDB,LED为N 输出信号 , 表示汽车右侧的三盏灯。如以下图:当RP为 1 时, LEDR输出为 1 表示右侧灯亮,当 BRAKE为 1 时, LEDB输出为 1 表示右侧灯亮, 当 NIGHT为 1 时, LEDN输出为 1 表示右侧灯亮。当 LR为 1 时,右侧三盏灯输出均为 0。即没有灯亮。4.5 整个系统仿真及分析按图 3.1 组装系统后的功能仿真如图4.5 (a)所示以准时序仿真如图 4.5( b)所示。图 4.5(a)整个系统功能仿真图可编辑资料 - - - 欢迎下载精品名师归纳总结图 4.5( b)整个系统时序仿真图对时序仿真图进行分析: RIGHT,LEFT,NIGHT,BRAKE为输入信号, RIGHT为 1 表示右转, LEFT为 1 表示左转, NIGHT为 1 表示夜间行路, BRAKE为 1 表示刹车。 RD1,RD2,RD3为输出信号,表示汽车右侧的三盏灯。 LD1,LD2,LD3 为输出信号, 表示汽车左侧的三盏灯。如以下图:当RIGHT为 1 时, RD1输出为 1 表示右侧灯亮,当 LEFT为 1 时, LD1为输出为 1 表示左侧灯亮,当 NIGHT为 1 时, LD2,RD2 输出均为 1,表示左,右两侧各有一盏灯亮。当BRAKE为 1 时, LD3,RD3输出均为 1,表示左,右两侧各有一盏灯亮。各个模块的功能:1. 时钟分频模块功能:这块的功能是对左右两边的LLED1、RLED1的闪烁时间间隔,以 CLK为输入信号, CP 为输出信号,在程序中定义一个八位节点信号COUNT来放计数值,当 CLK的上升沿到来时就开头计数,最终将COUNT3给CP,实现对 CLK的八分频。 再将 CP的电平信号分别和 LEDL、LEDR电平与, 最终用输出的电平来把握汽车左右的LLED1、RLED1,实现左右转的指示功能。2. 汽车尾灯主控模块功能: 该段程序用于对汽车尾灯进行整体把握, 当输入为左转信号时,输出左侧灯把握信号。当输入为右转信号时,输出右侧灯把握信号。 当同时输入 LEFT 和 RIGHT 信号时, 输出错误把握信号。 当输入为刹车信号时, 输出刹车把握信号。当输入为夜间行驶信号时,输出为夜间行驶把握信号。3. 左边灯把握模块作用: 本程序用于把握左侧灯的亮、 灭和闪烁情形, 当时钟上升沿信号和左侧灯把握信号或刹车把握信号或夜间行驶信号同时显现时,左侧相可编辑资料 - - - 欢迎下载精品名师归纳总结应的灯亮或显现闪烁。当错误把握信号显现时,LD1 灯不亮。4. 右边灯把握模块作用:本描述用于把握右侧灯的亮、灭和闪烁情形,当时钟上升沿信号和右侧灯把握信号或刹车把握信号或夜间行驶信号同时显现时,右侧相应的灯亮或显现闪烁。当错误把握信号显现时,RD1 灯不亮。拼脚引用: 输入:BRAKELEFT RIGHT BIGHT开关SW1 SW2 SW3SW4引脚32333637输出:LD1D112 31LEFTLD2D111 30LD3D110 29RD1D103 20RIGHTRD2D102 19RD3D101 18试验现象:1. 汽车尾部左右两侧各有多盏指示灯。2. 汽车正常行驶时指示灯都不亮。3. 汽车右转弯时,右侧的一盏指示灯亮。4. 汽车左转弯时,左侧的一盏指示灯亮。5. 汽车刹车时,左右两侧的一盏指示灯同时亮。6. 汽车在夜间行驶时,左右两侧有指示灯同时始终亮,供照明使用。终止语通过本次课程设计, 我们对 EDA技术有了更深的明白, 初步学会了接受自顶向下的系统设计方法设计系统,并娴熟把握了利用 VHDL语言进行简洁的电路模块设计。此外,我们仍进一步熟识了 MAX+PLUSII这款软件的使用,深刻体会到了用软件实现硬件设计的便利与优越。本次课程设计不仅培养了我们实际操作才能, 也培养了我们灵敏运用课本学问,理论联系实际, 分析问题和解决问题的才能。 它不仅仅是一个学习新学问新方法的好机会, 同时也是对我所学学问的一次综合的检验和复习,使我明白了自己的缺陷所在,从而查漏补缺。可编辑资料 - - - 欢迎下载精品名师归纳总结本设计接受自顶向下设计方法, 底层为一些具有独立功能的小模块, 由小组人员分工完成, 即一人完成一个到多个模块, 最终再合到一起完成顶层文件的设计。从局部到整体,不仅使得系统设计的思路清晰明白,削减了错误的产生,更 便利了程序的调试以及系统功能的扩充。 在设计过程中,能与同学相互沟通争辩, 分工合作, 不仅降低了设计难度, 缩短了设计周期, 更是进一步培养了我们的团队合作精神。在此次设计过程中, 不仅要求我们把握扎实的理论学问, 分析问题能从根本原理动身,联系实际解决问题,仍要求我们要有耐心,毅力及细心。稍有不慎, 一个小小的错误就会导致结果的不正确, 而对错误的检查更要求我们要有足够的耐心,反复调试,直到程序顺当通过。这次设计中我也遇到了一些问题, 但通过相关资料的查询, 在老师的指导和同学们的帮忙下, 都顺当得以解决。 这些经受使我得以积存了确定的体会, 信任对以后学习设计工作也会有确定的帮忙!指导老师看法参考书目1 黄正瑾,系统编程技术及其应用,南京,东南高校出版社,1997 年2 潘松,黄继业, EDA 有用教程,北京,科学出版社,2002 年3 郑家龙,王小海, 集成电子技术基础教程 ,北京,高等训练出版社,2002 年4 卢杰,赖毅, VHDL 与数字电路设计 ,北京,科学出版社, 2001 年5 张明,Verilog HDL有用教程,成都,电子科技高校出版社,1999 年可编辑资料 - - - 欢迎下载