基于PFGA的交通灯设计(毕业论文)_第1页
基于PFGA的交通灯设计(毕业论文)_第2页
基于PFGA的交通灯设计(毕业论文)_第3页
基于PFGA的交通灯设计(毕业论文)_第4页
基于PFGA的交通灯设计(毕业论文)_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

PAGEEDA设计基础实验课程论文题目基于PFGA的交通灯设计2021年摘要交通灯为日常生活中常见的设施,交通灯通常指由红、黄、绿三种颜色灯组成用来指挥交通的信号灯。绿灯亮时,准许车辆通行,黄灯亮时,已越过停止线的车辆可以继续通行;红灯亮时,禁止车辆通行。本实验正是按照交通灯的这种指示功能设计的,因此本实验不仅能锻炼自己的实际动手操作能力,解决实际问题的能力,加深自己对verilog设计流程的认识,而且还具有很强的实际意义。数字信号交通灯可以实现十字路口红绿灯的自动控制。基于FPGA的交通灯设计系统具有可靠性强、实时快速擦写、运算速度高、故障率低、电路简单,且体积小的特点。本设计采用的是Altera公司CycloneII系列的EP2C5T144芯片作为核心最小系统,它可以方便嵌入到实际的交通灯应用系统中,可以完成简单的逻辑控制、数据采集、信号处理、数学计算等功能;使用QuartusII软件作为开发平台;采用自顶向下的设计思路对系统进行模块化设计和综合,并通过波形仿真和硬件实现两种方式实现并验证数字信号交通灯的功能。关键词:Verilog交通灯EDAAbstractTrafficlightsforcommonfacilitiesindailylife,usuallyreferstobyred,yellow,andgreenthreecolorsoflightstodirectingtrafficlights.Whenthegreenlight,toallowvehicles,whentheyellowlights,havevehiclescrossthestoplinecancontinue;Abanonvehicletrafficwhentheredlightison.Indicatorforthisdesignisaccordingtothetrafficlightsinthisstudy,sothisstudycannotonlyexercisetheirpracticaloperationability,andabilitytosolvepracticalproblems,anddeepentheirunderstandingoftheverilogdesignprocess,butalsohasastrongpracticalsignificance.Digitalsignaltrafficlighttrafficlightscanachieveautomaticcontrolofthecrossroads.ThedesignofFPGA-basedtrafficlightsystemhasalotoffeatures,suchashighreliability,real-timequickerase,high-speedoperation,lowerrateoffault,simplecircuitandsmallvolume.Duringthisgraduationproject,ItaketheAlteraCorporationCycloneIIseriesEP2C5T144chipastheminimumsystemcore,itcanbeeasilyembeddedintheactualapplicationofthetrafficlightsystem,itcandosimplelogiccontrol,dataacquisition,signalprocessing,mathematicalcalculationsandotherfunctions;usingQuartusIIasdevelopmentplatform;usingtop-downdesignideastosystemmodulardesignandsynthesis,andthroughwaveformsimulationandhardwareimplementationtwowaystocompleteandverifythefunctionofdigitalsignaltrafficlights.KeyWords:Verilog;Trafficlight;EDA目录TOC\o"1-3"\h\u26928摘要 I32257Abstract II20355目录 III30863第一章绪论 1318441.1课程设计要求 1114961.2课程设计思路和原理 1318741.3实现方法 1273171.4Verilog语言简介 218379第二章FPGA概述 3157202.1FPGA的简介 3271722.2FPGA设计交通灯的意义 324233第三章设计方案 4262693.1系统框图的设计 4238493.2工程设计流程框图 4208623.3芯片的选择 489593.4各个模块的设计与仿真 5163023.4.1分频器模块设计(FPQ) 581873.4.2状态控制模块设计(CONTROL_STATUS) 5241173.4.3交通信号灯显示模块设计(DISPLAY_LIGHT) 6162813.4.4东西方向倒计时模块设计(EW_DJS) 7232723.4.5南北方向倒计时模块设计(SN_DJS) 7203413.4.6译码模块设计(TO_8421_BCD) 8203683.4.7译码显示模块设计(DISPLAY_SMG) 8251973.4.8顶层文件设计模块(DCSJ) 911001第四章软件仿真过程 12240274.1QuartusII软件概述 12122414.1.1QuartusII软件简介 1224404.1.2性能特点 1280094.2QuartusII文本输入设计过程 13694.2.1创建工程文件 1355744.2.2输入文本文件 1636674.2.3设计项目编译 1746554.2.4设计项目波形仿真 18133104.2.5输出结构框图 209371总结 2230230参考文献 2326468附录 24第一章绪论1.1课程设计要求设计一个交通控制器,用LED显示灯表示交通状态,并以7段数码显示器显示当前状态剩余秒数主干道绿灯亮时,支干道红灯亮;反之亦然,二者交替允许通行,主干道每次放行35s,支干道每次放行25s。每次由绿灯变为红灯的过程中,亮光的黄灯作为过渡,黄灯的时间为5s。能进行特殊状态显示,特殊状态时东西、南北路口均显示红灯状态。用LED灯显示倒计时,并且能实现总体清零功能,计数器由初始状态开始计数,对应状态的显示灯亮。能实现特殊状态的功能显示。1.2课程设计思路和原理本次设计是针对十字路口,进行南北和东西直行情况下交通灯控制。设定东西方向为主干道方向,根据交通灯的亮的规则,在初始状态下四个方向的都为红灯亮启,进入正常工作状态后,当主干道上绿灯亮时,支干道上红灯亮,持续35s后,主干道和支干道上的黄灯都亮启,持续5s后,主干道上红灯亮启,支干道上绿灯亮启持续25s,之后主干道和支干道上的黄灯都亮启5s,一个循环完成。循环往复的直行这个过程。其过程如下图所示:1.3实现方法本次采用文本编辑法,即利用Verilog语言描述交通控制器,通过状态机计数法,实现设计所要求的交通灯控制及时间显示。设计中用两组红黄绿LED模拟两个方向上的交通灯,用4个7段数码管分别显示两个方向上的交通灯剩余时间。1.4Verilog语言简介Verilog是一种硬件描述语言,用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模。被建模的数字系统对象的复杂性可以介于简单的门和完整的电子数字系统之间。数字系统能够按层次描述,并可在相同描述中显式地进行时序建模。

