交通灯设计 verilog

合集下载

基于verilog的交通灯程序

基于verilog的交通灯程序

module traffic(clk,sm_bit,key,sm_seg,en,rst,hold,light1,light2);

input clk;//定义时钟引脚

input rst,en; //定义复位和使能引脚

output [7:0]sm_bit;//定义数码管位选引脚

output [7:0]sm_seg;//定义数码管段选引脚

output[2:0]light1,light2;//定义两个方向交通灯

reg [7:0]sm_bit_r;

reg [7:0]sm_seg_r;

reg [3:0]disp_dat;;//定义数码管显示数据寄存器

reg[24:0]count;//定义计数器寄存器

reg sec;//定义秒信号寄存器

reg tim1,tim2,st1,st2;//定义tim1位倒计时是否到达的位标识

reg[1:0]state1,state2,ste;//定义一些状态

reg[2:0]light1,light2;

reg[3:0]num;

reg[7:0]num1,num2;//num1和num2的值为倒计时的值

reg[7:0]red1,red2,green1,green2,yellow1,yellow2;//定义红黄蓝灯的一些状态

assign sm_bit=sm_bit_r;

assign sm_seg=sm_seg_r;

always@(posedge clk)

begin

count=count+1'b1;

if(count==25'd2*******)//时间达到一秒

begin

count=25'd0;

交通灯设计_verilog.

交通灯设计_verilog.

基于Verilog语言交通灯设计报告

院系:工学院自动化系

年级:14级

班级:10班

姓名:周博

学号:14032291

这学期我学习了EDA技术及其创新实践这门课程,通过自己学习的内容和自己查找的一些资料用Verilog语言编写交通灯的程序,并且完成了仿真。Verilog HDL是工业和学术界的硬件设计者所使用的两种主要的HDL之一,另一种是VHDL。现在它们都已成为IEEE标准。两者各有特点,但Verilog HDL 拥有更悠久的历史、更广泛的设计群体,资源也远比VHDL丰富,且非常容易学习掌握。

一、设计背景和意义

交通灯控制系统主要是实现城市十字交叉路口红绿灯的控制。在现代化的大城市中,十字交叉路口越来越多,在每个交叉路口都需要使用红绿灯进行交通指挥和管理,红、黄、绿灯的转换要有一个准确的时间间隔和转换顺序,这就需要有一个安全、自动的系统对红、黄、绿灯的转换进行管理,本系统就是基于此目的而开发的。

二、设计任务

(1)设计一个交通红绿灯。要求分主干道和支干道,每条道上安装红(主:

red1,支:red2)绿(主:green1,支:green2)黄(主:yellow1,支:yellow2)三种颜色灯,由四种状态自动循环构成;

(2)在交通灯处在不同的状态时,设计一个计时器以倒计时方式显示计时,主干道上绿灯亮30S,支干道上绿灯亮20S。每个干道上,在绿灯转为红灯时,要求黄灯先亮5S。

在完成基本要求的基础上,可进一步增加功能、提高性能,如绿灯亮的时间可调。

三、设计方案

1.工作原理:

城市十字交叉路口红绿灯控制系统主要负责控制主干道走向和从干道走向的红绿灯的状态和转换顺序,关键是各个状态之间的转换和进行适当的时间延时,正是基于以上考虑,采用如下设计:

用verilog语言编写交通灯程序

用verilog语言编写交通灯程序

交通灯

一、实验目的

写一个交通灯,要求:

①有东西南北四个方向,两组交通灯轮流交替变换,其中,红灯时

间为30个时间单位,绿灯时间为25个时间单位,黄灯时间为5个时间单位。最后用modelsim软件进行仿真。

②要求设计是一个可综合设计。

二、实验原理

根据实验要求的逻辑功能描述,可以分析得出原理图如下:

控制器即可以设计为一个有限状态机的形式:

E-W方向S-N方向

状态R Y G R Y G

100100IDLE

100001S1

100010S2

001100S3

010100S4根据实验要求画出控制器的状态转移图如下:

三、代码

1、源代码

(1)控制器模块

module traffic_lights(clk,rst,count,ew,sn);

input clk,rst;

input[5:0] count;

output[2:0] ew,sn;

reg[2:0] ew,sn;

reg[3:0] state;

parameter Idle=3'b000,s1=3'b001,s2=3'b010,s3=3'b011,s4=3'b100; always @(posedge clk)

if(!rst)

begin

state<=Idle;

end

else

casex(state)

Idle: if(rst)

begin

state<=s1;

end

s1: if(count=='d25)

begin

state<=s2;

end

s2: if(count=='d30)

begin

state<=s3;

end

s3: if(count=='d55)

begin

state<=s4;

verilog交通灯课程设计

verilog交通灯课程设计

verilog交通灯课程设计

一、课程目标

知识目标:

1. 让学生掌握Verilog硬件描述语言的基本语法和结构;

2. 使学生理解交通灯系统的基本工作原理和逻辑设计;

3. 帮助学生掌握利用Verilog设计交通灯控制器的方法。

技能目标:

1. 培养学生运用Verilog语言进行数字系统设计的能力;

2. 提高学生分析和解决实际问题的能力;

3. 培养学生运用仿真工具对设计进行验证和调试的能力。

情感态度价值观目标:

1. 培养学生积极探索、勇于实践的精神;

2. 培养团队合作意识,提高沟通与协作能力;

3. 增强学生对我国交通事业的关注和责任感。

课程性质:本课程为电子信息类专业的实践性课程,旨在通过实际项目设计,提高学生对Verilog语言和数字系统设计的理解和应用能力。

学生特点:学生已具备一定的数字电路基础知识,熟悉Verilog基本语法,但缺乏实际项目经验。

教学要求:结合实际交通灯系统,引导学生运用所学知识进行设计,注重理论与实践相结合,培养学生的实际操作能力和创新能力。在教学过程中,将目标分解为具体的学习成果,以便进行教学设计和评估。

二、教学内容

1. 交通灯系统原理介绍:分析交通灯系统的基本工作原理,包括信号灯的时序关系和控制逻辑。

- 相关教材章节:第二章 数字电路基础,第三节 时序逻辑电路。

2. Verilog基础知识回顾:复习Verilog的基本语法、数据类型、运算符和模块结构。

- 相关教材章节:第一章 Verilog语言概述,第二节 Verilog语言基础。3. 交通灯控制器设计:指导学生使用Verilog设计一个简单的交通灯控制器。- 相关教材章节:第三章 数字系统设计,第四节 状态机的设计与应用。

verilog课程设计—交通灯

verilog课程设计—交通灯

CPLD课程设计

基于FPGA 的交通灯控制器的设计

姓名:

学号:

专业:

基于FPGA 的交通灯控制器的设计

摘要:现代城市在日常运行控制中,越来越多的使用红绿灯对交通进行指挥和管理。而一套完整的交通灯控制系统通常要实现自动控制和手动控制去实现其红绿灯的转换。基于FPGA 设计的交通灯控制系统电路简单、可靠性好。本设计利用Verilog HDL 语言、采用层次化混合输入方式,可控制4个路口的红、黄、绿、左转四盏信号灯,让其按特定的规律进行变化。在QUARTUSⅡ下对系统进行了综合与仿真。仿真结果说明系统可实现十字路口红绿灯及左转弯控制和倒计时显示,并能够自动控制交通灯转变。

关键词:FPGA ;交通灯自动控制;Verilog HDL;Quartus Ⅱ

1.交通信号控制器设计要求与思路

设计要求

在交通灯系统中〔图1〕,路口1、2、3、4均需要红、黄、绿、左转四盏灯(用RYGL分别表示) ,并且每个路口都需要一个倒数的计时器,假设绿灯每次维持的时间是40 s ,黄灯为5 s ,左转灯10s,红灯60s,黄灯亮时以一定的频率闪动。交通灯系统大多是自动控制来指挥交通的,但有时需要由交警手动控制红绿灯,所以要求设

计的该交通信号系统需要具有该功能。

图1 交通灯系统示意图

设计思路

为了便于讨论,我们只讨论路口1〔用A表示〕和路口4〔用B表示〕。此交通灯控制系统一共设计有5种工作模式。分别为:方式1 :A 向绿灯长亮,B 向红灯亮。方式2 :A 向左转灯长亮,B 向红灯亮。方式3 :B 向绿灯长亮,A 向红灯亮。方式4 :B 向左转灯长亮,A 向红灯亮。方式5 :自开工作方式,两个方向的灯按照显示的顺序,交替循环显示。系统设有总复位开关,可在任意时间内对系统进行复位。

用verilog语言编写交通灯程序

用verilog语言编写交通灯程序

交通灯

一、实验目的

写一个交通灯,要求:

①有东西南北四个方向,两组交通灯轮流交替变换,其中,红灯时间为30

个时间单位,绿灯时间为25个时间单位,黄灯时间为5个时间单位。最后用modelsim软件进行仿真。

②要求设计是一个可综合设计。

二、

三、

四、实验原理

根据实验要求的逻辑功能描述,可以分析得出原理图如下:

控制器即可以设计为一个有限状态机的形式:

E-W方向S-N方向

状态R Y G R Y G

100100IDLE

100001S1

100010S2

001100S3

010100S4

根据实验要求画出控制器的状态转移图如下:

五、代码

1、源代码

(1)控制器模块

module traffic_lights(clk,rst,count,ew,sn);

input clk,rst;

input[5:0] count;

output[2:0] ew,sn;

reg[2:0] ew,sn;

reg[3:0] state;

parameter Idle=3'b000,s1=3'b001,s2=3'b010,s3=3'b011,s4=3'b100; always @(posedge clk)

if(!rst)

begin

state<=Idle;

end

else

casex(state)

Idle: if(rst)

begin

state<=s1;

end

s1: if(count=='d25)

begin

state<=s2;

end

s2: if(count=='d30)

begin

state<=s3;

end

s3: if(count=='d55)

begin

verilog语言设计一个交通灯信号控制电路

verilog语言设计一个交通灯信号控制电路

西北工业大学《FPGA》实验报告

2013 年11 月

为129。

通过比较器,每个灯的条件不同,当129>=k>=70时绿灯亮,69>=k>=60黄灯闪烁,59>=k>=0红灯亮。

对于数码管输出,当129>=k>=70时,数码管个位输出=(k-70)%10,十位输出为(k-70-个位)/10;当69>=k>=60数码管个位输出=(k-60)%10,十位输出为(k-60-个位)/10,当59>=k>=0时,数码管个位输出=k%10十位输出为(k-个位)/10。

分频模块:

分频模块用以把输入的50MHz的信号转换为1Hz信号,便于其后的交通灯控制及数码管输出。

译码模块:

考虑到数字显示需要两个七段译码器,且在数字系统中,数字的表示都是采用二进制,因为两个管子分别输入,所以需要把循环变量k转换为有用的十位和各位输出。

为了方便,把循环变量k减去各状态的基数值后,用数学方法取十位和各位分别做输入。如绿灯时,129>=k>=70时,数码管个位输出=(k-70)%10,十位输出为(k-70-个位)/10。

七段译码器的设计原理如图:

2.总体设计框图及说明:

图一

输入:clk 全局时钟信号,50MHz rst 全局复位端,高电平有效 输出:ctrl_1s 倒计时个位上数字 ctrl_10s 倒计时十位上数字 blu,yel,red 各个灯状态

框图说明:

状态机的输入,只有时钟信号clk 和复位信号reset.输出为数码管十位和个位的二进制显示状态以及三个灯的颜色显示(blu,yel,red,分别是绿黄红灯,“1”表示灯亮,“0”表示灭)。 输入clk 的频率很大,需要通过计数器对其进行分频。首先计数产生一个1Hz 的输出,通过该输出再次循环计数,产生周期为130的计数变量,从而控制各个灯的亮灭。而控制黄灯闪烁的分频,为方便起见,仍以1s 为单位,每秒钟改变一次。

交通信号灯控制器的verilog实现

交通信号灯控制器的verilog实现

H a r b i n I n s t i t u t e o f T e c h n o l o g y

V e r i l o g实验报告(2)

实验内容:交通信号灯控制器班级:

姓名:

学号:

哈尔滨工业大学

2015年6月

一、功能描述

本设计利用Verilog HDL 语言,对一个十字路口的交通信号灯进行控制,可控制4个路口的红、黄、绿、左转四盏信号灯,让其按特定的规律进行变化。并通过ModelSim软件对系统进行了仿真。仿真结果表明系统可自动实现十字路口红绿灯及左转弯信号灯的控制。

实现设计目标如下:

(1)设计一个十字路口的交通灯控制电路,每条路配有红、黄、绿、左转四盏交通信号灯。通过控制器对四个路口的四组交通灯的状态实现自动循环控制;

(2)实现两主干道车辆交替运行,每次通行直行时间为30 秒;左转时间为10秒,右转不受信号灯控制。

(3)黄灯作为绿灯转为左转灯,左转灯转为红灯的过渡信号灯,过渡时间为5s。

(4)系统设有总复位开关,可在任意时间对系统进行复位。

二、设计方案

1.设计思路

我们对图1所示的十字路口进行设计,路口A和路口C的车辆同时行驶,路口B和路口D的车辆同时行驶,所以虽然要控制4组信号灯,但其实它们可以俩俩合并,这样大大简化了设计。由于我们采用自动控制方式,两个方向的灯按照顺序依次交替循环显示,每种灯亮的时间结合实际生活合理设定。系统设有复位开关,可在任意时间内对系统进行复位。

图1 十字路口示意图

由以上分析可知,该系统可视为一个状态机,而且共有8种状态,如表1所示。

表1 交通灯状态示意表

verilog交通灯设计

verilog交通灯设计

module jtd (zhi,clk,u,i); input zhi,clk;

output [2:0]u,i;

reg[2:0]u,i;

reg d;

always@(posedge clk) begin

if(zhi)

begin

u[2:0]<=3'b100;

i[2:0]<=3'b001;

end

else begin

d<=d+1;

if(d==30)

u[2:0]<=3'b010; if(d==34)

begin

u[2:0]<=3'b001; i[2:0]<=3'b100; end

if(d==64)

begin

u[2:0]<=3'b001; i[2:0]<=3'b010; end

if(d==68)

begin

u[2:0]<=3'b100; i[2:0]<=3'b001; d<=0;

end

module jtd(zhi,u,i,clk,rst);

input zhi,clk,rst;

output [2:0]u,i;

reg [2:0]u,i;

reg[4:0]state;

reg [5:0]d;

initial d=0;

parameter s0=5'b00001,

s1=5'b00010,

s2=5'b00100,

s3=5'b01000,

s4=5'b10000;

always@(posedge clk)

begin

if(!rst) begin state<=s0;u[2:0]<=3'b100;i[2:0]<=3'b001;end

else

begin

verilog交通灯设计说明

verilog交通灯设计说明

module jtd (zhi,clk,u,i); input zhi,clk;

output [2:0]u,i;

reg[2:0]u,i;

reg d;

always(posedge clk)

begin

if(zhi)

begin

u[2:0]<=3'b100;

i[2:0]<=3'b001;

end

else begin

d<=d+1;

if(d==30)

u[2:0]<=3'b010; if(d==34)

begin

u[2:0]<=3'b001; i[2:0]<=3'b100; end

if(d==64)

begin

u[2:0]<=3'b001; i[2:0]<=3'b010; end

if(d==68)

begin

u[2:0]<=3'b100; i[2:0]<=3'b001; d<=0;

end

module jtd(zhi,u,i,clk,rst);

input zhi,clk,rst;

output [2:0]u,i;

reg [2:0]u,i;

reg[4:0]state;

reg [5:0]d;

initial d=0;

parameter s0=5'b00001,

s1=5'b00010,

s2=5'b00100,

s3=5'b01000,

s4=5'b10000;

always(posedge clk)

begin

if(!rst) begin state<=s0;u[2:0]<=3'b100;i[2:0]<=3'b001;end

else

begin

case(state)

s4:begin u[2:0]<=3'b100;i[2:0]<=3'b001;if(zhi)begin state<=s0;end else state<=s4;end

交通灯控制系统 verilog

交通灯控制系统 verilog

module traffic(en,clk,rst,num1,num2,light1,light2,out1,out2,out3,out4,in1,in2); input en,clk,rst,in1,in2; //en为使能端。in1,in2控制绿灯和红灯亮时间

output [7:0] num1,num2;

output [2:0] light1,light2;

output [6:0]out1,out2,out3,out4;//输出四个数码管

reg [6:0]out1,out2,out3,out4;

reg tim1,tim2;

reg [1:0]state1,state2;

reg [2:0]light1,light2;

reg [7:0] num1,num2;

reg [7:0] red1,red2,green1,green2,yellow1,yellow2;

parameter s0=2'b00,s1=2'b01,s2=2'b10,s3=2'b11;//四个循环状态

reg[25:0]count;reg div;

always @(en )

if(en)

begin //设置计数初值

if (!in1)

begin

green1<=8'b00110000;red2<=8'b00110000;

end//30H,即30秒

else

begin

green1<=8'b01100000;red2<=8'b01100000;

end//60s

if (!in2)

begin

red1<=8'b00100000;green2<=8'b00100000;

verilog交通灯模块例化代码

verilog交通灯模块例化代码

module piii(reset,clk,numx,redx,greenx,yellowx,numy,redy,greeny,yellowy,num,num1,num2);input reset;input clk;output redx;output greenx;output yellowx;output redy;output greeny;output yellowy;output [4:0] numx;output [4:0] numy;output [6:0] num;output [6:0] num1;output [6:0] num2; mclk cl(.clk(clk),.reset(reser),.num(num));trafficx xx(.clk(clk),.reset(reset),.num1(num1),.redx(redx),.greenx(greenx),.yellowx(yellowx),.numx(numx));trafficy yy(.clk(clk),.reset(reset),.num2(num2),.redy(redy),.greeny(greeny),.yellowy(yellowy),.numy(numy) );endmodulemodule mclk(clk,reset,num);input clk;input reset;output num;reg [6:0] num; always@(posedge clk or posedge reset)beginif(reset)num<=0;else if(num==59)num<=0;elsenum<=num+1;endendmodulemodule trafficx(clk,reset,num1,redx,greenx,yellowx,numx);input clk;input reset;output num1;output redx;output greenx;output yellowx;output numx;reg redx;reg greenx;reg yellowx;reg [6:0] numx;reg [6:0] num1;parameter [2:0] red=3'b001;parameter [2:0] green=3'b010;parameter [2:0] yellow=3'b100;reg [2:0] state;reg [2:0] nextstate;always@(posedge clk or posedge reset)beginif(reset)state<=red;elsestate<=nextstate;endalways@(num1)begincase(state)red:beginif(num1>7'd29)beginnextstate<=green;redx<=0;greenx<=1;yellowx<=0;numx<=7'd54-num1;endelsebeginnextstate<=red;redx<=1;

基于verlilog hdl的交通信号灯电路设计

基于verlilog hdl的交通信号灯电路设计

基于Verilog HDL的交通信号灯电路设计

1. 引言

交通信号灯是城市道路交通管理中不可或缺的一部分,它通过不同颜色的灯光来指示车辆和行人何时停止和通行。本文将介绍基于Verilog HDL的交通信号灯电路设计。

2. 设计目标

本次设计的目标是实现一个简单的交通信号灯电路,包括红、黄、绿三种状态。具体要求如下:

•红灯亮时,其他两个灯应熄灭。

•黄灯亮时,其他两个灯应熄灭。

•绿灯亮时,其他两个灯应熄灭。

•红、黄、绿三个状态按照固定时间间隔循环切换。

3. 电路设计

3.1 总体结构

本次设计采用有限状态机(FSM)来实现交通信号灯电路。有限状态机是一种数学模型,可以描述系统在不同状态之间的转移和输出。我们将使用Verilog HDL来描述并实现这个有限状态机。

3.2 状态定义

根据设计目标,我们可以定义三种状态:红、黄、绿。我们可以用二进制数来表示这三种状态,比如红色为00,黄色为01,绿色为10。我们可以使用两个输出信号来表示当前状态:red和green。

3.3 状态转移

根据设计目标,交通信号灯应该按照固定时间间隔循环切换状态。我们可以使用一个计数器来实现这个功能。当计数器的值达到一定阈值时,状态应该切换到下一个状态。

具体的状态转移如下:

•当前状态为红色时(00),计数器的值递增。

–当计数器的值达到阈值时,切换到黄色状态(01),并重置计数器。•当前状态为黄色时(01),计数器的值递增。

–当计数器的值达到阈值时,切换到绿色状态(10),并重置计数器。

•当前状态为绿色时(10),计数器的值递增。

用verilog语言编写交通灯程序

用verilog语言编写交通灯程序

交通灯

一、实验目的

写一个交通灯,要求:

①有东西南北四个方向,两组交通灯轮流交替变换,其中,红灯时间为30

个时间单位,绿灯时间为25个时间单位,黄灯时间为5个时间单位。最后用modelsim软件进行仿真。

②要求设计是一个可综合设计。

二、实验原理

根据实验要求的逻辑功能描述,可以分析得出原理图如下:

控制器即可以设计为一个有限状态机的形式:

E-W方向S-N方向

状态R Y G R Y G

1 0 0 1 0 0 IDLE

1 0 0 0 0 1 S1

1 0 0 0 1 0 S2

0 0 1 1 0 0 S3

0 1 0 1 0 0 S4

根据实验要求画出控制器的状态转移图如下:

三、代码

1、源代码

(1)控制器模块

module traffic_lights(clk,rst,count,ew,sn);

input clk,rst;

input[5:0] count;

output[2:0] ew,sn;

reg[2:0] ew,sn;

reg[3:0] state;

parameter Idle=3'b000,s1=3'b001,s2=3'b010,s3=3'b011,s4=3'b100; always (posedge clk)

if(!rst)

begin

state<=Idle;

end

else

casex(state)

Idle: if(rst)

begin

state<=s1;

end

s1: if(count=='d25)

begin

state<=s2;

end

s2: if(count=='d30)

begin

state<=s3;

end

交通灯Verilog设计

交通灯Verilog设计

module traf_lamp(clk,en,lampa,lampb,acount,bcount);

input clk;

input en;//使能端高电平有效

output reg[3:0] lampa,lampb;//4位分别用于a灯的颜色选择output [7:0] acount,bcount;//分别用于驱动数码管显示

reg tempa,tempb;//用于控制路口红绿灯等的变换,低电平有效reg [7:0] numa,numb;//用于显示的数据值

reg [2:0] counta,countb;//表示灯的状态

reg [7:0] ared,agreen,ayellow,aleft,bred,bgreen,byellow,bleft;

//各种灯计数器的预置数

always@(en)

if(!en) begin

ared <=8'd55;

ayellow <=8'd5;

agreen <=8'd40;

aleft <=8'd15;

bred <=8'd65;

byellow <=8'd5;

bleft <=8'd15;

bgreen <=8'd30;

end

assign acount=numa;

assign bcount=numb;

always@(posedge clk) begin//交通灯a的控制

if(en)

if(!tempa) begin

tempa<=1;

case(counta)

0:begin numa<=agreen; lampa<=2; counta<=1;end 1:begin numa<=ayellow; lampa<=4; counta<=2;end 2:begin numa<=aleft; lampa<=1; counta<=3;end 3:begin numa<=ayellow; lampa<=4; counta<=4;end 4:begin numa<=ared; lampa<=8; counta<=0;end default:lampa<=8;

交通灯设计-verilog.

交通灯设计-verilog.

. . .. . .

基于Verilog语言交通灯设计报告

院系:工学院自动化系

年级:14级

班级:10班

:周博

学号:14032291

这学期我学习了EDA技术及其创新实践这门课程,通过自己学习的容和自己查找的一些资料用Verilog语言编写交通灯的程序,并且完成了仿真。Verilog HDL是工业和学术界的硬件设计者所使用的两种主要的HDL之一,另一种是VHDL。现在它们都已成为IEEE标准。两者各有特点,但Verilog HDL拥有更悠久的历史、更广泛的设计群体,资源也远比VHDL丰富,且非常容易学习掌握。一、设计背景和意义

交通灯控制系统主要是实现城市十字交叉路口红绿灯的控制。在现代化的大城市中,十字交叉路口越来越多,在每个交叉路口都需要使用红绿灯进行交通指挥和管理,红、黄、绿灯的转换要有一个准确的时间间隔和转换顺序,这就需要有一个安全、自动的系统对红、黄、绿灯的转换进行管理,本系统就是基于此目的而开发的。

二、设计任务

(1)设计一个交通红绿灯。要求分主干道和支干道,每条道上安装红(主:red1,支:red2)绿(主:green1,支:green2)黄(主:yellow1,支:yellow2)三种颜色灯,由四种状态自动循环构成;

(2)在交通灯处在不同的状态时,设计一个计时器以倒计时方式显示计时,主干道上绿灯亮30S,支干道上绿灯亮20S。每个干道上,在绿灯转为红灯时,要

求黄灯先亮5S。

在完成基本要求的基础上,可进一步增加功能、提高性能,如绿灯亮的时间可调。

三、设计方案

1.工作原理:

城市十字交叉路口红绿灯控制系统主要负责控制主干道走向和从干道走向的红绿灯的状态和转换顺序,关键是各个状态之间的转换和进行适当的时间延时,正是基于以上考虑,采用如下设计:

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数电课程设计

学生姓名:

专 业: 电子信息工程

指导教师:

完成日期:

2016-6-30

摘要

Verilog HDL作为一种规范的硬件描述语言,被广泛应用于电路的设计中。它的设计描述可被不同的工具所支持,可用不同器件来实现。利用Verilog HDL语言自顶向下的设计方法设计交通灯控制系统,使其实现道路交通的正常运转,突出了其作为硬件描述语言的良好的可读性、可移植性和易理解等优点,并通过Quartus5.0完成综合、仿真。此程序通过下载到FPGA芯片后,可应用于实际的交通灯控制系统中。

关键词:Verilog HDL;硬件描述语言;状态;FPGA

Abstract

As a common language for the description of hardware, Verilog HDL is widely applied in circuit designing. The design description can be supportted by differenttools and implemented by different devices.In this paper, the process of design ing traffic light controller system by the Verilog HDL topdown design method is presented, which has made the road traffic work well, the design of t his system has shown the readability, portability and easily understanding of Verilog HDL as a hard description language Circuit synthesis and simulation are pe rformed by Quartus5.0. The program can be used in the truly traffic light controller system by downloading to the FPGA chip

Keywords:Verilog HDL; hardware description language; state; FPGA

目录

一、概述 (4)

二、任务功能 (5)

三.系统设计 (5)

1.工作原理 (5)

2.系统设计方案 (6)

四、程序设计 (7)

1.verilog源程序 (7)

2.设备选择 (11)

3.引脚 (12)

五、仿真 (12)

1.仿真波形 (12)

2.硬件验证 (12)

六、结束语 (13)

七、参考文献 (14)

一:概述

HDL(Hardware Description Language,硬件描述语言)是一种描述硬件所做工作的语言。目前,电子系统向集成化、大规模和高速度等方向发展,以硬件描述语言和逻辑综合为基础的自顶向下的电路设计方法在业界得到迅猛发展,HDL在这种形势下显示出了巨大的优势,展望将来HDL在硬件设计领域的地位将与C和C++在软件设计领域地位一样,在大规模数字系统的设计中,它将逐步取代传统的逻辑状态表和逻辑电路图等硬件描述方法而成为主要的硬件描述工具。

Verilog HDL是工业和学术界的硬件设计者所使用的两种主要的HDL之一,另一种是VHDL。现在它们都已成为IEEE标准。两者各有特点,但Verilog HDL 拥有更悠久的历史、更广泛的设计群体,资源也远比VHDL丰富,且非常容易学习掌握。

Quartus简介:

Quartus II 是Altera公司的综合性PLD/FPGA开发软件,支持原理图、VHDL、VerilogHDL 以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。此外,Quartus II 通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。

二、任务功能

交通灯控制系统主要是实现城市十字交叉路口红绿灯的控制。在现代化的大城市中,十字交叉路口越来越多,在每个交叉路口都需要使用红绿灯进行交通指挥和管理,红、黄、绿灯的转换要有一个准确的时间间隔和转换顺序,这就需要有一个安全、自动的系统对红、黄、绿灯的转换进行管理,本系统就是基于此目的而开发的。

基本要求:

(1)设计一个交通红绿灯。要求分主干道和支干道,每条道上安装红(主:red1,支:red2)绿(主:green1,支:green2)黄(主:yellow1,支:yellow2)三种颜色灯,由四种状态自动循环构成;

(2)在交通灯处在不同的状态时,设计一个计时器以倒计时方式显示计时,主干道上绿灯亮30S,支干道上绿灯亮20S。每个干道上,在绿灯转为红灯时,要求黄灯先亮5S。

在完成基本要求的基础上,可进一步增加功能、提高性能,如绿灯亮的时间可调。

三、系统设计

1.工作原理:

城市十字交叉路口红绿灯控制系统主要负责控制主干道走向和从干道走向的红绿灯的状态和转换顺序,关键是各个状态之间的转换和进行适当的时间延时,正是基于以上考虑,采用如下设计:

S0:当主干道走向的绿灯亮时,从干道走向的红灯亮,并保持30s

S1:当主干道走向的黄灯亮时,从干道走向的黄灯亮,并保持5s

S2:当主干道走向的红灯亮时,从干道走向的绿灯亮,并保持20s

S3:当主干道走向的黄灯亮时,从干道走向的黄灯亮,并保持5s

在S3结束后又回到(1)状态,并周期重复进行。

状态图如下:

相关文档
最新文档