基于VHDL的交通灯设计EDA课程设计报告!!_第1页
基于VHDL的交通灯设计EDA课程设计报告!!_第2页
基于VHDL的交通灯设计EDA课程设计报告!!_第3页
基于VHDL的交通灯设计EDA课程设计报告!!_第4页
基于VHDL的交通灯设计EDA课程设计报告!!_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

1、EDA 课 程 设 计实验报告交通信号控制器的 VHDL 的设计一、设计任务及要求:设计任务: 模拟十字路口交通信号灯的工作过程,利用实验板上的两组红、 黄、绿 LED作为交通信号灯,设计一个交通信号灯控制器。要求:(1) 交通灯从绿变红时,有 4 秒黄灯亮的间隔时间;( 2) 交通灯红变绿是直接进行的,没有间隔时间;(3) 主干道上的绿灯时间为 40秒,支干道的绿灯时间为 20 秒;( 4) 在任意时间,显示每个状态到该状态结束所需的时间。支干道主干道图 1 路口交通管理示意图ABCD主干道交通灯 绿(40 秒) 黄(4 秒) 红(20 秒) 红(4 秒)支干道交通灯红红绿黄表 1 交通信号

2、灯的 4 种状态设计要求:1) 采用 VHDL语言编写程序,并在 QUARTUSII工具平台中进行仿真,下载到 EDA实验箱进行验证。2) 编写设计报告,要求包括方案选择、程序清单、调试过程、测试结果及心得体会。二 设计原理1、设计目的:学习DEA开发软件和 QuartusII的使用方法, 熟悉可编程逻辑器件的使用。 通 过制作来了解交通灯控制系统, 交通灯控制系统主要是实现城市十字交叉路口红 绿灯的控制 2设计说明( 1)第一模块: clk 时钟秒脉冲发生电路 在红绿灯交通信号系统中,大多数情况是通过自动控制的方式指 挥交通的。因此为了避免意外事件的发生,电路必须给一个稳定 的时钟( clo

3、ck )才能让系统正常运作。模块说明:系统输入信号:Clk: 由外接信号发生器提供 256 的时钟信号; 系统输出信号: full :产生每秒一个脉冲的信号;(2)第二模块:计数秒数选择电路 计数电路最主要的功能就是记数负责显示倒数的计数值, 对下一个模 块提供状态转换信号。模块说明:系统输入: full: 接收由 clk 电路的提供的 1hz 的时钟脉冲信号;系统输出信号:tm: 产生显示电路状态转换信号 tl :倒计数值 秒数个位变化控制信号 th:倒计数值 秒数十位变化控制信号(3)第三模块:红绿灯状态转换电路 本电路负责红绿灯的转换。模块说明:系统输入信号 :full: 接收由 clk

4、 电路的提供的 1hz 的时钟脉冲信号 tm: 接收计数秒数选择电路状态转换信号; 系统输出信号: comb_out: 负责红绿灯的状态显示。4)第四模块:时间显示电路本电路负责红绿灯的计数时间的显示模块说明:系统输入信号: tl :倒计数值 秒数个位变化控制信号;th:倒计数值 秒数十位变化控制信号;系统输出信号: led7s1: 负责红绿灯的显示秒数个位。led7s2: 负责红绿灯的显示秒数十位。三、设计方案图2 交通信号灯控制器的原理框图采用 VHDL语言输入的方式实现交通信号灯控制器图3 交通信号灯控制器程序原理框图该程序由 7个进程组成,进程 P1和P2将 CLK信号分频后产生 1秒

5、信号,进 程 P3、P4、P5构成两个带有预置数功能的十进制计数器, 其中 P4 产生允许十位 计数器计数的控制信号。进程 P6 实现状态转换和产生状态转换的控制信号,进 程 P7 产生次态信号和信号灯输出信号,以及每一个状态的时间值。四程序清单:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY traffic ISPORT (clk:in std_logic;led7s1:out std_logic_vector(6 downto 0);led7s2:out std_logic_ve

6、ctor(6 downto 0);comb_out:out std_logic_vector(5 downto 0);END;ARCHITECTURE one OF traffic ISTYPE dm IS (s0,s1,s2,s3);SIgnal current_state,next_state:dm;SIGNAL FULL : STD_LOGIC;SIGNAL tl :STD_LOGIC_VECTOR(6 DOWNTO 0);SIGNAL th:STD_LOGIC_VECTOR(1 DOWNTO 0);SIGNALtm :STD_LOGIC_VECTOR(6 DOWNTO 0);SIGNA

7、L TIME :STD_LOGIC_VECTOR(6 DOWNTO 0);BEGINP_REG: PROCESS(CLK)VARIABLE CNT8:STD_LOGIC_VECTOR(7 DOWNTO 0);BEGINIF CLKEVENT AND CLK=1 THENIF CNT8 = 11111111 THENCNT8:=01111111;FULL=1;ELSE CNT8 := CNT8+1;FULL = 0;END IF; END IF;END PROCESS P_REG;PROCESS(full)BEGINIF fullEVENT AND full=1 THENIF TIME10000

8、11 THENTIME=TIME+1;ELSe TIME =0000000;END IF;END IF;END PROCESS;REG:process( full,current_state)BEGINIF full=1 AND fullEVENT THEN current_statecomb_out=001100;tm=39-time; if time=39 then next_state=s1;else next_statecomb_out=010100;tm=43-time; if time=43 then next_state=s2;else next_statecomb_out=10

9、0010;tm=63-time; if time=63 then next_state=s3;else next_statecomb_out=100001;tm=67-time; if time=67 then next_state=s0;else next_state=30 THEN th=11;tl=20 THEN th=10;tl=10 THEN th=01;tl=tm-10; ELSE th=00;tlled7s1led7s1led7s1led7s1null; end case;case tl iswhen 0000000=led7s2led7s2led7s2led7s2led7s2l

10、ed7s2led7s2led7s2led7s2led7s2null;end case;end process;end;五 仿真结果(如下图)六 引脚设置接下来就要选择目标器件并对相应的引脚进行锁定了,我们选择的器件为 cyclone 系列的 EP1C3T144芯片,引脚锁定方法如下图所示。将未使用的管脚设置为三态输入(一定要设置,否则可能会损坏芯片)本实验只能用采用模式 6 下载调试,一切正常七 实验心得体会通过这次课程设计,我进一步加深了对电子设计自动化的了解。并进一步 熟练了对 QuartusII 软件的操作。在编写程序的过程中,遇到了很多问题,使我 发现自己以前学习上存在的不足。 通过与同学探讨和请教老师, 终于把问题都解 决了,并加深了对交通灯原理和设计思路的了解。 同时也掌握了做课程设计的一 般流程,为以后的设计积累了一定的经验。做课程设计时,先查阅相关知识,把 原理吃透, 确定一个大的设计方向, 在按照这个方向分模块的把要实现的功能用 流程图的形式展示。 最后参照每个模块把输入和输出引脚设定, 运用我们所学的 VHDL语言进行编程。总

温馨提示

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

评论

0/150

提交评论