EDA专业课程设计交通灯.doc
《EDA专业课程设计交通灯.doc》由会员分享,可在线阅读,更多相关《EDA专业课程设计交通灯.doc(12页珍藏版)》请在咨信网上搜索。
可编程逻辑器件和VHDL课程设计 基于VHDL交通灯设计 班 级 : 08级通信(1)班 姓 名 : 学 号 : 指导老师姓名: 杨泽霖 摘要:伴伴随社会发展和人类生活水平提升,汽车数量在不停增加,交通事业得以蓬勃发展,而随之引发安全问题已经不容忽略。EDA技术发展和应用领域也在不停扩大和深入,机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域关键性日益突出。为了确保十字路口行人和车辆顺利,通畅经过,往往采取电子控制交通信号来进行指挥。利用EDA技术设计交通灯来完成这个需求就显愈加迫切,一样也是很实用和合理。 关键字:VHDL语言、交通灯、QuartusⅡ软件、 正文: 一、系统分析和总体方案 1系统分析 经过分析能够知道,所要设计十字路口交通灯控制电路要能够使南北方向有左转、直行各三个灯(红、黄、绿),东西方向有左转、直行各三个灯(红、黄、绿),三个灯能够按次序依次亮灭。而且要求绿灯亮转黄灯亮然后其它时间为红灯,红灯亮能够直接转绿灯(三种灯循环次序图2.1所表示)。还要求三种灯点亮时间能够以倒计时形式显示出来。能够用VHDL语言合理设计系统功效,使红黄绿灯转换有一个正确时间间隔和转换次序。 绿灯 黄灯 红灯 黄灯 红灯 图2.1三种灯循环次序 2 设计思绪 1 时间脉冲能够直接给予得到。 2 10s、5s、40s、30s定时信号用倒计时,计时起始信号由控制步骤电路给出,每当计满所需时间,即向控制电路输出“时间到”信号,并使计数器清零,由控制电路启、闭三色信号灯。 3 主控电路是关键,这是一个时序电路,其输入信号为东西、南北方向: 10s、5s、40s、30s定时信号,其输出状态控制对应三色灯。 4 三种灯转换状态表: 时间|S 10 5 40 5 10 5 30 5 东西左转 绿 黄 红 红 红 红 红 红 东西直行 红 红 绿 黄 红 红 红 红 南北左转 红 红 红 红 绿 黄 红 红 南北直行 红 红 红 红 红 红 绿 黄 3 设计方案 依据设计要求和系统所含有功效,并参考相关文件资料经行方案设计画出以下所表示十字路口交通灯控制器系统框图,及为设计总体方案,框图以下图2.2所表示: CLK 交通灯控制及计时模块 扫描显示模块 LED显示 图2.2 系统框图 电路设计 1控制器电路设计 步骤控制器作用是依据计数器计数值控制各方向上发光二极管亮、灭,当计时时间抵达,状态控制器就响应,自动跳转到下一个状态。另外,当检测到特殊情况(urgen =‘1’)发生时,无条件点亮红灯二极管(抢救灯按下urgen ='1',则东西南北全部亮红灯,在这种状态下原来状态必需保持,即东西南北方向定时时间保持不变。抢救灯未按下或按下后恢复,则继续计时(计时经过计数器count),同时恢复东西南北原来灯状态)。具体实物模块图3.1所表示: 图3.1控制器模块 程序实现以下: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY ledcontrol IS PORT( reset,clk,urgen : IN STD_LOGIC; state : OUT STD_LOGIC_VECTOR(2 DOWNTO 0); sub,set1,set2,set3,set4 : OUT STD_LOGIC); END ledcontrol; ARCHITECTURE a OF ledcontrol IS SIGNAL count : STD_LOGIC_VECTOR(6 DOWNTO 0); SIGNAL subtemp: STD_LOGIC; BEGIN sub<=subtemp AND (NOT clk) ; --将电平型信号变为脉冲型,即高电平时输出一个脉冲 statelabel: PROCESS (reset,clk) BEGIN IF reset='1' THEN --――系统复位 count<="0000000"; state<="000"; set2<='1';set4<='1'; ELSIF clk'event AND clk='1' THEN IF urgen='0' THEN count<=count+1;subtemp<='1';ELSE subtemp<='0';END IF;--――经过脉冲电平变换后,使得正常状态时,正常减计数,紧急状态下停止计数 IF count=0 then state<="000";set1<='1';set2<='1';set3<='1';set4<='1'; ELSIF count=10 then state<="001";set1<='1'; ELSIF count=15 THEN state<="010";set1<='1';set2<='1'; ELSIF count=55 THEN state<="011";set2<='1'; ELSIF count=60 THEN state<="100";set2<='1';set3<='1'; elsif count=70 THEN state<="101";set3<='1'; elsif count=75 THEN state<="110";set3<='1';set4<='1'; elsif count=105 THEN state<="111";set4<='1'; ELSIF count=110 THEN count<="0000000"; ELSE set1<='0'; set2<='0';set3<='0';set4<='0';END IF; END IF; -- ――控制步骤 END PROCESS statelabel; END a; 2输出显示电路设计 依据状态控制器所控制状态和计数器计时时间,选择目前状态下显示器,使显示器输出目前状态下数码管亮、灭指令,其中数码管显示采取动态扫描显示。具体实物模块图: 图3.2译码显示电路模块 程序实现以下: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY ledshow IS PORT(clk,urgen : IN STD_LOGIC; state : IN STD_LOGIC_VECTOR(2 DOWNTO 0); sub,set1,set2,set3,set4 : IN STD_LOGIC; eg1,ey1,er1,edg2,edy2,edr2,ng1,ny1,nr1,ndg2,ndy2,ndr2 : OUT STD_LOGIC; led1,led2 : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)); END ledshow; ARCHITECTURE a OF ledshow IS SIGNAL count1,count2,count3,count4 : STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL setstate1,setstate2,setstate3,setstate4 : STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL etg1,ety1,etr1,edirr1,edirg1,ediry1,norg2,nory2,norr2,nordirg2,nordiry2,nordirr2 : STD_LOGIC; BEGIN led1<="00000000" WHEN urgen='1' AND clk='0' ELSE --显示东西向行和停 count1 WHEN state="000" ELSE count1 WHEN state="001" ELSE count2 WHEN state="010" ELSE count2 WHEN state="011" ELSE count2; led2<="00000000" WHEN urgen='1' AND clk='0' ELSE count3 WHEN state="000" ELSE count3 WHEN state="001" ELSE count3 WHEN state="010" ELSE count3 WHEN state="011" ELSE count3 WHEN state="100" ELSE count3 WHEN state="101" ELSE count4 WHEN state="110" ELSE count4; etg1<='1' WHEN state="000" AND urgen='0' ELSE '0'; ety1<='1' WHEN state="001" AND urgen='0' ELSE '0'; etr1<='1' WHEN state="010" or urgen='1' OR state="011" OR state="100" OR state="101" OR state="110" OR state="111" ELSE '0'; edirg1<='1' WHEN state="010" and urgen='0' ELSE '0'; ediry1<='1' WHEN state="011" and urgen='0' ELSE '0'; edirr1<='1' WHEN state="000" OR urgen='1' OR state="001" OR state="100" OR state="101" OR state="110" OR state="111" ELSE '0'; norg2<='1' WHEN state="100" AND urgen='0' ELSE '0'; nory2<='1' WHEN state="101" and urgen='0' ELSE '0'; norr2<='1' WHEN state="000" OR state="001" OR state="010" OR state="011" OR state="110" OR state="111" OR urgen='1' ELSE '0'; nordirg2<='1' WHEN state="110" AND urgen='0' ELSE '0'; nordiry2<='1' WHEN state="111" and urgen='0' ELSE '0'; nordirr2<='1' WHEN state="000" OR state="001" OR state="010" OR state="011" OR state="100" OR urgen='1' OR state="101" ELSE '0'; setstate1<= "00010000" WHEN state="000" ELSE "00000101" WHEN state="001" ELSE "10010101" ; setstate2<= "00010101" WHEN state="000" ELSE --"00000101" WHEN state="001" ELSE "01000000" WHEN state="010" ELSE "00000101" WHEN state="011" ELSE "01010000" ; setstate3<= "01100000" WHEN state="000" ELSE "00010000" WHEN state="100" ELSE "00000101" WHEN state="101" ELSE "00110101" ; setstate4<= "01110101" WHEN state="000" ELSE "00110000" WHEN state="110" ELSE "00000101" ; label4: ----南北直行 PROCESS (sub) BEGIN IF sub'event AND sub='1' THEN IF set4='1' THEN count4<=setstate4; elsif count4(3 downto 0)="0000" then count4<=count4-7; ELSE count4<=count4-1; END IF; ndy2<=nordiry2; ndg2<=nordirg2; ndr2<=nordirr2; END IF; END PROCESS label4; label3: ----南北左行 PROCESS (sub) BEGIN IF sub'event AND sub='1' THEN IF set3='1' THEN count3<=setstate3; elsif count3(3 downto 0)="0000" then count3<=count3-7; ELSE count3<=count3-1; END IF; ng1<=norg2; ny1<=nory2; nr1<=norr2; END IF; END PROCESS label3; label2: ---东西直行 PROCESS (sub) BEGIN IF sub'event AND sub='1' THEN IF set2='1' THEN count2<=setstate2; elsif count2(3 downto 0)="0000" then count2<=count2-7; ELSE count2<=count2-1; END IF; edg2<=edirg1; edy2<=ediry1; edr2<=edirr1; END IF; END PROCESS label2; label1: --东西左行 PROCESS (sub) BEGIN IF sub'event AND sub='1' THEN IF set1='1' THEN count1<=setstate1; elsif count1(3 downto 0)="0000" then count1<=count1-7; ELSE count1<=count1-1; END IF; eg1<=etg1; er1<=etr1; ey1<=ety1; END IF; END PROCESS label1; END a; 程序仿真和分析 1 仿真结果 利用Quartus II软件对本程序进行编译,生成了能够进行仿真定时分析和下载到可编程器件相关文件。仿真结果图5.1所表示: 图5.1 仿真结果 2 仿真结果分析 经过设定clk值和reset和urgen初值,就能够得到如上所表示仿真波形图。由仿真波形图能够看出波形是由reset初值信号触发而显示出各个状态。Urgen高电平信号输入时,全部交通灯全部变为红灯状态。由仿真波形图还能够清楚看出各时间段每个交通灯状态。 要得到正确仿真波形图就不许设定适宜时间信号clk值。假如clk值设置太小则交通灯状态改变得太快无法分辨,假如clk值设置得太大则交通灯状态转换缓慢,效果不显著。其次,要设定reset初值,假如没有设定reset初值就不可能触发而得到仿真图。最终,就是要设置一Urgen高电平信号来检测紧急情况下交通灯状态。 心得体会 经过此次课程设计,使我对EDA程序设计有了深入学习,深入认识;在程序设计,程序调试方面全部学到了很多东西,这是第一次编写EDA大程序,很有成就感。在这几天课设时间里,试验室气氛对我们影响很大,大家一起努力,这也是我们能完成课设动力。在编程中出现问题时,一定要戒骄戒躁,脚扎实地,认真看书,仔细分析,仔细调试,就一定会发觉错误,克服困难,我们也是这么做,这在课设中十分关键。从这次课程设计中,我真真正正意识到,在以后学习中,要理论联络实际,把我们所学理论知识用到实际当中,学习EDA更是如此,程序只有在常常写和读过程中才能提升,加深了我对Quartus II软件应用熟悉了此软件具体操作,这就是我在这次课程设计中最大收获。 生活就是这么,汗水预示着结果也见证着收获。劳动是人类生存生活永恒不变话题。即使我这次做课程设计不是很复杂,但在设计和仿真过程中,碰到了不少困难,回首整个过程,却受益匪浅。 对我而言,知识上收获关键,精神上丰收愈加可喜。让我知道了学无止境道理。我们每一个人永远不能满足于现有成就,人生就像在爬山,一座山峰后面还有更高山峰在等着你。挫折是一份财富,经历是一份拥有。这次课程设计必将成为我人生旅途上一个很美好回想! 参考文件 [1] 阎石 主编,《数字电子技术基础》,高等教育出版社,1998 [2] 谭会生等主编,《EDA技术及应用》,西安电子科技大学出版社, [3] 廖裕评等主编,《CPLD数字电路设计——使用MAX+plusⅡ入门篇》,清华大学出版社, [4] 冯涛等主编,《可编程逻辑器件开发技术:MAX+plusⅡ入门和提升》,人民邮电出版社, [5] 杨崇志,《特殊新型电子元件手册》,辽宁科学技术出版社,1999 [6] 彭介华,《电子技术课程设计指导》高等教育出版社.出版. [7] Mark Zwolinski, Digital System Design with VHDL, 电子工业出版社, [8] Alan B. Marcovitz Introduction to logic Design, 电子工业出版社,- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 专业课程 设计 交通灯
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【a199****6536】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【a199****6536】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【a199****6536】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【a199****6536】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文