VerilogHDL汽车尾灯控制器的设计 联系客服

发布时间 : 星期日 文章VerilogHDL汽车尾灯控制器的设计更新完毕开始阅读b1fef14503768e9951e79b89680203d8cf2f6a78

熊雄 汽车尾灯控制器的设计 第3页 共16页 统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。 2.2.2 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,刹车信号BRAKE,夜间行驶信号NIGHT和系统的输出信号:汽车左侧3盏指示灯LD1、LD2、LD3和汽车右侧3盏指示灯RD1、RD2、RD3实现以上功能。系统的整体组装设计原理如图3.1所示。

3

熊雄 汽车尾灯控制器的设计 第4页 共16页

图3.1 系统的整体组装设计原理

3.3各组成模块原理及程序

汽车尾灯控制器有4个模块组成,分别为:时钟分频模块、汽车尾灯主控模块,左边灯控制模块和右边灯控制模块,以下介绍各模块的详细设计。

4

熊雄 汽车尾灯控制器的设计 第5页 共16页 3.3.1时钟分频模块

整个时钟分频模块的工作框图如图3.2所示。

CLK CP

图3.2时钟分频模块工作框图

时钟分频模块由VHDL程序来实现,下面是其中的一段VHDL代码: ARCHITECTURE ART OF SZ IS

SIGNAL COUNT:STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN

PROCESS(CLK) BEGIN

IF CLK'EVENT AND CLK = '1'THEN COUNT <= COUNT + 1; END IF; END PROCESS; CP<= COUNT(3); END ART;

3.3.2 汽车尾灯主控模块

汽车尾灯主控模块工作框图如图3.3所示。

CTRL LEFT LP RIGHT RP BRAKE LR NIGHT BRAKE_LED NIGHT_LED 图3.3 主控模块工作框图

汽车尾灯主控模块由VHDL程序来实现,下面是其中的一段VHDL代码: ARCHITECTURE ART OF CTRL IS BEGIN

NIGHT_LED<=NIGHT; BRAKE_LED<=BAKE; PROCESS(LEFT,RIGHT)

VARIABLE TEMP:STD_LOGIC_VECTOR(1 DOWNTO 0); BEGIN

TEMP:=LEFT & RIGHT;

5

.

熊雄 汽车尾灯控制器的设计 第6页 共16页 CASE TEMP IS

WHEN \ WHEN \ WHEN \ WHEN OTHERS=>LP<='0';RP<='0';LR<='1'; END CASE; END PROCESS; END ART;

3.3.3左边灯控制模块

左边灯控制模块的工作框图如图3.4所示。

LC CLK LP LEDL LR LEDB BRRAKE LEDN NIGHT

图3.4左边灯控制模块的工作框图

左边灯控制模块由VHDL程序来实现,下面是其中的一段VHDL代码: 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 ART;

3.3.4右边灯控制模块

右边灯控制模块的工作框图如图3.5所示。

6