汽车尾灯VHDL设计

分享到:

1.系统设计要求

用6个发光管模拟6个汽车尾灯(左右各3个),用4个开关作为汽车控制信号,分别为:左拐、右拐、故障和刹车。车匀速行驶时,6个汽车尾灯全灭;右拐时,车右边3个尾灯从左至右顺序亮灭;左拐时,车左边3个尾灯从右至左顺序亮灭;故障时车6个尾灯一起明灭闪烁;刹车时,6个尾灯全亮

2.系统设计方案

根据系统设计要求,采用自顶向下设计方法,顶层设计采用原理图设计,它由主控模块、左边灯控制模块和右边灯控制模块三部分组成。

3参考VHDL源程序

(1) 主控制模块

说明:此程序为系统主控制模块。当左转时,lft信号有效;右转时,rit信号有效;当左右信号都有效的时,lr有效。

library ieee;

use ieee.std_logic_1164.all;

entity kz is

port(left,right:in std_logic;

lft,rit,lr:out std_logic);

end kz;

architecture kz_arc of kz is

begin

process(left,right)

variable a:std_logic_vector(1 downto 0);

begin

a:=left&right;

case a is

when"00"=>lft<=‘0’;

rit<=‘0’;

lr<=‘0’;

when"10"=>lft<=‘1’;

rit<=‘0’;

lr<=‘0’;

when"01"=>rit<=‘1’;

lft<=‘0’;

lr<=‘0’;

when others=>rit<=‘1’;

lft<=‘1’;

lr<=‘1’;

end case;

end process;

end kz_arc;

(2)左边灯控制模块

说明:此模块的功能是当左转时控制左边的3个灯,当左右信号都有效时,输出为全“1”。

library ieee;

use ieee.std_logic_1164.all;

entity lfta is

port(en,clk,lr:in std_logic;

l2,l1,l0:out std_logic);

end lfta;

architecture lft_arc of lfta is

begin

process(clk,en,lr)

variable tmp:std_logic_vector(2 downto 0);

begin

if lr=‘1’ then

tmp:="111";

elsif en=‘0’ then

tmp:="000";

elsif clk’event and clk=‘1’ then

if tmp="000" then

tmp:="001";

else

tmp:=tmp(1 downto 0)&’0’;

end if;

end if;

l2<=tmp(2);

l1<=tmp(1);

l0<=tmp(0);

end process;

end lft_arc;

继续阅读
基于VHDL的SDRAM控制器的实现

在高速实时或者非实时信号处理系统当中,使用大容量存储器实现数据缓存是一个必不可少的环节,也是系统实现中的重点和难点之一。SDRAM(同步动态随机访问存储器)具有价格低廉、密度高、数据读写

解析汽车尾灯控制电路工作原理及设计

前言 具有良好的汽车尾灯性能是汽车必不可少的,也是行车安全重要的一部分。汽车尾灯的闪烁并不是毫无规律的(电动汽车控制器),它是根据汽车行驶的方向不断变化的。汽车尾灯控制电路(汽车控制系统)与汽车尾灯

基于FPGA和VHDL的USB2.0控制器设计

在视频存储和图像宽带领域中,经常遇到实时高速数据传输的要求。2000年4月,由Intel、Microsoft、NEC、Compaq、Lucent、Phillips等公司共同制订的USB2.0(Univ

精彩活动