ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:194.15KB ,
资源ID:4753674      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4753674.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Verilog交通灯.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Verilog交通灯.docx

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

2、e, 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 ro

3、ad 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 downlo

4、ading to the FPGA chipKeywords:Verilog HDL; hardware description language; state; FPGA目录一、概述.4二、任务功能.5三系统设计.51.工作原理.5 2.系统设计方案.6四、程序设计.71.verilog源程序.72.设备选择.113.引脚绑定.12五、仿真.121.仿真波形. 122.硬件验证. 12六、结束语.13七、参考文献.14一:概述HDL(Hardware Description Language,硬件描述语言)是一种描述硬件所做工作的语言。目前,电子系统向集成化、大规模和高速度等方向发展,以硬件

5、描述语言和逻辑综合为基础的自顶向下的电路设计方法在业界得到迅猛发展,HDL在这种形势下显示出了巨大的优势,展望将来HDL在硬件设计领域的地位将与C和C+在软件设计领域地位一样,在大规模数字系统的设计中,它将逐步取代传统的逻辑状态表和逻辑电路图等硬件描述方法 而成为主要的硬件描述工具。Verilog HDL是工业和学术界的硬件设计者所使用的两种主要的HDL之一,另一种是VHDL。现在它们都已成为IEEE标准。两者各有特点,但Verilog HDL拥有更悠久的历史、更广泛的设计群体,资源也远比VHDL丰富,且非常容易学习掌握。Quartus简介:Quartus II 是Altera公司的综合性PL

6、D/FPGA开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。 Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度

7、。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。 此外,Quartus II 通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。 二、任务功能交通灯控制系统主要是实现城市十字交叉路口红绿灯的控制。在现代化的大城市中,十字交叉路口越来越多,在每个交叉路口都需要使用红绿灯进行交通指挥和管理,红、黄、绿灯的转换要有一个准确的时间间隔和转换顺序,这就需要有一个安全、自动的系统对红、

8、黄、绿灯的转换进行管理,本系统就是基于此目的而开发的。基本要求:(1)设计一个交通红绿灯。要求分主干道和支干道,每条道上安装红(主:red1,支:red2)绿(主:green1,支:green2)黄(主:yellow1,支:yellow2)三种颜色灯,由四种状态自动循环构成; (2)在交通灯处在不同的状态时,设计一个计时器以倒计时方式显示计时,主干道上绿灯亮30S,支干道上绿灯亮20S。每个干道上,在绿灯转为红灯时,要求黄灯先亮5S。在完成基本要求的基础上,可进一步增加功能、提高性能,如绿灯亮的时间可调。三、系统设计1.工作原理:城市十字交叉路口红绿灯控制系统主要负责控制主干道走向和从干道走向

9、的红绿灯的状态和转换顺序,关键是各个状态之间的转换和进行适当的时间延时,正是基于以上考虑,采用如下设计:S0:当主干道走向的绿灯亮时,从干道走向的红灯亮,并保持30sS1:当主干道走向的黄灯亮时,从干道走向的黄灯亮,并保持5sS2:当主干道走向的红灯亮时,从干道走向的绿灯亮,并保持20sS3:当主干道走向的黄灯亮时,从干道走向的黄灯亮,并保持5s 在S3结束后又回到(1)状态,并周期重复进行。状态图如下:30秒S1S05秒5秒S2S320秒2.系统设计方案:根据设计要求和系统所具有功能,并参考相关的文献资料经行方案设计画出如下所示的十字路口交通灯控制器系统框图,及为设计的总体方案,框图如下图所

10、示:四、程序设计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:0out1,out2,out3,out4;/输出四个数码管reg 6:0out1,out2,out3,out4;reg tim1,tim2; reg 1:0state1,state2

11、;reg 2:0light1,light2; reg 7:0 num1,num2; reg 7:0 red1,red2,green1,green2,yellow1,yellow2; parameter s0=2b00,s1=2b01,s2=2b10,s3=2b11;/四个循环状态reg25:0count;reg div;always (en ) if(en) begin /设置计数初值 if (!in1)begin green1=8b00110000;red2=8b00110000; end/30H,即30秒 else begin green1=8b01100000;red2=8b011000

12、00;end/60s if (!in2)begin red1=8b00100000;green2=8b00100000; end/20s else begin red1=8b01000000;green2=8b01000000; end/40s yellow1=8b00000101; yellow2=8b00000101;/05send 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

13、=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

14、=3b100;state1=s3;end s3:begin num1=yellow1;light1=3b010;state1=s0;end default:light10) if(num13:0=0) begin num13:0=4b1001; num17:4=num17:4-1;/十位减1 end else num13:0=num13: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)

15、/复位情况控制 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:li

