1、基于FPGA的停车场停车位显示系统基于FPGA的停车场停车位显示系统设计摘 要:停车场车位显示的设计这个课题是非常实用的一个设计,与生活应用息息相关。课题是一个基于FPGA点停车场车位显示的设计,设计采用硬件描述语言。要用传感器检测车位信息,并设计转换电路。此设计的突破口是传感器,它是设计的起始端。分析综合传感器的性能特点,最终选用的是红外反射光电传感器。在程序设计方面,总共用到两个模块:分组模块,显示模块。在设计中选用Altera公司的FLEX10K系列的EP1K100FC484-1作为主芯片,所有的设计在EDA软件开发平台MAX+PLUS上利用硬件描述语言VHDL进行设计编程。关键词:FP
2、GA;位置传感器;VHDL Design of Car Parking Spaces Display System Based on FPGAAbstract: The design of car parking spaces display system based on FPGA is a very practical Subject, and close to our lives. This subject is the design of a 10 times 10 parking spaces display based on the FPGA in VHDL. We use pos
3、ition sensor to detect the parking spaces. And we should draw out the circuit of position sensor. This design in sensor is the breakthrough, which is designed to start off. Analyzing the characteristics and function of sensors, reflection photoelectric sensor is the ultimate choice. In the process o
4、f the design, including two modules: packet module and display modules. In the design choosing the company of altera FLEX10K series of EP1K100FC484-1 as the main chip, all of the design use hardware description language VHDL on EDA MAX + PLUS platform.Key words: FPGA,;position sensors; VHDL第1章 绪论1.1
5、 课题研究的背景FPGA是20世纪90年代发展起来的大规模可编程逻辑器件,随着EDA(电子设计自动化)技术和微电子技术的进步,FPGA的时钟延迟可达到ns级,结合其并行工作方式,在超高速、实时测控方面有非常广阔的应用前景。当今电子系统数字化已成为有目共睹的趋势。从传统的应用中小规模芯片构成电路系统到广泛地应用单片机,直至今天FPGA/CPLD在系统设计中的应用,电子设计技术已迈入了一个全新的阶段。FPGA/CPLD不仅具有容量大、逻辑功能强的特点,而且兼有高速、高可靠性。同时使得硬件的设计可以如软件设计一样方便快捷,使电子设计的技术操作和系统构成在整体上发生了质的飞跃。采用FPGA/CPLD可
6、编程器件,可利用计算机软件的方式对目标器件进行设计,而以硬件的形式实现既定的系统功能。在设计过程中,可根据需要随时改变器件的内部逻辑功能和管脚的信号方式,借助于大规模集成的FPGA/CPLD和高效的设计软件,用户不仅可通过直接对芯片结构的设计实行多种数字逻辑系统功能,而且由于管脚定义的灵活性,大大减轻了电路图设计和电路板设计的工作量及难度,同时,这种基于可编程芯片的设计大大减少了系统芯片的数量,缩小了系统的体积,提高了系统的可靠性。1.2 EDA技术的主要内容及发展趋势EDA是Electronic Design Automation(电子设计自动化)的缩写。EDA技术就是以微电子技术为物理层面
7、,现代电子设计技术为灵魂,计算机软件技术为手段,最终形成集成电子系统或专用集成电路ASIC(Application Specific Integrated Circuit)为目的的一门新兴技术。利用EDA技术进行电路设计的大部分工作是在EDA软件工作平台上进行的,EDA设计流程如图1.1所示。EDA设计流程包括设计准备、设计输入、设计处理、器件编辑和设计完成5个步骤,以及相应的功能仿真、时序仿真和器件测试3个设计验证过程。EDA技术的设计大致可分为系统级设计、电路级设计和物理实现级设计。物理实现级设计主要是指IC版图设计,一般由半导体厂家完成。EDA的发展趋势是与工艺无关的系统设计,即高层设计
8、,使设计与制作分开,这里只论述电路级设计和系统级设计。 图1.1EDA设计流程(1)电路级设计电路级设计主要指设计师根据设计任务,首先要查阅芯片和元器件手册,选择合适的器件来实现系统的功能,然后根据芯片和元器件的性能设计电路图,制作PCB板,用示波器和信号源对系统进行调试。电路级EDA设计流程如图1.2所示。电路级EDA技术向设计师提供了仿真,后分析以及后仿真的功能,使设计师在微机或工作站上就可以进行逻辑功能的仿真以检验方案在功能设计方面的可行性。由此可见,电路EDA技术可使设计师在系统还没有制作之前就可全面了解系统的功能及PCB板的各种性能参数,比传统的设计方法大大提高了一步。(2)系统级设
9、计系统级设计是设计人员无须通过门级原理图描述电路,而是针对设计目标进行功能描述,由于摆脱了电路细节的束缚,设计人员可以把精力集中于创造性的方案与概念构思上,一旦这些概念构思以高层次描述的形式输入计算机后,EDA系统就能够以规则驱动的方式自动完成整个设计,从而大大缩短了产品的研制周期。而且高层次设计只是定义系统的行为特性,可以不涉及实现工艺,在厂家综合库的支持下,利用综合优化工具可以将高层次描述转换成针对某种工艺优化的网表,工艺转化变得轻松容易。图1.2EDA电路设计工作流程系统级设计采用的是自顶向下的正向设计思想。设计人员按照“自顶向下”的设计方法,对整个系统进行方案设计和功能划分,系统的关键
10、电路用一片或几片专用集成电路(ASIC)实现,然后采用硬件描述语言(VHDL)完成系统行为级设计,最后通过综合器和适配器生成最终的目标器件,其设计流程如图1.3所示。 图1.3EDA系统设计工作流程1.2.1 EDA技术的主要内容EDA技术涉及面广,内容丰富,从教学和使用的角度看,主要应掌握如下4个方面的内容:(1)大规模可编程逻辑器件;(2)硬件描述语言;(3)软件开发工具;(4)实验开发系统;其中,大规模可编程逻辑器件是利用EDA技术进行电子系统设计的载体,硬件描述语言是利用EDA技术进行电子系统设计的主要手段,软件开发工具是利用EDA技术进行电子系统设计的智能化的自动化设计工具,实验开发
11、系统则是利用EDA技术进行电子系统设计的下载工具及硬件验证工具。1.2.2 EDA技术的发展趋势从目前的EDA技术来看,其发展趋势是政府重视、使用普及、应用文泛、工具多样、软件功能强大。中国EDA市场已渐趋成熟,不过大部分设计工程师面向的是PC主板和小型ASIC领域,仅有小部分(约11%)的设计人员研发复杂的片上系统器件。为了与台湾和美国的设计工程师形成更有力的竞争,中国的设计队伍有必要购入一些最新的EDA技术。在信息通信领域,要优先发展高速宽带信息网、深亚微米集成电路、新型元器件、计算机及软件技术、第三代移动通信技术、信息管理、信息安全技术,积极开拓以数字技术、网络技术为基础的新一代信息产品
12、,发展新兴产业,培育新的经济增长点。要大力推进制造业信息化,积极开展计算机辅助设计(CAD)、计算机辅助工程(CAE)、计算机辅助工艺(CAPP)、计算机机辅助制造(CAM)、产品数据管理(PDM)、制造资源计划(MRPII)及企业资源管理(ERP)等。有条件的企业可开展“网络制造”,便于合作设计、合作制造,参与国内和国际竞争。开展“数控化”工程和“数字化”工程。自动化仪表的技术发展趋势的测试技术、控制技术与计算机技术、通信技术进一步融合,形成测量、控制、通信与计算机(M3C)结构。在ASIC和PLD设计方面,向超高速、高密度、低功耗、低电压方向发展。外设技术与EDA工程相结合的市场前景看好,
13、如组合超大屏幕的相关连接,多屏幕技术也有所发展。我国自1995年以来加速开发半导体产业,先后建立了几所设计中心,推动系列设计活动以应对亚太地区其它EDA市场的竞争。在EDA软件开发方面,目前主要集中在美国。但各国也正在努力开发相应的工具。日本、韩国都有ASIC设计工具,但不对外开放 。中国华大集成电路设计中心,也提供IC设计软件,但性能不是很强。相信在不久的将来会有更多更好的设计工具有各地开花并结果。据最新统计显示,中国和印度正在成为电子设计自动化领域发展最快的两个市场,年复合增长率分别达到了50%和30%。EDA技术发展迅猛,完全可以用日新月异来描述。EDA技术的应用广泛,现在已涉及到各行各
14、业。EDA水平不断提高,设计工具趋于完美的地步。EDA市场日趋成熟,但我国的研发水平很有限,需迎头赶上。1.2.3 EDA开发工具的发展趋势面对当今飞速发展的电子产品市场,电子设计人员需要更加实用、快捷的开发工具,使用统一的集成化设计环境,改变优先考虑具体物理实现方式的传统设计思路,将精力集中到设计构思、方案比较和寻找优化设计等方面,以最快的速度开发出性能优良、质量一流的电子产品。开发工具的发展趋势如下:(1)具有混合信号处理能力由于数字电路和模拟电路的不同特性,模拟集成电路EDA工具的发展远远落后于数字电路EDA开发工具。但是,由于物理量本身多以模拟形式存在,实现高性能复杂电子系统的设计必然
15、离不开模拟信号。20世纪90年代以来,EDA 工具厂商都比较重视数模混合信号设计工具的开发。美国 Cadence 、Synopsys等公司开发的EDA工具已经具有了数模混合设计能力,这些EDA开发工具能完成含有模数变换、数字信号处理、专用集成电路宏单元、数模变换和各种压控振荡器在内的混合系统设计。(2)高效的仿真工具在整个电子系统设计过程中,仿真是花费时间最多的工作,也是占用EAD工具时间最多的一个环节。可以将电子系统设计的仿真过程分为两个阶段:设计前期的系统级仿真和设计过程中的电路级仿真。系统级仿真主要验证系统的功能,如验证设计的有效性等;电路级仿真主要验证系统的性能,决定怎样实现设计,如测
16、试设计的精度、处理和保证设计要求等。要提高仿真的效率,一方面是要建立合理的仿真算法;另一方面是要更好地解决系统级仿真中,系统模型的建模和电路级仿真中电路模型的建模技术。在未来的EDA技术中,仿真工具将有较大的发展空间。(3)理想的逻辑综合、优化工具逻辑综合功能是将高层次系统行为设计自动翻译成门级逻辑的电路描述,做到了实际与工艺的独立。优化则是对于上述综合生成的电路网表,根据逻辑方程功能等效的原则,用更小、更快的综合结果替代一些复杂的逻辑电路单元,根据指定目标库映射成新的网表。随着电子系统的集成规模越来越大,几乎不可能直接面向电路图做设计,要将设计者的精力从繁琐的逻辑图设计和分析中转移到设计前期
17、算法开发上。逻辑综合、优化工具就是要把设计者的算法完整高效地生成电路网表。1.3 现场可编程门阵列(FPGA)FPGA是英文Field Programmable Gate Array的缩写,即现场可编程门阵列,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,即解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA的基本特点主要有:(1)采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。(2)FPGA可做其它全定制或半定制ASIC电路的中试样片。(3)FPGA内部有丰富的触发
18、器和IO引脚。(4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。(5)FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。1.3.1 FPGA的基本结构FPGA现场可编程门阵列器件通常由布线资源围绕的可编程单元构成阵列,又由可编程I/O单元围绕阵列构成整个芯片,如图1.4所示。FPGA的基本结构通常包含三类可编程资源:可编程逻辑功能块(CLB)、可编程输入输出块和可编程互连。可编程逻辑功能块(CLB)是实现用户功能的基本单元,它们通常规则地排成一个阵列,散布于整个芯片;可编程输入输出块完成芯片上逻辑与外部封装腿的接口,常围绕着阵列排列于芯片四周;
19、可编程内部互连包括各种长度的连接线段和一些可编程连接开关,它们将各个可编程逻辑块或输入输出块连接起来,构成特定功能的电路。(1)可编程逻辑块(CLB)CLB是FPGA的主要组成部分,是实现逻辑功能的基本单元。它主要由逻辑函数发生器、触发器、数据选择器等电路组成。CLB中有许多不同规格的数据选择器,分别用来选择触发器激励输入信号、时钟有效边沿、时钟使能信号以及输出信号。这些数据选择器的地址控制信号均由编程信息提供,从而实现所需的电路结构。CLB中的逻辑函数发生器均为查找表结构,其工作原理类似于ROM。图1.4FPGA的基本结构(2)输入/输出模块(IOB)IOB提供了器件引脚和内部逻辑功能阵列之
20、间的连接。它主要由输入触发器、输入缓冲器和输出触发/锁存器、输出缓冲器组成,每个IOB控制一个引脚,它们可被配置为输入、输出或双向I/O功能。(3)可编程互连资源(IR)可编程互连资源可以将FPGA内部的CLB和CLB之间、CLB和IOB之间连接起来,构成各种具有复杂功能的系统。IR主要由许多金属线段构成,这些金属线段带有可编程开关,通过自动布线实现各种电路的连接。FPGA是由掩膜可编程门阵列和可编程逻辑器件演变而来的,将它们的特性结合在一起,使得FPGA既有门阵列的高逻辑密度和通用性,又有可编程逻辑器件的用户可编程特性。目前FPGA的逻辑功能块在规模和实现逻辑功能的能力上有很大的差别。据此可
21、把FPGA分为两大类,即细粒度和粗粒度。从构成它的可编程逻辑块和可编程互连资源来看,主要有两大类逻辑块的构造。其一是查找表结构,其二是多路开关类型,由此,形成两种FPGA的结构。ALTERA公司的FPGA是由传统的PLD结构演变而来的,因此属于具有类似PLD的可编程逻辑块阵列和连续布线这一类,即第二种FPGA结构,其逻辑块是基于“与”“或”门电路构成的。而XILINX公司和ACTELI公司的FPGA属于第一种FPGA结构。1.3.2 FPGA的应用FPGA的电路设计是通过FPGA开发系统实现。用户无需了解FPGA,的内部构造和工作原理,只要在计算机上输入电路原理图或硬件描述语言,FPGA开发系
22、统就能自动进行模拟、验证、分割、布局和布线,最后实现FPGA的内部配置。为了方便设计,FPGA开发系统提供了丰富的单元库和宏单元库,例如:基本逻辑单元库、74系列宏单元库、CMOS宏单元库等,并且还提供了基本器件系列中没有的单元,如64位全加器等。用户可以任意选用任何库中的任意单元去实现所需的逻辑功能。由于FPGA是一种大规模集成电路,集成度高,容量大,它可以将许多逻辑单元连结起来,在一片FPGA上实现复杂的逻辑功能,用一个单芯片实现一个系统。通过以上的介绍可以看出,FPGA借助软件开发系统,实现了硬件设计的软件化,无需选购器件,无需组装系统,自动模拟代替了复杂的调试,全部操作都在计算机上进行
23、,以一块芯片实现一个系统,它的设计简单,开发周期短,设计可靠性高。1.3.3 FPGA器件的选择目前全世界生成PLD的厂家很多,但比较大的厂家有:Altera、Xilinx、Lattice 和 Actel。Altera是目前最大的PLD供应商之一,Xilinx是FPGA的发明者,最大的PLD供应商之一,Lattice是ISP技术的发明者,Actel提供军品及宇航级产品。由于Altera公司的PLD具有高性能、高密度集成、高性能价格比、开发周期短、对器件优化的 IP 解决方案和在线可编程能力,而且Altera公司的Max+plusII开发平台也被认为是最优秀的开发平台之一,所以在本文的设计中选用
24、Altera公司的产品来进行设计。图1.5说明了一个10万门器件的开发周期。 少于1小时 5030分钟 2小时 少于2分钟图1.5用Altera器件开发10万逻辑门的一个典型开发周期Altera的PLD器件包括APEX20K、APEXII、Excalibur、Mercury、Stratix、ACEX1K、FLEX10K、FLEX8000、FLEX6000、MAX9000、MAX7000、MAX3000和Classic系列。根据各种器件的比较和实际的应用情况,在本设计中选用FLEX10K系列器件。FLEX10K是工业界第一个嵌入式的可编程逻辑器件,采用可重构的CMOS SRAM工艺,把连续的快速
25、通道互连与独特的嵌入式阵列相结合,同时也结合了众多可编程器件的优点来完成普通门阵列的宏功能。由于其具有高密度、低成本、低功率等特点,所以脱颖而出称为当今Altera PLD中应用最好的器件系列。其集成度已达到25万门。它能让设计人员轻松开发出集存储器、数字信号处理器及特殊逻辑包含32位多总线系统等强大功能于一身的芯片。FLEX10K系列器件主要由嵌入式阵列块、逻辑阵列块、快速通道互连和 I/O单元四部分组成。一组LE构成一个LAB,LAB是排成行和列的,每一行也包含一个EAB。LAB和 EAB是由快速通道连接的。IOE位于快速通道连线的行和列的两端。1.3.4 FPGA的开发环境在使用ALTE
26、RA器件时,ALTERA建议用户使用其集成环境软件,Max+PlusII是一个非常优秀的PLD设计开发软件,它集设计、编译、配置、下载调度仿真于一体,能够提供完善的、高度集成的开发环境的软件,能够完成ALTERA器件具有的全部优点,是FLEX10K系列很好的开发工具。Max+PlusII 有多种设计输入方式,主要有:原理图输入(Graphic DesignEntry)、硬件描述语言输入(AHDL Design Entry, VHDL Design Entry,VerilogDHLDesign Entry)、波形输入(Waveform Design Entry)等。我们可以根据不同的设计层次采用
27、不同的设计输入方式,这样有助于并行设计和帮助构思。分层的设计方法易于递增式设计,即先对单个的子模块进行设计、实现和验证,然后将子模块建立起顶层设计文件。Max+PlusII 软件的层次显示程序可以显示整个设计方案的层次结构,并允许设计者穿越层次,自动打开适合每个设计文件的编辑程序,因此,可以方便地利用此性能查看和修改底层设计文件。一般,使用 Max+PlusII 开发可简化为以下几步:(1)设计输入:在传统设计中,设计人员是应用传统的原理图输入方法来开始设计的。自 90 年代初,Verilog、VHDL、AHDL等硬件描述语言的输入方法在大规模设计中得到了广泛应用。(2)设计编译:设计输入之后
28、就有一个从高层次系统行为设计向门级逻辑电路设转化翻译过程,即把设计输入的某种或某几种数据格式(网表)转化为软件可识别的某种数据格式(网表)。(3)设计仿真:需要利用在布局布线中获得的精确参数再次验证电路的时序。(4)下载:当上述几步均没有问题的时候,将代码下载到相应的芯片中即可。由于Max+PlusII毕竟不同于软件的平台,它所仿真出来的波形只是 0,1的组合,并不能十分清楚的判断是否符合要求,这就要求在用硬件描述语言设计之前,应对算法进行软件的编程模拟和可行性分析的研究,软件环境可采用Matlab。在 Matlab的数字信号处理工具箱包含了各种经典的和现代的数字信号处理技术,是一个非常优秀的
29、算法研究与辅助设计的工具。所以在用硬件描述语言对其进行描述时,先根据工程实际的要求,选择 Matlab 中的窗函数比较常用的是矩形窗,Bartlet窗,Hanning窗,Hamming窗,Kaiser窗来求得滤波器的系数,并编写相应的程序来检验所求得的系数是否符合最终的要求,以此来缩短设计周期,减少工作量,提高设计成功率。1.4 VHDL简介随着VLSI、EDA( Electronic Design Automation )工具的迅速发展,用户系统的设计从单纯的ASIC(Application Specific Integrated Circuit)设计向着系统单片化SOC(System On
30、 a Chip)设计的方向发展。同时网络技术的发展,共享IP知识产权的开放式系统设计成为新模式,芯片工艺物理设计与系统设计相分离,使用户系统设计人员可直接从事芯片设计。多种技术的融合,系统的功能复合化程度越来越高;对系统设计方法学和工具的要求更高;系统设计日趋软件硬化、硬件软化,并使两者得到了有机的融合,形成了更为强大的ESDA。硬件描述语言HDL的发展至今已有20多年的历史,并成功地应用于设计的各个阶段:建模、仿真、验证和综合等。到20世纪80年代,已出现了上百种硬件描述语言,对设计自动化曾起到了极大的促进和推动作用。但是,这些语言一般各自面向特定的设计领域和层次,而且众多的语言使用户无所适
31、从。因此,急需一种面向设计的多领域、多层次并得到普遍认同的标准硬件描述语言。20世纪80年代后期,VHDL和Verilog HDL语言适应了这种趋势的要求,先后成为IEEE标准。VHDL是IEEE标准的硬件描述语言,是现代电子系统设计的首选硬件设计计算机语言。HDL是用形式化的方法描述数字电路和设计数字逻辑系统的语言。主要用于描述离散电子系统的结构和行为。与SDL(Software Description Language)相似,经历了从机器码(晶体管和焊接)、汇编(网表)、到高级语言(HDL)的过程。应用VHDL进行系统设计,有以下几方面的特点。(1)功能强大VHDL具有功能强大的语言结构。
32、它可以用明确的代码描述复杂的控制逻辑设计。并且具有多层次的设计描述功能,支持设计库和可重复使用的元件生成。VHDL是一种设计、仿真和综合的标准硬件描述语言。(2)可移植性VHDL语言是一个标准语言,其设计描述可以为不同的EDA工具支持。它可以从一个仿真工具移植到另一个仿真工具,从一个综合工具移植到另一个综合工具,从一个工作平台移植到另一个工作平台。此外,通过更换库再重新综合很容易移植为ASIC设计。(3)独立性VHDL的硬件描述与具体的工艺技术和硬件结构无关。设计者可以不懂硬件的结构,也不必管最终设计实现的目标器件是什么,而进行独立的设计。程序设计的硬件目标器件有广阔的选择范围,可以是各系列的CPLD、FPGA及各种门阵列器件。(4)可操作性由于VHDL具有类属描述语句和子程序调用等功能,对于已完成的设计,在不改变源程序的条件下,只需改变端口类属参量或函数,就能轻易地改变设计的规模和结构。(5)灵活性VHDL最初是作为一种仿真标准格式出现的,有着丰富的仿真语句和库函数。使其在任何大系统的设计中,随时可对设计进行仿真模拟。所以,即使在远离门级的
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1