交通灯控制器设计Word下载.docx

上传人:b****7 文档编号:22281815 上传时间:2023-02-03 格式:DOCX 页数:13 大小:183.06KB
下载 相关 举报
交通灯控制器设计Word下载.docx_第1页
第1页 / 共13页
交通灯控制器设计Word下载.docx_第2页
第2页 / 共13页
交通灯控制器设计Word下载.docx_第3页
第3页 / 共13页
交通灯控制器设计Word下载.docx_第4页
第4页 / 共13页
交通灯控制器设计Word下载.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

交通灯控制器设计Word下载.docx

《交通灯控制器设计Word下载.docx》由会员分享,可在线阅读,更多相关《交通灯控制器设计Word下载.docx(13页珍藏版)》请在冰豆网上搜索。

交通灯控制器设计Word下载.docx

1.1课程设计的目的和内容

用VerilogHDL语言设计实现一个交通灯控制器电路:

十字路口A方向和B方向各设红、黄、绿和左拐四盏灯,两个方向各种灯亮的时间能够进行设置和修改,此外,假设A方向是主干路,车流量大,因此A方向通行的时间应比B方向长;

四盏灯按合理的顺序亮灭,并能将灯亮的时间以倒计时的形式显示出来。

每个方向四种灯依次按如下顺序点亮,并不断循环:

绿灯—黄灯—左拐灯—黄灯—红灯,并且每个方向红灯亮的时间应该与另一方向绿、黄、左拐、黄灯亮的时间相等。

黄灯所起的作用是用来在绿灯和左拐灯后进行缓冲。

在本课程设计中,着重培养学生的如下能力:

熟悉EDA技术概况。

培养综合应用数字电子技术、EDA设计工具、HDL语言等各领域知识的能力。

提高设计能力和实际操作能力,使学生能够独立完成具有一定难度的数字电子系统的设计,并锻炼动手实践能力。

1.2Verilog语言简介

VerilogHDL是一种硬件描述语言(HDL:

HardwareDescriptionLanguage),以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。

VerilogHDL和VHDL是世界上最流行的两种硬件描述语言,都是在20世纪80年代中期开发出来的。

前者由GatewayDesignAutomation公司(该公司于1989年被Cadence公司收购)开发。

两种HDL均为IEEE标准。

1.3VerilogHDL的设计流程

1)文本编辑:

用任何文本编辑器都可以进行,也可以用专用的HDL编辑环境。

通常VerilogHDL文件保存为.v文件。

2)功能仿真:

将文件调入HDL仿真软件进行功能仿真,检查逻辑功能是否正确(也叫前仿真,对简单的设计可以跳过这一步,只有在布线完成之后,才进行时序仿真)。

3)逻辑综合:

将源文件调入逻辑综合软件进行综合,即把语言综合成最简的布尔表达式。

逻辑综合软件会生成.edf(EDIF)的EDA工业标准文件。

(最好不用MAX+PLUSII进行综合,因为只支持VHDL/VerilogHDL的子集)

4)布局布线:

将.edf文件调入PLD厂家提供的软件中进行布线,即把设计好的逻辑安放到CPLD/FPGA内。

5)时序仿真:

需要利用在布局布线中获得的精确参数,用仿真软件验证电路的时序也叫后仿真。

2、总体设计

黄灯所起的作用是用来在绿灯和左拐灯后进行缓冲,以提醒行人及驾驶员该方向上要禁行了;

信号灯变换次序为:

A主干道每次放行40秒,亮5秒黄灯让行驶中的车辆有时间停到禁行线外,左拐放行15秒,亮5秒黄灯;

支干道放行30秒,亮5秒黄灯,左拐放行15秒,亮5秒黄灯......,各计时电路位倒计时显示。

图1设计流程图

根据系统的功能要求,可分为四个部分来实现,分别是定时模块,主控电路,译码驱动电路和扫描显示几部分。

