基于Verilog交通灯仿真系统设计与仿真_第1页
基于Verilog交通灯仿真系统设计与仿真_第2页
基于Verilog交通灯仿真系统设计与仿真_第3页
基于Verilog交通灯仿真系统设计与仿真_第4页
基于Verilog交通灯仿真系统设计与仿真_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

基于 Verilog 交通灯仿真系统设计与仿真姓名:班级:1501011学号: 基于 Verilog 交通灯的设计与实现1、选题意义1.1 背景介绍交通信号灯是现代交通系统中必不可少的元素,用 Verilog 语言对交通信号灯进行模拟,设计一个交通灯信号控制电路。具体要求为:输入为 50MHz 的时钟和复位信号,输出为红、绿、黄三个信号(高电平为亮)。复位信号(高电平)有效,红、绿、黄灯灭;接着进行如下循环:绿灯亮 1 分钟,黄灯闪烁 10 秒,红灯亮 1 分钟。在此基础上再加两个数码管,对倒计时的数显示。1.2 研究价值通过交通灯的设计与仿真综合,体会复杂时序的实现方法,学会用框图表示程序的设计思想,掌握中小规模集成电路的系统综合设计方法。二、系统设计设计思路概述:考虑一个红绿黄交通灯及倒计时显示器设计首先复位电平置 1,所有的交通灯电平为低,即灭。首先绿灯亮 60s,然后黄灯闪烁 10s;红灯再接着亮 60s;而后绿灯亮 60s,黄灯闪烁 10s,红灯亮 60s以此循环,直至复位电平置 1,所有交通灯灭。三、模块设计与仿真顶层模块(module lights):模块例化,对控制模块和译码模块进行例化控制模块:交通灯颜色和倒计时时钟分频(frequencies):将 50MHZ 的频率分成我们所需要的 1HZ; 1颜色变化:状态循环及倒计时,状态用 light_status,如果状态 2light_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,灯亮的时间到,接着进行下一个状态,在时间减到 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 时刻,加上系统时钟,首先进行 reset 置 1,计数器清零,所有交通灯为灭的状态,二进制代码为 00,七段译码无显示。在 reset 为 0 时,系统开始正常工作。计数器开始工作,纵向路口的路灯亮,横向路口的红灯亮,二进制代码为 01,同时两个倒计时显示器工作,从 59到 0 的倒计时。经过 60s(也就是经过 60*50M 个系统时钟上升沿之后)纵向路口,横向路口的黄灯开始闪烁( 1 秒内只有半秒,黄灯是亮的,从 9 秒到 8.5秒之间黄灯是亮的,然后 8.5 到 8 是灭的,如此继续下去,知道 10 秒结束)又经过 10s(70*50M 个系统时钟上升沿),状态转移到红灯,然后显示及七段译码过程与绿灯相似。至此一个周期已经完成,接下来就是循环执行以上步骤的过程,直到有 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 led_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(dataoutshi).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 light_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;endelsecounter=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;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_

温馨提示

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

评论

0/150

提交评论