EDA课程设计交通信号控制器的VHDL设计.doc_第1页
EDA课程设计交通信号控制器的VHDL设计.doc_第2页
EDA课程设计交通信号控制器的VHDL设计.doc_第3页
EDA课程设计交通信号控制器的VHDL设计.doc_第4页
EDA课程设计交通信号控制器的VHDL设计.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

湘 潭 大 学EDA课程设计报告课程设计名称:交通信号控制器的VHDL设计专业班级: 学生姓名: 学生学号: 指导教师: 完成时间: 2012年4月12日 目 录1. 设计任务及要求11.1设计任务11.2 设计要求12、设计方案12.1交通灯控制系统框图12.2交通灯控制器程序流程图23. 交通灯控制器单元模块的设计33.1 主控时序进程33.2 主控组合进程43.3 辅助进程44. 交通灯控制器顶层文件原理图45. VHDL源程序及仿真波形45.1 VHDL源程序45.2 仿真波形66. 硬件测试66.1 引脚锁定76.2 配置文件下载76.3 硬件调试7心得体会8参考文献9交通信号控制器的VHDL设计1. 设计任务及要求1.1设计任务模拟十字路口交通信号灯的工作过程,利用实验板上的两组红、黄、绿LED作为交通信号灯,设计一个交通信号灯控制器。要求:(1) 交通灯从绿变红时,有4秒黄灯亮的间隔时间;(2) 交通灯红变绿是直接进行的,没有间隔时间;(3) 主干道上的绿灯时间为40秒,支干道的绿灯时间为20秒;(4) 在任意时间,显示每个状态到该状态结束所需的时间。 支干道 主干道图1-1 十字路口交通管理示意图表1-1 交通信号灯的4种状态ABCD主干道交通灯绿(40秒)黄(4秒)红(20秒)红(4秒)支干道交通灯红红绿黄1.2 设计要求1) 采用VHDL语言编写程序,并在QUARTUSII工具平台中进行仿真,下载到EDA实验箱进行验证。2) 编写设计报告,要求包括方案选择、程序清单、调试过程、测试结果及心得体会。3) 设计时间和地点:两个星期,信息楼4楼EDA实验室。2、设计方案2.1交通灯控制系统框图路口交通灯控制系统与其他控制系统一样,划分为控制器和受控电路两部分。控制器使整个系统按设定的工作方式交替指挥车辆及行人的通行,并接收受控部分的反馈信号,决定其状态转换方向及输出信号,控制整个系统的工作过程。系统框图如图2-1。控制器显示显示r g yR G Y南北东西CLK图2-1 十字路口交通灯控制系统框图图2-1中RGY分别表示东西方向红绿黄交通灯;rgy分别表示南北方向红绿黄交通灯。各交通灯的状态及保持总时间如表2-1。表中1表示灯亮,0表示灯灭,顺序为红绿黄。表2-1 交通信号灯的4种状态S0S1S2S2主干道交通灯绿(40秒)010黄(4秒)001红(24秒)100支干道交通灯红(44秒)100绿(20秒)010黄(4秒)0012.2交通灯控制器程序流程图开始外部CLK控制Count加1Count=68?Count清零YN图2-2 交通灯控制器程序主流程图 S0Count=40?S1Count=44?S3Count=68?S2Count=64?001100010100100010100001YYYYNNNN图2-3交通灯控制器程序子流程图3. 交通灯控制器单元模块的设计本系统采用状态机设计,可分为三大模块,分别为主控时序进程,主控组合进程,辅助进程。3.1 主控时序进程主控时序进程是负责状态机运转和在时钟驱动下负责状态转换的进程。当时钟的有效跳变到来时,时序进程只是机械地将代表次态的信号next_state中的内容送人现态的信号current_state中,而信号next_state中的内容完全由其他进程根据实际情况来决定。本设计中在主控时序进程中放置了异步复位控制信号RST。3.2 主控组合进程主控组合进程也可称为状态译码进程,其任务是根据外部输入的控制信号(包括来自状态机外部的信号和来自状态机内部其他非主控的组合或时序进程的信号),或和当前状态的状态值确定下一状态(next_state)的取向,即next_state的取值内容,以及确定对外输出或对内部其他组合或时序进程输出控制信号的内容。本设计中主控组合进程通过信号current_s中的状态值,进入相应的状态,向外部输出交通灯和数码显示器控制信号,并在此状态中根据辅助进程的COUNT68的值来确定下一状态的走向,即向次态信号next_s中赋入相应的状态值。此状态值通过next_s传给主控时序进程,直到下一个时钟脉冲的到来再进入另一次的状态转换周期。3.3 辅助进程辅助进程用于配合状态机工作的组合进程或时序进程。本设计的辅助进程是秒计数器。秒计数器通过外部秒时钟CLK计数,当时钟CLK上升沿到来时,COUNT68的值加1,COUNT68的值传递给主控组合进程,COUNT68的值等于68时清零重新计数。此进程放置有异步复位控制信号RST。4. 交通灯控制器顶层文件原理图 图4-1 顶层文件原理图5. VHDL源程序及仿真波形5.1 VHDL源程序LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY TRAFFIC_LAMP IS PORT(CLK,RST: IN STD_LOGIC;LEDCTRL: OUT STD_LOGIC_VECTOR(5 DOWNTO 0); WESEGH: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); WESEGL: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); NSSEGH: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); NSSEGL: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END ENTITY TRAFFIC_LAMP;ARCHITECTURE behav OF TRAFFIC_LAMP IS TYPE FSM_ST IS(S0,S1,S2,S3); SIGNAL current_s,next_s:FSM_ST; SIGNAL COUNT68:STD_LOGIC_VECTOR(7 DOWNTO 0); BEGINCOUNT: PROCESS(RST,CLK) -辅助进程 BEGIN IF RST= 1 THEN COUNT68=00000000;-检测异步复位信号 ELSIF CLKEVENT AND CLK=1 THEN IF COUNT6801000011 THEN COUNT68=COUNT68+1; ELSE COUNT68=00000000; END IF; END IF;END PROCESS; REG: PROCESS (RST,CLK) -主控时序进程 BEGIN IF RST= 1 THEN current_s = s0; -检测异步复位信号 ELSIF clk=1 AND clkEVENT THEN current_s LEDCTRL= 010100; WESEG:=39-COUNT68;NSSEG:=43-COUNT68; IF COUNT68 =00100111 THEN next_s=s1; ELSE next_s LEDCTRL= 001100; WESEG:=43-COUNT68;NSSEG:=43-COUNT68; IF COUNT68 = 00101011 THEN next_s=s2; ELSE next_s LEDCTRL= 100010; WESEG:=67-COUNT68;NSSEG:=63-COUNT68; IF COUNT68 =00111111 THEN next_s = s3; ELSE next_s LEDCTRL = 100001; WESEG:=67-COUNT68;NSSEG:=67-COUNT68; IF COUNT68 =01000011 THEN next_s= s0; ELSE next_s 39 THEN WESEG:=WESEG+24; ELSIF WESEG29 THEN WESEG:=WESEG+18; ELSIF WESEG19 THEN WESEG:=WESEG+12; ELSIF WESEG9 THEN WESEG:=WESEG+6; ELSE NULL;END IF;IF NSSEG39 THEN NSSEG:=NSSEG+24; ELSIF NSSEG29 THEN NSSEG:=NSSEG+18; ELSIF NSSEG19 THEN NSSEG:=NSSEG+12; ELSIF NSSEG9 THEN NSSEG:=NSSEG+6; ELSE NULL;END IF;WESEGH=WESEG(7 DOWNTO 4);WESEGL=WESEG(3 DOWNTO 0);NSSEGH=NSSEG(7 DOWNTO 4);NSSEGL=NSSEG(3 DOWNTO 0); END PROCESS; END ARCHITECTURE behav;5.2 仿真波形6. 硬件测试硬件测试采用GW48实验箱,芯片为cyclone EP1C3T144C8,工作在模式NO.5状态下。6.1 引脚锁定根据GW48实验模式5电路结构图和模式结构图中I/O口与FPGA EP1C3T144C8的引脚对应引脚号锁定引脚。引脚锁定如表6-1。表6-1 引脚锁定端口名模式结构图中I/O口芯片引脚号端口名模式结构图中I/O口芯片引脚号WESEGH(3)PIO47106NSSEGL(3)PIO1942WESEGH(2)PIO46105NSSEGL(2)PIO1841WESEGH(1)PIO45103NSSEGL(1)PIO1740WESEGH(0)PIO4499NSSEGL(0)PIO1639WESEGL(3)PIO4398LEDCTRL(5)PIO1538WESEGL(2)PIO4297LEDCTRL(4)PIO1437WESEGL(1)PIO4196LEDCTRL(3)PIO1336WESEGL(0)PIO4085LEDCTRL(2)PIO1033NSSEGH(3)PIO2350LEDCTRL(1)PIO932NSSEGH(2)PIO2249LEDCTRL(0)PIO811NSSEGH(1)PIO2148RSTPIO01NSSEGH(0)PIO2047CLKCLOKE0936.2 配置文件下载将编译产生的SOF格式配置进FPGA中,打开编程窗和配置文件,将实验系统和并口通信线连接好,打开电源。在菜单TOOL中选择programmer,单机下载标符start按钮,即进入对目标器件FPGA的配置下载操作。6.3 硬件调试配置文件下载成功后,选择电路模式No.5,CLOKE0选择1HZ。观察数码管与LED信号指示灯的变化情况。若数码管与LED信号指示灯按照表2-1所述规律变化,说明控制器主程序正确可行。系统在工作的任意状态,按下按键1,系统回到初始状态,则表明异步复位控制正常。完成以上调试均正常,硬件测试成功。心得体会本次EDA课程设计的主要任务是根据设计要求编写VHDL程序,在Quartus II软件上编译仿真,最后下载到GW48实验箱进行硬件测试。本设计为交通信号控制系统,主要是编写交通信号控制器的VHDL程序。交通信号控制器设计的难点是状态较多,并且状态转换时间不相同。如果运用VHDL语言的顺序语句判断状态的转换,逻辑性比较强,结构不清晰。VHDL状态机是解决此类问题的最佳选择。状态机具有以下优点:1状态机克服了纯硬件数字系统顺序方式控制不灵活的缺点;2由于状态机的结构相对简单,设计方案相对固定;3、状态机容易构成性能良好的同步时序逻辑模块;4、与VHDL的其他描述方式相比,状态机的VHDL表述丰富多样、程序层次分明,结构清晰,易读易懂;在排错、修改和模块移植方面也有其独到的好处;5、在高速运算和控制方面,状态机更有其巨大的优势。 6、高可靠性。在程序波形仿真是出现了一个问题毛刺现象。在状态机设计中有比较多的方法消除电路中的毛刺现象,由于设计经验不足,问题没有得到解决。但分析毛刺仿

温馨提示

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

评论

0/150

提交评论