版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
北京工业大学毕业设计(论文)基于FPGA的交通信号灯控制器的设计与实现姓名系名信息工程专业电子信息工程指导教师日期年月日北京工业大学毕业设计(论文)任务书题目基于FPGA的交通灯控制器的设计与实现专业电子信息班级学号姓名主要内容、基本要求、主要参考资料等:模拟十字路口交通信号灯的工作过程,利用交通灯模块上的两组红、黄、绿LED发光二极管作为交通信号灯,设计一个交通信号灯控制器。设计说明:有两条公路,一条是交通主干道,另一条是支干道。在主干道和支干道的交叉路口上,设置了红、黄、绿灯,进行交通管理,如图1所示。图SEQ图\*ARABIC1路口交通管理示意图基本要求如下:交通灯从绿变红时,有4s黄灯亮的间隔时间;交通灯从红变绿是直接进行的,没有间隔时间;主干道的绿灯时间为20s,支干道的绿灯时间为10s;在任意时间,显示每个状态开始到结束所需要的时间。由此可以得出交通信号灯A,B,C,D的4种状态,如表1所示。表SEQ表\*ARABIC1交通信号灯的4种状态交通信号灯ABCD主干道的交通灯绿(20s)黄(4s)红(10s)红(4s)支干道的交通灯红红绿黄主要参考资料:张洪润.FPGA/CPLD应用设计200例(上册)[M].北京:北京航空航天大学出版社,2009.潘松.EDA技术实用教程(第三版)[M].北京:科学出版社,2006.完成期限:2009年11月到2010年6月指导教师签章:专业负责人签章:2009年11月6日诚信承诺本人__________声明,本论文及其研究工作是由本人在导师指导下独立完成,论文所利用的一切资料均符合论文著作要求,且在参考文献中列出。作者签字:年月日摘要近年来,随着社会上特别是城市中机动车保有量的不断增加,在现代城市的日常运行控制中,车辆的交通控制越来越重要。在十字交叉路口,越来越多的使用红绿灯进行交通指挥和管理[1]。本课题以FPGA硬件描述语言为设计手段,完成了交通信号灯控制电路的开发,其中交通信号灯控制电路的开发目的是设计一个适用于主、支干道十字交叉路口的红黄绿交通灯的控制系统,通过合理设计系统功能,使红黄绿的转换有一个准确的时间间隔和转换顺序,当然这就需要一个自动和安全的系统对红、黄、绿灯的转换进行控制。本课题所设计的交通信号灯控制电路经过在QuartusII软件下进行模拟仿真,观察其波形,并通过将程序下载到目标FPGA器件,进行硬件的调试验证,证明所设计的交通信号灯控制电路完全可以实现预定的功能,具有一定的实用性。关键词:控制电路;信号灯;FPGA;软件设计;QuartusIIABSTRACTInrecentyears,withtheincreaseofVehicleinventoryinsocietyespeciallyincity,thetrafficcontrolofthevehiclebecomemoreandmoreimportantwiththedevelopmentofsociety.Incrossfourcorners,moreandmoretrafficlightsareusedtodirectandmanagethetraffic.ThissubjecttakeFPGAhardwaredescriptionlanguageasdesignmethodanditcompletedthestreet-trafficcontrollightscontrolcircuit'sdevelopment,andthemaingoalofthedevelopmentofthestreet-trafficcontrollightscontrolcircuitistodesignacontrolsystem,whichcanbeusedinbothmainroadandsecondroad'scrossfourcorners.Throughreasonabledesignthesystemfunction,Enablestheredolivinethetransformationtohaveanaccuratetime-gapandthetransformationorder.Certainlythisneedsoneautomaticandthesafesystemtored,yellow,greenlight'stransformationcarriesonthecontrol.Thispaperwhichdesignsthetraffic-lights'controlcircuitisAnalogsimulatedbytheQuartusIISoftware,observatetheprofile,andthendownloadtheproceduretotheFPGAcomponent.Toprovethedesignsofthetraffic-lights'controlcircuitcanrealizethepredeterminedfunction,what'smore,thisdesignmayalsobecertainusabilitythroughthehardwaredebuggingconfirmmation.Keywords:Controlcircuit;Signallight;FPGA;Softwaredesign;QuartusII目录TOC\o"1-3"\h\u46371课题研究背景及意义 -1-107411.1课题的发展进程 -1-189481.2课题的选题背景 -1-302741.2.1课题相关技术的发展 -1-170801.2.2课题研究的必要性 -2-180401.3本章小结 -3-106912FPGA简介 -4-303202.1FPGA概述 -4-97722.2FPGA基本结构 -4-105952.3FPGA系统设计流程 -6-116242.4FPGA开发编程原理 -7-270192.5本章小结 -8-186873基于FPGA的交通灯控制器的设计 -9-270633.1设计思路和原理框图 -9-67263.2各主要进程模块的说明 -10-83583.2.1分频器模块 -10-53273.2.2LED七段数码管显示模块 -11-297393.2.3计数器模块 -13-280373.3整体程序的仿真 -15-67493.4本章小结 -16-275394系统硬件测试 -17-187894.1Cyclone系列FPGA介绍 -17-290554.2引脚分配[7] -17-211654.3硬件测试结果 -18-27760结论 -19-17002参考文献 -20-17673附录 -21-18427附录1中文文献 -21-5483附录2英文翻译 -29-1592附录3参考程序 -39-16955致谢 -45-北京工业大学(设计)论文1课题研究背景及意义1.1课题的发展进程 随着社会经济的发展,交通问题越来越引起人们的关注。人、车、路三者关系的协调,已成为交通管理部门需要解决的重要问题之一。交通控制系统是用于城市交通数据监测、交通信号灯控制与交通疏导的计算机综合管理系统,它是现代交通监控指挥系统中最重要的组成部分[1]。今天,红绿灯安装在各个道路口上,已成为疏导交通车辆最常见和最有效的手段。但这一技术在19世纪就出现了。1858年,在英国伦敦主要街头安装了以燃煤气为光源的红、蓝两色的机械扳手式信号灯,用以指挥马车通行。这是世界上最早的交通信号灯。1868年,英国机械工程师那伊特在伦敦威斯敏思特区议会大厦的广场上,安装了世界上最早的煤气红绿灯。它由红绿两以旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。1869年1月2日,煤气灯爆炸,使警察受伤,遂被取消。1914年,电气启动的红绿灯出现在美国。这种红绿灯由红绿黄三色圆形的投光器组成,安装在纽约市5号大街的高塔上。红灯亮表示“停止”,绿灯亮表示“通行”。1918年,又出现了带控制的红绿灯和红外线红绿灯。带控制的红绿灯,一种是把压力探测器安在地下,车辆一接近,红灯变为绿灯;另一种是用扩音器来启动红绿灯,司机遇到红灯时按一下喇叭,就使红灯变为绿灯。红外线红绿灯当行人踏上对压力敏感的路面时,它就能察觉到有人要过马路。红外光束就能把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显效果。1968年,联合国《道路交通和道路标志信号协定》对各种信号灯的含义做了规定。绿灯时通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。左右转弯车辆都必须让合法的正在路口内行驶的车辆和过人行横道的行人优先通行。红灯是禁止信号,面对红灯的车辆必须在交叉路口的停车线后停车。黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口[2]。1.2课题的选题背景1.2.1课题相关技术的发展当今电子产品正向功能多元化,体积最小化,功耗最低化的方向发展。它与传统的电子产品在设计上的显著区别师大量使用大规模可编程逻辑器件,使产品的性能提高,体积缩小,功耗降低.同时广泛运用现代计算机技术,提高产品的自动化程度和竞争力,缩短研发周期。EDA技术正是为了适应现代电子技术的要求,吸收众多学科最新科技成果而形成的一门新技术。美国ALTERA公司的可编程逻辑器件采用全新的结构和先进的技术,加上MaxplusII(或最新的QUARTUS)开发环境,更具有高性能,开发周期短等特点,十分方便进行电子产品的开发和设计。EDA技术,技术以大规模可编程逻辑器件为设计载体,以硬件描述语言为系统逻辑描述主要表达方式,以计算机、大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关的开发软件,自动完成用软件的方式设计的电子系统到硬件系统的逻辑编译,逻辑化简,逻辑分割,逻辑映射,编程下载等工作。最终形成集成电子系统或专用集成芯片的一门新技术。本设计利用VHDL硬件描述语言结合可编程逻辑器件进行的,并通过数码管动态显示计时结果。交通信号灯可以由各种技术实现,如单片机的汇编语言,PLC.利用可编程逻辑器件具有其他方式没有的特点,它具有易学,方便,新颖,有趣,直观,设计与实验项目成功率高,理论与实践结合紧密,体积小,容量大,I/O口丰富,易编程和加密等特点,并且它还具有开放的界面,丰富的设计库,模块化的工具以及LPM定制等优良性能,应用非常方便。因此,本设计采用可编程逻辑器件实现。VHDL语言具有很强的电路描述和建模能力,能从多个层次对数字系统进行建模和描述,从而大大简化了硬件设计任务,提高了设计效率和可靠性,VHDL是一种全方位的硬件描述语言,具有极强的描述能力,能支持系统行为级、寄存器传输级和逻辑门级三个不同层次的设计;支持结构、数据流、行为三种描述形式的混合描述、覆盖面广、抽象能力强,因此在实际应用中越来越广泛。ASIC是专用的系统集成电路,是一种带有逻辑处理的加速处理器。而FPGA是特殊的ASIC芯片,与其他的ASIC芯片相比,它具有设计开发周期短、设计制造成本低、开发工具先进、标准产品无需测试、质量稳定以及可实时在线检测等优点。交通信号灯控制系统是一个典型的纯数字系统,传统的设计方法基于中、小规模集成电路进行,电路复杂、故障率高、可靠性低。利用EDA技术采用超大规模可编程器件FPGA/CPLD实现,可降低设计成本,缩短设计周期,保证设计过程的正确性,为数字系统的设计带来了极大的灵活性。交通信号灯的设计给交通生活带来了极大的方便,而且大大地扩展了信号灯的各种显示功能。因此,研究交通信号灯控制器的设计,有着非常现实的意义。1.2.2课题研究的必要性随着城市机动车量的不断增加,许多大城市如北京、上海、南京等出现了交通超负荷运行的情况,因此,自80年代后期,这些城市纷纷修建城市高速道路,在高速道路建设完成的初期,它们也曾有效地改善了交通状况。然而,随着交通量的快速增长和缺乏对高速道路的系统研究和控制,高速道路没有充分发挥出预期的作用。而城市高速道路在构造上的特点,也决定了城市高速道路的交通状况必然受高速道路与普通道路耦合处交通状况的制约。所以,如何采用合适的控制方法,最大限度利用好耗费巨资修建的城市高速道路,缓解主干道与匝道、城区同周边地区的交通拥堵状况,越来越成为交通运输管理和城市规划部门亟待解决的主要问题。为此,笔者进行了深入的研究,利用FPGA技术及由QuartusⅡ软件编写VHDL语言源程序,硬件测试时通过ALTERA公司的Cyclone系列的EP1C12Q240C8芯片来实现,设计了一个交通灯系统,实现简单的交通灯的管理功能。以下就主、支干道交通灯控制器的电路原理、设计计算和实验调试等问题来进行具体分析讨论。1.3本章小结本章节首先介绍了交通信号灯的发展史和各个阶段出现的交通灯的配置以及作用,详细叙述了课题的研究背景以及利用VHDL语言编写程序的优点所在。阐述了课题研究的必要性。经过课题要求开始构思设计的大致思路:是以交通信号灯控制器为研究背景,把EDA技术作为实现手段,以FPGA语言为软件编程语言,以及用QuartusⅡ应用软件作为工具,硬件测试时通过ALTERA公司的Cyclone系列的EP1C12Q240C8芯片来最终实现交通信号灯控制器的设计,以LED灯显示剩余时间,用发光二极管代表三种灯的状态。2FPGA简介本章从FPGA概述、FPGA的基本结构、FPGA系统设计流程、以及FPGA开发编程原理四方面详细阐述了FPGA技术的相关特性。2.1FPGA概述FPGA是现场可编程门阵列(FieldProgrammableGateArray)的简称,与之相应的CPLD是复杂可编程逻辑器件(ComplexProgrammableLogicDevice)的简称,两者的功能基本相同,只是实现原理略有不同,所以有时可以忽略这两者的区别,统称为可编程逻辑器件或CPLD/PGFA。CPLD/PGFA几乎能完成任何数字器件的功能,上至高性能CPU,下至简单的74电路[2]。它如同一张白纸或是一堆积木,工程师可以通过传统的原理图输入或硬件描述语言自由的设计一个数字系统。通过软件仿真可以事先验证设计的正确性,在PCB完成以后,利用CPLD/FPGA的在线修改功能,随时修改设计而不必改动硬件电路。使用CPLA/FPGA开发数字电路,可以大大缩短设计时间,减少PCB面积,提高系统的可靠性。这些优点使得CPLA/FPGA技术在20世纪90年代以后得到飞速的发展,同时也大大推动了EDA软件和硬件描述语言HDL的进步。2.2FPGA基本结构FPGA具有掩膜可编程门阵列的通用结构,它由逻辑功能块排成阵列,并由可编程的互连资源连接这些逻辑功能块来实现不同的设计。FPGA一般由3种可编程电路和一个用于存放编程数据的静态存储器SRAM组成。这3种可编程电路是:可编程逻辑模块(CLB--ConfigurableLogicBlock)、输入/输出模块(IOB--I/OBlock)和互连资源(IR—InterconnectResource)。可编程逻辑模块CLB是实现逻辑功能的基本单元,它们通常规则的排列成一个阵列,散布于整个芯片;可编程输入/输出模块(IOB)主要完成芯片上的逻辑与外部封装脚的接口,它通常排列在芯片的四周;可编程互连资源包括各种长度的连接线段和一些可编程连接开关,它们将各个CLB之间或CLB、IOB之间以及IOB之间连接起来,构成特定功能的电路[2]。1.CLB是FPGA的主要组成部分。图2-1是CLB基本结构框图,它主要由逻辑函数发生器、触发器、数据选择器等电路组成。CLB中3个逻辑函数发生器分别是G、F和H,相应的输出是G’、F’和H’。G有4个输入变量G1、G2、G3和G4;F也有4个输入变量F1、F2、F3和F4。这两个函数发生器是完全独立的,均可以实现4输入变量的任意组合逻辑函数。逻辑函数发生器H有3个输入信号;前两个是函数发生器的输出G’和F’,而另一个输入信号是来自信号变换电路的输出H1。这个函数发生器能实现3输入变量的各种组合函数。这3个函数发生器结合起来,可实现多达9变量的逻辑函数。CLB中有许多不同规格的数据选择器(四选一、二选一等),通过对CLB内部数据选择器的编程,逻辑函数发生器G、F和H的输出可以连接到CLB输出端X或Y,并用来选择触发器的激励输入信号、时钟有效边沿、时钟使能信号以及输出信号。这些数据选择器的地址控制信号均由编程信息提供,从而实现所需的电路结构。CLB中的逻辑函数发生器F和G均为查找表结构,其工作原理类似于ROM。F和G的输入等效于ROM的地址码,通过查找ROM中的地址表可以得到相应的组合逻辑函数输出。另一方面,逻辑函数发生器F和G还可以作为器件内高速RAM或小的可读写存储器使用,它由信号变换电路控制。2.输入/输出模块IOB。IOB提供了器件引脚和内部逻辑阵列之间的连接。它主要由输入触发器、输入缓冲器和输出触发/锁存器、输出缓冲器组成。每个IOB控制一个引脚,它们可被配置为输入、输出或双向I/O功能。当IOB控制的引脚被定义为输入时,通过该引脚的输入信号先送入输入缓冲器。缓冲器的输出分成两路:一路可以直接送到MUX,另一路经延时几纳秒(或者不延时)送到输入通路D触发器,再送到数据选择器。通过编程给数据选择器不同的控制信息,确定送至CLB阵列的I1和I2是来自输入缓冲器,还是来自触发器。CLCLBCLBCLBCLBCLBBCLBCLBCLBCLBCLBCLBCLBCLBBCLBCLBCLB可编程开关矩输入输出模块互连资源图2.1CLB基本结构当IOB控制的引脚被定义为输出时,CLB阵列的输出信号OUT也可以有两条传输途径:一条是直接经MUX送至输出缓冲器,另一条是先存入输出通路D触发器,再送至输出缓冲器。IOB输出端配有两只MOS管,它们的栅极均可编程,使MOS管导通或截止,分别经上拉电阻接通Vcc、地线或者不接通,用以改善输出波形和负载能力。3.可编程互连资源IR。可编程互连资源IR可以将FPGA内部的CLB和CLB之间、CLB和IOB之间连接起来,构成各种具有复杂功能的系统。IR主要由许多金属线段构成,这些金属线段带有可编程开关,通过自动布线实现各种电路的连接。2.3FPGA系统设计流程一般说来,一个比较大的完整的项目应该采用层次化的描述方法:分为几个较大的模块,定义好各功能模块之间的接口,然后各个模块再细分去具体实现,这就是TOPDOWN(自顶向下)的设计方法。目前这种高层次的设计方法已被广泛采用[3]。高层次设计只是定义系统的行为特征,可以不涉及实现工艺,因此还可以在厂家综合库的支持下,利用综合优化工具将高层次描述转换成针对某种工艺优化的网络表,使工艺转化变得轻而易举。CPLD/FPGA系统设计的工作流程如图2.2所示。流程说明:1.工程师按照“自顶向下”的设计方法进行系统划分。2.输入VHDL代码,这是设计中最为普遍的输入方式。此外,还可以采用图形输入方式(框图、状态图等),这种输入方式具有直观、容易理解的优点。3.将以上的设计输入编译成标准的VHDL文件。4.进行代码级的功能仿真,主要是检验系统功能设计的正确性。这一步骤适用于大型设计,因为对于大型设计来说,在综合前对源代码仿真,就可以大大减少设计重复的次数和时间。一般情况下,这一仿真步骤可略去。5.利用综合器对VHDL源代码进行综合优化处理,生成门级描述的网络表文件,这是将高层次描述转化为硬件电路的关键步骤。综合优化是针对ASIC芯片供应商的某一产品系列进行的,所以综合的过程要在相应的厂家综合库的支持下才能完成。6.利用产生的网络表文件进行适配前的时序仿真,仿真过程不涉及具体器件的硬件特性,是较为粗略的。一般的设计,也可略去这一步骤。7.利用适配器将综合后的网络表文件针对某一具体的目标器件进行逻辑映射操作,包括底层器件配置、逻辑分割、逻辑优化和布局布线。8.在适配完成后,产生多项设计结果:(a)适配报告,包括芯片内部资源利用情况,设计的布尔方程描述情况等;(b)适配后的仿真模型;(c)器件编程文件。根据适配后的仿真模型,可以进行适配后时序仿真,因为已经得到器件的实际硬件特性(如时延特性),所以仿真结果能比较精确的预期未来芯片的实际性能。如果仿真结果达不到设计要求,就修改VHDL源代码或选择不同速度和品质的器件,直至满足设计要求。最后将适配器产生的器件编程文件通过编程器或下载电缆载入到目标芯片CPLD/FPGA中。系统划分系统划分编译器代码级功能仿真综合器适配前时序仿真适配器CPLD/FPGA实现适配后仿真模型适配后时序仿真适配报告ASIC实现VHDL代码或图形方式输入仿真综合库器件编程文件图2.3FPGA/CPLD系统设计流程2.4FPGA开发编程原理硬件设计需要根据各种性能指标、成本、开发周期等因素,确定最佳的实现方案,画出系统框图,选择芯片,设计PCB并最终形成样机。CPLD/FPGA软件设计可分为两大块:编程语言和编程工具。编程语言主要有VHDL和Verilog两种硬件描述语言;编程工具主要是两大厂家Altera和Xilinx的集成综合EDA软件(如MAX+plusII、QuartusII、Foundation、ISE)以及第三方工具(如FPGAExpress、Modelsim、SynposysSVS等)。具体的设计输入方式有以下几种:1.HDL语言方式。HDL既可以描述底层设计,也可以描述顶层的设计,但它不容易做到较高的工作速度和芯片利用率。用这种方式描述的项目最后所能达到的性能与设计人员的水平、经验以及综合软件有很大的关系。2.图形方式。可以分为电路原理图描述,状态机描述和波形描述3种形式。有的软件3种输入方法都支持,如Active-HDL。MAX+plusII图形输入方式只支持电路原理图描述和波形描述两种。电路原理图方式描述比较直观和高效,对综合软件的要求不高。一般大都使用成熟的IP核和中小规模集成电路所搭成的现成电路,整体放到一片可编程逻辑器件的内部去,所以硬件工作速度和芯片利用率很高,但是但项目很大的时候,该方法就显得有些繁琐;状态机描述主要用来设计基于状态机思想的时序电路。在图形的方式下定义好各个工作状态,然后在各个状态上输入转换条件以及相应的输入输出,最后生成HDL语言描述,送去综合软件综合到可编程逻辑器件的内部。由于状态机到HDL语言有一种标准的对应描述方式,所以这种输入方式最后所能达到的工作速度和芯片利用率主要取决于综合软件;波形描述方式是基于真值表的一种图形输入方式,直接描述输入与输出的波形关系。这种输入方式最后所能达到的工作速度和芯片利用率也是主要取决于综合软件。2.5本章小结本章具体的阐述了有关FPGA的研究目的及其历史意义,具体的介绍了FPGA的基本结构和编程原理,并讲述了各组成模块的主要用途及组成原理,以流程图的方式更加清晰地描述了FPGA的系统设计流程,概括了各个流程操作时需要注意的问题,为接下来的构思和程序设计做了很好的铺垫作用。3基于FPGA的交通灯控制器的设计3.1设计思路和原理框图利用交通灯模块上的两组红、黄、绿LED发光二极管作为交通信号灯,LED七段数码管显示交通信号灯在某一状态所剩余的时间,利用实验板上的8Hz时钟信号和2048Hz时钟信号,分别作为交通信号灯控制器的计时信号和LED七段数码管的扫描信号[1]。用VHDL编写程序实现交通信号灯控制器,其原理框图如下图所示。时钟信号clk为8Hz标准信号,作为产生1s的信号,另一个时钟信号scanclk的频率为2048Hz,作为LED七段数码管的动态扫描信号;输出信号led<7:0>和row<3:0>分别输出段码和位选择控制信号。6个红、黄、绿信号灯输出信号(对应两组红、黄、绿灯,R1,Y1,G1为主干道红、黄、绿灯信号;R2,Y2,G2为支干道红、黄绿灯信号),当输出信号为高电平时,实验板上LED发光二极管发光。图3.1程序的主原理图本程序设计调用了IEEE库,IEEE库是VHDL设计中最为常用的库,它包含有IEEE标准的程序包和其他一些支持工业标准的程序包。本设计采用了STD_LOGIC_1164,STD_LOGIC_ARITH,STD_LOGIC_UNSIGNED程序包。以关键词ENTITY引导,ENDtraffic结尾的语句部分,称为实体。VHDL的实体描述了电路器件的外部情况及各信号端口的基本性质。本设计定义了交通信号灯的两个时钟信号,分别为scanclk和clk,以及各主路和支路的红黄绿灯。定义了各端口信号的数据类型,主要是STD_LOGIC(标准逻辑位数据类型)、STD_LOGIC_VECTOR(标准逻辑矢量数据类型)。这些都满足上面调用的IEEE库中的程序包。以关键词ARCHITECTURE引导,END结尾的语句部分,成为结构体。结构体负责描述电路器件的内部逻辑功能或电路结构。本设计的结构体中包含6个进程,分别是分频器进程、计数器进程、状态寄存器进程、数码管驱动进程、七段数码管显示驱动进程。3.2各主要进程模块的说明该程序由6个进程组成:进程P1实现的是分频器的功能,它将8Hz标准信号分频后,产生1s时钟信号。因为信号是以秒跳变的,所以要分频成一秒,该分频器将信号8分频。进程P2构成一个具有预置数功能的60s计时器.当预置数控制信号load有效时,60s计时器输出变成由进程P4输出的预置数输入信号,60s计时器输出两位BCD码输出信号进程P3为状态寄存器,保持交通信号灯A,B,C,D的4种状态,根据60s计时器的输出,决定是否改变当前的状态,输出加载时间控制信号load。进程P4为次态发生器,根据当前的状态产生状态机的下一个状态。进程P3为时序电路,进程P4为组合电路,进程P3和进程P4共同构成一个状态机,由进程P4产生进程P2所需要的预置数输入信号和控制6个红、黄、绿灯的输出信号。进程P5和P6组成LED七段数码管显示驱动模块。3.2.1分频器模块分频器是数字设计中的基本电路,可分为偶数分频、奇数分频、半整数分频等,有时要求整占空比,有时要求非占空比。分频器在FPGA的设计中也是使用效率非常高的基本设计。基于FPGA实现的分频电路一般有两种方法:一是使用FPGA芯片内部提供的锁锁相环电路,如ALTERA提供的PLL(PhaseLockedLoop),Xilinx提供的DLL(Delay
LockedLoop);二是使用硬件描述语言,如VHDL,VerilogHDL等.使用锁相环电路有许多优缺点,如如可以实现倍频;相位偏移,占空比可调等[3]。但FPGA提供的锁相环个数极为有限,不能满足使用要求.因此使用硬件描述语言实现分频电路经常使用在数字电路设计中,消耗不多的逻辑单元就可以实现对时钟的操作,具有成本低,可编程等优点.该分频器实现的是将高频的标准信号转换成低频的时钟信号,用于触发控制器、计数器和扫描显示电路。该分频器是对脉冲信号进行2的n次方分之一的分频,例如把8HZ的脉冲信号变成1s的秒信号。这类分频器通常是利用T触发器实现,每来一个脉冲后触发器状态改变一次,经过n个T触发器处理后就可以得到2的n次方分之一的分频信号。该模块的VHDL程序如下:ENTITYDVFISPORT(CLK:INSTD_LOGIC;D:INSTD_LOGIC_VECTOR(7DOWNTO0);FOUT:OUTSTD_LOGIC);END;ARCHITECTUREoneOFDVFISSIGNALFULL:STD_LOGIC;BEGINP_REG:PROCESS(CLK)VARIABLECNT8:STD_LOGIC_VECTOR(7DOWNTO0);BEGINIFCLK'EVENTANDCLK='1'THENIFCNT8="11111111"THENCNT8:=D;--当CNT8计数计满时,输入数据D被同步预置给计数器CNT8FULL<='1';--同时使溢出标志信号FULL输出为高电平ELSECNT8:=CNT8+1;--否则继续作加1计数FULL<='0';--且输出溢出标志信号FULL为低电平ENDIF;ENDIF;图3.2分频器仿真图3.2.2LED七段数码管显示模块7段数码是纯组合电路,通常的小规模专用IC,如74或4000系列的器件只能作十进制BCD码译码,然而数字系统中的数据处理和运算都是二进制的,所以输出表达都是十六进制的,为了满足十六进制的译码显示,最方便的方法就是利用译码程序在FPGA/CPLD中实现,输出信号的7位分别接图3-1中数码管的7个段,高位在左,低位在右[4]。例如当led灯输出为“1101101”时,数码管的7个段:g、f、e、d、c、b、a分别接1、1、0、1、1、0、1;接有高电平的段发亮,于是数码管显示“5”。图3.3LED数码管管脚分配图(a)共阴极(b)共阳极该模块的VHDL程序如下:ENTITYDECL7SISPORT(A:INSTD_LOGIC_VECTOR(3DOWNTO0);LED7S:OUTSTD_LOGIC_VECTOR(6DOWNTO0));END;ARCHITECTUREoneOFDECL7SISBEGINPROCESS(A)BEGINCASEAISWHEN"0000"=>LED7S<="0111111";——显示数字0WHEN"0001"=>LED7S<="0000110";——显示数字1WHEN"0010"=>LED7S<="1011011";——显示数字2WHEN"0011"=>LED7S<="1001111";——显示数字3WHEN"0100"=>LED7S<="1100110";——显示数字4WHEN"0101"=>LED7S<="1101101";——显示数字5WHEN"0110"=>LED7S<="1111101";——显示数字6WHEN"0111"=>LED7S<="0000111";——显示数字7WHEN"1000"=>LED7S<="1111111";——显示数字8WHEN"1001"=>LED7S<="1101111";——显示数字9WHENOTHERS=>NULL;ENDCASE;ENDPROCESS;END;图3.4七段数码管仿真图3.2.3计数器模块该模块的主要VHDL程序如下:ENTITYCNT10ISPORT(CLK,RST,EN:INSTD_LOGIC;CQ:OUTSTD_LOGIC_VECTOR(3DOWNTO0);COUT:OUTSTD_LOGIC);ENDCNT10;ARCHITECTUREbehavOFCNT10ISBEGINPROCESS(CLK,RST,EN)VARIABLECQI:STD_LOGIC_VECTOR(3DOWNTO0);BEGINIFRST=‘1’THENCQI:=(OTHERS=>‘0’);——计数器异步复位ELSIFCLK‘EVENTANDCLK=’1‘THEN——检测时钟上升沿IFEN='1'THEN——检测是否允许计数(同步失能)IFCQI<9THENCQI:=CQI+1;——允许计数,检测是否小于9ELSECQI:=(OTHERS=>‘0’);——大于9,计数值清零ENDIF;ENDIF;ENDIF;IFCQI=9THENCOUT<='1';——计数大于9,输出进位信号ELSECOUT<='0';ENDIF;CQ<=CQI;——将计数值向端口输出ENDPROCESS;ENDbehav;相关语法说明:变量VARIABLECQ1:STD_LOGIC_VECTOR(3DOWNTO0)2.省略赋值操作符(OTHERS=>X)SIGNALd1:STD_LOGIC_VECTOR(4DOWNTO0);VARIABLEa1:STD_LOGIC_VECTOR(15DOWNTO0);d1<=(OTHERS=>'0');a1:=(OTHERS=>'0');d1<=(1=>e(3),3=>e(5),OTHERS=>e(1));f<=e(1)&e(5)&e(1)&e(3)&e(1);程序分析:图3.5程序的RTL电路(Synplify综合)图3.6计数器仿真图3.3整体程序的仿真前面介绍了计数器,七段数码管和分频器模块,本节开始对整体程序进行编译及仿真,程序编译时遇到了几个错误,但问题不大,有些是语句结束时少了分号,有的是没有结束进程,经过导师的精心指导后终于编译成功了。下图是整体程序的仿真图:图3.7程序的整体仿真图在设计过程中,仿真的波形会出现毛刺。信号在FPGA器件内部通过连线和逻辑门时,都有一定的延时。延时的大小与连线的长短和门单元的数目有关,同时还受器件的制造工艺、工作电压、温度等条件的影响。此外,信号的高/低电平转换也需要一定的过渡时间。由于存在这些因素的影响,多路信号的电平值发生变化时,在信号变化的瞬间,组合逻辑的输出有先后顺序,并不是同时变化,往往会出现一些不正确的“毛刺”,称为“冒险现象”。冒险往往会影响到逻辑电路的稳定性[5]。时钟端口,清零和置位端口对毛刺信号十分敏感,任何一点毛刺都可能会使系统出错,我们可以通过改变设计来破坏毛刺的条件,从而减少毛刺的产生。例如,在数字电路设计中,常常采用格雷码计数器取代普通二进制计数器,这是因为格雷码的输出每次只有一次跳变,消除了竞争冒险的发生条件,避免了毛刺的产生。毛刺不是对所有的输入都有危害,例如D触发器的D输入端,只要毛刺不出现在时钟的上升沿并且满足数据的建立和保持时间,就不会对系统造成影响,即D触发器的D输入端对毛刺不敏感,利用D触发器这一特性,可以有效的消除毛刺。在仿真过程中会出现延时,延时分为固有延时和传输延时。其中固有延时的模型语句是:B<=AAFTER20ns;传输延时的模型语句是:B<=TRANSPORTAAFTER20ns。这两个延时的输入输出波形如图3.8和3.9所示。图3.8固有延时输入输出波形图3.9传输延时输入输出波形VHDL仿真器和综合器将自动为系统中的信号赋值配置一足够小而又能满足逻辑排序的延时量,即仿真软件的最小分辩时间,这个延时量就称为仿真(SimulationDelta),或称δ延时,从而使并行语句和顺序语句中的并列赋值逻辑得以正确执行。由此可见,在行为仿真、功能仿真乃至综合中,引入δ延时是必需的[5]。仿真中,δ延时的引入由EDA工具自动完成,无需设计者介入。3.4本章小结本章介绍了程序中几个重要模块的原理,即计数器模块,分频器模块和七段数码管显示模块的设计原理以及仿真结果。由于这几个重要模块在之前也曾经做过类似的编写和程序仿真,所以仿真过程很顺利,没有遇到太大的麻烦。4系统硬件测试4.1Cyclone系列FPGA介绍Altera的Cyclone系列FPGA,平衡了逻辑、存储器、锁相环和高级I/O接口,CycloneFPGA是价格敏感应用的最佳选择[6]。CycloneFPGA具有以下特性:新的可编程构架通过设计实现低成本。嵌入式存储资源支持各种存储器应用和数字信号处理实施。专用外部存储接口电路电路集成了DDRFCRAM和SDRAM器件以及SDRSDRAM存储器件。支持串行、总线和网络接口及各种通信协议。使用PLL管理片内和片外系统时序。支持单端I/O标准和差分I/O技术,支持高达311Mbps的LVDS信号。处理能力支持NiosⅡ系列嵌入式处理器。采用新的串行配置器件的低成本配置方案。通过QuartusⅡ软件OpenCore评估特性,免费评估IP功能。本设计的硬件测试时通过Altera公司的Cyclone系列的EP1C12Q240C8芯片来实现的,其内部原理图如附录图1所示。4.2引脚分配[7]FPGA引脚分配原则:第一,最先指配那些只能在特定引脚上工作的特殊信号,正常情况下是指串行I/O信号和全局时钟信号。其次支配大型或高速信号总线,特别是那些要跨进多个库或区域的信号。如果总线需要局部时钟,那么就要考虑具有更多局部时钟引脚的库或区域,并先支配局部时钟。第二,如果针对FPGA器件采用了多种I/O标准,那么还必须先考虑将I/O信号影射到库。这一步需要慎重考虑,因为许多I/O标准和参考电压时不兼容的。一些I/O标准要求在特殊引脚上输入参考电压,使得这些引脚不可再用于一般用途。将高速输出和双向信号分开指配在一定程度上可避免同时开关输出噪声(SSO)问题。采用第二步中相同的基本规则指配速度较慢和约束较少的总线,但不用太多考虑SSO问题。第四,最后完成个别信号的指配。如果只剩下少量引脚,或在第一次反复时用完了所有的引脚,可以考虑选用具有更多I/O数量的下一种器件。本设计的引脚分配图如图4.1所示:图4.1引脚分配4.3硬件测试结果经过软件仿真无误后,就是下载到硬件看测试结果,经过测试,发现此次设计能基本完成设计要求,图4.2是程序下载到硬件后的测试结果,此图的测试结果是主干道红灯亮,支干道黄灯亮,这也验证了程序的正确性。图4.2硬件测试结果结论经过为期数周的工作,我完成了我的设计任务——基于FPGA交通信号灯控制器设计。通过这次毕业设计,我深深的体会到了交通灯设计的目的性和重要性,为了更好的完成设计,我在在网上找到了很多相关资料,也在图书馆借了很多有关EDA方面的书籍,这在很大程度上增加了我对EDA这门技术的认识,也使许多以前想解决而无法解决的问题迎刃而解。通过自己动手设计程序,使我对软件的设计流程有了更深一步的了解,掌握并且能够熟练的操作使用QuartusII软件,将书本上的理论知识和实际有效的结合了起来,锻炼了实际分析问题和解决问题的能力。通过QuartusⅡ开发软件的调试、仿真和EDA实验开发系统对交通灯控制器设计的结果进行了软件和硬件的验证,其验证结构一致:交通灯控制器设计的结果正确,完全达到了预期的设计要求,设计成功。塔具有一定的实用性,可引入实际中的交通灯系统。但是因为实验中条件的限制,只能在EDA实验开发系统的实验平台进行验证,若用于现实的交通灯实验控制,还需进一步的验证。若能得到验证,这个基于FPGA的交通信号灯控制器将更具有推广和应用价值。当然本课题的研究还有许多有待改善的地方。第一,知识欠缺还不完善,还有很多需要去认真学习、钻研的地方。第二,对设计过程中的很多部分还只停留在定性分析阶段,不能进行定量分析。第三,缺乏实践经验,以后还需要进一步的研究使其得到改进和完善。同时由于作者水平有限,文章中肯定有不少疏漏不足甚至错误之处,敬请批评指正。 参考文献[1]张洪润.FPGA/CPLD应用设计200例[M].北京:北京航空航天大学出版社,2009.[2]潘松,黄继业.EDA技术实用教程[M].北京:科学出版社,2008年.[3]徐志军,徐光辉.FPGA/CPLD的开发与应用[M].北京:电子工业出版社,2002年.[4]邹颜.EDA技术与数字系统设计[M].北京:电子工业出版社,2007年.[5]康华光.电子技术基础(数字部分)(第四版)[M].北京:高等教育出版社,2000.[6]曹瑞.基于EDA技术进行数字电路设计的研究.期刊论文[J],2007.[7]王开军,姜宇柏.面向CPLD/FPGA的VHDL设计[M].机械工业出版社,2006.[8]廖日坤,CPLD/FPGA嵌入式应用开发技术白金手册[M].中国电力出版社,2003.[9]朱正伟,EDA技术及应用[M].北京:清华大学出版社,2005.[10]延明,张亦华.数字电路EDA技术入门[M].北京:北京邮电大学出版社,2006.[11]张凯,林伟.VHDL实例剖析[M].北京:国防工业出版社,2004.[12]杨恒,李爱国,王辉.FPGA/CPLD最新技术指南[M].北京:电子工业出版社,1994.[13]任勇峰,庄新敏.VHDL与硬件实现速成[M].北京:国防工业出版社,2005.[14]于枫,张立英等.ALTERA可编程逻辑器件应用技术[M].北京:科学出版社,2004.[15]黄仁.VHDL入门解惑实例经验总结(第一版)[M].北京:北京航空航天大学出版社,2005.[16]曹晞燕,周凤辰,聂春燕.EDA技术实验与课程设计[J].北京:清华大学出版社,2006.[17]王诚,薛小刚,钟信潮.FPGA及CPLD设计.北京:人民邮电出版社,2003.[18]褚振勇,翁木云.FPGA的设计与应用.西安:西安电子科技大学出版社,2002.[19]林敏.VHDL数字系统设计与高层次综合.北京:电子工业出版社,2002.[20]赵俊超.集成电路设计VHDL教程.北京:北京希望电子出版社,2002.附录附录1中文文献使用LabVIEWFPGA(现场可编程门阵列)模块开发可编程自动化控制器
工业控制上的应用要求高度集成的模拟和数字输入输出、浮点运算和多重处理节点的无缝连接。因为它对这些应用的理想解决方案,在工业控制市场上,可编程自动化控制器(PAC)正逐渐被接受。通过一种普通的软件开发环境NILabVIEW,国家仪器公司提供各种可编程自动化控制器的解决方案。有了LabVIEW,你可以用像NILabVIEWFPGA模块一样的附加软件为工业应用开发自定义输入输出界面。
为将FPGA技术的灵活性和可定制性并入工业PAC系统,国家仪器公司利用LabVIEWFPGA模块和实时输入输出(RIO)硬件提供了一种直观、容易理解的解决方法。无须了解低级的硬件描述语言(HDL)或广泛的硬件设计细节,你可以定义嵌入含有RIO硬件对象家族的FPGA芯片里的逻辑,也可以快速地为超高速控制、定制的定时和同步、低级的信号处理、用模拟或数字定制的输入输出、一个单独设备的计数器来定义硬件。你也可以将得到的图像、分析、运动控制、比如CAN和RS232一样的工业协议集成到你的定制NIRIO(实时输入输出)硬件,这样就可以快速地事先并标准一个完整的PAC系统。你可以使用LavVIEW和LavVIEWFPGA模块的图形编程功能在NIRIO器件上配置FPGA(现场可编程门阵列)。将LabVIEW图形编程功能和FPGA融合在NIRIO硬件上的就是RIO技术。它为开发复杂的测量和操作系统提供了灵活的平台,而这些你以前只能用定制设计的硬件来做。
FPGA是一种包含许多未配置逻辑门的芯片。不像那些ASIC(专用集成电路)的芯片只有固定的厂家定制好的功能,你可以为你的特殊的应用配置或重新配置FPGA上的逻辑关系。无论是开发制作ASIC(专用集成电路)的成本有限还是一大硬件投入使用就要重新配置都可以使用FPGA。由于FPGA的灵活和可软件编程的架构,使得定制算法的高精度实施、精准的定时和同步、快速决策和多功能同时运行更容易。今天,FPGA正出现在仪器、消费电子产品、汽车、航天器、复印机和专用的计算机硬件上。虽然FPGA经常用于工业控制产品,它先前的功能在工业控制器械上是不容易应用的。由于定义FPGA需要使用硬件描述语言和复杂设计工具的专门技术,自古就是硬件设计工程师比控制工程师用FPGA的多。图1.LabVIEWFPGA的VI(一种文本图形编辑器)方框图和RIO硬件平台有了LabVIEWFPGA模块和NIRIO硬件,你可以用为测量和控制应用特殊设计的LabVIEW这种高级的图形开发环境来开发PAC了,开发具有FPGA的专门化、灵活性及高精确性的PAC。因为LabVIEWFPGA模块将定制的电路配置到硬件中,所以你的系统可以快速而精确地处理和产生同步的模拟和数字信号。图1列举了许多你可以用LabVIEWFPGA模块来配置的NIRIO器件。在以前,FPGA编程仅限于熟习VHDL或其他低端设计工具的工程师,也就是说他需要征服艰难的学习过程。有了LabVIEWFPGA模块,NI公司让更多领域的工程师能使用FPGA技术,他们能用LabVIEW图形开发功能定义FPGA的逻辑。测量和控制工程师就可以只关注他们所擅长的测试与控制的应用,而不是专注于将逻辑转换成芯片单元的低级语义。LabVIEWFPGA模块模型之所以有如此有用,是因为它将LabVIEWFPGA模块与FPGA的商业的未定制(COTS)硬件结构、周围输入输出元件紧密结合在一起。NI的可编程自动化控制器为你的工业控制应用提供了标准的、未定制的平台。有了RIO在PCI、PXI、紧凑型视觉系统平台和基于RIO的紧凑的RIO引入,工程师们正受益于一个具有FPGA的高性能、灵活性、专用化优势的商业未定制平台,结果是能随心所欲地开发PAC。NI的PCI和PXI的R系列的插件设备提供了模拟和数字数据获取,针对高性能、用户可配置的定时和同步、在单个设备上的板载决定等功能。利用这些未定制设备,你可以将你的NIPXI或PCI工业控制系统,扩展为具有高速离散和模拟信号控制、自定义传感器接口、精确定时和控制的系统。NI紧凑RIO—一个以RIO技术为核心的平台,提供了一个小的,工业上半成品的标准PAC平台。它能在系统定时方面带给你高性能输入输出和空前灵活性。你可以用NI紧凑的RIO为诸如车载数据采集、汽车NVH(噪声振动和声振粗糙度NoiseVibrationHarshness)测试和内置机械控制系统的应用,开发内置系统。半成的紧凑RIO系统是工业评估与鉴定的,是为在大于50g震动和在-40到70°C的温度范围内设计的。NI紧凑型视觉系统是一个半成的机器视觉包装,他需要经受在机器人技术中常见的苛刻的环境、自动化测试和工业检测系统。NI的CVS-145x设备为分布式的机器视觉应用提供了空前的输入输出能力和网络连接。NI的CVS-145x系统应用IEEE的1394(火线)技术,可以与40多种有各种各样功能、性能和价值的照相机兼容。NI的CVS-1455和NI的CVS-1456设备包含可配置的FPGA,所以你可以在你的机器视觉应用中实现计数器自定义、定时或电机控制。有了LabVIEW和LabVIEWFPGA模块,你就为你的工业控制硬件增加了重要的灵活性和专用化。因为许多PAC已经使用LabVIEW编程的,所以用LabVIEW为FPGA编程很容易,因为它也使用相同LabVIEW开发环境。当你把目标定为在NI的RIO(实时输入输出),LabVIEW就只显示可以在FPGA中实现的功能,这样进一步使得用LabVIEW为FPGA编程变简单LabVIEWFPGA模块功能版上包含典型的LabVIEW结构与功能,比如while循环、for循环、case结构、sequence结构、一系列专业的LabVIEW中FPGA专属的数学函数、信号产生于分析、线性与非线性控制、对比逻辑、数组和簇操作、Occurrence(意思是事件发生,Occurrence技术也用于控制相互独立的程序同步运行)、信号输入与输出和定时。你可以用这些功能的组合往你的NIRIO设备上定义逻辑和嵌入信息。图二展示了在NI的RIO硬件上实现PID(比例积分微分)控制算法的FPGA应用和一组在Windows机器或RT对象和NI的RIO硬件通信的应用。这种应用读取模拟输入操作(AIO),运行PID计算,并将结果数据输出到模拟输出操作上(AOO)。当FPGA时钟运行在40MHz时,这个例子中的循环运行的就很慢,因为每一组件需要长于一个时钟循环的时间来执行。模拟控制循环在FPGA上能运行在大约200kHz。你可以指定时钟频率为编译的时间。这个例子只展示了PID的循环,然而,在NI的RIO设备上创造额外功能仅仅是增加另外一个while循环。不像传统的PC处理器,FPGA是并行处理器。在你的应用上增加额外循环不会影响你的PID循环的表现。等你创建了LabVIEWFPGAVI后,应该编译将在NI的RIO硬件上运行的代码。根据你的代码的复杂性和开发系统的规格,为一个FPGAVI的编译时间将从数分钟到数小时不等。为了是开发效能最大,利用R系列的RIO设备,你可以用精确到1比特的仿真模式,那样就可以在开始编译进程之前检验你设计的逻辑。当你用FPGA仿真设备是,LabVIEW由该设备进行输入输出,并且在Windows电脑上执行VI的逻辑。在这种模式,你可以用LabVIEW里的针对Windows的相同调试工具,比如重点执行、探针、断点。
图二.运用内置LabVIEWFPGAVI与相应LabVIEWHostVI的PID控制一旦LabVIEWFPGA的代码被编译,你就创建了一个LabVIEW“主机”VI来将你的NIRIO硬件整合到了PAC系统。图三阐明了创建FPGA应用程序的开发过程。“主机”VI运用在FPGAVI面板的控制器和指示器来在RIO设备上的FPGA和“主机”处理机械之间传递数据。这些面板被描述为FPGA上的数据寄存器。“主机”既可以是运行在Windows、个人计算机、PXI控制器或紧凑型视觉系统的PC或PXI控制器,也可以是运行在实时操作系统(RTOS)上的紧凑RIO控制器。在上面例子中,我们与LabVIEW主机VI交换了固定点、PID增长、循环速度、AIO、AOO数据。NI的RIO设备驱动程序包括一系列为开发FPGA上通信接口的功能。构建主机VI的第一步是打开一个对FPGAVI和RIO设备的引用。打开了FPGAVI的引用,如图2,也就在执行时下载并运行了编译过的FPGA代码。打开引用后,你就能用读写控制函数对在FPGA上的控制器和指示器寄存器进行读写。一旦你将FPGA引用写到函数内,你只要选择你想读写的控制器和指示器就可以了。你可以将FPGA读写函数封装在while循环内一边持续地对FPGA进行读写。最后,图二中的LabVIEW主机VI的最后一个函数就是FPGAVI引用的关闭函数。它停止了FPGAVI并关闭了对设备的引用。现在你就能通过将其他的已编译FPGAVI下载到设备来更改它的功能了。图三.LabVIEWFPGA开发流程
LabVIEW主机VI也能用来进行浮点运算、数据记录、网络及任何不合适FPGA构造的计算。因为增强了确定性与可靠性,你可以在一个有LabVIEW实时模块的RTOS(实时操作系统)上运行你的主机应用。LabVIEW实施系统能为与FPGA同时或不同时的功能提供确切的运算器。例如,浮点算法,包括快速傅里叶变换法、PID比例积分微分算法、自定义控制算法,经常在LabVIEW实时环境想下实现。相关的数据可以存到LabVIEW实时系统或转移到用来进行离线分析、数据记录、或用户界面显示的Windows主机。这种结构的构造如图四。每个NI的提供RIO硬件的PAC平台都能运行LabVIEW实时VI。
图四.利用LabVIEWFPGA、LabVIEW实时系统和主机的完整PAC结构
在每个R系列和紧凑RIO设备里都有可利用的闪存来存储已编译的LabVIEW的FPGAVI,都能立即在设备的电源下运行应用程序。这种构造,因为FPGA有电源,它能运行FPGAVI,甚至在主机崩溃或断电时。当发生意外时这对安全编程的掉电上电序列是很理想的。半导体、纳米器件和高速部件测试中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中学学生会换届选举办法
- 课程考核管理规定范文(2篇)
- 2024年医药公司办公室年终工作总结样本(4篇)
- 某项目桩基工程应急预案专项方案模版(2篇)
- 2024年内勤业务员工作计划(4篇)
- 2024年医疗器械销售合同(3篇)
- 2024年文化研究的心得体会(3篇)
- 工程电工安全技术操作规程交底范文(2篇)
- 转炉炉前岗位操作规程模版(3篇)
- 2024年学校环保志愿者活动总结范文(2篇)
- 护理学院本科生生产劳动实践教育实施方案
- 2024建筑门窗安装技术规程
- 10KV配电室倒闸操作票
- 关于范进中举改编成剧本【六篇】
- 第二篇创业机会的识别课件
- 2023年江苏省无锡锡山区市场监督管理局招聘11人笔试参考题库(共500题)答案详解版
- 《危机概述》课件
- 浙江省宁波市镇海区蛟川书院2023-2024学年九年级上学期期中科学试卷
- 临床科研课题设计及申报书撰写技巧
- 《强化学习理论与应用》略梯度方法
- 微生物技术在废水处理中的应用-微生物絮凝剂
评论
0/150
提交评论