Verilog语言具有下述描述能力:设计的行为特性、设计的数据流特性、设计的结构组成以及包含响应监控和设计验证方面的时延和波形产生机制。所有这些都使用同一种建模语言。此外,Verilog语言提供了编程语言接口,通过该接口可以在模拟、验证期间从设计外部访问设计,包括模拟的具体控制和运行。

Verilog语言不仅定义了语法,而且对每个语法结构都定义了清晰的模拟、仿真语义。因此,用这种语言编写的模型能够使用Verilog仿真器进行验证。语言从C编程语言中继承了多种操作符和结构。Verilog提供了扩展的建模能力,其中许多扩展最初很难理解。但是,Verilog语言的核心子集非常易于学习和使用,这对大多数建模应用来说已经足够。当然,完整的硬件描述语言足以对从最复杂的芯片到完整的电子系统进行描述。Verilog就是在用途最广泛的C语言的基础上发展起来的一种硬件描述语言,它是由GDA(GatewayDesignAutomation)公司的PhilMoorby在1983年末首创的,最初只设计了一个仿真与验证工具,之后又陆续开发了相关的故障模拟与时序分析工具。1985年Moorby推出它的第三个商用仿真器Verilog-XL,获得了巨大的成功,从而使得Verilog迅速得到推广应用。1989年CADENCE公司收购了GDA公司,使得Verilog成为了该公司的独家专利。1990年CADENCE公司公开发表了Verilog。Verilog的最大特点就是易学易用,如果有C语言的编程经验,可以在一个较短的时间内很快的学习和掌握,因而可以把Verilog内容安排在与ASIC设计等相关课程内部进行讲授,由于语言本身是专门面向硬件与系统设计的,这样的安排可以使学习者同时获得设计实际电路的经验。与之相比,Verilog的学习要困难一些。但Verilog较自由的语法,也容易造成初学者犯一些错误,这一点要注意。 第二章FPGA概述2.1FPGA的简介现场可编程门阵列即FPGA(FieldProgrammableGateArray)它由若干独立的可编程逻辑模块组成具体包括输入输出模块IOB、可编程逻辑模块CLB、互连资源IR和一个用于存放编程数据的静态存储器。它是在可编程器件的基础上进一步发展的产物用户可以通过编程将这些模块连接成所需要的数字系统。因为这些模块的排列形式和门阵列GA中单元的排列形式相似所以沿用了门阵列这个名称。FPGA属于高密度PLD其集成度可达百万门/片以上。FPGA中除了个别的几个引脚外大部分引脚都与可编程的IOB相连均可根据需要设置成输入端或输出端。每个CLB中都包含组合逻辑电路和存储电路即触发器两部分可以设置成规模不大的组合逻辑电路或时序逻辑电路。为了能将这些CLB灵活的连接成各种应用电路在CLB指尖的布线区内配置了丰富的连线资源。FPGA作为专用集成电路领域中的一种半定制电路不仅克服了原有可编程器件门电路数有限的缺点而且解决了定制电路的不足问题。生产FPGA的公司有XILINX、TI、ALTERA等。2.2FPGA设计交通灯的意义FPGA是一个功能强大的可编程逻辑芯片采用FPGA设计ASIC电路用户不需要投片生产就能得到所需的芯片。FPGA内部有丰富的触发器和I/O引脚。FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。FPGA采用高速CHMOS工艺功耗低可以与CMOS、TTL电平兼容。所以用FPGA完成交通灯的设计合理可行。第三章设计方案3.1系统框图的设计图3.1系统框图系统框图由6部分组成,包括:分频、控制、倒计时、红绿灯显示、译码、译码显示等模块。3.2工程设计流程框图图3.2工程设计流程框图3.3芯片的选择本设计采用的是Altera公司CycloneII系列的EP2C5T144芯片作为核心最小系统,它可以方便嵌入到实际的交通灯应用系统中,可以完成简单的逻辑控制、数据采集、信号处理、数学计算等功能。3.4各个模块的设计与仿真3.4.1分频器模块设计(FPQ)由于采用的FPGA芯片的时钟频率是50MHz,需要将其分频为1Hz。该模块即是实现50M的分频,将频率变为1Hz的脉冲波,从而得到周期为1s的脉冲波。其电路图如图3.3所示:图3.3分频器电路图如果要真正的实现分频50M,在仿真结果图中是很难观察的,甚至是没有办法验证的,故在仿真过程中,将分频的倍数变小,变为20分频,这样从图中可容易的得到并验证对时钟输入信号的20分频,如图3.4所示,Reset是复位信号,CLK_50MHz是输入时钟频率,CLK_1Hz是输出时钟频率,从图中可以看出,输出频率CLK_1Hz确实是输入时钟频率CLK_50MHz的20分频。图3.4分频器仿真图3.4.2状态控制模块设计(CONTROL_STATUS)CONTROL_STATUS模块根据输入CLK_1Hz的脉冲信号输出不同的STATUS值,下游的模块依据STATUS的值来确定红绿灯的状态;于此同时对倒计时信号赋初值。其电路如图3.5所示:图3.5状态控制模块电路图在CONTROL_STATUS模块仿真图中,输入信号CLK是一个频率为1Hz的时钟脉冲信号,RESET是复位信号;输出信号STATUS是状态转换信号,控制着下游交通信号灯显示模块的显示情况;LOAD_EW、LOAD_SN是东西、南北方向倒计时开始控制信号,DJS_EW、DJS_SN是东西、南北方向倒计时间信号。其仿真结果图如图3.6所示,由图可得,STATUS共有000(S1)、001(S2)、010(S3)、011(S4)、100(S5)、101(S6)共6个状态,80s为红灯和左转灯的倒计时间,45s为绿灯的倒计时间,5s是黄灯的倒计时间,和状态转换表的状态一致。图3.6状态控制模块仿真图3.4.3交通信号灯显示模块设计(DISPLAY_LIGHT)交通信号灯显示模块根据输入的STATUS信号,输出对应的红绿黄灯信号,并直接驱动交通信号灯的亮灭。其电路图如图3.7所示:图3.7信号灯显示在DISPLAY_LIGHT模块程序仿真结果图中,STATUS为输入信号,而它依赖于CONTROL_STATUS模块产生的信号STATUS信号,一种六种状态,依次为000(S1)、001(S2)、010(S3)、011(S4)、100(S5)、101(S6);EW_LRGY(8位)是东西方向上交通信号灯的状态,SN_LRGY(8位)是南北方向上交通信号灯的状态,依次为左转、红、绿、黄,对应着EW_LRGY、SN_LRGY的前四位,‘1’表示点亮,‘0’表示熄灭,后四位均为0,表示四个灯的阴极接负极。例如,在STATUS为001时,对应的是东西方向红灯亮,南北方向绿灯亮,仿真结果符合预期,完全正确。图3.8信号灯显示仿真图3.4.4东西方向倒计时模块设计(EW_DJS)EW_DJS模块用来接收CONTROL_STATUS模块的输出并作为初值,每检测到一个CLK脉冲信号,就进行减一动作,最后把减一结果输出。其电路图如图5.10所示:图3.9东西方向倒计时电路图在该模块仿真图中,CLK为1Hz的输入信号,LOAD_EW为计数器的装载信号,当其为高电平时,将输入信号DJS_EW_IN的值装载到计数器中,并开始进行减一操作,每遇一个CLK脉冲,进行一次减一操作,并将结果输出,由于输入的时钟频率是1Hz,所以显示的时间间隔是1s,与现实生活中的时间保持一致。其仿真结果如图3.10所示,由图可得,该模块首先将80秒的倒计时信号装载进去,并进行减一操作。图3.10东西方向倒计时仿真图3.4.5南北方向倒计时模块设计(SN_DJS)SN_DJS模块用来接收CONTROL_STATUS模块的输出并作为初值,每检测到一个CLK脉冲信号,就进行减一动作,最后把减一结果输出。其电路图如图3.11所示:图3.11南北方向倒计时电路图在该模块仿真图中,CLK为1Hz的输入信号,LOAD_SN为计数器的装载信号,当其为高电平时,将输入信号DJS_SN_IN的值装载到计数器中,并开始进行减一操作,每遇一个CLK脉冲,进行一次减一操作,并将结果输出,由于输入的时钟频率是1Hz,所以显示的时间间隔是1s,与现实生活中的时间保持一致。其仿真结果如图3.12所示,由图可得,该模块将45秒的倒计时信号装载进去,并进行减一操作。图3.12东西方向倒计时仿真图3.4.6译码模块设计(TO_8421_BCD)TO_8421_BCD模块程序用来将输入的两位倒计时数值,分解成两个整形数值,以此供后面的译码显示模块DISPLAY_SMG译码显示。其电路如图3.13所示:图3.13译码模块电路图在译码程序TO_8421_BCD模块仿真图中,DJS_EW_OUT,DJS_SN_OUT为上一倒计时模块的输出信号,其范围在0~80,所有倒计时的范围都包含其内;DJS_EW_OUT_SW,DJS_EW_OUT_GW,DJS_SN_OUT_SW,DJS_SN_OUT_GW为输出信号,其范围为0~9,代表了各个方向的倒计时的十位和个位,且数码管所有显示数字的范围均在其内。例如图中DJS_EW_OUT的值不断变化,相应的依次将其分解为十位(DJS_EW_OUT_SW)和个位(DJS_EW_OUT_GW),并依次递减,仿真结果符合预期,完全正确。仿真结果如图3.14所示:图3.14译码仿真结果图3.4.7译码显示模块设计(DISPLAY_SMG)译码显示模块DISPLAY_SMG将上一模块TO_8421_BCD输出的四个一位数译码成相对应的七位数码管段码,完成倒计时的译码和显示。其电路如图3.15所示:图3.15译码显示电路图在如图3.17所示DISPLAY_SMG译码显示模块的仿真图中,其中可以看到DJS_EW_OUT_SW,DJS_EW_OUT_GW,DJS_SN_OUT_SW,DJS_SN_OUT_GW是四位的输入信号,也是上一模块TO_8421_BCD的输出信号,它们的范围为数字0~9,DJS_EW_OUT_SW1,DJS_EW_OUT_GW1,DJS_SN_OUT_SW1,DJS_SN_OUT_GW1对应的是相应的七位数码管显示段码的值。图中输出信号的值随着输入信号的变化而相应的变化,例如DJS_EW_OUT_SW为7,DJS_EW_OUT_GW为5时,DJS_EW_OUT_SW1为00000111(a、b、c、d、e、f、g依次对应着1110000,最高位的0表示是数码管的类型是共阴的),表示数码管显示7,DJS_EW_OUT_GW1为01101101,表示数码管显示5。仿真完全正确,符合预期。其仿真结果如图3.17所示:图3.17译码显示仿真图3.4.8顶层文件设计模块(DCSJ)顶层设计采用Verilog语言描述方式实现,并在工程文件仿真过后通过工具菜单自动生成原理图文件,从而是设计原理更加清晰明朗。在顶层设计Verilog描述中,共包含7个元件,分别是:1、分频器模块(FPQ),2、状态控制模块(CONTROL_STATUS),3、交通信号灯显示模块(DISPLAY_LIGHT),4、东西方向倒计时模块设计(EW_DJS),5、南北方向倒计时模块设计(SN_DJS),6、译码模块设计(TO_8421_BCD),7、译码显示模块设计(DISPLAY_SMG)。这7个模块经过程序设计、编译仿真,结果均能够达到设计要求。最后在顶层设计中,通过元件例化语句将这7个模块连接起来,通过RTL电路观察器生成顶层设计原理图如3.18图所示:图3.18顶层设计原理图在顶层设计中,RESET是复位信号,输入的时钟频率CLK是50MHz,经过分频50M的分频器(FPQ)后,变为频率为1Hz的时钟信号,周期为1s,用此时钟信号来控制整个系统的步调,与现实生活中交通灯的步调保持一致。EW_LRGY、SN_LRGY分别为东西和南北方向上交通信号灯的状态,EW_DJS_DISPLAY、SN_DJS_DISPLAY为东西和南北方向红绿灯倒计时间。另外,所有的数码管和二极管均为共阴极显示。例如,在EW_LRGY为01000000(即东西方向红灯亮)、SN_LRGY为10000000(即南北方向左转灯亮)时,EW_DJS_DISPLAY的前八位表示倒计时的十位,后八位表示倒计时的个位;图中EW_DJS_DISPLAY的前八位都是00000111表示7,后八位01111101表示6,后八位01101101表示5,后八位01100110表示4;SN_DJS_DISPLAY的前八位是01001111表示3,后八位01011011表示2,后八位00000110表示1,后八位00111111表示0,以上表明红绿灯和倒计时时间显示符合预期,完全正确。仿真结果如图3.19所示:图3.19顶层文件波形仿真结果图第四章软件仿真过程4.1Quartus=2\*ROMANII软件概述4.1.1QuartusII软件简介QuartusII软件是Altera公司最新版本的EDA开发软件,支持APEX系列、Cyclone系列、Stratix系列和Excalibur系列等新型系列器件的开发。含有工作组计算、集成逻辑分析仪、EDA工具集成、多过程支持、增强重编译和IP集成等特性。支持百万门级的设计,支持高速I/O设计,具有更强的设计能力和更快的编译速度。QuartusII开发软件为可编程片上系统(SOPC)设计提供了一个完整的设计环境。无论是使用个人电脑、NUIX或Linux工作站,QuartusII都提供了方便设计、快速编译处理以及编程功能。QuartusII输入的设计过程可分为创建工程、输入文件、项目编译、项目校验和编程下载等几个步骤。AlteraQuartusII作为一种可编程逻辑的设计环境,由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。当前官方提供下载的最新版本是v12.1。AlteraQuartusII(3.0和更高版本)设计软件是业界唯一提供FPGA和固定功能HardCopy器件统一设计流程的设计工具。工程师使用同样的低价位工具对StratixFPGA进行功能验证和原型设计,又可以设计HardCopyStratix器件用于批量成品。系统设计者现在能够用QuartusII软件评估HardCopyStratix器件的性能和功耗,相应地进行最大吞吐量设计。Altera的QuartusII可编程逻辑软件属于第四代PLD开发平台。该平台支持一个工作组环境下的设计要求,其中包括支持基于Internet的协作设计。Quartus平台与Cadence、ExemplarLogic、MentorGraphics、Synopsys和Synplicity等EDA供应商的开发工具相兼容。改进了软件的LogicLock模块设计功能,增添了FastFit编译选项,推进了网络编辑性能,而且提升了调试能力。4.1.2性能特点1)支持MAX7000/MAX3000等乘积项器件9.0版QuartusII设计软件现在除了支持Altera的APEX20KE,APEX20KC,APEXII,ARM的Excalibur嵌入处理器方案,Mercury,FLEX10KE和ACEX1K之外,还支持MAX3000A,MAX7000系列乘积项器件。MAX3000A和MAX7000设计者现在可以使用QuartusII设计软件中才有的所有强大的功能。2)软件体积缩小,运行速度加快QuartusII9.0安装软件为290M,完全安装为700M,如果定制安装,不选择Excalibur嵌入处理器,则安装所需空间为460M,比QuartusII1.1版本减少一半以上的空间要求,却能支持ALTERA全部芯片的开发。同时软件的装载,编译,仿真速度比1.1版本大大加快。3)LogicLock设计流程把性能提升15%QuartusII9.0设计软件通过增强层次LogicLock模块级设计方式,将性能平均改善15%。LogicLock设计流程把整个模块的放置交由设计者控制,如果必要的话,可以采用辅助平面布置。LogicLock设计流程运行设计者单独地优化和锁定每个模块的性能,在大型SOPC设计的构建过程中也保持整个系统的性能。2.0版QuartusII设计软件把新的LogicLock设计流程算法集成到未来的Altera器件中,该算法充分利用了模块级设计的优势。4)采用快速适配选项缩短编译时间QuartusII9.0增加了一个新的快速适配编译选项,选择中这个选项,将会比缺省设置要缩短50%的编译时间。快速适配功能保留了最佳性能的设置,加快了编译过程。这样布局适配算法反复的次数更少,编译速度更快,对设计性能的影响最小。5)新的功能减小了系统级验证9.0版QuartusII设计软件引入了新的功能,加快验证过程,这通常是SOPC设计流程中最漫长的阶段。在最初的编译时间中,新的SignalProbe技术允许用户在保留设计最初布线,时限和设计文件的同时把内部节点引到未用的管脚进行分析。SignalProbe技术完成了现有SignalTap嵌入逻辑分析的功能。而且,设计者能够使用新版本中提供的测试模板快速地开发仿真矢量。9.0版QuartusII设计软件也可以自动地从QuartusII仿真器波形文件中创建完整的测试平台。9.0版QuartusII设计软件也支持高速I/O设计,生成专用I/O缓冲信息规范(IBIS)模型导入到常用的EDA信号集成工具中。IBIS模型根据设计中每个管脚的I/O标准设置来定制,简化第三方工具的分析。4.2Quartus=2\*ROMANII文本输入设计过程4.2.1创建工程文件利用QuartusII软件创建工程向导(NewProjectWizard)创建一个新工程。步骤如下:打开QuartusII9.0软件界面,在“文件”菜单下选择“NewProjectWizard”,1)点击“next”后弹出如图4.1对话框图4.1NewProjectWizard对话框第一页点选第一行右侧的“…”选择工程目录为“d:\quartus”,在第二行输入项目名称:“点阵接口16”,第三行默认把项目名设为顶层文件名,点击“next”,2)新建项目向导第二页,如图4.2,该窗口可为项目添加已经编辑好的程序文件,默认为空,点击“next”,图4.2NewProjectWizard对话框第二页3)新建项目向导第三页,如图4.3,该窗口可以选择FPGA硬件信息,在Family下拉框内选择“Cyclone”,在Avaliabledevices窗口选择芯片型号为:EPIC12Q24C08,其它选项默认。点击“next”图4.3NewProjectWizard对话框第三页4)新建项目向导第四页,如图4.4,该窗口用来添加第三方EDA工具软件参与综合、仿真、时序分析等工作,本实验默认不选,点击“next”图4.4NewProjectWizard对话框第四页5)新建项目向导第五页,如图4.5,图4.5NewProjectWizard对话框第五页该窗口为建立的项目信息,点击“Finish”项目建立完毕。建立工程后,可以使用Assignments菜单下的settings对话框对工程设置进行修改。4.2.2输入文本文件1)新建Verilog文本文件:在QuartusII管理器界面中选择菜单File\New...,或单击新建文件按钮,出现New对话框,在对话框DeviceDesignFiles中选择VerilogFile。点击ok按钮,打开编辑器。在文本编辑器窗口下,编辑输入Verilog程序。如图4.6所示。图4.6新建设计文件选择窗口和文本编辑窗口2)输入课程设计Verilog程序:图4.7新建设计文件输入窗口编辑完毕后保存,文件名保存为“jiaotongdeng”,Verilog文件扩展名为.vQuartusII支持多种硬件描述语言,不同的硬件描述语言编写的文件扩展名不同,如A文件扩展名为.tdf,Verilog文件的扩展名为.vhd。4.2.3设计项目编译1)文件保存完后查看上方工具条图4.8上方工具栏2)点击进行编译,完成后如图图4.9编译完成窗口4.2.4设计项目波形仿真波形仿真是在波形编辑器中将设计的逻辑功能用波形图的形式显示,通过查看波形图,检查设计的逻辑功能是否符合设计要求。波形仿真的目的是进一步检验设计文件描述的逻辑功能能否实现预期的目标。波形仿真分析是验证逻辑功能正确性必不可少的环节。1)建立波形图文件关闭编译报告窗口后,在“文件”菜单下选择“New”,选中“otherfiles”标签页,在弹出的窗口点击“VectorWaveformFile”点击“OK”打开波形编辑窗口。图4.10新建波形图编辑窗口2)定义仿真观测的输入输出节点在波形编辑窗口左侧栏的Name栏目下单击鼠标右键,出现浮动菜单,选择“Insert\InsertNoteorBus…”出现“InsertNoteorBus…”对话框,点击“NodeFinder…”按键,出现“NodeFinder”对话框,如图1.12,查找节点信息,插入节点。在图中“Filter:”选项下选择管脚类型为“Pins:all”,然后单击List按钮,可在左下侧区域看到设计项目中的输入输出信号,单击按钮“=〉”,将这些信号选择到“SelectedNodes”区,表示对这些信号进行观测。图4.11“InsertNoteorBus…”插入节点对话框保存波形文件,文件名为jiaotongdeng.vwf(注:扩展名默认不填,文件名与项目名同名)为输入信号赋值波形编辑器窗口左侧为信号赋值工具条,根据实际要求点选工具按钮对输入的信号赋值。为方便赋值,先浏览一下与此有关的工具条按钮和菜单。图输出结构框图图4.13输出结构框图过程图4.14结构框图总结通过此次课程设计,让我加深了FPGA的理解,更加熟练了Verilog语言,同时,我深深体会到了通过FPGA设计数字电路的方便、简洁的特点,这让我相信未来数字电路的应用必将更加广泛。另外,我还体会到:从事开发设计工作,一定要保持个勤奋、踏实、严谨的工作态度,这样才能更好的完成工作。最后,我觉得在交通灯控制系统设计中还可以增加一些实用功能,如:1、针对弱视或色盲人群进行声音提示;2、在遇到突发状况时,可以将红绿灯改为紧急模式控制;3、当有119、120等特种车辆通过时,系统可转为特种车放行,其他车辆禁行。参考文献[1]王艳春,董亮,朱磊,武文斌。现代通信综合实验教程[2]李景华,杜玉远.Verilog语言及数字系统设计[3]林明权,马维旻.Verilog数字控制系统设计范例.北京:电子工业出版社,2021.1[4]曹昕燕,周凤臣,聂春燕.EDA技术实验与课程设计.北京:清华大学出版社,2021,5附录modulejiaotongdeng(en,clk,qclk,rst,rst1,hold,num1,num2,light1,light2,counter,st1,st2);inputen,clk,qclk,rst,hold,rst1;outputst1,st2;output[7:0]num1,num2;output[6:0]counter;output[2:0]light1,light2;regtim1,tim2,st1,st2;reg[1:0]state1,state2,ste;reg[2:0]light1,light2;reg[3:0]num;reg[6:0]counter;reg[7:0]num1,num2;reg[7:0]red1,red2,green1,green2,yellow1,yellow2;always@(en)if(!en)begin//设置计数初值green1<=8'b00110101;red1<=8'b00100101;yellow1<=8'b00000101;green2<=8'b00100101;red2<=8'b00110101;yellow2<=8'b00000101;endalways@(posedgeclk)beginif(rst)//复位与特殊情况控制beginlight1<=3'b001;num1<=green1;endelseif(hold)beginlight1<=3'b100;num1<=green1;endelseif(en)begin//使能有效开始控制计数if(!tim1)//开始控制begin//主干道交通灯点亮控制tim1<=1;case(state1)2'b00:beginnum1<=green1;light1<=3'b001;state1<=2'b01;end2'b01:beginnum1<=yellow1;light1<=3'b010;state1<=2'b11;end2'b11:beginnum1<=red1;light1<=3'b100;state1<=2'b10;end2'b10:beginnum1<=yellow1;light1<=3'b010;state1<=2'b00;enddefault:light1<=3'b100;endcaseendelsebegin//倒数计时if(num1>0)if(num1[3:0]==0)beginnum1[3:0]<=4'b1001;num1[7:4]<=num1[7:4]-1;endelsenum1[3:0]<=num1[3:0]-1;if(num1==1)tim1<=0;endendelsebeginlight1<=3'b010;num1=2'b00;tim1<=0;endendalways@(posedgeclk)beginif(rst)//复位与特殊情况控制beginlight2<=3'b100;num2<=red2;endelseif(hold)beginlight2<=3'b100;num2<=red2;endelseif(en)beginif(!tim2)begintim2<=1;case(state1)2'b00:beginnum2<=red2;light2<=3'b100;state2<=2'b01;end2'b01:beginnum2<=yellow1;light2<=3'b010;state2<=2'b11;end2'b11:beginnum2<=green2;light2<=3'b001;state2<=2'b10;end2'b10:beginnum2<=yellow2;light2<=3'b010;state2<=2'b00;enddefault:light2<=3'b100;endcaseendelsebegin//倒数计时if(num2>0)if(num2[3:0]==0)beginnum2[3:0]<=4'b1001;num2[7:4]<=num2[7:4]-1;endelsenum2[3:0]<=num2[3:0]-1;if(num2==1)tim2<=0;endendelsebegintim2<=0;state2<=2'b00;light2<=3'b010;endendalways@(posedgeqclk)begin//数码管扫描if(rst1)beginst1=0;st2=0;endelsebegincase({st2,st1})2'b00:beginnum<=num1[3:0];{st2,st1}<=2'b01;end2'b01:beginnum<=num1[7:4];{st2,st1}<=2'b10;end2'b10:beginnum<=num2[3:0];{st2,st1}<=2'b11;end2'b11:beginnum<=num2[7:4];{st2,st1}<=2'b00;endendcaseendendalways@(posedgeqclk)begin//数码管译码显示case(num)4'b0000:counter<=7'b0111111;//04'b0001:counter<=7'b0000110;//14'b0010:counter<=7'b1011011;//24'b0011:counter<=7'b1001111;//34'b0100:counter<=7'b1100110;//44'b0101:counter<=7'b1101101;//54'b0110:counter<=7'b1111101;//64'b0111:counter<=7'b0000111;//74'b1000:counter<=7'b1111111;//84'b1001:counter<=7'b1101111;//9default:counter<=7'b0111111;//0endcaseendendmodule

论大学生写作能力写作能力是对自己所积累的信息进行选择、提取、加工、改造并将之形成为书面文字的能力。积累是写作的基础,积累越厚实,写作就越有基础,文章就能根深叶茂开奇葩。没有积累,胸无点墨,怎么也不会写出作文来的。写作能力是每个大学生必须具备的能力。从目前高校整体情况上看,大学生的写作能力较为欠缺。一、大学生应用文写作能力的定义那么,大学生的写作能力究竟是指什么呢?叶圣陶先生曾经说过,“大学毕业生不一定能写小说诗歌,但是一定要写工作和生活中实用的文章,而且非写得既通顺又扎实不可。”对于大学生的写作能力应包含什么,可能有多种理解,但从叶圣陶先生的谈话中,我认为:大学生写作能力应包括应用写作能力

温馨提示

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

评论

0/150

提交评论