版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 基于vhdl交通灯设计实验报告 学 院 名 称:班 级:姓 名: 2011年 1 月 目 录序言··········································
2、;············3一 实验目的····································
3、3;················3二 实验要求································
4、83;················3三 实验步骤································
5、183;···············4四 实验设计·································&
6、#183;············44.1 端口描述模块···································
7、183;·······44.2 计数模块的设计········································
8、183;54.3 控制模块的设计·········································5 4.3.1 时间状态的转换····
9、;························5 4.3.1 信号灯的状态显示·······················&
10、#183;··65、 实验电路波形图·······································86、 实验心得·····
11、········································9参考文献·········&
12、#183;·······································10附录·········
13、83;···········································10序言vhdl的英文全写是:vhsic(very high speed in
14、tegrated circuit)hardware description language.翻译成中文就是超高速集成电路硬件描述语言。因此它的应用主要是应用在数字电路的设计中。vhdl主要用于描述数字系统的结构,行为,功能和接口vhdl的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。 随着基于vhdl的eda技术的发展和应用领域的扩大与深入,eda技术在电子信息、通信、自动控制用计算机等领域的重要性日益突出。作为一个学电子信息专业的学生,我们必须不断地了解更多的
15、新产品信息,这就更加要求我们对eda有个全面的认识。本程序设计的是交通灯的设计。采用eda作为开发工具,vhdl语言为硬件描述语言,quartusii作为程序运行平台,所开发的程序通过调试运行、波形仿真验证,初步实现了设计目标在一个交通繁忙的十字路口,没有交通灯来控制来往车辆和行人的通行,假设也没有交警,那会发生什么事情呢?后果是难以想象的,可能会陷入一片混乱,甚至瘫痪。当然我们每个人都不希望这样。我们作为社会的一员,每人都有责任为它的更加先进和快捷做出力所能及的事情。我们设计的这个信号控制系统可以通过交通灯控制东西方向车道和南北方向车道两条交叉道路上的车辆交替运行,每次通行时间都可以根据实际
16、情况预设,用以减少交通事故的发生概率。并且经过些次实验使得我们对电子技术课程内容的理解和掌握有了更深一层的认识,掌握电子电路的基本分析方法和设计方法。一、实验目的 设计一个基于eda的十字路口交通控制器,假设南北方向和东西方向,两个方向分别设置红灯、绿灯、黄灯,每个方向设置一组倒计时显示器,用以指挥车辆和行人有序的通行。红灯亮表示直行车辆禁行;绿灯亮表示直行车辆可以通行;黄灯亮表示直行车辆即将禁行;.二、 实验要求 在十字路口南北和东西两个方向各设一组红灯、绿灯、黄灯。显示顺序:绿灯 黄灯 红灯 黄灯 红灯。南北方向绿灯、黄灯和红灯显示时间分别是40*tclk、5*tclk,南北方向红灯显示时
17、间为东西方向黄绿灯显示时间的总和;东西方向绿灯、黄灯和红灯显示时间亦为40*tclk、5*tclk,东西方向红灯显示时间为南北方向黄绿灯显示时间的总和。(tclk为时钟周期)3、 实验步骤 在vhdl设计描述中,采用自顶向下的设计思路,该思路,首先要描述顶层的接口,上面的描述已经规定了交通灯控制的外部时钟信号clk,输出信号:east_green_led;east_yellow_led ;east_red_led;south_green_led ;south_yellow_led;south_red_led。在自顶向下的vhdl设计描述中,通常把整个设计的系统划分为几个模块,然后采用结构描述方
18、式对整个系统进行描述。根据实验设计的结构功能,来确定使用哪些模块以及这些模块之间的关系。通过上面的分析,不难得知可以把交通灯控制系统划分为3个模块:端口描述模块,计数模块,控制模块。端口描述模块:定义实验要求的输入输出信号和灯亮时间; 计数器模块:这里需要的计数器的计数范围为0150。计到150后,下一个时钟沿升为1时,开始下一轮计数0。控制模块:通过计数器的计数控制东西南北方向灯的亮灭。4、 实验设计:4.1 端口描述模块实体:entity jiaotongdeng is generic(-定义灯亮的时间 east_green_cnt:integer:=40;-东西方向主干道绿灯 east_
19、yellow_cnt:integer:=5;-东西方向主干道黄灯 south_green_cnt:integer:=40;-南北方向支干道绿灯 south_yellow_cnt:integer:=5);-南北方向支干道黄灯 port(clk:in std_logic; east_green_led:out std_logic; east_yellow_led:out std_logic; east_red_led:out std_logic; south_green_led:out std_logic; south_yellow_led:out std_logic; south_red_led
20、:out std_logic);end jiaotongdeng;功能:实现输出端口、外部时钟的定义4.2 计数模块的设计signal cnt:integer range 0 to 150;.if clk'event and clk='1' then if enable_cnt='1' then cnt<=cnt+1; else cnt<=1; end if; 功能:实现0到150的计数4.3 控制模块的设计4.3.1 时间状态的转换u1:process(clk)-信号灯的时间状态的转换beginif clk'event and cl
21、k='1' then if enable_cnt='1' then cnt<=cnt+1; else cnt<=1; end if; case state is when s0=> if (cnt=east_green_cnt)then state<=s1; else state<=s0; end if; when s1=> if (cnt=east_yellow_cnt)then state<=s2; else state<=s1; end if; when s2=> if(cnt=south_green_
22、cnt)then state<=s3; else state<=s2; end if; when s3=> if (cnt=south_yellow_cnt)then state<=s0; else state<=s3; end if; when s4=> end case; end if;end process u1;4.3.2信号灯的状态显示u2:process(state)-信号灯的状态显示begin case state is when s0=> east_green_led<='1' east_yellow_led<
23、;='0' east_red_led<='0' south_green_led<='0' south_yellow_led<='0' south_red_led<='1' enable_cnt<='1' if(cnt=east_green_cnt)then enable_cnt<='0'-已达到东西方向绿灯亮时间,暂停计数 end if; when s1=> east_green_led<='0' east_yellow
24、_led<='1' east_red_led<='0' south_green_led<='0' south_yellow_led<='0' south_red_led<='1' enable_cnt<='1' if(cnt=east_yellow_cnt)then enable_cnt<='0' end if; when s2=> east_green_led<='0' east_yellow_led<=&
25、#39;0' east_red_led<='1' south_green_led<='1' south_yellow_led<='0' south_red_led<='0' enable_cnt<='1' if(cnt=south_green_cnt)then enable_cnt<='0' end if; when s3=> east_green_led<='0' east_yellow_led<='0'
26、 east_red_led<='1' south_green_led<='0' south_yellow_led<='1' south_red_led<='0' enable_cnt<='1' if(cnt=south_yellow_cnt)then enable_cnt<='0' end if; when s4=> east_green_led<='0' east_yellow_led<='0' east_red
27、_led<='1' south_green_led<='0' south_yellow_led<='0' south_red_led<='1' enable_cnt<='1' end case;end process u2;end ex;五、 实验电路波形图 六、实验心得课程设计对学生而言是其对所学课程内容掌握情况的一次自我验证,从而有着极其重要的意义。通过课程设计能提高学生对所学知识的综合应用能力,能全面检查并掌握所学内容,本学期我们进行了数字电路课程设计,老师命题,两人一小组进行设
28、计。趣味性强,同时也可以学到很多东西。我们做的是交通灯控制器的设计。在这学期的课程设计中,在收获知识的同时,还收获了阅历,收获了成熟,在此过程中,我们通过查找大量资料,请教老师,以及不懈的努力,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。更重要的是,我们学会了很多学习的方法。而这是日后最实用的,真的是受益匪浅。要面对社会的挑战,只有不断的学习、实践,再学习、再实践。通过这个程序设计让我学会一种新的语言,对数字系统结构也有了更进一步的了解和认识,对我以后的学习有很大的帮助。希望其他人在看再做类似设计时有所借鉴。通过几天的课程设计,我对数据库软件eda技术、vhdl、等系列知
29、识都有了一定的了解。使用eda技术开发页面的能力也有了很大提高。另外,我还学到了一个人的力量毕竟有限,但是团队的力量势不可挡,我们不能只靠自己,遇到不会的要多多求助同学, 这次课程设计虽然结束了,也留下了很多遗憾,因为由于时间的紧缺和许多课业的繁忙,并没有做到最好,但是,最起码我们没有放弃,它是我们的骄傲!相信以后我们会以更加积极地态度对待我们的学习、对待我们的生活。我们的激情永远不会结束,相反,我们会更加努力,努力的去弥补自己的缺点,发展自己的优点,去充实自己,只有在了解了自己的长短之后,我们会更加珍惜拥有的,更加努力的去完善它,增进它。只有不断的测试自己,挑战自己,才能拥有更多的成功和快乐
30、!快乐至上,享受过程,而不是结果!认真对待每一个实验,珍惜每一分一秒,学到最多的知识和方法,锻炼自己的能力,这个是我们在实时测量技术试验上学到的最重要的东西,也是以后都将受益匪浅的! 参考文献1、 vhdl设计初步.王虹现2、vhdl 程序设计(第二版). 曾繁泰等. 清华大学出版社 附录 总程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity a is generic( east_green_cnt:int
31、eger:=40; east_yellow_cnt:integer:=5; south_green_cnt:integer:=40; south_yellow_cnt:integer:=5); port(clk:in std_logic; east_green_led:out std_logic; east_yellow_led:out std_logic; east_red_led:out std_logic; south_green_led:out std_logic; south_yellow_led:out std_logic; south_red_led:out std_logic)
32、;end a;-architecture ex of a istype states is(s0,s1,s2,s3,s4);signal state1:states:=s0;signal state:states:=s0;signal cnt:integer range 0 to 150;signal save_cnt:integer;signal enable_cnt:std_logic:='0'beginu1:process(clk)beginif clk'event and clk='1' then if enable_cnt='1'
33、; then cnt<=cnt+1; else cnt<=1; end if; case state is when s0=> if (cnt=east_green_cnt)then state<=s1; else state<=s0; end if; when s1=> if (cnt=east_yellow_cnt)then state<=s2; else state<=s1; end if; when s2=> if(cnt=south_green_cnt)then state<=s3; else state<=s2; e
34、nd if; when s3=> if (cnt=south_yellow_cnt)then state<=s0; else state<=s3; end if; when s4=> end case; end if;end process u1;u2:process(state)begin case state is when s0=> east_green_led<='1' east_yellow_led<='0' east_red_led<='0' south_green_led<='0' south_yellow_led<='0' south_red_led<='1' enable_cnt<='1' if(cnt=east_green_cnt)t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电缆桥架工程竞标
- 食用油购销合同模板版
- 电池批发购销合同
- 绿植维护安装合同
- 垫资还款协议范本
- 2024《远洋货轮租赁合同》
- 2024建设工程可行性研究合同模板
- 2024班组分包合同范本
- 2024服装购销合同格式范本
- 2024解除、终止劳动合同协议书
- 7.2维护祖国统一 (课件) 2024-2025学年九年级道德与法治上册 (统编版)
- 企业出海蓝皮书
- 2024年中国民航科学技术研究院社会招聘工作人员16人历年高频500题难、易错点模拟试题附带答案详解
- 2024年秋季学期新人教版七年级上册英语课件 Unit 3 My School(第1课时)SectionA 1a-1d
- 2024-2030年中国有机三文鱼市场消费规模调查与前景销售规模研究报告
- 2024至2030年光纤光缆行业竞争格局分析与投资风险预测报告
- TCOSOCC 018-2024 信息安全技术 数据泄漏防护产品技术要求
- 幼儿园中班语言绘本《换一换》课件
- 2024义务教育语文课程标准(2022版)考试试题和答案
- 重大事故隐患判定标准课件
- 我国灾难医学发展与现状
评论
0/150
提交评论