文档介绍:SOPC/EDA综合课程设计指导书
设计者: 郑天林
班级: 电气082
学号: 05号
实践设计时间: 2011/1/6
江西理工大学应用科学学院
机电工程系
二0一一年一月
课程设计课题:基于fpga用vhdl语言设计汽车尾灯的仿真
设计目的
假设汽车尾灯两侧各有3盏指示灯,设计其控制功能如下:
;
,右侧一盏指示灯亮;
,左侧一盏指示灯亮;
,左右两侧其中一盏指示灯亮;
,左右两侧的一盏指示灯同时亮,以供照明。
设计思路
根据系统设计要求,系统采用自顶向下的设计方法,顶层设计采用原理图设计的方式,如下所示:
功能要求
正常行驶时所有的灯都不亮,当汽车右转弯时,右侧灯RD1闪烁;左转弯,左侧灯LD1闪烁;刹车时,左侧灯LD2和右侧灯RD2同时亮;夜间行驶时,右侧RD3和左侧LD3同时亮;并不可能出现RD1 和LD1同时亮的情况。
设计方案
应用VHDL进行自顶向下的设计,是采用可完全独立于目标器件芯片物理结构的硬件描述语言。就是使用VHDL模型在所有综合级别上对硬件设计进行说明、建模和仿真测试。其设计流程如下:
(1)设计说明书
(6)逻辑综合
(2)建立VHDL行为模型
(7)测试向量生成
(3)VHDL行为仿真
(8)功能仿真
(4)VHDL-RTL级建模
(5)前端功能仿真
设计完成
(11)硬件测试
(9)结构综合
(10)门级时序仿真
由于VHDL设计的可移植性、EDA平台的通用性以及与具体硬件结构的无关性,使得前期的设计可以容易的应用于新的设计项目,而且项目设计的周期可以显著缩短。另外本方案还具有简单易行的特性。
汽车尾灯主控制模块 刹车功能控制模块
汽车尾灯主控模块
左侧灯选择控制模块
输入信号
右侧灯选择控制模块
LD1
LD2
RD1
RD2
LD3
RD3
刹车控制信号
汽车尾灯主控模块
左侧灯选择控制模块
LD2
RD2
右侧灯选择控制模块
时钟信号
分频模块
RD1
LD1
汽车尾灯主控模块
左侧灯选择控制模块
左转弯控制信号
LD1
时钟模块
时钟信号
右侧尾灯功能模块
汽车尾灯主控模块
右侧灯选择控制模块
RD1
时钟模块
时钟信号
右转弯控制信号
夜间行驶控制信号
汽车尾灯主控模块
左侧灯选择控制模块
右侧灯选择控制模块
LD3
RD3
编写应用程序并仿真
CTRL
*数据入口:
RIGHT:右转信号;LEFT:左转信号; BRAKE:刹车信号;NIGHT:夜间行驶信号;
*数据出口:
LP:左侧灯控制信号;RP:右侧灯控制信号;LR:错误控制信号;BRAKE_LED:刹车控制信号;NIGHT_LED:夜间行驶控制信号
*程序功能描述:
该段程序用于对汽车尾灯进行整体控制,当输入为左转信号时,输出左侧灯控制信号;当输入为右转信号时,输出右侧灯控制信号;当同时输入LEFT和RIGHT信号时,输出错误控制信号。当输入为刹车信号时,输出刹车控制信号;当输入为夜间行驶信号时,输出为夜间行驶控制信号。
*程序编辑:
LIBRARY IEEE;
USE ;
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;
E