1课程设计任务书课程设计任务书课程设计任务书课程设计任务书(理(理(理(理工工工工科科科科类)类)类)类)Ⅰ、课程设计(报告)题目:《HDLHDLHDLHDL项目设计》交通灯控制电路Ⅱ、课程设计(论文)工作内容一、课程设计目标1、培养综合运用知识和独立开展实践创新的能力;2、《硬件描述语言》是一门技术性、应用性很强的学科,实验课教学是它的一个极为重要的环节。不论理论学习还是实际应用,都离不开实验课教学。如果不在切实认真地抓好学生的实践技能的锻炼上下功夫,单凭课堂理论课学习,势必出现理论与实践脱节、学习与应用脱节的局面。《HDL项目设计》的目的就是让同学们在理论学习的基础上,通过完成一个涉及时序逻辑、组合逻辑、声光输出的,具有实用性、趣味性的小系统设计,使学生不但能够将课堂上学到的理论知识与实际应用结合起来,而且能够对分析、解决实际的数字电路问题进一步加深认识,为今后能够独立进行某些数字应用系统的开发设计工作打下一定的基础。二、研究方法及手段应用1、将任务分成若干模块,查阅相关论文资料,分模块调试和完成任务;2、通过EDA实验箱进行实际调试,实现软件的功能。三、课程设计预期效果1、完成实验环境搭建;2、(1)设计一个十字路口的交通灯控制电路,每条路配有红、黄、绿交通信号灯,通过电路对十字路口的两组交通灯的状态实现自动循环控制;(2)实现东西车道和南北车道上的车辆交替运行,每次通行时间为20秒;(3)要求黄灯亮3秒后,红灯才能转为绿灯,黄灯亮时要每秒闪亮一次;2(4)东西车道和南北车道每次通行的时间不同且可调。学生姓名:专业年级:摘要本次课程设计通过HDL技术设计交通灯控制系统,其设计描述可被不同的工具所支持,可用不同器件来实现。利用VerilogHDL语言自顶向下的设计方法设计交通灯控制系统,使其实现道路交通的快速正常运转,突出了其作为硬件描述语言的良好的可读性、可移植性和易理解等优点,并通过QuartusII和ModelSim完成综合、仿真。此程序下载到FPGA芯片后,可应用于实际的交通灯控制系统中。通常的设计方法基于中、小规模集成电路进行,电路元件多、接线复杂、故障率高。随着大规模集成电路的发展、EDA技术的出现,数字电路的设计进入了一个崭新阶段。FPGA是一种用户根据各自需要而自行构造逻辑功能的数字集成电路,其种类很多,内部结构也不同,但共同的特点是体积小、使用方便。本论文介绍了用VerilogHDL语言设计交通灯控制器的方法,并在QuartusII系统对FPGA芯片进行编译下载,由于生成的是集成化的数字电路,没有传统设计中的接线问题,所以故障率低、可靠性高,而且体积非常小。本论文通过EDA设计,利用VerilogHDL语言模拟仿真交通灯控制电路。说明EDA技术在数字电路设计中的优越性。【关键词】VVVVerilogHDLFPGA硬件描述语言交通灯控制器3ABSTRACTABSTRACTABSTRACTABSTRACTThiscourseisdesignedbyHDLdesigntrafficlightcontrolsystems,theirdesigndescriptionmaybedifferenttoolsupport,availablewithdifferentdevices.Usetop-downdesignVerilogHDLlanguagedesigntrafficlightcontrolsystemfortherapidimplementationofroadtraffic,highlightingtheworkasahardwaredescriptionlanguagegoodreadability,portabilityandeaseofunderstanding,etc.,andthroughtheQuartusIIandModelSimcompleteintegrated,emulation.ThisprogramisdownloadedtotheFPGAchip,canbeappliedtoactualtrafficsignalcontrolsystem.Intheconventionaldesignmethodbasedonmiddleorsmallscaleintegratedcircuit,therearetoomanyelementsinthecircuitandtheconnectionsarecomplicated,sofaultsarepronetohappen.Withthedevelopmentoflarge-scaleintegratedcircuitsandthehappeningofEDAtechnologies,digitalcircuitdesignhasenteredanewstage.Thechipisdigitalintegratedcircuits,therearemanytypes,theinternalstructureofdifferent,butsharecommonfeaturesissmallinsize,easytouseInthispaper,thedesignmethodoftrafficlightcontrollerbyusingVerilogHardwareDescriptionLanguage(VerilogHDL)isintroduced,andthedownloadingofthecontrollerdesigntotheComplexProgrammableLogicDevice(FPGA)chipinQuartusIIisfulfilled.AsFPGAchipsarebasedonlargescaleICandElectricalDesignAutomation(EDA)techniqueandhavemanytypesanddifferentinteriorconstruction,theyaresmallinsizeandflexibleinuse,sotherearenoconnectionproblemsinthepresentedcircuit,andtheFPGAchipsarereliableandfaultsarelesspronetohappen,whichshowstheadvantagesoftheEDAtechnologyindigitalcircuitsdesign.【KeyKeyKeyKeywordswordswordswords】VerilogHardwareDescriptionLanguageField-ProgrammableGateArrayhardwaredescriptionlanguagetrafficlightcontroller4第一章系统设计第一节课题目标及总体方案随着现代生活节奏的加快,人们出门便更多地选择自家的交通工具,或汽车,或电动车,这无疑加大了交通流量,如何控制十字路口的红绿灯,便显得相当的重要。简单的,有效地控制红绿灯,是减小客流量,甚至减少交通事故的重要保障。而此次课题,我们小组选择了交通灯控制电路,能熟悉verilogHDL硬件描述语言在现实生活中的重要意义,提前积累经验,为以后的工作打基础。实现设计目标如下:(1)设计一个十字路口的交通灯控制电路,每条路配有红、黄、绿交通信号灯,通过电路对十字路口的两组交通灯的状态实现自动循环控制;(2)实现东西车道和南北车道上的车辆交替运行,每次通行时间为20秒;(3)要求黄灯亮3秒后,红灯才能转为绿灯,黄灯亮时要每秒闪亮一次;(4)东西车道和南北车道每次通行的时间不同且可调;第二节系统的对比与分析及确定设计方案一、通过对比确定系统设计方案:虽然是verilogHDL课程设计,虽然是硬件描述语言,但是大多数人仍然采用的是C语言的编写方法,或许可以达到目的,但是我觉得采用状态机的方法不仅简单易懂,而且如果调试不成功,修改起来也比较方便。本系统采用四个状态,即S0:东西方向红灯亮,南北方向绿灯亮;S1:东西方向红灯亮,南北方向黄灯亮;S2:东西方向绿灯亮,南北方向红灯亮;S3:东西方向黄灯亮,南北方向绿灯亮;再执行S0,依次循环,实现系统的设计目标。1、具体的电路分析如下表所示:5状态机状态列表2、系统框图转换如下:状态机状态转换图二、系统逻辑设计:东西方向南北方向红灯亮绿灯亮黄灯亮红灯亮绿灯亮黄灯亮S0100010S1100001S2010100S3001100状态S2状态S3状态S0状态S16根据上文中确定的系统设计方案,运用模块化的设计思路,我们在QuartusII5.0软件系统中设计了交通灯控制模块、显示控制模块、显示译码模块、20秒倒计时时器模块、3秒倒计时器模块的HDL程序,并通过各个模块程序之间的端口合理连接和协调,成功设计出交通信号灯控制电路,得到其逻辑结构原理图,即为整个交通信号灯控制电路的逻辑结构。三、调试结果及分析1、调试:采用QuartusII5.0软件进行编译,然后下载到EDA试验箱进行调试。调试的结果为:采用6个LED灯作为东西南北两个方向的红黄绿灯进行调试,并且采用数码管进行倒计时。QuartusII5.0编译程序2、结果分析:分别采用两组数码管进行东西南北方向的倒计时,让6个LED灯显示两组灯的亮暗情况,配合使用。7第二章硬件调试、结果分析讨论第一节硬件调试通过在QuartusII5.0软件中的模拟仿真,验证了该电路可以实现预定功能,即东西、南北干道交替通行,两种干道均通行20秒。绿灯转换成红灯前,黄灯先亮3秒,此时另一个干道红灯不变。当黄灯亮完3秒之后,另一条干道的绿灯亮而红黄灯都不亮,此时该干道允许通行,干道有数字显示各灯闪亮的时间。如此一直循环往复,实现十字交叉路口的交通控制。另外我们还实现了一个附加功能,即干道一直没有车通过的时候,干道一直处于畅通状态,这样可以在实际中遇到特殊情况时,来灵活控制应用,另外还可以加入人工控制端,即当遇有需进行交通管制等情形时,可以由交通警察来手工控制路口信号灯的转换。为了更加准确的仿真和验证电路的功能,我们根据实际生活中的多种交通情况,将其进行分类,设定了十字路口出现的多个情境,并在QuartusII5.0软件环境中,分别对所设计的系统电路针对每个设定情境进行功能仿真,通过观察这些情境下的实验仿真结果,发现符合我们预想的功能,可以有序、准确的控制路口交通信号灯的顺序转换,并没有发生误操作。除了进行软件的仿真之外,我们还将整体程序下载到目标FPGA器件,使用相应的硬件电路相配合,进行硬件调试,也验证了该电路工作情况良好,与软件仿真的结果完全相符合,说明我们所设计的交通信号灯控制电路通过了软件仿真和硬件的测试,可以完成之前的预定功能。第二节出现的问题和解决方案问题和解决方案1、本次试验我们使用了ModelSim编译软件,初始时写完代码后程序编译不能通8过,经过细心检查发现定义变量过程使用的time为系统词,后来编译过程中在工程下没有文件,查阅资料得知程序要先保存再编译。2、在QuartusII软件上进行仿真时,发现不能得到预期的效果,分析得知由于分频过大的原因,软件仿真得不到预期结果。经过同学的讨论决定在软件仿真时省去时钟信号的分频操作,但是在硬件验证过程中加入分频操作,将50MHz的信号分频到1Hz,问题得以解决。3、对于Verilog语言的编程方面,特别在对变量给予初值时,完全不同于C语言编程,我们在对许多变量进行了初值设置,此后编译每每都不通过,在认真思考后,查阅了课本,发现在HDL编程中,不能对变量初值。我们恍然大悟,在以后的编程中我们牢记住了这一点。4、在程序编写初期我们分模块将时钟信号分为两个时钟信号,操作中发现本步操作较为麻烦,因此决定经20秒3秒采用一个1Hz信号控制较为简便。5、在添加数码管显示过程中现实出现混论,经过检查后发现错误是由于高位和低位由于是对引脚配置的错误导致的。改正后发现显示正常。第三节心得体会再一次的体验到了细