EDA课设报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
沈阳理工大学EDA技术课程设计报告
尾灯控制器
1 设计目的
(1)学会在QuartusⅡ环境中运用VHDL语言设计方法来构建具有一定逻辑功能的模块,并能运用原理图设计方法完成顶层设计。掌握所学的课程知识和基本单元电路的综合设计应用。
(2)通过对实用汽车尾灯控制器的设计,巩固和综合运用所学知识,提高设计能力,并掌握汽车尾灯控制在FPGA中实现的方法。
1.调试底层模块,并时序仿真。
2.设计顶层模块,并时序仿真。
3.撰写课程设计报告。
2 设计要求和任务
假设汽车尾部左右侧各有3盏指示灯,其控制功能应包括:
(1)汽车正常行驶时指示灯都不亮
(2)汽车右转弯时,右侧的一盏指示灯亮
(3)汽车左转弯时,左侧的一盏指示灯亮
(4)汽车刹车时,左右侧的指示灯同时亮
(5)汽车在夜间行驶时,左右侧的指示灯同时一直亮,供照明使用
顶层设计采用原理图设计方案,它由时钟分频模块,汽车尾灯主控模块,左边灯控制模块和右边灯控制模块四部分组成。
3 总体设计思路及原理描述
汽车尾灯控制器就是一个状态机的实例。当汽车正常行驶时所有指示灯都不亮;当汽车向右转弯时,汽车右侧的指示灯ldright亮;当汽车向左侧转弯时,汽车左侧的指示灯ldleft亮;当汽车刹车时,汽车右侧的指示灯ldbrake1和汽车左侧的指示灯ldbrake2同时亮;当汽车在夜间行驶时,汽车右侧的指示灯ldnight1和汽车左侧的指示灯ldnight2同时一直亮。
通过设置系统的输入信号:系统时钟信号clk,汽车左转弯控制信号left,汽车右转弯控制信号right,刹车信号brake,夜间行驶信号night和系统的输出信号:汽车左侧3盏指示灯ldleft,dbrake1,dnight1和汽车右侧3盏指示灯ldright,ldbrake2,ldnight2实现以上功能。
系统的整体组装设计原理如图所示:
4 分层次方案设计及代码描述
4.1汽车尾灯主控模块
汽车尾灯主控模块的工作框图如图4.1所示:
图4.1汽车尾灯主控模块
数据入口:
RIGHT :右转信号;
LEFT :左转信号; BRAKE :刹车信号; NIGHT :夜间行驶信号; 数据出口:
LP :左侧灯控制信号; RP :右侧灯控制信号; LR :错误控制信号;
BRAKE_LED :刹车控制信号; NIGHT_LED :夜间行驶控制信号;
汽车行驶信号
主控模块
左灯控制模块
右灯控制模块
显示
时钟
图 3.1 系统设计整体框图
VHDL程序(CTRL.VHD)
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY CTRL IS
PORT(LEFT,RIGHT,BRAKE,NIGHT: IN STD_LOGIC;
LP,RP,LR,BRAKE_LED,NIGHT_LED: OUT STD_LOGIC);
END ENTITY CTRL;
ARCHITECTURE ART OF CTRL IS
BEGIN
NIGHT_LED<=NIGHT;
BRAKE_LED<=BRAKE;
PROCESS(LEFT,RIGHT)
VARIABLE TEMP:STD_LOGIC_VECTOR(1 DOWNTO 0);
BEGIN
TEMP:=LEFT&RIGHT;
CASE TEMP IS
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 ARCHITECTURE ART;
功能:
该段程序用于对汽车尾灯进行整体控制,当输入为左转信号时,输出左侧灯控制信号;当输入为右转信号时,输出右侧灯控制信号;当同时输入LEFT和RIGHT 信号时,输出错误控制信号。当输入为刹车信号时,输出刹车控制信号;当输入为夜间行驶信号时,输出为夜间行驶控制信号。
4.2左边灯控制模块
左边灯控制模块的工作框图如图4.2所示:
图4.2左边灯控制模块数据入口:
CLK:时钟控制信号;
LP:左侧灯控制信号;
LR:错误控制信号;
BRAKE:刹车控制信号;
NIGHT:夜间行驶控制信号;
数据出口:
LEDL:左侧LD1灯控制信号;
LEDB:左侧LD2灯控制信号;
LEDN:左侧LD3灯控制信号;
VHDL程序(LC.VHD)
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY LC IS
PORT(CLK,LP,LR,BRAKE,NIGHT: IN STD_LOGIC;
LEDL,LEDB,LEDN: OUT STD_LOGIC);
END ENTITY LC;
ARCHITECTURE ART OF LC IS
BEGIN
LEDB<=BRAKE;
LEDN<=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 ARCHITECTURE ART;