完整版EDA课程设计汽车尾灯控制器设计.docx
《完整版EDA课程设计汽车尾灯控制器设计.docx》由会员分享,可在线阅读,更多相关《完整版EDA课程设计汽车尾灯控制器设计.docx(14页珍藏版)》请在冰豆网上搜索。
完整版EDA课程设计汽车尾灯控制器设计
课程设计
课程设计名称:
EDA课程设计
专业班级
学生姓名:
学号:
指导教师:
课程设计时间:
电子信息科学与技术专业课程设计任务书
学生姓名
专业班级
学号
题目
汽车尾灯控制器设计
课题性质
工程设计
课题来源
自拟课题
指导教师
同组姓名
主要内容
用EDA设计一个控制汽车尾部左右两侧各有的4盏指示灯。
系统的输入信号包括:
系统时钟信号CLK汽车左转弯控制信号LEFT汽车右转弯控制信号RIGHT刹车信号BRAKE夜间行驶信号NIGHT
分别控制汽车的左右三盏等灯LD1,LD2,LD3;RD1,RD2RD3
任务要求
1根据设计题目要求编写相应程序代码
2对编写的VHDL程序代码进行编译和仿真
3条件允许,完成硬件验证
4总结设计内容,完成课程设计说明书
参考文献
[1]焦素敏.EDA课程设计指导书.郑州:
河南工业大学,2008
[2]焦素敏.EDA应用技术,清华大学出版社,2007
[3]曹昕燕,周凤成等,EDA技术实验与课程设计,清华大学出版社,
2006
[4]卢杰,赖毅.VHDL与数字电路设计.北京:
科学出版社,2001社,
2006
审查意见
指导教师签字:
教研室主任签字:
2014年6月16日
汽车尾灯控制器设计
引言
随着集成电路和计算机技术的飞速发展,EDA技术应运而生,它是一种高级、快速、有效的电子设计自动化技术。
EDA将大量的电路功能集成到一个芯片中,并且可以由用户自行设计逻辑功能,提高了系统的集成度和可靠性。
运用EDA技术可以方便、快捷设计电路系统。
本文基于EDA系统,在MAX+plusII软件平台上,完成了汽车尾灯电路的设计。
采用VHDL硬件描述语言描述汽车尾灯电路,完成对电路的功能仿真。
在设计过程中,重点探讨了汽车尾灯电路的设计思路和功能模块划分,通过分析仿真波形表明设计的汽车尾灯电路完成了预期的功能。
1设计任务及要求
1.1设计内容
根据计算机中状态机原理,利用VHDL设计汽车尾灯控制器的各个模块,并使用EDA工具对各模块进行仿真验证。
汽车尾灯控制器的设计分为4个模块:
时钟分频模块、汽车尾灯主控模块,左边灯控制模块和右边灯控制模块。
把各个模块整合后就形成了汽车尾灯控制器。
通过输入系统时钟信号和相关的汽车控制信号,汽车尾灯将正确显示当前汽车的控制状态。
1.2设计要求
(1)汽车尾部左右两侧各有多盏指示灯。
(2)汽车正常行驶时指示灯都不亮。
(3)汽车右转弯时,右侧的一盏指示灯亮。
(4)汽车左转弯时,左侧的一盏指示灯亮。
(5)汽车刹车时,左右两侧的一盏指示灯同时亮。
(6)汽车在夜间行驶时,左右两侧有指示灯同时一直亮,供照明使用。
2设计原理及总体框图
汽车尾灯控制器就是一个状态机的实例。
当汽车正常行驶时所有指示灯都不亮;当汽车向右转弯时,汽车右侧的指示灯Idright亮;当汽车向左侧转弯时,
汽车左侧的指示灯Idleft亮;当汽车刹车时,汽车右侧的指示灯Idbrakel和汽车
左侧的指示灯Idbrake2同时亮;当汽车在夜间行驶时,汽车右侧的指示灯Idnightl和汽车左侧的指示灯Idnight2同时一直亮;当于大雾天行驶时右侧指示灯
Idfoggyl和左侧指示灯Idfoggy2同时亮。
通过设置系统的输入信号:
系统时钟信号cIk,汽车左转弯控制信号Ieft,汽车右转弯控制信号right,刹车信号brake,夜间行驶信号night,雾灯信号foggy和系统的输出信号:
汽车左侧4盏指示灯IdIeft,dbrakel,dnightl,dfoggyl和汽车右侧4盏指示灯Idright,Idbrake2,Idnight2,Idfoggy2实现以上功能。
系统的整体组装设计原理如图所示:
系统设计整体框图
3程序设计
根据系统设计要求,系统设计采用自顶向下的设计方法,顶层设计采用原理图设计方案,它是由时钟分频模块、汽车尾灯主控模块、左边灯控制模块、右边灯控制模块四部分组成。
系统的输入信号包括:
系统时钟信号CLK汽车左转弯控制信号LEFT,汽车右转弯控制信号RIGHT刹车信号BRAKE夜间行驶信号NIGHT
系统的输入信号包括:
汽车左侧4盏指示灯LLED1LLED2LLED3LLED4和汽车右侧4盏指示灯RLED1RLED2RLED3RLED4
当汽车正常行驶时所有的指示灯都不亮,当汽车向左转时,汽车左边的指示
灯LLED1亮,当汽车向右转时,汽车右边的指示灯RLED1亮,当汽车刹车时,左右的LLED2RLED2?
当汽车夜间行驶时,汽车左右的LLED3LLED4RLED3、RLED4^直亮。
3.1各组成模块原理及程序
3.1.1汽车尾灯主控模块
VHDL程序(CTRL.VHD
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYCTRLIS
PORT(LEFT,RIGHT,BRAKE,NIGHT:
INSTD_LOGIC;
LP,RP,LR,BRAKE_LED,NIGHT_LED:
OUTSTD_LOGIC);
ENDENTITYCTRL;
ARCHITECTUREARTOFCTRLIS
BEGIN
NIGHT_LED<=NIGHT;
BRAKE_LED<=BRAKE;
PROCESS(LEFT,RIGHT)
VARIABLETEMP:
STD_LOGIC_VECTOR(1DOWNTO0);
BEGIN
TEMP:
=LEFT&RIGHT;
CASETEMPIS
WHEN"00"=>LP<='0';RP<='0';LR<='0';--当汽车直行时,左右灯都不亮
WHEN"01"=>LP<='0';RP<='1';LR<='0';;--当汽车右拐时,右拐指示灯亮
WHEN"10"=>LP<='1';RP<='0';LR<='0';--当汽车左拐时,左指示灯亮WHENOTHERS=>LP<='0';RP<='0';LR<='1';--当汽车刹车时,左右灯都亮
ENDCASE;
ENDPROCESS;
ENDARCHITECTUREART;
功能:
该段程序用于对汽车尾灯进行整体控制,当输入为左转信号时,输出左侧灯控制信号;当输入为右转信号时,输出右侧灯控制信号;当同时输入LEFT和RIGHT信号时,输出错误控制信号。
当输入为刹车信号时,输出刹车控制信号;当输入为夜间行驶信号时,输出为夜间行驶控制信号。
3.1.2左边灯控制模块
VHDL程序(LC.VHD
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYLCIS
PORT(CLK,LP,LR,BRAKE,NIGHT:
INSTD_LOGIC;
LEDL,LEDB,LEDN:
OUTSTD_LOGIC);
ENDENTITYLC;
ARCHITECTUREARTOFLCIS
BEGIN
LEDB<=BRAKE;
LEDN<=NIGHT;
PROCESS(CLK,LP,LR)
BEGIN
IFCLK'EVENTANDCLK='1'THEN--时钟上升沿有效
IF(LR='0')THEN--没有刹车信号时
IF(LP='0')THEN--没有左拐信号时
LEDL<='0';--左信号灯不亮
ELSE--相反情况
LEDL<='1';
ENDIF;
ELSE
LEDL<='0';
ENDIF;
ENDIF;
ENDPROCESS;
ENDARCHITECTUREART;
功能:
本程序用于控制左侧灯的亮、灭和闪烁情况,当时钟上升沿信号和左侧灯控制信号或刹车控制信号或夜间行驶信号同时出现时,左侧相应的灯亮或出现闪烁。
当错误控制信号出现时,LD1灯不亮。
3.1.3右边灯控制模块
VHDL程序(RC.VHD
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
ENTITYRCIS
PORT(CLK,RP,LR,BRAKE,NIGHT:
INSTD_LOGIC;LEDR,LEDB,LEDN:
OUTSTD_LOGIC);
ENDENTITYRC;
ARCHITECTUREARTOFRCIS
BEGINLEDB<=BRAKE;
LEDN<=NIGHT;
PROCESS(CLK,RP,LR)
BEGIN
IFCLK'EVENTANDCLK='1'THEN--检测时钟上升沿
IF(LR='0')THEN
IF(RP='0')THENLEDR<='0';
ELSELEDR<='1';
ENDIF;
ELSELEDR<='0';
ENDIF;
ENDIF;
ENDPROCESS;
ENDARCHITECTUREART;
功能:
本描述用于控制右侧灯的亮、灭和闪烁情况,当时钟上升沿信号和右侧灯
控制信号或刹车控制信号或夜间行驶信号同时出现时,右侧相应的灯亮或出现闪烁。
当错误控制信号出现时,RD1灯不亮。
3.1.4时钟分频模块
VHDL程序(SZ.VHD
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYSZISPORT(CLK:
INSTD_LOGIC;--时钟输入
CP:
OUTSTD_LOGIC);
ENDENTITYSZ;
ARCHITECTUREARTOFSZIS
SIGNALCOUNT:
STD_LOGIC_VECTOR(7DOWNTO0);--定义八位标准逻辑位矢量数
据类型
BEGIN
PROCESS(CLK)
BEGIN
IFCLK'EVENTANDCLK='1'THEN--检测时钟上升沿
COUNT<=COUNT+1;
ENDIF;
ENDPROCESS;
CP<=COUNT(3);--输出第五位
ENDARCHITECTUREART;
这块的功能是对左右两边的LLED1RLED1的闪烁时间间隔,以CLK为输入信号,CP为输出信号,在程序中定义一个八位节点信号COUNTS放计数值,当
CLK的上升沿到来时就开始计数,最后将COUNT(3给CP实现对CLK的八分频。
再将CP的电平信号分别和LEDLLEDR电平与,最后用输出的电平来控制汽车左右的LLED1RLED1实现左右转的指示功能。
3.1.5原理图
顶层文件VHDL程序(tp.VHD)
Libraryieee;
Useieee.std_logic_1164.all;
Useieee.std_logic_unsigned.all;
Entitytpis
Port(clk:
instd_logic;
Left:
instd_logic;
Right:
instd_logic;
Brake:
instd_logic;
Night:
instd_logic;
Ld1,ld2,ld3:
outstd_logic;
Rd1,rd2,rd3:
outstd_logic);
End;
Architecturebhoftpis
Componentszis
Port(clk:
instd_logic;
Cp:
outstd_logic);
Endcomponent;
Componentctrlis
Port(left,right,brake,night:
instd_logic;
Lp,rp,lr,brake_led,night_led:
outstd_logic);
Endcomponent;
Component1cis
Port(clk,lp,lr,brake,night:
instd_1ogic;
Ledl,ledb,ledn:
outstd_logic);
Endcomponent;
Componentrcis
Port(clk,rp,lr,brake,night:
instd_logic;
Ledr,ledb,ledn:
outstd_logic);
Endcomponent;
Signaltmp0,tmp1,tmp2,tmp3,tmp4:
std_logic;
Signalerr0,err1,err2,err3,err4,err5:
std」ogic;
signalbm:
std_logic;
Begin
U1:
szportmap(clk,bm);
U2:
ctrlportmap(left,right,brake,night,tmp0,tmp1,tmp2,tmp3,tmp4);
U3:
lcportmap(clk,tmp0,tmp2,tmp3,tmp4,err0,err1,err2);
U4:
rcportmap(clk,tmp1,tmp2,tmp3,tmp4,err3,err4,err5);
Ld1<=err0andbm;
Ld2<=err1;
Ld3<=err2;
Rd1<=err3andbm;
Rd2<=err4;
Rd3<=err5;
End;
4编译及仿真
4.1主控模块的时序仿真及原理图
CTRL
LEF^T
LEFTft.P
—乂ILF
Fk|iGHT
R1GIHTRP
ORRKE*—
BRflK&UR
—un
H1SHT>(—
H10HT
―迖UfinKL_LLQ
HiGiHTLED
--r.H1数据入口:
RIGHT右转信号;
LEFT左转信号;
BRAKE刹车信号;
NIGHT夜间行驶信号;
数据出口:
LP:
左侧灯控制信号;
RP右侧灯控制信号;
LR错误控制信号;
BRAKE_LED刹车控制信号;
NIGHT_LED夜间行驶控制信号;
仿真波形
*[*lTim«?
1"IRns
Q
htenniJtil鼬『
盘时[TFT
4.2左边灯模块的时序仿真及原理图
LG
CILK
LIP
LEDL
LR
LEDB
DRAKE
LE£>H
X-
HtGHV
0
LCDS
ILEDM
CILK
LF
LR
KRAVCE
H|GHT
数据入口:
CLK时钟控制信号;
LP:
左侧灯控制信号;
LR错误控制信号;
BRAKE刹车控制信号;
NIGHT夜间行驶控制信号;
数据出口:
仿真波形
4.3右边灯模块的时序仿真及原理图
数据入口:
CLK时钟控制信号;
RP右侧灯控制信号;
LR错误控制信号;
BRAKE刹车控制信号;
NIGHT夜间行驶控制信号;
数据出口:
LEDR右侧RD1灯控制信号;
LEDB右侧RD2灯控制信号;
LEDN右侧RD3灯控制信号;
仿真波形
4.4时钟分频模块的时序仿真及原理图
仿真波形
令5Zstf-V.avekinnEditor
4.5顶层文件的时序仿真及原理图
仿真波形
4.6整体组装设计原理图
Clx.CZD
LffTaEFT
HiQhT
J—15
』%HH
E±*
E=>4fe
整体组装设计原理图
5硬件调试与结果分析
器件选择ACEX係列的EP1K30TC144-1选择后对原理图进行引脚锁定。
因
为自己没有写16进制到10进制译码器,所以选择模式5自带译码器的方式进行
硬件验证
编译以后对程序进行配置,打开电源,在实验板上选择模式5,打开下载锁
定后开始配置。
配置完成后,进行调试,完成功能要求。
6参考文献
[1]焦素敏.EDA课程设计指导书.郑州:
河南工业大学,2008
[2]焦素敏.EDA应用技术,清华大学出版社,2007
[3]曹昕燕,周凤成等,EDA技术实验与课程设计,清华大学出版社,2006
[4]卢杰,赖毅.VHDL与数字电路设计.北京:
科学出版社,2001社,2006
7心得体会
通过两星期的紧张工作,最后完成了我的设计任务——汽车尾灯控制器的设计。
通过本次课程设计的学习,我深深的体会到设计课的重要性和目的性。
本次设计课不仅仅培养了我们实际操作能力,也培养了我们灵活运用课本知识,理论联系实际,独立自主的进行设计的能力。
它不仅仅是一个学习新知识新方法的好机会,同时也是对我所学知识的一次综合的检验和复习,使我明白了自己的缺陷所在,从而查漏补缺。
希望学校以后多安排一些类似的实践环节,让同学们学以致用。
在设计中要求我要有耐心和毅力,还要细心,稍有不慎,一个小小的错误就会导致结果的不正确,而对错误的检查要求我要有足够的耐心,通过这次设计和设计中遇到的问题,也积累了一定的经验,对以后从事集成电路设计工作会有一定的帮助。
在应用VHDL的过程中让我真正领会到了其并行运行与其他软件顺序执行的差别及其在电路设计上的优越性。
用VHDL硬件描述语言的形式来进行数字系统的设计方便灵活,利用EDA软件进行编译优化仿真极大地减少了电路设计时间和可能发生的错误,降低了开发成本,这种设计方法必将在未来的数字系统设计中发挥越来越重要的作用。