当前位置:文档之家› verilog课程设计交通灯

verilog课程设计交通灯

verilog课程设计交通灯
verilog课程设计交通灯

课 程 论 文

论文题目 基于DE2的交通灯

设计

完成时间

课程名称 Verilog 语言设计 任课老师 专 业 年 级

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

FPGA 是一种用户根据各自需要而自行构造逻辑功能的数字集成电路,其种类很多,内部结构也不同,但共同的特点是体积小、使用方便。本文介绍了用VerilogHDL 语言设计交通灯控制器的方法,并在QuartusII 系统对FPGA 芯片进行编译下载,由于生成的是集成化的数字电路,没有传统设计中的接线问题,所以故障率低、可靠性高,而且体积非常小。本文通过EDA 设计,利用VerilogHDL 语言模拟仿真交通灯控制电路。 1.2设计要求

根据交通灯控制器要实现的功能,考虑用两个并行执行的always 语句来分别控制A 方向和B 方向的3盏灯。这两个always 语句使用同一个时钟信号,以进行同步,也就是说,两个进程的敏感信号是同一个。每个always 语句控制一个方向的3种灯按如下顺序点亮,并往复循环:绿灯----黄灯----红灯,每种灯亮的时间采用一个减法计数器进行计数,计数器用同步预置数法设计,这样只需改变预置数据,就能改变计数器的模,因此每个方向只要一个计数器进行预置数就可以。为便于显示灯亮的时间,计数器的输出均采用BCD 码,显示由4个数码管来完成,A 方向和B 方向各用两个数码管。设定A 方向红灯、黄灯、绿灯亮的时间分别为:35s 、5s 、35s ,B 方向的红灯、黄灯、绿灯亮的时间分别为:35s 、5s 、35s 。假如要改变这些时间,只需要改变计数器的预置数即可。 1.3设计思路

两个方向各种灯亮的时间能够进行设置和修改,此外,假设B 方向是主干道,车流量大,因此B 方向通行的时间应该比A 方向长。交通灯控制器的状态转换表

见下表。表中,1表示灯亮,0表示灯不亮。A方向和B方向的红黄绿分别用R1、Y1、G1、R2、Y2、G2来表示。

交通灯控制器状态转换表

从状态表中可以看出,每个方向3盏灯依次按如下顺序点亮,并不断循环:绿灯----黄灯----红灯,并且每个方向红灯亮的时间应该与另一个方向绿灯、黄灯亮的时间相等。黄灯所起的作用是用来在绿灯后进行缓冲,以提醒行人该方向马上要禁行了。在使能控制信号(EN)控制时系统工作,并且要求有两个控制输入信号:即复位信号(Reset)和备用模式设置信号(Standby),在复位信号控制时,两个方向均为红灯,在备用模式设置信号控制时,两个方向均为黄灯。

1.4系统设计框图

系统采用的时钟频率为10KHZ,经分频为1HZ后送入控制计时电路,同时送入控制计时电路的还有控制信号M2M1M0以及复位信号RST,控制交通灯的运行状态。经处理后输出LED灯以及数码管显示电路的控制信号,从而完成整个电路的控制与实现。

2.1时钟分频模块设计

系统的时钟输入为10KHZ的脉冲,而系统时钟计时模块需要1HZ的脉冲。分频模块主要为系统提供所需的时钟计时脉冲。该模块将10KHZ的脉冲信号进行分频,产生1S的方波(占空比为50%),作为系统时钟计时信号。计时模块用来设定路口计时器的初值,并为扫描显示译码模块提供倒计时时间。

Verilog HDL源代码如下:

module fenpin(clk10k,rst,clk1); //将10K的频率分频为1

input clk10k,rst;

output clk1;

reg [7:0]j;

reg clk1;

always@(posedge clk10k or posedge rst)

if(rst)begin

clk1<=0;

j<=0;

end

else if(j==9999)begin

j<=0;

clk1<=~clk1;

end

else j<=j+1;

Endmodule

2.2控制模块设计

Verilog HDL源代码如下:

module control(EN_in,SW1,RST,Red1,Red2,Yellow1,Yellow2,Green1,Green2); output Red1;

output Red2;

output Yellow1;

output Yellow2;

output Green1;

output Green2;

input [1:0] EN_in;

input SW1;

input RST;

reg Red1,Red2,Yellow1,Yellow2,Green1,Green2,D_out;

always @(EN_in,RST,SW1)

begin

if(SW1==0||RST==0) {Red1,Red2,Yellow1,Yellow2,Green1,Green2}=6'b0;

else

begin

case(EN_in)

2'b00 : {Red1,Red2,Yellow1,Yellow2,Green1,Green2}=6'b010010;

2'b01 : {Red1,Red2,Yellow1,Yellow2,Green1,Green2}=6'b011000;

2'b10 : {Red1,Red2,Yellow1,Yellow2,Green1,Green2}=6'b100001;

2'b11 : {Red1,Red2,Yellow1,Yellow2,Green1,Green2}=6'b100100;

default : {Red1,Red2,Yellow1,Yellow2,Green1,Green2}=6'b0;

endcase

end

end

Endmodule

2.3倒计时选择模块

Verilog HDL源代码如下:

module counter55(C_CLK,RST,C_EN,D_OUT1,D_OUT0,C_out);

output C_out;

output [3:0] D_OUT1;

output [3:0] D_OUT0;

input C_CLK;

input RST;

input C_EN;

reg [3:0] D_OUT1;

reg [3:0] D_OUT0;

reg C_out;

reg [3:0] CData1;

reg [3:0] CData0;

reg [7:0] DATA;

always @(posedge C_CLK)

begin

if(RST==0||C_EN==0)

begin

C_out <= 1'b0;

