交通灯EDA课程设计.doc_第1页
交通灯EDA课程设计.doc_第2页
交通灯EDA课程设计.doc_第3页
交通灯EDA课程设计.doc_第4页
交通灯EDA课程设计.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录第一章 设计原理1第二章 设计流程2第三章 程序设计说明33.1 程序设计流程图33.2 分频模块33.3 特殊功能及清零模块43.4 交通灯运行模块43.5 扫描显示模块6第四章 仿真及调试84.1调试步骤8第五章 总程序设计9参考文献15 注释:请用 Quartus7.0仿真摘要:Verilog HDL作为一种规范的硬件描述语言,被广泛应用于电路的设计中。他的设计描述可被不同的工具所支持,可用不同器件来实现。本设计选用了目前应用较为广泛的Verilog HDL 硬件描述语言, 实现对路口交通灯系统的控制器的硬件电路描述。此程序通过下载到FPGA芯片后,可应用于实际的交通灯控制系统中。关键字: Verilog HDL 交通灯 FPGA芯片第一章 设计原理Verilog hdl提供了简单实用的状态机语句,在设计时把它和实验箱结合起来控制扫描显示交通灯的运行情况。其原理框图如图1:图1通过外部时钟控制整个交通灯的运行,先将外部时钟经过分频电路变为周期1HZ的时钟,以这个时钟来控制各个路口灯的亮灭及时间显示。即和计数器结合起来,每一秒钟计数器计一次数并传送给扫描模块显示输出。当计数器达到设定的最大值便清零,相应的灯的状态便改变,如此反复。至于复位和特殊功能的实现皆是通过单独的时钟翻转来控制,本设计中采用置数的方法来实现。当需要的时候直接将对应的时钟置为高电平即可,再置为低电平时从一开始的状态显示。第二章 设计流程当控制开关打开后,主干路和支干路的灯暂时不显示,等待初始化信号。待信号来临后,两路灯均开始显示。其中,主干路红灯和支干路绿灯先亮,待主干路红灯显示35秒后,绿灯开始显示,20s后黄灯显示,黄灯显示5s后红灯再一次点亮,如此循环。支干路绿灯亮了30s后黄灯点亮,5s后红灯点亮,红灯显示25s后绿灯再一次点亮,如此循环。其流程图如下图2所示:图2第三章 程序设计说明3.1 程序设计流程图 流程图如图3:图33.2 分频模块 通过提供一个60hz的外部时钟wclk,经过分频得到一个1hz的时钟clk。其程序如下:always (posedge wclk)beginif(enn)beginclk=0;endelse beginif(dout=29)beginclk=clk;dout=0;endelse dout=dout+1;endend 通过计数器计数,当计数器从零计到29时clk翻转,即clk每0.5秒翻转一次,产生一个周期为1秒的时钟。3.3 特殊功能及清零模块 通过外部赋予高电平将交通灯清零或者实现特殊功能,其程序如下:always (posedge clk)beginif(rest)beginstatea=a;atra=0;JT1=3b000;endelse if(tclk)beginstatea=a;JT1=3b001;endend当清零信号rest来临时交通灯全部灭掉,当特殊功能信号为高电平时交通灯黄灯亮,其余全灭。3.4 交通灯运行模块 利用分频得到的1hz时钟clk来控制交通灯的运行,当复位和特殊功能信号均为低电平时,通过en给系统复初值,而后en变为低电平。此时,当检测到clk上升时钟沿时,交通灯通过状态机的选择实现各个路口红、黄、绿灯的点亮以及计时。always (posedge clk)begin if(rest)beginstateb=d;btra=0;JT2=3b000;endelse if(tclk)beginstateb=d;JT2=3b001;endelse if(en)beginbtra=8b00101001;stateb=d;endelse case (stateb)d:if(btra=0) begin btra=8b00000100; stateb=e;JT2=3b010; endelse beginJT2=3b100;if(btra3:0=0)beginbtra3:0=4b1001;btra7:4=btra7:4-1;endelse beginbtra3:0=btra3:0-1;end ende:if(btra=0) begin btra=8b00100100; stateb=f;JT2=3b001; endelse beginJT2=3b010;if(btra3:0=0)beginbtra3:0=4b1001;btra7:4=btra7:4-1;endelse beginbtra3:0=btra3:0-1;end endf:if(btra=0) begin btra=8b00101001; stateb=d;JT2=3b100; endelse beginJT2=3b001;if(btra3:0=0)beginbtra3:0=4b1001;btra7:4=btra7:4-1;endelse beginbtra3:0=btra3:0-1;end endendcaseend3.5 扫描显示模块 用实验箱实现数字的扫描输出显示,SEL0和 SEL1为实验箱提供的数码管显示驱动,通过原理图法从外部引一个扫描时钟(本实验用15.6khz),与74161连接控制SEL0和 SEL1的分频。其中,SEL0为2分频而SEL1为4分频,从而在一个扫描周期内SEL0和 SEL1的值从00变化到10,再从10变化到00,即数码管逐个循环往复显示输出。 always (SEL0 or SEL1)begincase(SEL0,SEL1)2b00:begin A=atra3:0; end2b01:begin A=atra7:4;end2b10:begin A=btra3:0; end2b11:begin A=btra7:4;endendcase case(A) 4b0000: LED7S=7b0111111; 4b0001: LED7S = 7b0000110 ; 4b0010: LED7S = 7b1011011; 4b0011: LED7S = 7b1001111; 4b0100: LED7S = 7b1100110 ; 4b0101: LED7S = 7b1101101; 4b0110: LED7S = 7b1111101 ; 4b0111: LED7S = 7b0000111 ; 4b1000: LED7S =7b1111111 ; 4b1001: LED7S = 7b1101111 ; endcase end第四章 仿真及调试4.1调试步骤1. 建立工作库文件夹和编辑设计文件 菜单操作:filenew,在new窗口中,Device Design FilesVerilog HDL File产生.v文件。在Verilog HDL文本编辑器中输入源程序。 文件存盘:文件名应该与模块名一致。2. 创建工程 菜单操作:filenew project wizard,根据实验箱提供的器件型号选择目标器件:EPF10K10LC84-4,创建工程产生.gpf文件。3. 全程编译 菜单操作:Processingstart compilation 或 4. 画原理图 (1) 用原理图新建顶层文件,并建立工程, filenewBlock Diagram/Schematic File。(2)将jtd.vhd转换成元件符号(元件文件的后缀为.bsf)(3)新建jtd.vhd文件(4)FileCreate/-UpdateCreate Symbol Files for Current File,fx元件可以在高层次设计中调用(5)在顶层原理图文件中调用jtd元件,并完成设计。5. 编译6. 时序仿真7. 引脚锁定 菜单操作:Assignmentspins,并连接线。8. 保存并编译9. 配置文件下载 菜单操作:ToolsProgrammer 或按 弹出hardware setop窗口;按 弹出add hardware窗口,按 选择下载接口,按 , 选中文件*.sof ,并使有效,按使文件*.sof下载到目标器件中。第五章 总程序设计module jtd (atra,JT1,btra,JT2,en,enn,A,LED7S,clk,wclk,dout,tclk,rest,SEL0,SEL1);output7:0atra,btra,dout;output clk;output2:0 JT1,JT2;output 6:0 LED7S;output 3:0A;input tclk,rest,wclk,en,enn;input SEL0,SEL1;reg clk;reg7:0atra,btra,dout;reg 6:0 LED7S;reg2:0 JT1,JT2;reg 3:0A;reg3:0statea,stateb;parameter a=4b0001,b=4b0010,c=4b0100,d=4b1001,e=4b1010,f=4b1100;always (posedge wclk)beginif(enn)beginclk=0;endelse beginif(dout=29)beginclk=clk;dout=0;endelse dout=dout+1;endendalways (posedge clk)begin if(rest)beginstatea=a;atra=0;JT1=3b000;endelse if(tclk)beginstatea=a;JT1=3b001;endelse if(en)beginatra=8b00110100;statea=a;endelsecase (statea)a:if(atra=0) begin atra=8b00011001; statea=b;JT1=3b100; endelse beginJT1=3b001;if(atra3:0=0)beginatra3:0=4b1001;atra7:4=atra7:4-1;endelse beginatra3:0=atra3:0-1;end endb:if(atra=0) begin atra=8b00000100; statea=c;JT1=3b010; endelse beginJT1=3b100; if(atra3:0=0)beginatra3:0=4b1001;atra7:4=atra7:4-1;endelse beginatra3:0=atra3:0-1;end endc:if(atra=0) begin atra=8b00110100; statea=a;JT1=3b001; endelse beginJT1=3b010;if(atra3:0=0)beginatra3:0=4b1001;atra7:4=atra7:4-1;endelse beginatra3:0=atra3:0-1;end endendcaseendalways (posedge clk)begin if(rest)beginstateb=d;btra=0;JT2=3b000;endelse if(tclk)beginstateb=d;JT2=3b001;endelse if(en)beginbtra=8b00101001;stateb=d;endelse case (stateb)d:if(btra=0) begin btra=8b00000100; stateb=e;JT2=3b010; endelse beginJT2=3b100;if(btra3:0=0)beginbtra3:0=4b1001;btra7:4=btra7:4-1;endelse beginbtra3:0=btra3:0-1;end ende:if(btra=0) begin btra=8b00100100; stateb=f;JT2=3b001; endelse beginJT2=3b010;if(btra3:0=0)beginbtra3:0=4b1001;btra7:4=btra7:4-1;endelse beginbtra3:0=btra3:0-1;end endf:if(btra=0) begin btra=8b00101001; stateb=d;JT2=3b100; endelse beginJT2=3b001;if(btra3:0=0)beginbtra3:0=4b1001;btra7:4=btra7:4-1;endelse beginbtra3:0=btra3:0-1;end endendcaseendalways (SEL0 or SEL1)begincase(SEL0,SEL1)2b00:begin A=atra3:0; end2b01:begin A=atra7:4;end2b10:begin A=btra3:0; end2b11:begin A=btra7:4;endendcase case(A) 4b0000: LED7S=7b0111111; 4b0001: LED7S = 7b0000110 ; 4b0010: LED7S = 7b1011011; 4b0011: LED7S = 7b1001111; 4b0100: LED7S = 7b1100110 ; 4b0101: LED7S = 7b1101101

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论