版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于FPG续现的交通灯控制器一、实验室名称通信实验室(实训楼二楼)二、实训内容本实验为VerilogHDL的程序设计仿真,通过实验掌握状态机,时序CLK的控制模块,及时序同步的控制方式。实验要求:1.LED灯显示交通灯状态。2.7段数码管显示当前状态剩余时间。状态要求:1 .主干道绿灯亮35s支道绿灯亮25s。2 .当主干道绿灯亮时,支道亮红灯。3.由绿灯转红灯时,黄灯亮5so3 .时钟为1KHz能实现倒计时显示。4 .由初始状态开始计数,对应状态指示。三、实验原理3.1 设计思路和原理状态4:主干道红灯亮支干道黄灯亮5秒状态3:主干道红灯亮支干道绿灯亮25秒本次设计是针对十字路口,进行南北和
2、东西直行情况下交通灯控制。设定东西方向为主干道方向,根据交通灯的亮的规则,在初始状态下四个方向的都为红灯亮启,进入正常工作状态后,当主干道上绿灯亮时,支干道上红灯亮,持续35S后,主干道和支干道上的黄灯都亮启,持续5s后,主干道上红灯亮启,支干道上绿灯亮启持续25S,之后主干道和支干道上的黄灯都亮启5s,一个循环完成。循环往复的直行这个过程。其过程如下图所示:状态主干道支干道秒数(S)1绿灯红灯352黄灯红灯53红灯绿灯2514红灯黄灯5状态1:主干道绿灯亮支干道红灯亮35秒M7状态2:主干道黄灯亮支干道红灯亮5秒3.2 实现方法本次采用文本编辑法,即利用VerilogHDL语言描述交通控制器
3、,通过状态机计数法,实现设计所要求的交通灯控制及时间显示。设计中用两组红黄绿LED模拟两个方向上的交通灯,用两个7段数码管显示主干道上的交通灯剩余时间,控制时钟由试验箱上频率信号提供。3.3 整体设计交通灯控制的关键是各个状态之间的转换和进行适当的时间延时,根据状态机的设计规范,本次设计了三个状态之间的循环转化,说明:该状态图为交通灯在正常情况下的状态转化图,进入控制后,状态00时主干道绿灯及支干道红灯亮起,进入状态01后两路黄灯亮起,状态11时主干道红灯及支干道绿灯亮起。进入10状态两路黄灯亮起。结束一个循环,从00状态重新开始循环。为实现控制与显示的功能,需要设计交通灯点亮顺序控制程序,倒
4、数计时程序,七段数码管显示程序,数码管显示扫描程序。3.4 具体设计根据整体设计要求,编写各个功能部分VerilogHDL程序,设置各输入输出变量说明如下:clk/实验箱1KHz的时钟计时g1,g2,r1,r2,y1,y2;/g、r、y依次为绿green红red黄灯yellow,1为主干道,2为支道四、实训步骤1、建立工程文件1)打开QuartusII8.1,点击File,NewProjectWaizard:Introdution,点击Next创建新的工程给命名为qiuge80fen,点击next,选择cycloneIII芯片,类型为FPGA芯片型号EP3C40F78C08,迫择软件中的菜单F
5、ile>NewProjectWizard,新建一个工程。2)点击NEXT1入工作目录,第一个输入框为工程目录输入框,用户可以输入如e:/eda等工作路径来设定工程的目录,设定好后,所有的生成文件将放入这个工作目录。第二个输入框为工程名称输入框,第三个输入框为顶层实体名称输入框。用户可以设定如EXP1一般情况下工程名称与实体名称相同。使用者也可以根据自已的实际情况来设定。3)点击NEXT进入下一个设定对话框,按默认选项直接点击NEXT进行器件选择对话框。如图1-6所示。这里我们以选用Cyclonelll系列芯片EP3C40F780C8为例进行介绍。用户可以根据使用的不同芯片来进行设定。首先
6、在对话框的左上方的Family下拉菜单中选取Cyclonem,在中间右边的Speedgrade下拉菜单中选取8,在左下方的Availabledevices框中选取EP3C40F780C8点击NEXT完成器件的选取按默认选项,点击NEX而现新建工程以前所有的设定信息2.编写程序选择软件中的菜单File>New,选择VerilogHDL,新建一个VerilogHDL文件,然后进行程序的编写。*HiiflWR-irJiTi口口口丁卡审崂一七。匕*Ou|蜻Sr"'"iw|*上!»LftLft.MKE.ACiff-BIas&恒.01c-ighnnIT1
7、M2IIqk-1t-rZinILp"LJigl-3Lik2fiSrL-Dva3-3I户Tldp3-Di门F*n*口“!LhTr*y9|nIhi|HMLFinS-'WXKflrnh-'hww3、对设计文件进行编译QUARTUSII编译器窗口包含了对设计文件处理的全过程。在QUARTUSI软件中选择Processing>CompilerTool菜单项,则出现QUARTUSI的编译器窗口,需要说明的是在进行设计文件的综合和分析,也可以单独打开某个分析综合过程不必进行全编译界面。当完成上述窗口的设定后,点击STARTS钮进行设计文件的全编译。如果文件有错,在软件的下方则
8、会提示错误的原因和位置,以便于使用者进行修改直到设计文件无错。整个编译完成,软件会提示编译成功。4、管脚分配1)在前面选择好一个合适的目标器件(在这个实验中选择为EP3c40F780C8,完成设计的分析综合过程,得到工程的数据文件以后,需要对设计中的输入、输出引脚指定到具体的器件管脚号码,指定管脚号码称为管脚分配或管脚锁定。2)点击Assignments菜单下面的AssignmentEditor,进入到引脚分配窗口,首先将要分配管脚的信号放置在To下方。双击To下方的New选才NNodeFinder进入对话框界面。Filter窗口选择Pins:all,在NamedU口中4U入“*”,点击Lis
9、t在NodesFound窗口出现所有信号的名称,点击中间的>>K钮点击OK再按分配管脚如下图完成后点击工具栏中的StartCompilation进行编译。3)选择端口A的对应AssignmentName待其变为蓝色,双击之,出现下拉菜单选取如图1-19所示的Location(Acceptswildcards/groups)选项。选择端口A的对应Value栏,待其变为蓝色,依照表1-2和表1-3所示的硬件与FPGA勺管脚连接表(或附录),输入对应的管脚名AH12接回车键,软件将自动将其改为PIN_AH12同时蓝色选择条会自动跳转到Value栏的下一行,这表明软件已经将输入端口A分配到
10、FPGA勺AH12弓唧上M-J回瓦jW三三二|三二二二。r,JH4£s器瑞一5、波形仿真1.)创建一个仿真波形文件,选择QUARTUSI软彳File>New,进行新建文件对话框。选取对话框的Verification/DebuggingFiles标签页,从中选取VectorWaveformFile,点击OK按钮,则打开了一个空的波形编辑器窗口2)设置仿真结束时间,波形编辑器默认的仿真结束时间为1pS,根据仿真需要,可以自由设置仿真的结束时间。选择QUARTUSIK件的Edit>EndTime命令,弹出线路束时间对话框,在Time框办输入仿真结束时间,点击OK按钮完成设置。3
11、)加入输入、输出端口,在波形编辑器窗口左边的端口名列表区点击鼠标右键,在弹出的右键菜单中选择Insert>InsertNodeorBus命令,在弹出的InsertNodeorBus对话框所示界面中点击NodeFinder按钮。在出现的NodeFinder界面中,在Filter列表中选择Pins:all,在Namedt口中输入“*",点击List在NodesFound窗口出现所有信号的名称,点击中间的迄期按钮则SelectedNodes窗口下方出现被选择的端口名称。双击OK®钮,完成设置,回到图1-27所示的InsertNodeorBus对话框,双击OK按钮,所有的输入
12、、输出端口将会在端口名列表区内显示出来4)编辑输入端口波形,即指定输入端口的逻辑电平变化,在如图波形编辑窗口中,选择要输入波形的输入端口如A端口,在端口名显示区左边的波形编辑器工具栏中有要输入的各种波形,其按钮说明根据仿真的需要输入波形。完成后如图1-31所示。最后选择软件的File>Save进行保存。5)指定仿真器设置,在仿真过程中有时序仿真和功能仿真之分,在这里介绍功能仿真。在QUARTUSI软件中选择Processing>SimulatorTool命令,打开仿真器工具窗口,6)首先产生功能仿真网表文件,点击产生功能仿真网表的按钮GenerateFunctionalSimula
13、tionNetlist,产生功能仿真网表,然后点击开始仿真的STARTS钮开始进行仿真,直到仿真进度条为100炕成仿真。点击仿真报告窗口按钮Report,观察仿真波形。如下图SKWWWWWWWWSSSSPSWSWWWWWWWWWSfiftftfiWWWWWSWWWWSfiSiWSSaft4sssKWWWft加普::*3抬啦将W等SHX4帮士若士洛布自将“<«*抬空击2:点总<画对的的砧的顺§衿梏2经珏:g!就蝇滋称诜WSoMWciSat诜豌碉璇耽淞1&*俄耽诜豌褥:猊杭W依泡说ycWA3©确确庭的愁渊怨华极粒的烟史必两毁y强如法貌然景妙加超焕y
14、必强;恢於话?g梢y谕冷舟宓阳话法:;:;:":-:->:-:<:-;-:"-U"三.:*.:汽中卢:.:海:七:一:玄:七:£揖:£:门:*广:户:七:七:七:七:尸:.:斗::.:"千户:VW:七:七:七:七皆:守营IiJfirvmjtihbg-hi加IIEl却ek>V*nii:5ssMuCtttiMWoiSSMiirtSSSiWSftttMiiJiWlWoMWcfciSSSSiWSfiSsiWoiWMWWCi&SSWSSSlSiasssfisssfiiSTSjssssss5sssftspssftsssf
15、tWsSiSfSEKiwssiSTass5ssssssssscswssftwiws5sss5s"前我邙事冏虫figgMGg做打舲;士打冏室为fiHX克*盹=2铝编:»»:=:>:»>:>?2">:»W>»WW«»0:<K8»¥X«O>>M«-Kl:CQMMMKKX>KOAXWOMWWOMXXXXOa431-IH:三“七:!iw三FmE三一6、从设计文件到目标器件的加载完成对器件的加载有两种形式,一种是对目标器件进
16、行加载文件,一种是对目标器件的配置芯片进行加载。这里我们介绍对目标器件EP3c80F780css行加载的方法。1)使用US琏接线将PC机与实验系统连接起来(具体方法请参照用户手册第三节USB电缆的安装与使用)。2)选择QUARTUSI软件的Tool>Programmer命令,进行编程器窗口,如图1-33所示,如果没有设置编程硬件,则编程硬件类型为NoHardware,需要对编程硬件进行设置。点击HardwareSetup编程硬件设置按钮,进行编程硬件设置对话框。3)在AddHardware对话框中,从Hardwaretype列表中选择所需要硬件类型,如果是USBR口的请参照用户使用手册中
17、的USB电缆的安装与使用,如果使用的是并口下载线则选取如图1-35所示的硬件类型,点击O3钮,完成对硬件类型的设置。回到编程器硬件设置窗口,点击Close按钮退出设置。则在编程器对话框中的编程硬件类型会出现刚才选取的编程器硬件。4)如果软件已运行一个工程,则在打开编程器的时候,编程器窗口会自动出现这个工程文件要加载到目标器件的文件,如果要加载其它文件可以从其它地方进行添加更改。选好加载文件后,再点选Progam/Configure,编程模式选取JTAG模式,点击STRATI行文件加载,直到加载进度变为100%文件成功加载完成。5)烧录程序到开发箱点击QuartusII8.1中的Tool选择pr
18、ogrammer,点击Hardwaresetup选择USB-Blaster传输方式,点击start将程序烧入LTE-SOPC-02FBEDA发箱中。查看开发箱的工作状态。四、实训数据及结果分析通过以上实验得出以下数据:1.波形仿真结果:<1.XGa1>=*:£*:下早,*。:*,4w*之:4±».3二%9工W:QM*:IXWL*w2.开发箱运行结果:LED高电平点亮,使用引脚分别为C22D22M21M24L23、H23,7段数码的8位管由开发箱中的3-8译码器控制,由000、001、010、011、100、101、110、111分别控制,本次实验使用的
19、是000和001,通过快速扫描,使其看上去同时点亮。State0为主干道绿灯亮,从35秒开始倒计时,倒计时为0时,进入State1;State1为主干道黄灯亮,支道保持红灯,从5秒开始倒计时,倒计时为0时,进入State2;State2为主干道红灯亮,从25秒开始倒计时,倒计时为0时,进入State3;State3,为主干道黄灯亮,支道保持红灯,从5秒开始倒计时,倒计时为0时,进入State0oState0、State1、State2、State3按顺序循环。五、思考与总结在设计中采用VerilogHDL语言设计交通灯控制系统,借助其功能强大的语言结构,简明的代码描述复杂控制逻辑设计,与工艺无
20、关特性,在提高工作效率的同时达到求解目的,并可以通过VerilogHDL语言的综合工具进行相应硬件电路生成,具有传统逻辑设计方法所无法比拟的优越性。在设计过程中,觉得最难的部分是波形仿真部分,虽然程序编译通过但仿真出不了正确的波形,不是计数器无法正常计数,就是控制输出无法进入到下一个状态,每次出现问题就必须返回重新修改程序。实践证明,在编写一个较复杂的程序时,一开始一定要画流程图,弄清楚各个功能及实现它们的逻辑算法,做到心中有数后在开始下笔写编写程序。在编写的时候要尤其要注意语言的规范,如本次设计中编写的Verilog在Quartus8.0中可以正常生成时序图,而在低版本的软件中却无法生成,原
21、因就是语言使用不规范,在解决这个问题时我总结了一些经验,首先程序要逻辑清晰,简洁明了,避免不必要的嵌套与条用,其次要适当地给程序加上注解文字,提高可读性,以方便之后的程序出错时进行查找,最后充分利用仿真软件提供的各项编译工具与报错消息,按图索骥,有方向的完成程序调试。完成仿真后进行,进行试验箱上的硬件调试,该步骤主要是要求细心,按照引脚清单,逐一完成连线,本次设计用到两个时钟输入,注意一定要选择合适频率的时钟,以便达到期望的效果。注意观察实物的现象,看是否满足设计要求,不满足时检查是硬件问题还是程序问题,如果是程序问题,在修改完之后必须要重新编译,重新烧入。不断排查错误,直至达到满意的效果。通
22、过这次课程设计,熟悉了简单ED破计的整个流程,加深了对VerilogHDL硬件描述语言的理解,提高了动手能力,并且锻炼了自己的耐心,收获颇丰,我会把在本次课程设计中学到的东西应用到今后的工作学习中。最后感谢同学及老师提供的帮助与指导。六、心得体会通过老师的细心指导,两周周的EDA实训使我们对Quartus软件能更加熟悉。经过工程文件的建立,程序编写,文件的编译,管脚的分配,波形的仿真,最后再下载到开发箱中,在这一系列的操作中,我们更加了解到了细心的含义,一时的大意都可能导致很大的错误。例如程序的编写不认真,一个小错误,编译时候就会出现一系列的错误警告,更改时就要大费周章。管脚分配时,会因为一个
23、管脚分配的错误,最后下载到实验箱,数码管不会显示等等。两周的实训结束了,但是我相信这不是终点,而是另一个新的起点。虽然过程很辛苦,有时为了编写正确的程序,不断的编译改正,不断的重复那枯燥的过程,但当最后看见自己的成果,真的很开心,特别是数码管成功显示那一刻,真正体会到了什么叫欣喜若狂。这次实训提高了自己动手的能力,加强我们专业素养和专业技能,我今后要学好理论知识,勤动手实践,为我们以后能更好的就业打下很好的基础。在实训中获得的经历和体会,对于我们今后走上工作岗位,都有很大的帮助。经过这次实训在以后的学习工作中我会有争取更大的进步。相信今后无论什么时候回想起这段经历,都会觉得是快乐的,而且永远铭
24、记于心。附录:VerilogHDL设计程序moduleshebi(clk,r1,g1,y1,r2,g2,y2,del,z);inputclk;outputregg1,y1,r1,r2,g2,y2;reg3:0ql,qh,s;outputreg1:0del;outputreg7:0z;reg8:0q;reg1:0state,next_state;rega,clk1;parameterstate0='b00,state1='b01,state2='b10,state3='b11;always(posedgeclk)beginif(q=500)beginclk1=cl
25、k1;q=0;endelseq=q+1;endalways(posedgeclk1)beginstate=next_state;case(state)state。:beginif(a)beginql=4'b0101;qh='b0011;a=1;g1=1;r1=0;y1=0;r2=1;g2=0;y2=0;endelseif(!ql&!qh)beginnext_state=state1;a=0;ql='b0000;qh='b0000;endelseif(ql='b0000)beginqh=qh-1;ql='b1001;endelsebeginql=ql-1;endendstate1:beginif(a)beginqh='b0000;ql='b0101;a=1;g1=0;r1=0;y1=1;r2=1;g2=0;y2=0;endelseif(ql='b0000)beginnext_state=state2;a=0;ql='b0000;qh='b0000;endelseb
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 常用版合同种子采购
- 基坑开挖施工的分包协议
- 招标文件应用案例
- 起升高度起重机购买协议
- 版权购买合同协议范本
- 黄砂原料选购合同
- 合伙合同协议入伙
- 机井租赁合同协议范本
- 城市绿化带草坪合同
- 招标代理比选文件审查要点
- 2024年度医疗机构照明灯具安装外包协议
- 球星C罗培训课件
- 湖北省鄂东南省级示范高中教育教学改革联盟学校2024-2025学年高一上学期期中联考英语试题 含答案
- 2025届高考英语专项复习 广东省各地名校之A篇阅读理解题集(十篇含解析)
- 2024年医院建设泥水工程合同
- 静疗护士进修汇报
- 2024年消防月主题培训课件:全民消防 生命至上(含11月火灾事故)
- 2024年异丁醛市场分析:异丁醛国内市场复合年增长率约为7%
- 中国移动铁通公司招聘笔试题库2024
- 《邹忌讽齐王纳谏》课件
- 医院培训课件:《静脉中等长度导管临床应用专家共识》
评论
0/150
提交评论