16、ght20) if(num23:0=0) begin num23:0=4b1001; num27:4=num27:4-1; end else num23:0=num23:0-1; if(num2=1) tim2=0; end end else begin tim2=0; state2=2b00; light2=3b010; end end always (posedge clk) begin /数码管译码显示 case(num13:0) 4b0000: out1=7b0111111; /0 ,3F4b0001: out1=7b0000110; /1 ,064b0010: out1=7b1011

17、011; /2 ,5B4b0011: out1=7b1001111; /3 ,4F4b0100: out1=7b1100110; /4 ,664b0101: out1=7b1101101; /5 ,6D4b0110: out1=7b1111101; /6 ,7D4b0111: out1=7b0000111; /7 ,074b1000: out1=7b1111111; /8, 7F4b1001: out1=7b1101111; /9, 6Fdefault: out1=7b0111111; /0 ,3Fendcase end always (posedge clk) begin /数码管译码显示

18、case(num17:4) 4b0000: out2=7b0111111; /0 ,3F4b0001: out2=7b0000110; /1 ,064b0010: out2=7b1011011; /2 ,5B4b0011: out2=7b1001111; /3 ,4F4b0100: out2=7b1100110; /4 ,664b0101: out2=7b1101101; /5 ,6D4b0110: out2=7b1111101; /6 ,7D4b0111: out2=7b0000111; /7 ,074b1000: out2=7b1111111; /8, 7F4b1001: out2=7b1

19、101111; /9, 6Fdefault: out2=7b0111111; /0 ,3Fendcase endalways (posedge clk) begin /数码管译码显示 case(num23:0) 4b0000: out3=7b0111111; /0 ,3F4b0001: out3=7b0000110; /1 ,064b0010: out3=7b1011011; /2 ,5B4b0011: out3=7b1001111; /3 ,4F4b0100: out3=7b1100110; /4 ,664b0101: out3=7b1101101; /5 ,6D4b0110: out3=7

20、b1111101; /6 ,7D4b0111: out3=7b0000111; /7 ,074b1000: out3=7b1111111; /8, 7F4b1001: out3=7b1101111; /9, 6Fdefault: out3=7b0111111; /0 ,3Fendcase end always (posedge clk) begin /数码管译码显示 case(num27:4) 4b0000: out4=7b0111111; /0 ,3F4b0001: out4=7b0000110; /1 ,064b0010: out4=7b1011011; /2 ,5B4b0011: out

21、4=7b1001111; /3 ,4F4b0100: out4=7b1100110; /4 ,664b0101: out4=7b1101101; /5 ,6D4b0110: out4=7b1111101; /6 ,7D4b0111: out4=7b0000111; /7 ,074b1000: out4=7b1111111; /8, 7F4b1001: out4=7b1101111; /9, 6Fdefault: out4=7b0111111; /0 ,3Fendcase end endmodule 2.设备选择:3.引脚绑定五、仿真1.仿真波形:2.硬件验证:将verilog源程序文件下载到D

22、E2开发板进行硬件验证,完成检测和调试。截图如下:六、结束语硬件描述语言课程设计就要结束了,这次课程设计历时近一个多星期,通过这个星期的学习,发现了自己的很多不足,发现了很多知识上的漏洞。同时也看到了自己的实践经验还是比较缺乏,理论联系实际的能力还急需提高。交通灯设计过程中遇到了多处困难,比如怎样使四种亮灯状态循环进行,经过思考选择了状态机实现。还有每个状态的延时模块设计最为复杂,运用多个if-else语句时经常无法得到理想结果,检查发现是没有正确配对,要使用begin-end构成模块。由于要显示倒计时,必须用到译码转换电路,对数码管显示也做了复习。通过实验,我深刻体会到多个always语句并

23、行执行的含义。另外还有分频电路的实现和引脚的绑定。还有一点是那就是细心认真。此次设计我由于编程的时候没有做到足够的细心,导致一串代码弄混了。但是密密麻麻的英文字母混在一起,我始终没有发现。最终在调试的时候,就出现了问题。只知道出现了问题,就是不知道到问题的根源在哪里,好长时间都没有找出问题的所在。这也让我真正的明白了,科学的严谨性,它不允许出半点差错,否则后果会是比较麻烦的。这次课程设计让我学到了很多,不仅是巩固了先前学的verilog的理论知识,而且也培养了我的动手能力,更加熟悉了Quartus的使用和EDA的设计流程,更令我的创造性思维得到拓展。七、参考文献1夏宇闻.Verilog数字系统设计M.北京: 北京航空航天大学出版社,20082康华光.电子技术基础(数字部分)M.北京:高等教育出版社,20063徐志军,徐光辉.CPLD/FPGA的开发与应用.北京:电子工业出 版社,20024张明.Verilog DL实用教程M.成都:电子科技大学出版社,19995Hyde D C.Bucknell Handbook on VerilogHDLComputer Science Department, Bucknell University Lewisburg,1995

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

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