logo资料库

EDA课程设计 汽车尾灯控制器的设计.doc

第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
资料共4页,全文预览结束
一、实验目的 《EDA 技术》是电子信息工程专业的一门专业课,该门课程具有很强的理论及实践性。 通过对该课程的学习,使学生掌握相关基本概念、基本理论和基本技能,为今后从事相应的 生产设计和科研工作打下一定的基础。除课程的理论教学和实验教学外,课程设计也是一个 必要和重要的实践教学环节。通过该课程设计,让学生掌握 EDA 的基本方法,熟悉 VHDL 语言和一种 EDA 软件(QUARTUS II),并能利用 EDA 软件设计一个电子技术综合问题, 进一步培养学生分析解决工程实际问题的能力,为以后的毕业设计和进行工程实际问题的研 究打下设计基础。 二、实验内容 1、设计内容 汽车尾灯控制器的设计 选用合适的可编程逻辑器件及外围电子元器件,设计一个汽车尾灯控制器,利用 EDA 软件(QUARTUS Ⅱ)进行编译及仿真,设计输入可采用 VHDL 硬件描述语言输 入法和原理图输入法,并下载到 EDA 实验开发系统,连接外围电路,完成实际测试。 2、设计要求 (1)汽车尾部左右两侧各有多盏指示灯。 (2)汽车正常行驶时指示灯都不亮。 (3)汽车右转弯时,右侧的一盏指示灯亮。 (4)汽车左转弯时,左侧的一盏指示灯亮。 (5)汽车刹车时,左右两侧的一盏指示灯同时亮。 (6)汽车在夜间行驶时,左右两侧有指示灯同时一直亮,供照明使用。 3、设计参数 尾部指示灯数 4 方案选择与论证 根据系统设计要求,系统设计采用自顶向下的设计方法,顶层设计采用原理图设计方 案,它是由时钟分频模块、汽车尾灯主控模块、左边灯控制模块、右边灯控制模块四部分组 成。 系统设计详述 系统的输入信号包括:系统时钟信号 CLK,汽车左转弯控制信号 LEFT,汽车右转弯 控制信号 RIGHT,刹车信号 BRAKE,夜间行驶信号 NIGHT。 系统的输入信号包括:汽车左侧 4 盏指示灯 LLED1,LLED2,LLED3,LLED4 和汽 车右侧 4 盏指示灯 RLED1,RLED2,RLED3,RLED4。 当汽车正常行驶时所有的指示灯都不亮,当汽车向左转时,汽车左边的指示灯 LLED1 亮,当汽车向右转时,汽车右边的指示灯 RLED1 亮,当汽车刹车时,左右的 LLED2、RLED2 亮,当汽车夜间行驶时,汽车左右的 LLED3、LLED4、RLED3 、RLED4 一直亮。 汽车尾灯主控模块 VHDL 程序(CTRL.VHD) LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; 1
ENTITY CTRL IS PORT(LEFT,RIGHT,BRAKE,NIGHT: IN STD_LOGIC; LP,RP,LR,BRAKE_LED,NIGHT_LED: OUT STD_LOGIC); END; ARCHITECTURE ART OF CTRL IS BEGIN NIGHT_LED<=NIGHT; BRAKE_LED<=BRAKE; PROCESS(LEFT,RIGHT) BEGIN TEMP:=LEFT&RIGHT; CASE TEMP IS VARIABLE TEMP:STD_LOGIC_VETOR(1 DOWNTO 0); WHEN "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; 功能:以 LEFT、RIGHT、BRAKE、NIGHT 为输入端口,高电平有效,LP、RP、LR、 BRAKE_LED、NIGHT_LED 为输出端口。将 NIGHT 端的信号给 NIGHT_LED,将 BRAKE 的信号给 BRAKE_LED,用 CASE 语句来控制 LP(左灯输入)、RP(右灯输入)、LR(左右 同时输入),LEFT 为高电平时,左模块工作,当 RIGHT 为高电平时,右模块工作,当 LR 为高电平时,左右灯都没有信号输入。从而实现对左右控制模块的控制。 PORT(CLK,LP,LR,BRAKE,NIGHT:IN STD_LOGIC; LEDL,LEDB,LEDN1, LEDN2:OUT STD_LOGIC); 左边灯控制模块 VHDL 程序(LC.VHD) LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY LC IS END; ARCHITECTURE ART OF LC IS BEGIN LEDB<=BRAKE; LEDN1<=NIGHT; LEDN2<=NIGHT; PROCESS(CLK,LP,LR) BEGIN IF CLK'EVENT AND CLK='1' THEN IF(LR='0') THEN IF(LP='0')THEN LEDL<='0'; ELSE LEDL<='1'; END IF; ELSE LEDL<='0'; END IF; END IF; END PROCESS; END ART; 功能:以 CLK、LP、LR、BRAKE、NIGHT 为输入端口, 高电平有效, LEDL、LEDB、LEDN1、 LEDN2 为输出端口。将 BRAKE 信号 给 LEDB 端口,NIGHT 信号分别给 LEDN1、LEDN2, 2
当 CLK 的上升沿到来时,如果 LR、LP 都同时为低电平时,LEDL 端口输出低电平,当 LR 为低电平 LP 为高电平时,LEDL 输出高电平,当 LR 为高电平时,LEDL 端口输出低电平。 通过 LEDL、LEDB、LEDN1、LEDN2 的电平信号来控制汽车左边的尾灯。 VHDL 程序(RC.VHD) 右边灯控制模块 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY RC IS PORT(CLK,RP,LR,BRAKE,NIGHT:IN STD_LOGIC; LEDR,LEDB,LEDN1, LEDN2:OUT STD_LOGIC); END; ARCHITECTURE ART OF RC IS BEGIN LEDB<=BRAKE; LEDN1<=NIGHT; LEDN2<=NIGHT; PROCESS(CLK,RP,LR) BEGIN IF CLK'EVENT AND CLK='1'THEN IF (LR='0') THEN IF (RP='0') THEN LEDR<='0'; ELSE LEDR<='1'; END IF; ELSE LEDR<='0'; END IF; END IF; END PROCESS; END ART; 功能: 以 CLK、RP、LR、BRAKE、NIGHT 为输入端口, 高电平有效, LEDR、LEDB、LEDN1、 LEDN2 为输出端口。将 BRAKE 信号 给 LEDB 端口,NIGHT 信号分别给 LEDN1、LEDN2, 当 CLK 的上升沿到来时,如果 LR、RP 都同时为低电平时,LEDL 端口输出低电平,当 LR 为低电平 RP 为高电平时,LEDL 输出高电平,当 LR 为高电平时,LEDL 端口输出低电平。 通过 LEDL、LEDB、LEDN1、LEDN2 的电平信号来控制汽车右边的尾灯。 VHDL 程序(SZ.VHD) 时钟分频模块 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY SZ IS PORT(CLK:IN STD_LOGIC; CP:OUT STD_LOGIC); END; ARCHITECTURE ART OF SZ IS SIGNAL COUNT:STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN PROCESS(CLK) BEGIN 3
IF CLK'EVENT AND CLK = '1' THEN COUNT<= COUNT + 1; END IF; END PROCESS; CP<= COUNT(3); END ART; 功能:这块的功能是对左右两边的 LLED1、RLED1 的闪烁时间间隔,以 CLK 为输入信号, CP 为输出信号,在程序中定义一个八位节点信号 COUNT 来放计数值,当 CLK 的上升沿到 来时就开始计数,最后将 COUNT(3)给 CP,实现对 CLK 的八分频。 再将 CP 的电平信号分别和 LEDL、LEDR 电平与,最后用输出的电平来控制汽车 左右的 LLED1、RLED1,实现左右转的指示功能。 原理图 仿真波形图 三、实验体会 汽车尾灯控制的设计,这个设计的思路原理都比较清晰,我采用的是模块化的设计, 主要由主控模块、左右灯控制模块和分频模块组成,每个模块的功能都是用程序来生成的。 这次课程设计对实验的步骤和软件 Quartus II 的操作有更高的要求,在整个设计过程 中使我对 VHDL 语言有的更深的理解,对软件 Quartus II 操作起来也更是得心应手。 4
分享到:
收藏