CData1 <= 4'b0000;

CData0 <= 4'b0000;

end

else

begin

if(CData0 == 4'b0101 && CData1 == 4'b0101)

begin

CData1 <= 4'b0000;

CData0 <= 4'b0000;

C_out = 1'b1;

end

else if(CData0 != 4'b1001)

begin

CData0 <= CData0 + 1;

C_out <= 1'b0;

end

else if(CData0 == 4'b1001 && CData1 != 4'b0110)

begin

CData1 <= CData1 + 1;

CData0 <= 4'b0000;

C_out <= 1'b0;

end

else

begin

CData1 <= 4'b0000;

CData0 <= 4'b0000;

C_out = 1'b1;

end

end

end

always

begin

DATA <= 8'b01010101-((CData1<<4)+CData0);

if(((DATA>>4)&4'b1111)>4'b0101)

D_OUT1 <= (DATA>>4)&4'b1111-4'b1111;

else

D_OUT1 <= (DATA>>4)&4'b1111;

if((DATA&4'b1111)>4'b1001)

D_OUT0 <= (DATA&4'b1111)-4'b0110;

else

D_OUT0 <= DATA&4'b1111;

end

endmodule

2.4 倒计时数码管的动态显示

Verilog HDL源代码如下:

module dispselect(CLK,D_OUT);

output [1:0] D_OUT;

input CLK;

reg [1:0] D_OUT;

always @(posedge CLK)

begin

if(D_OUT < 2'b10)

D_OUT <= D_OUT + 2'b01;

else

D_OUT <= 2'b01;

end

endmodule

2.5扫描显示译码模块设计

Verilog HDL源代码如下:

module dispdecoder (data_in,data_out); input [3:0]data_in;

output [6:0] data_out;

reg [6:0] r_seg;

assign data_out = r_seg;

always @(*)

begin

case(data_in)

4'd0: r_seg = 7'b0000001;

4'd1: r_seg = 7'b1001111;

4'd2: r_seg = 7'b0010010;

4'd3: r_seg = 7'b0000110;

4'd4: r_seg = 7'b1001100;

4'd5: r_seg = 7'b0100100;

4'd6: r_seg = 7'b0100000;

4'd7: r_seg = 7'b0001111;

4'd8: r_seg = 7'b0000000;

4'd9: r_seg = 7'b0000100;

4'd10: r_seg = 7'b0001000;

default r_seg = 7'b1111111;

endcase

end

Endmodule

2.5.顶层文件设计

Verilog HDL源代码如下:

module jtd(

Reset,

SW,

CLK,

Red1,

Red2,

Yellow1,

Yellow2,

Green1,

Green2,

SEG_Data1,

SEG_Data2,

SEG_Data3,

SEG_Data4,

//SEG_Sel

);

input Reset;

input SW;

input CLK;

output Red1;

output Red2;

output Yellow1;

output Yellow2;

output Green1;

output Green2;

output [6:0] SEG_Data1;

output [6:0] SEG_Data2;

output [6:0] SEG_Data3;

output [6:0] SEG_Data4;

//output [1:0] SEG_Sel;

wire SYNTHESIZED_WIRE_0;

wire SYNTHESIZED_WIRE_1;

wire SYNTHESIZED_WIRE_19;

wire SYNTHESIZED_WIRE_3;

wire SYNTHESIZED_WIRE_20;

wire [1:0] SYNTHESIZED_WIRE_21;

wire SYNTHESIZED_WIRE_7;

wire [3:0] SYNTHESIZED_WIRE_9;

wire [3:0] SYNTHESIZED_WIRE_10;

wire [3:0] SYNTHESIZED_WIRE_11;

wire [3:0] SYNTHESIZED_WIRE_12;

//wire [3:0] SYNTHESIZED_WIRE_14;

wire [3:0] SYNTHESIZED_WIRE_15;

wire [3:0] SYNTHESIZED_WIRE_16;

//wire [1:0] SYNTHESIZED_WIRE_17;

//assign SEG_Sel = SYNTHESIZED_WIRE_17;

scan b2v_inst(.EN_in1(SYNTHESIZED_WIRE_0),

.EN_in0(SYNTHESIZED_WIRE_1),.sdata(SYNTHESIZED_WIRE_21));

counter05 b2v_inst1(.C_CLK(SYNTHESIZED_WIRE_19),

.RST(Reset),.C_EN(SYNTHESIZED_WIRE_3),.C_out(SYNTHESIZED_WIRE_1),.D_OUT0(SY NTHESIZED_WIRE_11),.D_OUT1(SYNTHESIZED_WIRE_12));

fdiv1hz b2v_inst11(.clk_in(SYNTHESIZED_WIRE_20),

.clk_out(SYNTHESIZED_WIRE_19));

fdiv1khz b2v_inst12(.clk_in(CLK),

.clk_out(SYNTHESIZED_WIRE_20));

control b2v_inst14(.SW1(SW),

.RST(Reset),.EN_in(SYNTHESIZED_WIRE_21),.Red1(Red1),.Red2(Red2),.Yellow1(Yellow1),.Y ellow2(Yellow2),.Green1(Green1),.Green2(Green2));

counter55 b2v_inst2(.C_CLK(SYNTHESIZED_WIRE_19),

.RST(Reset),.C_EN(SYNTHESIZED_WIRE_7),.C_out(SYNTHESIZED_WIRE_0),.D_OUT0(SY NTHESIZED_WIRE_9),.D_OUT1(SYNTHESIZED_WIRE_10));

countersel b2v_inst3(.D_IN(SYNTHESIZED_WIRE_21),

.D_OUT1(SYNTHESIZED_WIRE_7),.D_OUT0(SYNTHESIZED_WIRE_3));

datamux b2v_inst6(.D_IN0(SYNTHESIZED_WIRE_9),

.D_IN1(SYNTHESIZED_WIRE_10),.D_IN2(SYNTHESIZED_WIRE_11),.D_IN3(SYNTHESIZE

D_WIRE_12),.SEL(SYNTHESIZED_WIRE_21),.D_OUT0(SYNTHESIZED_WIRE_15),.D_OUT1 (SYNTHESIZED_WIRE_16));

//dispdecoder b2v_inst7(.data_in(SYNTHESIZED_WIRE_14),

//.data_out(SEG_Data));

//dispmux b2v_inst8(.D_IN0(SYNTHESIZED_WIRE_15),

//.D_IN1(SYNTHESIZED_WIRE_16),.SEL(SYNTHESIZED_WIRE_17),.D_OUT(SYNTHESIZE D_WIRE_14));

//dispselect b2v_inst9(.CLK(SYNTHESIZED_WIRE_20),

//.D_OUT(SYNTHESIZED_WIRE_17));

dispdecoder u0(.data_in(SYNTHESIZED_WIRE_11),

.data_out(SEG_Data2));

dispdecoder u1(.data_in(SYNTHESIZED_WIRE_12),

.data_out(SEG_Data1));

dispdecoder u2(.data_in(SYNTHESIZED_WIRE_9),

.data_out(SEG_Data4));

dispdecoder u3(.data_in(SYNTHESIZED_WIRE_10),

.data_out(SEG_Data3));

endmodule

3 小结

再一次的体验到了细心对一个编程者的重要性和程序的规范性对于程序的重要。verilogHDL设计语言是一门很好的硬件描述语言,可以直白的描述实际的电路,实际的系统模型,易懂而且易于实现,我觉得在以后多加练习,可以对以后的学习和工作带来莫大的帮助。这次的课程设计就是对我们的一次考核,也可以说是一次考验,平时做题目比较简单,而这次课程设计综合考核了我们的学习结果。课程设计培养了学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。然而从理论到实践,我在做课程设计的时间里,我明白了想学好它要重在实践,要通过不断的实际操作才能更好地学习它,但是学到了很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,遇到了各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知解得不够深刻,掌握得不够牢固,在边编学程序的过程中我几乎是重新复习课本上的知识,但这还是没能让我完成这次课程设计,通过询问同学、到网上查询资料慢慢的完善这次作业才勉强完成。

基于VerilogHDL的通行时间可变的交通灯控制器

通行时间可变的交通灯控制器设计 module tr1(ng,clk,reset,resets,emergency,lighta,lightb,seg,select); input ng,clk,reset,emergency,resets; output[6:0]seg;//显示用的 output[3:0] lighta,lightb;//a是主干道,b是支干道 output [3:0] select;//选择那一个管子进行显示 reg clk1,clk2;//clk1要5HZ clk2要几千HZ reg [3:0] select; reg tim1,tim2;//这是看你的等有没有变过颜色的控制信号 reg [1:0] cont; reg[2:0]state1,state2,ste;两个控制颜色变化状态的信号。 reg[3:0]lighta,lightb;//a是主干道,b是支干道 reg[3:0]num;//译码器是根据这个东西来译码的 reg [35:0] fout; reg[6:0]seg;//显示 reg[7:0] numa,numb; reg[7:0] red1,red2,green1,green2,yellow1,yellow2,left1,left2; always @(ng ) if(!ng) begin //设置计数初值 green1 <=8'b00110000;//30S red1 <=8'b01010001;//51S yellow1<=8'b00000011;//3S left1 <=8'b00010101; //15S green2 <=8'b00110000;//30S

交通灯设计 verilog

数电课程设计 学生姓名: 专业:电子信息工程 指导教师: 完成日期: 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

verilog课程设计—交通灯

课程论文 论文题目基于DE2的交通灯设计完成时间 课程名称Verilog语言设计 任课老师 专业 年级

1.交通信号控制器设计要求与思路 1.1设计背景 FPGA是一种用户根据各自需要而自行构造逻辑功能的数字集成电路,其种类很多,内部结构也不同,但共同的特点是体积小、使用方便。本文介绍了用VerilogHDL语言设计交通灯控制器的方法,并在QuartusII系统对FPGA芯片进行编译下载,由于生成的是集成化的数字电路,没有传统设计中的接线问题,所以故障率低、可靠性高,而且体积非常小。本文通过EDA设计,利用VerilogHDL语言模拟仿真交通灯控制电路。 1.2设计要求 根据交通灯控制器要实现的功能,考虑用两个并行执行的always语句来分别控制A方向和B方向的3盏灯。这两个always语句使用同一个时钟信号,以进行同步,也就是说,两个进程的敏感信号是同一个。每个always语句控制一个方向的3种灯按如下顺序点亮,并往复循环:绿灯----黄灯----红灯,每种灯亮的时间采用一个减法计数器进行计数,计数器用同步预置数法设计,这样只需改变预置数据,就能改变计数器的模,因此每个方向只要一个计数器进行预置数就可以。为便于显示灯亮的时间,计数器的输出均采用BCD码,显示由4个数码管来完成,A方向和B方向各用两个数码管。设定A方向红灯、黄灯、绿灯亮的时间分别为:35s、5s、35s,B方向的红灯、黄灯、绿灯亮的时间分别为:35s、5s、35s。假如要改变这些时间,只需要改变计数器的预置数即可。 1.3设计思路 两个方向各种灯亮的时间能够进行设置和修改,此外,假设B方向是主干道,车流量大,因此B方向通行的时间应该比A方向长。交通灯控制器的状态转换表见下表。表中,1表示灯亮,0表示灯不亮。A方向和B方向的红黄绿分别用R1、Y1、G1、R2、Y2、G2来表示。

交通灯设计-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.工作原理: 城市十字交叉路口红绿灯控制系统主要负责控制主干道走向和从干道走向的红绿灯的状态和转换顺序,关键是各个状态之间的转换和进行适当的时间延时,正是基于以上考虑,采用如下设计: S0:当主干道走向的绿灯亮时,从干道走向的红灯亮,并保持30s S1:当主干道走向的黄灯亮时,从干道走向的黄灯亮,并保持5s S2:当主干道走向的红灯亮时,从干道走向的绿灯亮,并保持20s S3:当主干道走向的黄灯亮时,从干道走向的黄灯亮,并保持5s 在S3结束后又回到(1)状态,并周期重复进行。 状态图如下: 30秒 5秒5秒

通过Verilog实现交通灯设计实验报告

电子科技大学 实 验 报 告 一、实验室名称:虚拟仪器实验室 二、实验项目名称:交通灯设计实验 三、实验学时:4学时 四、实验原理

假设交通灯处于南北和东西两条大街的“十”字路口,如图1所示。用FPGA 开发板的LED 灯来模拟红、黄、绿3种颜色信号,并按一定顺序、时延来点亮LED ,如图2所示。图3给出了交通灯的状态转移图。设计使用频率为1Hz 的时钟来驱动电路(注1:仿真时采用1MHz 的时钟来驱动电路),则停留1个时钟可得到1S 的延时,类似停留3个时钟可得到3S 的延时,停留15个时钟可得到15S 的延时(注2:开发板工作时钟为50MHz )。 北 南 西东 图1. 六个彩色LED 可以表示一组交通信号灯 图2. 交通灯状态 南北 东西 红 黄 绿 红 黄 绿 S0 1 0 0 0 0 1 S1 1 0 0 0 1 0 S2 1 0 0 1 0 0 S3 0 0 1 1 0 0 S4 0 1 0 1 0 0 S5 1 0 0 1 0 0

图3. 交通灯的状态转移图 顶层模块 时钟分频模块状态机跳转模块 图4. 交通灯的原理框图 五、实验目的 本实验是有限状态机的典型综合实验,掌握如何使用状态转移图来定义Mealy状态机和Moore状态机,熟悉利用HDL代码输入方式进行电路的设计和仿真的流程,掌握Verilog语言的基本语法。并通过一个交通灯的设计掌握利用EDA软件(Xilinx ISE 13.2)进行HDL代码输入方式的电子线路设计与仿真的详细流程。。 六、实验内容 在Xilinx ISE 13.2上完成交通灯设计,输入设计文件,生成二进制码流文件下载到FPGA开发板上进行验证。 七、实验器材(设备、元器件)

verilog课程设计—交通灯1

课程设计 课程名称__EDA技术综合设计与实践__ 题目名称交通灯控制系统 学生学院信息工程学院 专业班级通信工程08(4) 学号 3108002925 学生姓名高高 指导教师李学易 2011 年12 月26 日

基于FPGA 的交通灯控制器的设计 摘要:Verilog 是广泛应用的硬件描述语言,可以用在硬件设计流程的建模、综合和模拟等多个阶段。随着硬件设计规模的不断扩大,应用硬件描述语言进行描述的CPLD 结构,成为设计专用集成电路和其他集成电路的主流。现代城市在日常运行控制中,越来越多的使用红绿灯对交通进行指挥和管理。而一套完整的交通灯控制系统通常要实现自动控制和手动控制去实现其红绿灯的转换。 基于FPGA 设计的交通灯控制系统电路简单、可靠性好。本设计利用Verilog HDL 语言、采用层次化混合输入方式,可控制4个路口的红、黄、绿、左转四盏信号灯,让其按特定的规律进行变化。在QUARTUSⅡ下对系统进行了综合与仿真。仿真结果表明系统可实现十字路口红绿灯及左转弯控制和倒计时显示,并能够自动控制交通灯转变。通过应用Verilog HDL 对交通灯控制器的设计,达到对Verilog HDL 的理解 关键词:FPGA;交通灯自动控制;V erilog HDL;Quartus Ⅱ 1.交通信号控制器设计要求与思路 1.1设计要求 在交通灯系统中(图1),路口1、2、3、4均需要红、黄、绿、左转四盏灯(用RYGL分别表示) ,并且每个路口都需要一个倒数的计时器,假设绿灯每次维持的时间是40 s ,黄灯为5 s ,左转灯10s,红灯60s,黄灯亮时以一定的频率闪动。交通灯系统大多是自动控制来指挥交通的,但有时需要由交警手动控制红绿灯,所以要求设 计的该交通信号系统需要具有该功能。 实现设计目标如下: (1)设计一个十字路口的交通灯控制电路,每条路配有红、黄、绿交通信号灯,通过电路对十字路口的两组交通灯的状态实现自动循环控制; (2)实现东西车道和南北车道上的车辆交替运行,绿灯每次维持的时间是40 s ,黄灯为5 s ,左转灯10s,红灯60s; (3)要求黄灯亮5 秒后,红灯才能转为绿灯,黄灯亮时以一定的频率闪动; (4)东西车道和南北车道每次通行的时间不同且可调; 图1 交通灯系统示意图

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

目录 第一章设计原理 (1) 1.1设计要求 (1) 1.2设计思路和原理 (1) 1.3实现方法 (1) 第二章Verilog 程序设计 (2) 2.1整体设计 (2) 2.2 具体设计 (3) 第三章仿真 (7) 3.1 波形仿真 (7) 第四章设计总结 (9) 4.1 总结 (9) 4.2参考资料 (9) 程序清单 (10)

交通灯控制器设计 第一章 设计原理 1.1设计要求 设计一个交通控制器,用LED 显示灯表示交通状态,并以7段数码显示器显示当前状态剩余秒数 主干道绿灯亮时,支干道红灯亮;反之亦然,二者交替允许通行,主干道每次放行35s ,支干道每次放行25s 。每次由绿灯变为红灯的过程中,亮光的黄灯作为过渡,黄灯的时间为5s 。能进行特殊状态显示,特殊状态时东西、南北路口均显示红灯状态。用LED 灯显示倒计时,并且能实现总体清零功能,计数器由初始状态开始计数,对应状态的显示灯亮。 1.2设计思路和原理 本次设计是针对十字路口,进行南北和东西直行情况下交通灯控制。设定东西方向为主干道方向,根据交通灯的亮的规则,在初始状态下四个方向的都为红灯亮启,进入正常工作状态后,当主干道上绿灯亮时,支干道上红灯亮,持续35S 后,主干道和支干道上的黄灯都亮启,持续5S 后,主干道上红灯亮启,支干道上绿灯亮启持续25S ,之后主干道和支干道上的黄灯都亮启5s ,一个循环完成。循环往复的直行这个过程。其过程如下图所示: 0s 30s 25s 主干道方向 支干道方向 图1.交通灯点亮时间控制说明 1.3实现方法 本次采用文本编辑法,即利用Verilog 语言描述交通控制器,通过状态机计数法,实现设计所要求的交通灯控制及时间显示。设计中用两组红黄绿LED 模拟两个方向上的交通灯,用4个7段数码管分别显示两个方向上的交通灯剩余时间,控制时钟由试验箱上频率信号提供。

用verilog语言编写交通灯程序

交通灯 一、实验目的 写一个交通灯,要求: ①有东西南北四个方向,两组交通灯轮流交替变换,其中,红灯时间为30 个时间单位,绿灯时间为25个时间单位,黄灯时间为5个时间单位。最后用modelsim软件进行仿真。 ②要求设计是一个可综合设计。 二、实验原理 根据实验要求的逻辑功能描述,可以分析得出原理图如下: 根据实验要求画出控制器的状态转移图如下:

三、代码 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; end s4: if(count=='d60) begin state<=s1; end endcase always @(posedge clk) begin if(!rst) begin ew<=3'b100; sn<=3'b100; end else casex(state) Idle: if(rst) begin ew<=3'b100; sn<=3'b001; end s1: if(count=='d25) begin ew<=3'b100; sn<=3'b010; end

Verilog语言实现设计交通灯控制器

Verilog语言实现设计交通灯控制器 实验模块组成: (计数器+控制器)可以分开实现,最好一起实现避免接口对接时出错 译码器 实验要求: 1.在十字路口两个方向各设一组红、绿、黄灯,显示顺序为: 南北方向是绿、黄、红灯;东西方向是红、绿、黄灯。 2.要求红、绿、黄灯的持续时间分别为:10s、7s、3s,东西、南北方向各用一 个数码管显示倒计时时间。 3.当任意方向出现特殊情况时,应优先放行,即使各方向均亮红灯,倒计时停 止,且显示数字闪烁。经过规定时间之后,恢复正常运行状态。 //计数器+控制器 module ZTJ(clk,s,count1,count2,led); parameter s0=6'b010100,s1=6'b001100,s2=6'b100010,s3=6'b100001,s4=6'b100100; inputclk,s; output[3:0]count1; output[3:0]count2; output[5:0]led; reg[3:0]count1; reg[3:0]count2; reg[5:0]led; reg[5:0]st; reg[5:0]jicun; reg[3:0]i; always @(posedgeclk) if(s==0 & led==6'b000000) begin led<=s0; st<=s0; count1<=4'b0110; count2<=4'b1001; end else if(s==0 & led!=6'b000000) begin case(st) s0:if(count1!=4'b0000) begin led<=s0;count1<=count1-1;count2<=count2-1;end else begin count1<=4'b0010;st<=s1;end s1:if(count1!=4'b0000) begin led<=s1;count1<=count1-1;count2<=count2-1;end else begin

Verilog交通灯

实验报告 班级:微电2班 组员:刘家豪门珺 学号:11180102

目录 一、概述 (4) 二、任务功能 (5) 三.系统设计 (5) 1.工作原理 (5) 2.系统设计方案 (6) 四、程序设计 (7) 1.verilog源程序 (7) 2.设备选择 (11) 3引脚绑定 (12) 五、结束语 (13)

一:概述 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)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。

verilog_HDL交通灯控制电路

青岛农业大学 理学与信息科学学院 电子设计自动化及专用集成电路课程设计 报告 设计题目__________ 用状态机设计交通灯控制器___________ 学生专业班级_____ 通信工程2008级1班 _______________ 学生姓名(学号)孙鹏飞(20082715)_____________ 扌旨导教师________________ 刘金梅_____________________ 完成时间2011-9-9 ________________________ 实习(设计)地点工程楼405 __________________ 2011年9月9日

、课程设计目的和任务 课程设计目的:本次课程设计是在学生学习完数字电路、模拟电路、电子设 计自动化的相关课程之后进行的。通过对数字集成电路或模拟集成电路的模拟与 仿真等,熟练使用相关软件设计具有较强功能的电路, 提高实际动手,为将来设 计大规模集成电路打下基础。 课程设计任务:设计一个交通控制器,用 LED 显示灯表示交通状态,并以 7 段数码显示器显示当前状态剩余秒数 主干道绿灯亮时,支干道红灯亮;反之亦 然,二者交替允许通行,主干道每次放行 35s ,支干道每次放行25s 。每次由绿 灯变为红灯的过程中,亮光的黄灯作为过渡,黄灯的时间为 5s o 能进行特殊状 态显示,特殊状态时东西、南北路口均显示红灯状态。用 LED 灯显示倒计时,并 且能实现总体清零功能,计数器由初始状态开始计数,对应状态的显示灯亮。 二、分析与设计 1、设计任务分析 本次设计是针对十字路口,进行南北和东西直行情况下交通灯控制。 设定东 西方向为主干道方向,根据交通灯的亮的规则,在初始状态下四个方向的都为红 灯亮启,进入正常工作状态后,当主干道上绿灯亮时,支干道上红灯亮,持续 35S 后,主干道和支干道上的黄灯都亮启,持续 5S 后,主干道上红灯亮启,支 干道上绿灯亮启持续25S ,之后主干道和支干道上的黄灯都亮启 5s ,一个循环完 成。循环往复的直行这个过程。其过程如下图所示: 图1?交通灯点亮时间控制说明 2、设计方案论证 主干道方向 支干道方向

Verilog_HDL的交通灯控制器设计

交通信号灯控制器 课程设计报告 2015-2016学年第2学期 课程设计名称:电子综合设计EDA课程设计 院(系):电子信息学院 专业:电子信息工程班级:电子1313 姓名: xx 学号: 1310034303xx 综合实验时间: 2016/7/11-2016/7/15 指导教师:钟旭 提交时间: 2016/7/15

上海电机学院课程设计任务书

目录 第一章设计原理 (4) 1.1设计要求 (4) 1.2设计思路和原理 (4) 1.3实现方法 (4) 第二章Verilog HDL程序设计 (6) 2.1整体设计 (6) 2.2 具体设计 (7) 第三章仿真测试 (7) 3.1 波形仿真 (8) 第四章设计总结 (11)

第一章设计原理 1.1设计要求 设计一个交通控制器,用LED显示灯表示交通状态,并以7段数码显示器显示当前状态剩余秒数主干道绿灯亮时,支干道红灯亮;反之亦然,二者交替允许通行,主干道每次放行35s,支干道每次放行25s。每次由绿灯变为红灯的过程中,亮光的黄灯作为过渡,黄灯的时间为5s。能进行特殊状态显示,特殊状态时东西、南北路口均显示红灯状态。用LED灯显示倒计时,并且能实现总体清零功能,计数器由初始状态开始计数,对应状态的显示灯亮。能实现特殊状态的功能显示。[1] 1.2设计思路和原理 (1) 主、支干道用传感器检测车辆到来情况,实验电路用逻辑开关代替。 (2) 选择1HZ时钟脉冲作为系统时钟。 (3) 45s、25s、5s定时信号可用顺计时,也可用倒计时,计时起始信号由主控电路给出,每当计满所需时间,启、闭三色信号灯,并启动另一计时电路。 (4) 交通灯状态变化如表1及图1所示: 表1 交通灯状态图

Verilog_HDL的交通灯控制器设计

课程设计报告 2015-2016学年第2学期 课程设计名称:电子综合设计EDA课程设计 院(系):电子信息学院 专业:电子信息工程班级:电子1313 姓名: xx 学号: 1310034303xx 综合实验时间: 2016/7/11-2016/7/15 指导教师:钟旭 提交时间: 2016/7/15

上海电机学院课程设计任务书

目录 第一章设计原理 (4) 1.1设计要求 (4) 1.2设计思路和原理 (4) 1.3实现方法 (4) 第二章Verilog HDL程序设计 (6) 2.1整体设计 (6) 2.2 具体设计 (7) 第三章仿真测试 (7) 3.1 波形仿真 (7) 第四章设计总结 (10)

第一章设计原理 1.1设计要求 设计一个交通控制器,用LED显示灯表示交通状态,并以7段数码显示器显示当前状态剩余秒数主干道绿灯亮时,支干道红灯亮;反之亦然,二者交替允许通行,主干道每次放行35s,支干道每次放行25s。每次由绿灯变为红灯的过程中,亮光的黄灯作为过渡,黄灯的时间为5s。能进行特殊状态显示,特殊状态时东西、南北路口均显示红灯状态。用LED灯显示倒计时,并且能实现总体清零功能,计数器由初始状态开始计数,对应状态的显示灯亮。能实现特殊状态的功能显示。[1] 1.2设计思路和原理 (1) 主、支干道用传感器检测车辆到来情况,实验电路用逻辑开关代替。 (2) 选择1HZ时钟脉冲作为系统时钟。 (3) 45s、25s、5s定时信号可用顺计时,也可用倒计时,计时起始信号由主控电路给出,每当计满所需时间,启、闭三色信号灯,并启动另一计时电路。 (4) 交通灯状态变化如表1及图1所示: 表1 交通灯状态图

Verilog HDL交通灯设计实验

实验四交通灯设计 一、实验目的和要求 1、了解交通灯控制原理 2、了解模块化设计方法 3、掌握数字系统设计的方法 4、通过仿真器观察输入输出波形,并能在FPGA开发板上实现交通灯控制系统 二、实验仪器 1、计算机 2、FPGA实验开发板 三、实验内容 (包括必要的步骤、原理,如状态图等) 1、完成系统的模块划分 2 3

十字路口交通灯程序代码: module top(clk,rst,road1,road2); input clk, rst; output[2:0] road1,road2; wire en5,en25,lin5,lin25; timer5 u1(clk,rst,en5,lin5); timer25 u2(clk,rst,en25,lin25); controller u3(clk,rst,en5,en25,lin5,lin25,road1,road2); endmodule module timer5(clk,rst,en5,lin5); input clk,rst,en5; output lin5; reg lin5;//对于timer 模块,lin5为输出口,所以用寄存器类型 reg[27:0] count; always @ (posedge clk) begin if(!rst) begin count<=0;lin5<=0; end else if(en5) begin count<=count+1; if(count==2_5000_0000) /*进行软件仿真时将数值改小,在实验时候跳转过快就是设置数值时少写了一个零*/ lin5<=1; end else begin count<=0 ; lin5<=0; end end endmodule

Verilog交通灯要点

摘要 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

用verilog语言编写交通灯程序

交通灯 实验目的 写一个交通灯,要求: ①有东西南北四个方向,两组交通灯轮流交替变换,其中,红灯时间为30 个时间单位,绿灯时间为25个时间单位,黄灯时间为5个时间单位。最后用modelsim软件进行仿真。 ②要求设计是一个可综合设计。 实验原理 根据实验要求的逻辑功能描述,可以分析得出原理图如下: [计数器}=> count 控制器即可以设计为一个有限状态机的形式: 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 s3: if(count=='d55) begin state< =s4; end s4: if(count=='d60) begin state<=s1; end endcase always @(posedge clk) begin if(!rst) begin ew<=3'b100; sn<=3'b100;

基于verilog的交通灯的设计

实验名称专业、年级学号姓名 交通灯的设计 以下内容由实验指导教师填写(实验内容请以批注的形式批阅)实验项目完成情况实验项目成绩指导教师时间 年月日 实验七交通灯的设计 一、实验目的 1、熟悉Quartus和 Modelsim 软件 2、学习分配管脚和下载测试 3、乘法运算显示电路设计验证 二、循环计数器的源代码 module traffic(rst1,rst2,clk,q2,c,d,e,f,red1,yellow1,green1,red2,yellow2,green2); input rst1,rst2,clk; output [5:0] q2; reg [24:0] q1; reg [5:0] q2; output reg [7:0] c,d,e,f; reg flag; output reg red1,yellow1,green1,red2,yellow2,green2; always @(posedge clk or negedge rst1) begin if(!rst1) begin flag=1'b0;q1<=0;end else if(q1==24999999) begin q1<=0;flag<=~flag;end else q1<=q1+1; end always @(negedge rst2 or posedge flag) begin if(!rst2) q2<=6'b101101; else if(q2==6'b000000) q2<=6'b101101;

else q2<=q2-1; end always @(q2) begin case(q2) 6'b000000 : begin c=8'hc0;d=8'hf9;e=8'hc0;f=8'hf9;end 6'b000001 : begin c=8'hc0;d=8'ha4;e=8'hc0;f=8'ha4;end 6'b000010 : begin c=8'hc0;d=8'hb0;e=8'hc0;f=8'hb0;end 6'b000011 : begin c=8'hc0;d=8'hf9;e=8'hc0;f=8'hf9;end 6'b000100 : begin c=8'hc0;d=8'ha4;e=8'hc0;f=8'ha4;end 6'b000101 : begin c=8'hc0;d=8'hb0;e=8'hc0;f=8'hb0;end 6'b000110 : begin c=8'hc0;d=8'h99;e=8'hc0;f=8'h99;end 6'b000111 : begin c=8'hc0;d=8'h92;e=8'hc0;f=8'h92;end 6'b001000 : begin c=8'hc0;d=8'h82;e=8'hc0;f=8'h82;end 6'b001001 : begin c=8'hc0;d=8'hf8;e=8'hc0;f=8'hf8;end 6'b001010 : begin c=8'hc0;d=8'h80;e=8'hc0;f=8'h80;end 6'b001011 : begin c=8'hc0;d=8'h90;e=8'hc0;f=8'h90;end 6'b001100 : begin c=8'hf9;d=8'hc0;e=8'hf9;f=8'hc0;end 6'b001101 : begin c=8'hf9;d=8'hf9;e=8'hf9;f=8'hf9;end 6'b001110 : begin c=8'hf9;d=8'ha4;e=8'hf9;f=8'ha4;end 6'b001111 : begin c=8'hf9;d=8'hb0;e=8'hf9;f=8'hb0;end 6'b010000 : begin c=8'hf9;d=8'h99;e=8'hf9;f=8'h99;end 6'b010001 : begin c=8'hf9;d=8'h92;e=8'hf9;f=8'h92;end 6'b010010 : begin c=8'hf9;d=8'h82;e=8'hf9;f=8'h82;end 6'b010011 : begin c=8'hf9;d=8'hf8;e=8'hf9;f=8'hf8;end 6'b010100 : begin c=8'hf9;d=8'h80;e=8'hf9;f=8'h80;end 6'b010101 : begin c=8'hf9;d=8'h90;e=8'hf9;f=8'h90;end 6'b010110 : begin c=8'ha4;d=8'hc0;e=8'ha4;f=8'hc0;end 6'b010111 : begin c=8'hc0;d=8'hf9;e=8'hc0;f=8'hf9;end 6'b011000 : begin c=8'hc0;d=8'ha4;e=8'hc0;f=8'ha4;end 6'b011001 : begin c=8'hc0;d=8'hb0;e=8'hc0;f=8'hb0;end 6'b011010 : begin c=8'hc0;d=8'hf9;e=8'hc0;f=8'hf9;end 6'b011011 : begin c=8'hc0;d=8'ha4;e=8'hc0;f=8'ha4;end 6'b011100 : begin c=8'hc0;d=8'hb0;e=8'hc0;f=8'hb0;end 6'b011101 : begin c=8'hc0;d=8'h99;e=8'hc0;f=8'h99;end 6'b011110 : begin c=8'hc0;d=8'h92;e=8'hc0;f=8'h92;end 6'b011111 : begin c=8'hc0;d=8'h82;e=8'hc0;f=8'h82;end

智能交通灯控制器的设计(verilog)

智能交通灯控制器的设计 1、实验目的及要求 实验目的:通过交通灯的设计与仿真综合,体会复杂时序的实现方法,学会用框图表示程序的设计思想,掌握中小规模集成电路的系统综合设计方法。 实验要求:设计一个交通灯信号控制电路。具体要求为:输入为50MHz的时钟和复位信号,输出为红、绿、黄三个信号(高电平为亮)。复位信号(高电平)有效,红、绿、黄灯灭;接着进行如下循环:绿灯亮1分钟,黄灯闪烁10秒,红灯亮1分钟。在此基础上再加两个数码管,对倒计时的数显示。 2、实验设备(环境)及要求 实验EDA工具为:Synplify Pro 9.6.2和ModelSim SE 6.2b。 3、实验内容与步骤 3.1设计思路概述 总体上分为三个大模块,即:顶层模块、控制模块、译码模块(包括显示模块)。他们各自的作用分别如下: 顶层模块: 此模块只做例化,即对底层的控制模块和译码模块进行例化,而不做逻辑设计。 控制模块: 此模块是本程序的主体,主要是控制各个灯颜色(此模块并不控制黄灯的闪烁)的转换,以及倒计时时间输出。 首先要对时钟进行分频。由于系统时钟频率比较大,因此首先分频产生时钟,用于下面的电路的控制;然后是各种颜色之间的转换,在此在添加一个使能端enable ,当使能端enable为0的时候,就开始进行状态循环以及倒计时,然后enable就立即变为1;状态用light_status(分别为0、1、2)表示,开始的时候,如果状态light_status为0,表示此时显示的是绿灯,便把绿灯亮的时间(60s)

给统计灯亮时间的变量light_long,并且把显示灯亮的变量light_select赋值100(高电平表示亮),最后把状态标志位light_status赋1,但是此时并不能转向下一个状态(黄),因为绿灯亮的时间还没有控制,接下来会转到倒计时处。 然后,我们这里用了BCD码表示倒计时时间。灯亮或闪烁时间(绿、黄、红分别为60s、10s、60s)用BCD码表示(分别为60h、10h、60h),倒计时的时候个位和十位分别是BCD码的高四位和低四位,首先是低四位倒数,当倒数到0时,给它重新赋值为9,且高四位减1,如此循环,直到这个数减到0,此时表示某一个灯亮的时间到,接着进行下一个状态,为了能使进入下一个状态,必须在时间减到0的时候,给使能端enable 赋值0;由于用的BCD码,高四位和低四位就分别是我们要在译码模块的要用数码管显示的十位和个位。 译码模块: 此模块主要有两个作用,控制黄灯闪烁以及对倒计时时间进行译码输出。 首先是控制黄灯闪烁。由于控制模块只是控制三个灯的亮与不亮,在此模块中首先是相当于产生一个分频时钟y_flicker(周期1s),然后是控制黄灯的闪烁,控制模块light_select只是控制了三个灯亮与不亮(三位二进制,高电平有效),最后显示灯的亮或者闪还用三位二进制表示(colour),控制时直接把light_select 的最高位和最低位直接赋给colour的最高位和最低位(分别控制绿灯和红灯的亮),中间位当分频时钟y_flicker为高且输入light_select为高时,输出colour 才为高(黄灯亮),别的情况colour中间位都为低(黄灯灭),至此可以完美实现黄灯的闪烁了(1s内亮0.5s灭0.5s),也就可以实现要求的各个灯的亮或者闪烁。 然后就是七段译码的过程。采用了3—8译码器的设计原理,将倒计时时间译码,输出到LED晶体管,显示最终倒计时时间。LED中二极管对应的顺序编号如图1所示,并且是低电平有效。写出所有数字对应的字型码,就可以知道数字的控制电平。由于只有两位数字,考虑到成本以及复杂性,可不用扫描,直接用两个译码器就可以了。

verilog课程设计交通灯

课 程 论 文 论文题目 基于DE2的交通灯 设计 完成时间 课程名称 Verilog 语言设计 任课老师 专 业 年 级 1.交通信号控制器设计要求与思路 1.1设计背景 FPGA 是一种用户根据各自需要而自行构造逻辑功能的数字集成电路,其种类很多,内部结构也不同,但共同的特点是体积小、使用方便。本文介绍了用VerilogHDL 语言设计交通灯控制器的方法,并在QuartusII 系统对FPGA 芯片进行编译下载,由于生成的是集成化的数字电路,没有传统设计中的接线问题,所以故障率低、可靠性高,而且体积非常小。本文通过EDA 设计,利用VerilogHDL 语言模拟仿真交通灯控制电路。 1.2设计要求 根据交通灯控制器要实现的功能,考虑用两个并行执行的always 语句来分别控制A 方向和B 方向的3盏灯。这两个always 语句使用同一个时钟信号,以进行同步,也就是说,两个进程的敏感信号是同一个。每个always 语句控制一个方向的3种灯按如下顺序点亮,并往复循环:绿灯----黄灯----红灯,每种灯亮的时间采用一个减法计数器进行计数,计数器用同步预置数法设计,这样只需改变预置数据,就能改变计数器的模,因此每个方向只要一个计数器进行预置数就可以。为便于显示灯亮的时间,计数器的输出均采用BCD 码,显示由4个数码管来完成,A 方向和B 方向各用两个数码管。设定A 方向红灯、黄灯、绿灯亮的时间分别为:35s 、5s 、35s ,B 方向的红灯、黄灯、绿灯亮的时间分别为:35s 、5s 、35s 。假如要改变这些时间,只需要改变计数器的预置数即可。 1.3设计思路 两个方向各种灯亮的时间能够进行设置和修改,此外,假设B 方向是主干道,车流量大,因此B 方向通行的时间应该比A 方向长。交通灯控制器的状态转换表

相关主题
文本预览
相关文档 最新文档