基于Verilog交通灯仿真系统设计与仿真.doc

上传人:龙*** 文档编号:3448569 上传时间:2019-05-30 格式:DOC 页数:17 大小:303.84KB
下载 相关 举报
基于Verilog交通灯仿真系统设计与仿真.doc_第1页
第1页 / 共17页
基于Verilog交通灯仿真系统设计与仿真.doc_第2页
第2页 / 共17页
基于Verilog交通灯仿真系统设计与仿真.doc_第3页
第3页 / 共17页
基于Verilog交通灯仿真系统设计与仿真.doc_第4页
第4页 / 共17页
基于Verilog交通灯仿真系统设计与仿真.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

1、基于 Verilog交通灯仿真系统设计与仿真姓名:班级:1501011学号: 基于 Verilog交通灯的设计与实现1、选题意义1.1背景介绍交通信号灯是现代交通系统中必不可少的元素,用 Verilog语言对交通信号灯进行模拟,设计一个交通灯信号控制电路。具体要求为:输入为 50MHz的时钟和复位信号,输出为红、绿、黄三个信号(高电平为亮)。复位信号(高电平)有效,红、绿、黄灯灭;接着进行如下循环:绿灯亮 1分钟,黄灯闪烁 10秒,红灯亮 1分钟。在此基础上再加两个数码管,对倒计时的数显示。1.2研究价值通过交通灯的设计与仿真综合,体会复杂时序的实现方法,学会用框图表示程序的设计思想,掌握中小

2、规模集成电路的系统综合设计方法。二、系统设计设计思路概述:考虑一个红绿黄交通灯及倒计时显示器设计首先复位电平置 1,所有的交通灯电平为低,即灭。首先绿灯亮 60s,然后黄灯闪烁 10s;红灯再接着亮 60s;而后绿灯亮 60s,黄灯闪烁 10s,红灯亮 60s以此循环,直至复位电平置 1,所有交通灯灭。三、模块设计与仿真顶层模块(module lights):模块例化,对控制模块和译码模块进行例化控制模块:交通灯颜色和倒计时时钟分频(frequencies):将 50MHZ的频率分成我们所需要的 1HZ; 1颜色变化:状态循环及倒计时,状态用 light_status,如果状态 2light_

3、status为 0,绿灯亮,时间(60s)给统计灯亮时间的变量 light_long,并且把显示灯亮的变量 light_select赋值 100(高电平表示亮) ,最后把状态标志位 light_status赋 1,控制倒计时。交通灯亮灭情况:light_out 交通灯亮灭情况001 红灯亮010 黄灯亮100 绿灯亮倒计时:灯亮或闪烁时间(绿、黄、红分别为 60s、10s、60s)用 BCD 3码表示(分别为 60h、10h、60h),倒计时的时候个位和十位分别是高四位和低四位,首先是低四位倒数,当倒数到 0时,重新赋值为 9,且高四位减 1,如此循环,直到这个数减到 0,灯亮的时间到,接着进

4、行下一个状态,在时间减到 0的时候,给使能端 enable 赋值 0;高四位和低四位分别显示十位和个位。译码模块:黄灯闪烁及倒计时译码输出。黄灯闪烁:黄灯在 1s内亮 0.5s灭 0.5s,中间位当分频时钟 y_flicker 1为高且输入 light_select为高时,输出 light_out 才为高(黄灯亮) ,别的情况 light_out中间位都为低(黄灯灭) 。七段译码:38 译码器,把倒计时译码输出显示 2七 段 数 码 显 示 管 二 进 制 代 码 顺 序 : 7b abcdefg f e c a b d g 模块框图:控 制 模 块 顶层模块 译 码 模 块 3时序说明在 0

5、时刻,加上系统时钟,首先进行 reset置 1,计数器清零,所有交通灯为灭的状态,二进制代码为 00,七段译码无显示。在 reset为 0时,系统开始正常工作。计数器开始工作,纵向路口的路灯亮,横向路口的红灯亮,二进制代码为 01,同时两个倒计时显示器工作,从 59到 0的倒计时。经过 60s(也就是经过 60*50M个系统时钟上升沿之后)纵向路口,横向路口的黄灯开始闪烁( 1 秒内只有半秒,黄灯是亮的,从 9秒到 8.5秒之间黄灯是亮的,然后 8.5到 8是灭的,如此继续下去,知道 10秒结束)又经过 10s(70*50M 个系统时钟上升沿),状态转移到红灯,然后显示及七段译码过程与绿灯相似

6、。至此一个周期已经完成,接下来就是循环执行以上步骤的过程,直到有 reset清零端打断其正常工作。状 态 3 红 灯 亮 60s 状 态 2 黄 灯 闪 烁 10s 状 态 1 绿 灯 亮 60s 初 始 状 态 4计框图及相关时序reset ck50M 黄 灯 闪烁 十 位 个 位 七 段 数码 管 交通灯状态 时 钟分 频 四、系统仿真/ 顶层模块module lights(clk50MHz,reset,light_out,led_ctrlge,led_ctrlshi);input clk50MHz;input reset;output 2:0 light_out;output 6:0 l

7、ed_ctrlge;output 6:0 led_ctrlshi;wire 3:0 dataoutge; wire 3:0 dataoutshi; wire 2:0 light_selccted; controlcontrollk50MHz),.reset(reset),.doutge(dataoutge),.doutshi(dataoutshi),.light_select(light_selccted); /控制模块例化decodeU_decode(.sysclk_50MHz(sysclk_50M,.reset(reset),.inge(dataoutge),.inshi(dataouts

8、hi).light_sel(light_selccted),.light_out(light_out),.led_datage(led_ctrlge),.led_datashi(led_ctrlshi); / 译码模块例化endmodule/ 控制模块Module control (clk50MHz,reset, outge, outshi, light_select);input clk50MHz;input reset;output3:0 outge;output3:0 outshi;output2:0 light_select;reg 2:0 light_select;reg 1:0 l

9、ight_status;reg clk1Hz; reg 24:0 counter; reg enable;reg 7:0 light_long; parameter g_long=8h59; parameter y_long=8h09; parameter r_long=8h59; always(posedge clk50MHz or posedge reset)beginif(reset)beginclk1Hz=0;counter=5d0;endelseif(counter=25d25000000-1)begincounter=25d0;clk1Hz=clk1Hz;endelsecounte

10、r=counter+1;endalways(posedge clk1Hz or posedge reset)beginif(reset)beginlight_select=3b000;light_status=2d0;enable=0;endelseif(enable=0)beginenable=1; case(light_status)0: beginlight_long=g_long; light_select=3b100; light_status=2d1; end1: beginlight_long=y_long;light_select=3b010;light_status=2d2;

11、end2: beginlight_long=r_long;light_select=3b001; light_status=2d0; enddefault light_select=3b000;endcaseendelseif(light_long=0)enable=0;elseif(light_long3:0=0)beginlight_long3:0=4d9;light_long7:4=light_long7:4-1;endelselight_long3:0=light_long3:0-1;endassign outge=light_long3:0;assign outshi=light_long7:4;endmodule/ 译码模块module decode (clk50MHz, reset, inge,inshi,light_sel,light_out,led_datage, led_datashi );

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。