基于VHDL语言的交通灯设计程序_第1页
基于VHDL语言的交通灯设计程序_第2页
基于VHDL语言的交通灯设计程序_第3页
基于VHDL语言的交通灯设计程序_第4页
基于VHDL语言的交通灯设计程序_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、library ieee; -分频电路entity fen isport(clk:in std_logic;clk1:out std_logic; -实体端口声明end fen;architecture fen_arc of fen is -结构体描述开始beginprocess(clk -进程开始variable cnt:integer range 0 to 99;beginif clk'event and clk='1' then -高电平到if cnt=99 thencnt:=0; -0开始计数clk1<='1' -输出高电平elsecnt:

2、=cnt+1; -加计数clk1<='0' -输出低电平end if;end if;end process; -进程描述结束end fen_arc; -结构体描述结束-A路控制library ieee;entity Alu isport(clk:in std_logic;ar,ag,al,ay:out std_logic; -红、绿、黄、左转timas,timag:out std_logic_vector(3 downto 0; -十位、个位计数end Alu;architecture alu_arc of Alu istype rgly is(red,green,lef

3、t,yellow; -灯亮顺序为红、绿、左转、黄beginprocess(clkvariable a:std_logic; -变量声明variable ts,tg:std_logic_vector(3 downto 0;variable state:rgly;beginif clk'event and clk='1' then -高电平case state iswhen green=>if a='0' then -绿灯状态ts:="0010" -十位计2tg:="0100" -个位计4a:='1

4、9;ag<='0'ar<='1'elseif not(ts="0000" and tg="0001" then -若计数值不为1if tg="0000" then -若个位为1tg:="1001" -个位置9ts:=ts-1; -十位自减1 elsetg:=tg-1; -个位自减1 end if;elsets:="0000"tg:="0000"a:='0'state:=left; -转为左转灯状态end if;end

5、 if;when left=>if a='0' then -左转灯ts:="0000" -十位置0tg:="1001" -个位置9a:='1'aL<='0'ag<='1'elseif not (ts="0000" and tg="0001"thenif tg="0000" thentg:="1001"ts:=ts-1;elsetg:=tg-1;end if;elsets:="0000&

6、quot;tg:="0000"a:='0'state:=yellow;-转为黄灯状态end if;end if;when yellow=>if a='0' then -黄灯状态ts:="0000" -十位置0tg:="0100" -个位置9a:='1'ay<='0'aL<='1'elseif not(ts="0000" and tg="0001" thenif tg="0000"

7、 thentg:="1001"ts:=ts-1;elsetg:=tg-1;end if;elsets:="0000"tg:="0000"a:='0'state:=red;end if;end if;when red=>if a='0' then -红灯状态ts:="0011" -十位置3tg:="1001" -个位置9a:='1'ar<='0'ay<='1'elseif not(ts="0

8、000" and tg="0001" thenif tg="0000" thentg:="1001"ts:=ts-1 ;elsetg:=tg-1;end if;elsets:="0000"tg:="0000"a:='0'state:=green;end if;end if;end case;timas<=ts;timag<=tg;end if;end process;end alu_arc;-B路灯控制程序。与A路相似。library ieee;entity

9、 blu isport(clk:in std_logic;br,bg,bl,by:out std_logic;timbs,timbg:out std_logic_vector(3 downto 0;end blu;architecture blu_arc of blu istype rgly is(green,left,yellow,red; -灯亮顺序为绿、左转、黄、红beginprocess(clkvariable a:std_logic;variable ts,tg:std_logic_vector(3 downto 0;variable state:rgly;beginif clk&#

10、39;event and clk='1' thencase state iswhen green=>if a='0' thents:="0010"tg:="0100"a:='1'bg<='0'br<='1'elseif not(ts="0000" and tg="0001" thenif tg="0000" thentg:="1001"ts:=ts-1;elsetg:=tg-1;

11、end if;elsets:="0000"tg:="0000"a:='0'state:=left;end if;end if;when left=>if a='0' thents:="0000"tg:="1001"a:='1'bL<='0'bg<='1'elseif not (ts="0000" and tg="0001"thenif tg="0000" th

12、entg:="1001"ts:=ts-1;elsetg:=tg-1;end if;elsets:="0000"tg:="0000"a:='0'state:=yellow;end if;end if;when yellow=>if a='0' thents:="0000"tg:="0100"a:='1'by<='0'bL<='1'elseif not(ts="0000" and t

13、g="0001" then if tg="0000" thentg:="1001"ts:=ts-1;elsetg:=tg-1;end if;q:out std_logic_vector(6 downto 0; end dispa; architecture xuan_arc of dispa is signal d:std_logic_vector(3 downto 0; signal sel:std_logic_vector(2 downto 0; begin pi:process(clk variable tmp:std_logi

14、c_vector(2 downto 0; begin if clk'event and clk='1' then if tmp="000"then tmp:="001" elsif tmp="001" then tmp:="100" elsif tmp="100" then tmp:="101" elsif tmp="101" then tmp:="000" end if; end if; sel<=tmp

15、; end process pi; po:process(sel begin case sel is when "000"=>z<="1110"d<=d0; -B 路个位计数 when "001"=>z<="1101"d<=d1; -B 路十位计数 when "100"=>z<="1011"d<=d2; -A 路个位计数 when others=>z<="0111"d<=d3; -A

16、路十位计数 end case; end process po; p1:process(d begin case d is when "0000" =>q<="1000000" when "0001" =>q<="1111001" when "0010" =>q<="0100100" when "0011" =>q<="0110000" when "0100" =>q<="0011001"

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论