《交通灯控制器设计.doc》由会员分享,可在线阅读,更多相关《交通灯控制器设计.doc(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、. .学号:成绩:XX联合大学电气工程学院?综合性课程设计报告交通灯控制器设计?专业:电子科学与技术班 级:_ 11电技班 _姓 名:_指导教师:_2021 年1月9日交通灯控制设计 X桂明摘要:本次课设是目的是通过Verilog_HDL语言对交通灯控制的设计,是同学们熟悉并掌握EDA技术、培养综合应用数字电子技术、EDA设计工具、HDL语言等各领域知识的能力、提高设计能力和实际操作能力。本课题是利用Verilog_HDL语言自顶而下的设计方法设计交通的控制系统,并通过Quartus和ModelSim完成综合、仿真,对FPGA芯片进展编译下载。把程序下载到FPGA芯片后,由于生成的是集成电路,
2、所以故障率低、可靠性高、体积比拟小,可应用于实际的交通灯控制系统中,使其实现道路交通的快速正常运转。随着大规模集成电路的开展、EDA技术随之出现,本课题说明了EDA技术在数字电路设计中的优越性。关键词:Verilog_HDL FPGA 交通灯控制器 硬件描述语言1、简介 1.1课程设计的目的和内容用Verilog HDL语言设计实现一个交通灯控制器电路:十字路口A方向和B方向各设红、黄、绿和左拐四盏灯,两个方向各种灯亮的时间能够进展设置和修改,此外,假设A方向是主干路,车流量大,因此A方向通行的时间应比B方向长;四盏灯按合理的顺序亮灭,并能将灯亮的时间以倒计时的形式显示出来。每个方向四种灯依次
3、按如下顺序点亮,并不断循环:绿灯黄灯左拐灯黄灯红灯,并且每个方向红灯亮的时间应该与另一方向绿、黄、左拐、黄灯亮的时间相等。黄灯所起的作用是用来在绿灯和左拐灯后进展缓冲。在本课程设计中,着重培养学生的如下能力:熟悉EDA技术概况。培养综合应用数字电子技术、EDA设计工具、HDL语言等各领域知识的能力。提高设计能力和实际操作能力,使学生能够独立完成具有一定难度的数字电子系统的设计,并锻炼动手实践能力。1.2Verilog语言简介Verilog HDL是一种硬件描述语言HDL:Hardware Description Language,以文本形式来描述数字系统硬件的构造和行为的语言,用它可以表示逻辑
4、电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。 Verilog HDL和VHDL是世界上最流行的两种硬件描述语言,都是在20世纪80年代中期开发出来的。前者由Gateway Design Automation公司该公司于1989年被Cadence公司收购开发。两种HDL均为IEEE标准。1.3 Verilog HDL 的设计流程1文本编辑:用任何文本编辑器都可以进展,也可以用专用的 HDL 编辑环境。通常 Verilog HDL 文件保存为 .v 文件。 2功能仿真:将文件调入 HDL 仿真软件进展功能仿真,检查逻辑功能是否正确也叫前仿真,对简单的设计可以跳过这一步,只有在布线完
5、成之后,才进展时序仿真 。 3逻辑综合:将源文件调入逻辑综合软件进展综合,即把语言综合成最简的布尔表达式。逻辑综合软件会生成 .edf EDIF 的 EDA 工业标准文件。 最好不用 MAX+PLUS II 进展综合,因为只支持 VHDL/Verilog HDL 的子集 4布局布线:将 .edf 文件调入 PLD 厂家提供的软件中进展布线,即把设计好的逻辑安放到 CPLD/FPGA 。 5时序仿真:需要利用在布局布线中获得的准确参数,用仿真软件验证电路的时序也叫后仿真。2、总体设计每个方向四种灯依次按如下顺序点亮,并不断循环:绿灯黄灯左拐灯黄灯红灯,并且每个方向红灯亮的时间应该与另一方向绿、黄
6、、左拐、黄灯亮的时间相等。黄灯所起的作用是用来在绿灯和左拐灯后进展缓冲,以提醒行人及驾驶员该方向上要禁行了;信号灯变换次序为:A主干道 每次放行 40 秒,亮 5 秒黄灯让行驶中的车辆有时间停到禁行线外,左拐放行 15 秒,亮 5 秒黄灯;支干道放行 30 秒,亮 5 秒黄灯,左拐放行 15 秒,亮 5 秒黄灯.,各计时电路位倒计时显示。图1 设计流程图根据系统的功能要求, 可分为四个局部来实现, 分别是定时模块, 主控电路, 译码驱动电路和扫描显示几局部。 分频局部是把外部提供的 1Hz 进展分频得到系 统工作需要的工作脉冲,显示局部包括两个内容,一个是主干道红绿灯显示,另 一个是支干道红绿
7、灯显示。然后将红绿灯显示时间以 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)依次循环跳到主干道,
8、红绿灯重新计时图2 设计电路图道红绿灯显示;输出局部为七段译码显示和位选码 MS,数码管显示的是交 通信号灯转换时间。3、实验方法3.1仿真平台简介Mentor公司的ModelSim是业界最优秀的HDL语言仿真软件,它能提供友好的仿真环境,是业界唯一的单内核支持VHDL和Verilog混合仿真的仿真器。它采用直接优化的编译技术、Tcl/Tk技术、和单一内核仿真技术,编译仿真速度快,编译的代码与平台无关,便于保护IP核,个性化的图形界面和用户接口,为用户加快调错提供强有力的手段,是FPGA/ASIC设计的首选仿真软件。主要特点:RTL和门级优化,本地编译构造,编译仿真速度快,跨平台跨版本仿真;
9、单内核VHDL和Verilog混合仿真; 源代码模版和助手,工程管理; 集成了性能分析、波形比拟、代码覆盖、数据流ChaseX、Signal Spy、虚拟对象Virtual Object、Memory窗口、Assertion窗口、源码窗口显示信号值、信号条件断点等众多调试功能; C和Tcl/Tk接口,C调试;对SystemC的直接支持,和HDL任意混合; 支持SystemVerilog的设计功能;对系统级描述语言的最全面支持,SystemVerilog,SystemC,PSL; ASIC Sign off。可以单独或同时进展行为behavioral、RTL级、和门级gate-level的代码。
10、3.2仿真步骤1) 点开file,选择new,点击project,来创立一个新工程。2) 在弹出的对话框中输入工程名和库名称,这里直接采用默认库work,输入的工程名为“testtraffic,输入完毕后点击ok完成。3) 在弹出的对话框中选中AddExistingFile按钮,找到文件存储的路径“modelsim点击ok。同时两个程序文件处会有两个问号。4右键点击空白处,选择其中的pile选项,会出现一系列的编译方式。最常用的是前两个,即编译选中文件pile Selected。同时两个程序文件处的问号变为对号。5) 选中Simulate,选择第二个start Simulation。在弹出的对
11、话框中选择work里的testtraffic并且去掉左下角的对号,点击ok。6) 右键点击testtraffic模块,选中Add,然后Add to Wave。这时会出现一个新窗口:wave-default。这里就是观察信号变化的区域,在仿真没有运行时,输出的信号均为空,快捷键中有Run-All按钮进展仿真。4、 仿真步骤图3 仿真结果示意图如图3所示,我们看出看出主干道红灯亮的时间等于支路绿灯,黄灯,左转灯,黄灯亮的时间之和,同时支路红灯亮的时间等于主干道绿灯,黄灯,左转灯,黄灯亮的时间之和。本设计中设定A方向红、绿、黄、左拐灯亮的时间分别为55秒、40秒、5秒和15秒,B方向红、绿、黄、左拐
12、灯亮的时间分别为:65秒、30秒、5秒和15秒,该系统满足我们的设计需求。5、 结论通过本次课设,是我从一个verilog HDL编程语言的菜鸟逐渐升级为一个感兴趣的初学者.体验到了细心对一个编程者的重要性, 和程序的规X性对于程序的重要性在verilog语言中,我们必须注意其与C语言的异同,比方格式和变量定义,还有模块的调用,和时钟信号的应用。还有,verilogHDL设计语言是一门很好的硬件描述语言, 可以直白的描述实际的电路, 实际的系统模型, 易懂而且易于实现,我觉得在以后多加练习,可以对以后的学习和工作带来莫大的帮助。通过做熊教师的课程设计培养了学生综合运用所学知识,发现,提出,分析
13、和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。通过这次课程设计使我懂得了理论与实际相结合是很重要的, 只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来, 从理论中得出结论,从而提高自己的实际动手能力和独立思考的能力。如果说大学的学习就像是在充实自己,那么课设的意义就是让所学的东西充分的发挥出来,我希望大学的制度也可以从大一就开场抓起,这才是对我们学生的一次提升。在实战中自由发挥,只有困难才能让我们更加强大。参考文献1、?CPLD/FPGA 应用系统设计与(根底篇)? 亿特科技 人民邮电 出版日期:2005年7月 书号:ISBN 7-115-13
14、200-3/TP.45032、林明权.VHDL 数字控制系统设计X例(第一版)M:电子工业;3、杨晓慧.电子技术 EDA 实践教程第一版M,:国防工业;附录module aa(clk,rst,LAMPA,led,data_out);output7:0 LAMPA ,led,data_out;input clk,rst;reg7:0numa,led;reg tempa ,i;reg3:0 data_in;reg3:0counta;reg7:0ared,ayellow,agreen;reg7:0LAMPA,data_out;reg 24:0 c, k,c1;reg clk1s;reg clk_10
15、0;reg19:0t2;always (posedge clk )beginif(c=12500000)beginc=0;clk1s=clk1s;endelsec=c+1;endalways (posedge clk )begint2=t2+1;if(t2=100000)beginclk_100=clk_100;t2=0;endendalways(posedge clk1s or negedge rst )/该模块控制东西方向的三种灯if(!rst)LAMPA=8b00001001;elsebeginayellow=8b00000110;agreen=8b00000111;if(!tempa)
16、begintempa=1;if(counta = 0)beginnuma=agreen;LAMPA=8b00100001;/南北方向通绿灯亮东西方向红灯亮counta=counta+1;endif(counta = 1)beginnuma=ayellow;LAMPA=8b00010001;/南北方向黄灯亮东西方向红灯亮counta=counta+1;endif(counta = 2)beginnuma=ayellow;LAMPA=8b00000001;/南北方向黄灯灭东西方向红灯亮counta=counta+1;endif(counta = 3)beginnuma=ayellow;LAMPA=
17、8b00010001;/南北方向黄灯亮东西方向红灯亮counta=counta+1;endif(counta = 4)beginnuma=agreen;LAMPA=8b00001100;/南北方向红灯亮东西方向绿灯亮counta=counta+1;endif(counta = 5)beginnuma=ayellow;LAMPA=8b00001010;/南北方向红灯亮东西方向黄灯亮counta=counta+1;endif(counta = 6)beginnuma=ayellow;LAMPA=8b00001000;/南北方向红灯亮东西方向黄灯灭counta=counta+1;endif(coun
18、ta = 7)beginnuma=ayellow;LAMPA=8b00001010;/南北方向红灯亮东西方向黄灯亮counta=0;endendelsebegin/倒计时模块if(numa)beginif(numa=0)begintempa=0;endelsebeginif(numa7:4=4b0000)beginnuma3:0=4b1111;numa7:4= numa7:4-4b0001;endelsenuma3:0=numa3:0-4b0001;endendendend/always (posedge clk_100 or negedge rst)if(!rst)begini=0;led=
19、8b11111100;data_out=8b11000000;endelsebeginled=(1i);if(i=0)begindata_in=numa7:4;i=i+1b1;endelseif(i=1)begindata_in=numa3:0;i=1b0;endcase(data_in)4b0000 : data_out = 8b11000000;/04b0001 : data_out = 8b11111001;/14b0010 : data_out = 8b10100100;/24b0011 : data_out = 8b10110000;/34b0100 : data_out = 8b10011001;/44b0101 : data_out = 8b10010010;/54b0110 : data_out = 8b10000011;/64b0111 : data_out = 8b11111000;/74b1000 : data_out = 8b10000000;/84b1001 : data_out = 8b10011000;/9/4b1111 : data_out = 8b10111111;default : data_out = 8b11000000;endcaseendendmodule. .word.