分频部分是把外部提供的1Hz进行分频得到系统工作需要的工作脉冲,显示部分包括两个内容,一个是主干道红绿灯显示,另一个是支干道红绿灯显示。

然后将红绿灯显示时间以BCD码形式显示出来,显示模块将其译码轮流扫描显示4具有四种信号灯的交通灯控制器设计如图2

交通信号灯控制器系统工作流程

(1)主干道放行亮绿灯40秒,支干道红灯显示65秒;

(2)主干道绿灯转黄灯5秒,支干道红灯显示25秒

(3)主干道黄灯转左拐15秒,支干道红灯显示20秒;

(4)主干道左拐转红灯55秒,支干道绿灯显示30秒;

(5)主干道红灯显示25秒,支干道绿灯转黄灯5秒;

(6)主干道红灯显示20秒,支干道黄灯转左拐15秒;

(7)主干道亮红灯5秒,支干道左拐转黄灯5秒;

(8)依次循环跳到主干道,红绿灯重新计时

图2设计电路图

道红绿灯显示;

输出部分为七段译码显示和位选码MS,数码管显示的是交通信号灯转换时间。

3、实验方法

3.1仿真平台简介

Mentor公司的ModelSim是业界最优秀的HDL语言仿真软件,它能提供友好的仿真环境,是业界唯一的单内核支持VHDL和Verilog混合仿真的仿真器。

它采用直接优化的编译技术、Tcl/Tk技术、和单一内核仿真技术,编译仿真速度快,编译的代码与平台无关,便于保护IP核,个性化的图形界面和用户接口,为用户加快调错提供强有力的手段,是FPGA/ASIC设计的首选仿真软件。

主要特点:

RTL和门级优化,本地编译结构,编译仿真速度快,跨平台跨版本仿真;

单内核VHDL和Verilog混合仿真;

源代码模版和助手,项目管理;

集成了性能分析、波形比较、代码覆盖、数据流ChaseX、SignalSpy、虚拟对象VirtualObject、Memory窗口、Assertion窗口、源码窗口显示信号值、信号条件断点等众多调试功能;

C和Tcl/Tk接口,C调试;

对SystemC的直接支持,和HDL任意混合;

支持SystemVerilog的设计功能;

对系统级描述语言的最全面支持,SystemVerilog,SystemC,PSL;

ASICSignoff。

可以单独或同时进行行为(behavioral)、RTL级、和门级(gate-level)的代码。

3.2仿真步骤

1)点开file,选择new,点击project,来创建一个新工程。

2)在弹出的对话框中输入工程名和库名称,这里直接采用默认库work,输入的工程名为“testtraffic”,输入完毕后点击ok完成。

3)在弹出的对话框中选中AddExistingFile按钮,找到文件存储的路径“modelsim”点击ok。

同时两个程序文件处会有两个问号。

4)右键点击空白处,选择其中的Compile选项,会出现一系列的编译方式。

最常用的是前两个,即编译选中文件CompileSelected。

同时两个程序文件处的问号变为对号。

5)选中Simulate,选择第二个startSimulation。

在弹出的对话框中选择work里的testtraffic并且去掉左下角的对号,点击ok。

6)右键点击testtraffic模块,选中Add,然后AddtoWave。

这时会出现一个新窗口:

wave-default。

这里就是观察信号变化的区域,在仿真没有运行时,输出的信号均为空,快捷键中有Run-All按钮进行仿真。

4、仿真步骤

图3仿真结果示意图

如图3所示,我们看出看出主干道红灯亮的时间等于支路绿灯,黄灯,左转灯,黄灯亮的时间之和,同时支路红灯亮的时间等于主干道绿灯,黄灯,左转灯,黄灯亮的时间之和。

本设计中设定A方向红、绿、黄、左拐灯亮的时间分别为55秒、40秒、5秒和15秒,B方向红、绿、黄、左拐灯亮的时间分别为:

65秒、30秒、5秒和15秒,该系统满足我们的设计需求。

5、结论

