VHDL实验 交通灯控制.doc_第1页
VHDL实验 交通灯控制.doc_第2页
VHDL实验 交通灯控制.doc_第3页
VHDL实验 交通灯控制.doc_第4页
VHDL实验 交通灯控制.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

学生实验报告实验课名称:VHDL硬件描述语言实验项目名称:交通灯控制专业名称:电子科学与技术班级:电科二班学号:*学生姓名:*教师姓名:*_2010_年_11_月_11_日组别_同组同学_实验日期_年_月_日 实验室名称_成绩_一、实验名称: 交通灯控制二、实验目的与要求:实验目的: 通过对十字路口交通灯控制系统的设计,掌握不同进制计数归零的描述方法以及通过信号使进程进行相互通信的方法。实验要求:通过VHDL编程,实现十字路口交通灯的控制,要求用四个数码管分两组显示两个方向的递减计数值,并通过6个LED分两组显示两个方向的三色灯信号,并有一个异步重置端口,具体接口如下所示:首先在QuartusII上进行功能和时序仿真,之后通过器件及其端口配置下载程序到SOPC开发平台中。在硬件实现中,要求: 1. 用实验平台的中的4个数码管和6个LED显示输出,采用I/O模式7实现重置控制和输出显示。D8、D7、D6分别显示h方向的红、黄、绿三色灯(开发平台的LED都是红色的,此时我们只能示意),D3、D2、D1分别显示v方向的红、黄、clk:时钟输入端。 reset:异步重置端口,高电平有效; count_hh3.0:h方向计数器的高位显示输出;(注:以下把十字路口的两个方向记作h方向和v方向)count_hl3.0:h方向计数器的低位显示输出; count_vh3.0:v方向计数器的高位显示输出; count_vl3.0:v方向计数器的低位显示输出; light_h2.0:h方向的三色灯输出信号端; light_v2.0:v方向的三色灯输出信号端;绿三色灯,数码管8和数码管7用来显示h方向的高位和低位计数值,数码管2和数码管1用来显示v方向的高位和低位计数值(模式7中的数码管输入信号被设置称为8421码)。重置按键(reset)用按键1来实现。2. 为了获得合适的时钟频率,采用I/O板上的时钟资源clock0,所以,必须把适配板上的SL2时钟跳线如下图连接:3. 时钟信号采用实验平台的clock0时钟资源:可以通过跳线选择不同的时钟频率,clock0的时钟范围是0.5Hz20MHz。此频率不能选择的太高否则计数速度太快,没有实用意义。一般选择在1Hz即可。具体时序要求: 要求整个控制周期为100个时钟周期(100T),系统刚启动的时候h方向为绿灯(计数55),v方向为红灯(计数60),当重置按钮按下时,系统也要求恢复到此状态,具体时序如下表所示:起始 1周期结束h方向 55到0递减(绿灯) 5到0递减(黄灯)40到0递减(红灯) v方向 60到0递减(红灯) 35到0递减(绿灯)5到0递减(黄灯) 三、实验内容:u 新建工程:1、打开Quartus,新建工程,选择好路径,工程顶层名为traffic_control ;2、新建工程,如果包含已编好的文件则可以添加,如果无则可以略过 ;3、选择我们的器件信息:型号为:EP2C36F484C8。4、单击Next,指定第三方工具,这里我们不指定第三方EDA工具,单击Next后结束工程建立。u 建立编译VHDL文件:1、 单击FileNew菜单项,选择弹出窗口中的VHDL File项,单击OK按钮以建立打开空的VHDL文件,并以工程顶层文件名保存。2、输入源代码完后单击ProcessingStart Compilation开始编译,并修改其中的错误直到没有为止。u 建立矢量波形文件1、 单击FileNew命令,选择其中的Vector Waveform File项,点击OK建立空的波形文件,打开矢量波形文件编辑窗口;2、 双击窗口左边空白区域,打开Insert Node or Bus对话框;3、 单击Node Finder按钮,打开以下对话框,选择Filter下拉列表中的Pins:all,并点击List按酒以列出所有的端口,通过按钮把这些端口加入到右面的窗口中,单击OK完成端口的添加;4、 回到波形编辑窗口,对所有输入端口设置输入波形,具体可以通过左边的工具栏,或通过对信号单击鼠标右键的弹出式菜单中完成操作,最后保存次波形文件。u 进行仿真:1、单击AssignmentsSettings ,Simulation mode设置为Functional,即功能仿真。指定仿真波形文件后单击OK完成设置; 2单击ProcessingGenerate Functional Simulation Netlist以获得功能仿真网络表;3单击ProcessingStart Simulation完成功能仿真。4如果功能仿真无误后进行时序仿真:单击AssignmentsSettings,在弹出对话框中Simulation mode设置为Timing,即时序仿真。指定仿真波形文件后单击OK完成设置。5单击ProcessingStart Simulation,完成时序仿真。6如果时序仿真也没错即可下载工作了。四、实验条件:1. WindowsXP操作系统2. QuartusII EDA开发系统3. 杭州康芯SOPC硬件开发平台五、实验原理:本实验带有异步置位信号,通过比较,它的优先级最高;通过引入控制状态位state来区别通行的是H通道还是V通道;开始Yreset=1 ?重置各个端口Nclk上升沿Ystate=1?V通行计时NH通行计时NH/V计到0YState取反六、源代码:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity traffic_control isport(clk,reset:in std_logic;light_h,light_v:out std_logic_vector(2 downto 0);count_hh,count_hl:out std_logic_vector(3 downto 0);count_vh,count_vl:out std_logic_vector(3 downto 0);end entity;architecture try of traffic_control issignal state: std_logic;beginprocess(clk,reset)variable t1,t2,t3,t4:integer range 0 to 60;beginif(reset=1)thenlight_h=111;light_v=111;count_hh=1111;count_hl=1111;count_vh=1111;count_vh=1111;t1:=60;t2:=55;t3:=5;elsif(clkevent and clk=1)then-定义H禁止通行if (state=1)thenlight_h=100;count_hh=conv_std_logic_vector(t1 / 10),4);count_hl=conv_std_logic_vector(t1 rem 10),4);t1:=t1-1;if(t1=0)thent1:=60;state=not state;end if;if(t2/=0)thenlight_v=001;count_vh=conv_std_logic_vector(t2 / 10,4);count_vl=conv_std_logic_vector(t2 rem 10,4);t2:=t2-1;elselight_v=010;count_vh=conv_std_logic_vector(t3 / 10,4);count_vl=conv_std_logic_vector(t3 rem 10,4);t3:=t3-1;if(t3=0)thent2:=55;t3:=5;end if;end if;else-H通行light_v=100;count_vh=conv_std_logic_vector(t1 / 10,4);count_vl=conv_std_logic_vector(t1 rem 10,4);t1:=t1-1;if(t1=0)thent1:=60;state=not state;end if;if(t2/=0)thenlight_h=001;count_hh=conv_std_logic_vector(t2 / 10,4);count_hl=conv_std_logic_vector(t2 rem 10,4);t2:=t2-1;elselight_h=010;count_hh=conv_std_logic_vector(t3 / 10,4);count_hl=conv_std_logic_vector(t3 rem 10,4);t3:=t3-1;if(t3=0)thent2:=55;t3:=5;end if;end if;end if;end if;end process;end architecture;七、实验结果与分析:1、功能仿真: 2、时序仿真:分析:经过仿真,发现功能仿真符合要求,而理论上时序仿真也应该和功能仿真波形一样,所以可以下载仿真。当按下复位键时的状态;3、下载后实物操作:总结:由以上实物图可以看出实验的正确性。计数大的表示正在通行,通行的与禁止通行的时间上差5秒,说明处在红绿灯状态;时间显示状态一样,表示正在处于红黄灯的状态,通行状态即将转换;八、讨论和回答问题及体会:1、 经分析,可以发现这个程序是属于代码繁琐但原理简单那种,所以只要我们小心一般就不会出错;2、 善于分析题目要求,进行归类,用最少的代码对要求进行描述;3、 次程序运用了大量的if语句,为了部分是为了体现优先级,部分是作为条件判断用的,关于if的用法要注意将所

温馨提示

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

评论

0/150

提交评论