数字电路课程设计:基于FPGA和VHDL语言的交通灯控制系统设计    _第1页
数字电路课程设计:基于FPGA和VHDL语言的交通灯控制系统设计    _第2页
数字电路课程设计:基于FPGA和VHDL语言的交通灯控制系统设计    _第3页
数字电路课程设计:基于FPGA和VHDL语言的交通灯控制系统设计    _第4页
数字电路课程设计:基于FPGA和VHDL语言的交通灯控制系统设计    _第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

数字电路课程设计题目:基于FPGA和VHDL语言的交通灯控制系统设计设计者:李小栋学号:20080711209同组:彭钊日期:2010年12月20日交通灯控制器功能描述:通过两组交通灯来模拟控制十字路口东西、南北两条道路上的车辆通行,所有功能在实验操作平台上模拟通过,其主要功能如下:1. 根据要求显示模拟路口东西、南北两个方向上的红灯、黄灯和绿灯的指示状态。2. 在LED指示的同时,实现正常的倒计时功能。3. 控制实现两种特殊状态并用交通灯加以显示。4. 能实现系统总清零。5. 具有一定的扩展功能。设计任务:1.用红、黄、绿三色发光二极管做信号灯,主干道A为东西向,设红、黄、绿三色灯为AR、AG、AY;支干道B为南北向,三色灯为BR、BG、BY。2.主干道上车辆较多,所以亮绿灯的时间设为40s;支干道亮绿灯的时间设为35s。当主干道允许通行亮绿灯时则支干道亮红灯;相反,支干道允许通行亮绿灯时则主干道亮红灯。每次由绿灯转变为红灯时,其间要亮5s的黄灯作为过渡,以便行驶中的车辆有时间停到禁止线以内。3.交通灯正常运行时,在LCD 显示屏上显示主干道和支道的倒计时时间,ES主干道在当前状态的剩余时间,SN显示支干道在当前状态的剩余时间。4.能实现系统清0,清0后计数器由初始状态开始计数,指示灯指示主干道亮黄灯。5.能实现特殊状态的显示,用开关S作为特殊信号传感器,S为1时进入特殊状态并实现以下功能: (1)计数器停止计数并保持原来的时间数据。(2)东西、南北方向的三色灯全显示红色状态。 (3)特殊状态解除后能继续返回正常工作状态。设计要求1.分析设计任务,拟定多种设计方案,根据当时的制作条件,选定适合的方案绘制框图和设计流程。2.设计各部分单元电路或编写VHDL描述程序。3.对制作的电路进行功能测试,分析各项技术指标;或对设计的电路进行功能仿真,分析仿真波形。4.总结设计资料,但因包括原理电路、VHDL描述、仿真波形的设计报告,校验并演示电路装置。状态顺序与灯亮对应表态序(S1 S0)主干道(A)支干道(B)亮灯时间1 (0 0)黄灯亮红灯亮5S2 (0 1)红灯亮绿灯亮35S3 (1 0)红灯亮黄灯亮5S4 (1 1)绿灯亮红灯亮40S交通灯控制状态图5S未到,保持原状态5S到,转到下一状态00状态YA,RB40S未到,保持原状态40S到,转到下一状态35S未到,保持原状态35S到,转到下一状态5S未到,保持原状态5S到,转到下一状态10状态RA,YB01状态RA,GB11状态GA,RB译码器真值表SS1S0AGARAYBGBRBY1XX010010000001010001010100011100010系统设计输入: 本实验采用硬件语言输入,其整体VHDL源文件描述如下,其中“S0”“S1”“S2”“S3”为事先设定的四种状态library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity JIAOTONGDENG is port (CP,RS,SPE: IN STD_LOGIC; -输入 EWRYG,SNRYG:OUT STD_LOGIC_VECTOR(2 DOWNTO 0); -各方向上交通灯颜色显示 EW,SN: OUT STD_LOGIC_VECTOR(7 DOWNTO 0)-ASCII码LCD显示 );end JIAOTONGDENG ;architecture JGT of JIAOTONGDENG ISTYPE STATES IS(S0,S1,S2,S3); -定义状态SIGNAL S:STATES;SIGNAL AQ,AQQ,BQQ: STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL CQ,CQQ,CQQQ: STD_LOGIC_VECTOR(7 DOWNTO 0);SIGNAL AARYG,AAARYG,BBRYG,BBBRYG:STD_LOGIC_VECTOR(2 DOWNTO 0);FUNCTION SAM (BIN:STD_LOGIC_VECTOR(7 DOWNTO 0) -2位16进制转2位BCD码函数RETURN STD_LOGIC_VECTOR ISVARIABLE SBCD,ADDBCD :STD_LOGIC_VECTOR(7 DOWNTO 0);VARIABLE N:INTEGER RANGE 0 TO 8;BEGINN:=0;SBCD:=00000000;IF BIN ADDBCD:=00000001; WHEN 1= ADDBCD:=00000010; WHEN 2= ADDBCD:=00000100; WHEN 3= ADDBCD:=00001000; WHEN 4= ADDBCD:=00010110; WHEN 5= ADDBCD:=00110010; WHEN 6= ADDBCD:=01100100; WHEN OTHERS= ADDBCD:=00000000; END CASE; SBCD:=SBCD+ADDBCD; IF SBCD(3 DOWNTO 0)1001 THEN -进行BCD码加法调整 SBCD:=SBCD+0110; END IF;END IF;N:=N+1;EXIT WHEN N=8;END LOOP;RETURN SBCD;ELSE RETURN 00000000;END IF;END FUNCTION SAM;BEGINPROCESS(CP,RS,SPE)BEGINIF RS=1 THEN S=S0; AQ=X00; AARYG=010;BBRYG=010; AQQ=X00; BQQ=X00;ELSIF CP=1 AND CP EVENT THEN IF SPE=1 THEN AARYG=100;BBRYG=100; CQ=AQ;CQQ=AQQ;CQQQ0 THEN AQ=X00;AQQ=X00; BQQ=X00; ELSE AQ=CQ; AQQ=CQQ; BQQ IF AQ0 THEN AQ=AQ-1; AARYG=AAARYG;BBRYG=BBBRYG;AQQ=AQQ-1;BQQ=BQQ-1; ELSE AQ=X22; S=S1; AARYG=100;BBRYG=001;AAARYG=100;BBBRYG=001;AQQ=X27; BQQ IF AQ0 THEN AQ=AQ-1; AARYG=AAARYG;BBRYG=BBBRYG; AQQ=AQQ-1; BQQ=BQQ-1; ELSE AQ=X04; S=S2; AARYG=100;BBRYG=010;AAARYG=100;BBBRYG=010;AQQ=X04;BQQ IF AQ0 THEN AQ=AQ-1; AARYG=AAARYG;BBRYG=BBBRYG;AQQ=AQQ-1;BQQ=BQQ-1; ELSE AQ=X27; S=S3; AARYG=001;BBRYG=100; AAARYG=001;BBBRYG=100;AQQ=X27; BQQ IF AQ0 THEN AQ=AQ-1; AARYG=AAARYG;BBRYG=BBBRYG;AQQ=AQQ-1; BQQ=BQQ-1; ELSE AQ=X04; S=S0; AARYG=010;BBRYG=100; AAARYG=010;BBBRYG=100;AQQ=X04;BQQ=X04; -转次态S0,主黄支红倒计5s END IF; END CASE; END IF; END IF;END PROCESS;PROCESS(AQQ,BQQ)BEGINEW=SAM(AQQ);SN=SAM(BQQ);END PROCESS;PROCESS(AARYG,BBRYG)BEGINEWRYG=AARYG;SNRYG CP, EW = EW, EWRYG = EWRYG, RS = RS, SN = SN, SNRYG = SNRYG, SPE = SPE );STIMULUS0:process begin - insert stimulus here RS=1;WAIT FOR 2 NS; RS=0;SPE=0;WAIT FOR 1 NS; RS=0;SPE=1;WAIT FOR 1NS; RS=0;SPE=0;WAIT; END PROCESS; PROCESS BEGIN CP=0;WAIT FOR 5 NS; CP=1;WAIT FOR 5 NS; end process; WRITE_RESULTS( CP, EW, EWRYG, RS, SN, SNRYG, SPE );end architecture;仿真波形:交通灯控制电路原理图:心得体会通过这两周的课程设计,我在这次的设计当中学习到了很多的知识,感激学校给了我们这次动手实践的机会,让我们学生有了一个共同学习,增长见识,开拓视野的机会。也感谢老师们对我们无私忘我的指导,我会以这次课程设计作为对自己的激励,继续学习。这次设计不仅培养了我如何去把握一件事情,如何去做一件事情,而且还教会了我如何完成一件事情。在设计过程中,与同学分工设计,和同学们相互探讨,相互学习,相互监督。学会了合作,学会了运筹帷幄,学会了宽容,学会了理解,也学会了做人与处世。在这次的课程设计中,在收获知识的同时,还收获了阅历,收获了成熟,在此过程中,我们通过查找大量资料,请教老师,以及不懈的努力,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。更重要的是,在设计时,我们学会了很多学习的方法。而这是日后最实用的,真的是受益匪浅。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。 当然,从设计中也发现自己平时学习的不足和薄弱环节,从而加以弥补。我觉得做课程设计同时也是对课本知识的巩固和加强,由于课本上的知识太多,平时课间的学习并不能很好的理解和运用各个元件的功能,而且考试内容有限,所以在这次课程设计过程中,我们了解了很多元件的功能,并且对于其在电路中的使用有了更多的认识。 同时我认为我们的工作是一个团队的工作,团队需要个人,个人也离不开团队,必须发扬团结协作的精神。某个人的离群都可能导致导致整项工作的失败。实习中只有一个人知道原理是远远不够的,必须让每个人都知道,否则一个人的错误,就有可能导致整个工作失败。团结协作是我们实习成功的一项非常重要的保证。而

温馨提示

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

评论

0/150

提交评论