通过本次课设,是我从一个verilogHDL编程语言的菜鸟逐渐升级为一个感兴趣的初学者.体验到了细心对一个编程者的重要性,和程序的规范性对于程序的重要性在verilog语言中,我们必须注意其与C语言的异同,比如格式和变量定义,还有模块的调用,和时钟信号的应用。

还有,verilogHDL设计语言是一门很好的硬件描述语言,可以直白的描述实际的电路,实际的系统模型,易懂而且易于实现,我觉得在以后多加练习,可以对以后的学习和工作带来莫大的帮助。

通过做熊老师的课程设计培养了学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,从而提高自己的实际动手能力和独立思考的能力。

如果说大学的学习就像是在充实自己,那么课设的意义就是让所学的东西充分的发挥出来,我希望大学的制度也可以从大一就开始抓起,这才是对我们学生的一次提升。

在实战中自由发挥,只有困难才能让我们更加强大。

参考文献

1、《CPLD/FPGA应用系统设计与(基础篇)》作者:

亿特科技人民邮电出版社出

版日期:

2005年7月书号:

ISBN7-115-13200-3/TP.4503

2、林明权.VHDL数字控制系统设计范例(第一版)[M]北京:

电子工业出版社;

3、杨晓慧.电子技术EDA实践教程(第一版)[M],北京:

国防工业出版社;

附录

moduleaa(clk,rst,LAMPA,ledcom,data_out);

output[7:

0]LAMPA,ledcom,data_out;

inputclk,rst;

reg[7:

0]numa,ledcom;

regtempa,i;

reg[3:

0]data_in;

0]counta;

0]ared,ayellow,agreen;

0]LAMPA,data_out;

reg[24:

0]c,k,c1;

regclk1s;

regclk_100;

reg[19:

0]cnt2;

always@(posedgeclk)

begin

if(c==12500000)

c<

=0;

clk1s=~clk1s;

end

else

=c+1;

cnt2<

=cnt2+1;

if(cnt2==100000)

clk_100=~clk_100;

always@(posedgeclk1sornegedgerst)//该模块控制东西方向的三种灯

if(!

rst)

LAMPA<

=8'

b00001001;

ayellow<

b00000110;

agreen<

b00000111;

tempa)

tempa<

=1;

if(counta==0)

numa<

=agreen;

b00100001;

//南北方向通绿灯亮东西方向红灯亮

counta<

=counta+1;

if(counta==1)

=ayellow;

b00010001;

//南北方向黄灯亮东西方向红灯亮

if(counta==2)

=ayellow;

b00000001;

//南北方向黄灯灭东西方向红灯亮

if(counta==3)

if(counta==4)

b00001100;

//南北方向红灯亮东西方向绿灯亮

if(counta==5)

b00001010;

//南北方向红灯亮东西方向黄灯亮

if(counta==6)

b00001000;

//南北方向红灯亮东西方向黄灯灭

if(counta==7)

begin//倒计时模块

if(numa)

if(numa==0)

if(numa[7:

4]==4'

b0000)

numa[3:

0]<

=4'

b1111;

numa[7:

4]<

=numa[7:

4]-

4'

b0001;

=numa[3:

0]-

//////////////////////////////////////////////////////////////////////

always@(posedgeclk_100ornegedgerst)

i<

ledcom<

b11111100;

data_out<

b11000000;

=~(1<

<

i);

if(i==0)

data_in<

=numa[7:

4];

=i+1'

b1;

if(i==1)

0];

=1'

b0;

case(data_in)

b0000:

data_out<

=8'

//0

b0001:

b11111001;

//1

b0010:

b10100100;

//2

b0011:

b10110000;

//3

b0100:

b10011001;

//4

b0101:

b10010010;

//5

b0110:

b10000011;

//6

b0111:

b11111000;

//7

b1000:

b10000000;

//8

b1001:

b10011000;

//9

//4'

b1111:

b10111111;

default:

endcase

endmodule

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 调查报告

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1