类型交通灯设计verilog方案.doc

收藏

编号:2651647    类型:共享资源    大小:499.78KB    格式:DOC    上传时间:2020-04-17
  
8
金币
分享到微信 分享到微博 分享到QQ空间
关 键 词:
交通灯 设计 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 目录 一、概述.................................................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)状态,并周期重复进行。 状态图如下: 30秒 S1 S0 5秒 5秒 S2 S3 20秒 2.系统设计方案: 根据设计要求和系统所具有功能,并参考相关的文献资料经行方案设计画出如下所示的十字路口交通灯控制器系统框图,及为设计的总体方案,框图如下图所示: 四、程序设计 1.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=2b00,s1=2b01,s2=2b10,s3=2b11;//四个循环状态 reg[25:0]count;reg div; always @(en ) if(en) begin //设置计数初值 if (!in1)begin green1<=8b00110000;red2<=8b00110000; end//30H,即30秒 else begin green1<=8b01100000;red2<=8b01100000;end//60s if (!in2)begin red1<=8b00100000;green2<=8b00100000; end//20s else begin red1<=8b01000000;green2<=8b01000000; end//40s yellow1<=8b00000101; yellow2<=8b00000101;//05s end always@(posedge clk)//分频 if (count==25000000) begin div<=1;count<=count+1;end else if(count==50000000)begin div<=0;count<=0;end else count<=count+1; always @(posedge div) begin if(rst) //复位情况控制 begin light1<=3b001; num1<=green1; end else if(en) begin //使能有效开始控制计数 if(!tim1) //开始控制 begin //主干道交通灯点亮控制 tim1<=1; case(state1)//状态机 s0:begin num1<=green1;light1<=3b001;state1<=s1;end s1:begin num1<=yellow1;light1<=3b010;state1<=s2;end s2:begin num1<=red1;light1<=3b100;state1<=s3;end s3:begin num1<=yellow1;light1<=3b010;state1<=s0;end default:light1<=3b100; endcase end else begin //倒数计时 if(num1>0) if(num1[3:0]==0) begin num1[3:0]<=4b1001; num1[7:4]<=num1[7:4]-1;//十位减1 end else num1[3:0]<=num1[3:0]-1; //个位减1 if(num1==1) tim1<=0; end end else begin light1<=3b010; num1=2b00; tim1<=0; end end always @(posedge div ) //从干道 begin if(rst) //复位情况控制 begin light2<=3b100; num2<=red2; end else if(en) begin if(!tim2) begin tim2<=1; case(state1) s0:begin num2<=red2;light2<=3b100;state2<=s1;end s1:begin num2<=yellow1;light2<=3b010;state2<=s2;end s2:begin num2<=green2;light2<=3b001;state2<=s3;end s3:begin num2<=yellow2;light2<=3b010;state2<=s0;end default:light2<=3b100; endcase end else begin //倒数计时 if(num2>0) if(num2[3:0]==0) begin num2[3:0]<=4b1001; num2[7:4]<=num2[7:4]-1; end else num2[3:0]<=num2[3:0]-1; if(num2==1) tim2<=0; end end else begin tim2<=0; state2<=2b00; light2<=3b010; end end always @(posedge clk) begin //数码管译码显示 case(num1[3:0]) 4b0000: out1<=~7b0111111; //0 ,3F 4b0001: out1<=~7b0000110; //1 ,06 4b0010: out1<=~7b1011011; //2 ,5B 4b0011: out1<=~7b1001111; //3 ,4F 4b0100: out1<=~7b1100110; //4 ,66 4b0101: out1<=~7b1101101; //5 ,6D 4b0110: out1<=~7b1111101; //6 ,7D 4b0111: out1<=~7b0000111; //7 ,07 4b1000: out1<=~7b1111111; //8, 7F 4b1001: out1<=~7b1101111; //9, 6F default: out1<=~7b0111111; //0 ,3F endcase end always @(posedge clk) begin //数码管译码显示 case(num1[7:4]) 4b0000: out2<=~7b0111111; //0 ,3F 4b0001: out2<=~7b0000110; //1 ,06 4b0010: out2<=~7b1011011; //2 ,5B 4b0011: out2<=~7b1001111; //3 ,4F 4b0100: out2<=~7b1100110; //4 ,66 4b0101: out2<=~7b1101101; //5 ,6D 4b0110: out2<=~7b1111101; //6 ,7D 4b0111: out2<=~7b0000111; //7 ,07 4b1000: out2<=~7b1111111; //8, 7F 4b1001: out2<=~7b1101111; //9, 6F default: out2<=~7b0111111; //0 ,3F endcase end always @(posedge clk) begin //数码管译码显示 case(num2[3:0]) 4b0000: out3<=~7b0111111; //0 ,3F 4b0001: out3<=~7b0000110; //1 ,06 4b0010: out3<=~7b1011011; //2 ,5B 4b0011: out3<=~7b1001111; //3 ,4F 4b0100: out3<=~7b1100110; //4 ,66 4b0101: out3<=~7b1101101; //5 ,6D 4b0110: out3<=~7b1111101; //6 ,7D 4b0111: out3<=~7b0000111; //7 ,07 4b1000: out3<=~7b1111111; //8, 7F 4b1001: out3<=~7b1101111; //9, 6F default: out3<=~7b0111111; //0 ,3F endcase end always @(posedge clk) begin //数码管译码显示 case(num2[7:4]) 4b0000: out4<=~7b0111111; //0 ,3F 4b0001: out4<=~7b0000110; //1 ,06 4b0010: out4<=~7b1011011; //2 ,5B 4b0011: out4<=~7b1001111; //3 ,4F 4b0100: out4<=~7b1100110; //4 ,66 4b0101: out4<=~7b1101101; //5 ,6D 4b0110: out4<=~7b1111101; //6 ,7D 4b0111: out4<=~7b0000111; //7 ,07 4b1000: out4<=~7b1111111; //8, 7F 4b1001: out4<=~7b1101111; //9, 6F default: out4<=~7b0111111; //0 ,3F endcase end endmodule 2. 设备选择: 3.引脚绑定 五、仿真 1.仿真波形: 2.硬件验证: 将verilog源程序文件下载到DE2开发板进行硬件验证,完成检测和调试。截图如下: 六、结束语 七、参考文献 [1]夏宇闻.Verilog数字系统设计[M].北京: 北京航空航天大学出版社,2008 [2]康华光.电子技术基础(数字部分)[M].北京:高等教育出版社,2006 [3]徐志军,徐光辉.CPLD/FPGA的开发与应用[M].北京:电子工业出 版社,2002 [4]张明.Verilog HDL实用教程[M].成都:电子科技大学出版社,1999 [5]Hyde D C.Bucknell Handbook on VerilogHDLComputer Science Department, Bucknell University Lewisburg,1995
展开阅读全文
提示  得力文库 - 分享文档赚钱的网站所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:交通灯设计verilog方案.doc
链接地址:https://www.deliwenku.com/p-2651647.html
关于得利文库 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com  

收起
展开