版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章绪论1.1
EDA技术及其发展1.2
EDA技术的主要内容1.3
EDA开发工具1.4
EDA工程设计流程1.5
EDA技术的应用现状及发展趋势1.1EDA技术及其发展
1.1.1EDA技术的发展历程
随着计算机技术、集成电路新工艺、电子系统设计方法的不断发展,EDA技术的发展经历了三个阶段:20世纪70年代的计算机辅助设计(ComputerAssistDesign,CAD)阶段、80年代的计算机辅助工程设计(ComputerAssistEngineeringDesign,CAE)阶段和90年代以后的电子设计自动化(EDA)阶段。
20世纪70年代,随着中小规模集成电路的出现,设计者大量使用不同型号的标准集成电路芯片,并将器件焊接在印制电路板(PrintedCircuitBoard,PCB)上进行调试。这时,传统的手工布线已无法满足复杂电子系统的要求,更不能满足工作效率的要求。EDA技术发展初期,PCB布线工具受计算机性能的限制,能支持的设计工作有限且性能较差、效率较低。
20世纪80年代,大规模集成电路如存储器、微处理器以及可编程逻辑器件(PAL、GAL)等相继出现,可用少数几种通用的标准芯片实现电子系统。80年代初期,EDA工具主要以逻辑模拟、定时分析、故障仿真、自动布线为核心。到了80年代后期,它已经可以进行设计描述、综合与优化,重点解决电路设计没有完成之前的功能验证等问题。
20世纪90年代,随着可编程逻辑器件的出现和发展,设计师逐步从使用硬件转向设计硬件,从单个电子产品的开发转向系统级电子产品的开发。这时的EDA工具是以系统级设计为核心,包括系统行为级描述和结构级综合、系统仿真与测试验证、系统划分与指标分配、系统决策与文件生成等一整套的电子系统设计自动化工具。它的主要特点:一是不仅具有电子系统设计能力,而且具有独立于工艺和厂家的系统级设计能力,具有高级抽象的设计构思手段;二是可以代替设计师完成设计前期的许多高层次设计,如可将用户要求转换为设计技术规范,有效地处理可用的设计资源与理想的设计目标之间的矛盾,按具体的硬件、软件算法分解设计等;三是设计师可以在不熟悉各种半导体工艺的情况下,利用EDA工具,通过一些简单的标准化设计过程,高效、快速、方便地完成电子系统的设计。随着可编程器件(包括可编程逻辑器件、可编程模拟器件和可编程数模混合器件)品种的不断增加和功能的不断完善,随着基于EDA技术的片上系统SoC(SystemonChip)设计技术的发展以及软、硬核库的建立,电子系统的设计不再是电子工程师的专利,广大技术人员(包括大量的非电子专业人员)将更多地利用EDA技术自己设计电子电路和产品。1.1.2EDA技术的基本特征
1.“自顶向下”的设计方法
EDA设计是一种“自顶向下”的全新设计方法,这种设计方法首先从系统设计入手,在顶层进行功能方框图的划分和结构设计,并在方框图一级进行仿真、纠错。其次,用硬件描述语言对高层次的系统行为进行描述,在系统一级进行仿真。然后,用综合优化工具生成具体门电路的网表文件,其对应的物理实现级可以是印制电路板或专用集成电路。
2.设计用硬件描述语言
硬件描述语言(HDL,HardwareDescriptionLanguage)是一种用于设计硬件电子系统的计算机语言,利用它,可以用软件编程的方式来描述电子系统的逻辑功能、电路结构和连接形式。与传统的门级描述方式相比,硬件描述语言更适合大规模系统的设计。例如一个32位的加法器,利用图形输入软件需要输入500至1000个门,而利用VHDL语言只需要书写一行“A=B+C”即可。
3.具有逻辑综合和优化的功能
逻辑综合功能是指将较高层次的抽象描述转化到较低级别抽象描述的一种方法,即根据芯片制造商提供的基本电路单元库,将硬件描述语言描述的电路转换为电路网表或者是一组逻辑方程。优化功能是指根据布尔方程功能等效的原则,利用逻辑综合生成的结果,采用更小更快的综合结果代替一些复杂的单元,然后根据制定的目标将其映射成新的网表或者一组逻辑方程。优化的作用是将电路设计的时延缩短到最小和有效利用资源。几乎所有的EDA综合工具都可以利用约束条件对电路进行优化。
4.采用开放性和标准化的软件架构
件架构是指一种软件平台结构,是一套配置和使用EDA软件包的规范。其主要功能是为EDA工具提供相应的操作环境。架构的关键在于提供与硬件平台无关的图形用户界面、工具之间的通信、设计数据和设计流程的管理,另外,架构还包括各种与数据库相关的服务。
EDA系统只有建立了一个符合标准的开放式架构,才可以接纳其他厂家的EDA工具,从而形成软件工具之间的无缝连接。目前主要的EDA系统都建立了框架结构,如Cadence公司的DesignFramework,Mentor公司的FalconFramework,而且这些框架结构都遵守国际CFI组织制定的统一技术标准。架构能将来自不同EDA厂商的工具软件进行优化组合,集成在一个易于管理的统一的环境之下,而且还支持任务之间、设计师之间以及整个产品开发过程中的信息传输与共享,是并行工程和自顶向下设计方法的实现基础。
1.2EDA技术的主要内容
1.2.1大规模可编程逻辑器件
可编程逻辑器件通常分为两类,即现场可编程门阵列(FPGA)和复杂可编程逻辑阵列(CPLD)。目前,国际上生产大规模可编程逻辑器件的主流公司有:Xilinx公司(主要是FPGA),生产的产品型号有XC2000/3000/4000等;Altera公司(主要是CPLD),生产的产品型号有FLEX6000/8000/10K等;Lattice公司(主要是ISP_PLD),生产的产品型号有ispLSI1000/2000/3000/6000等。1.2.2硬件描述语言
目前,最具有代表性的硬件描述语言是美国国防部开发的和Verilog公司开发的Verilog_HDL。其中VHDL1987年被列为IEEE工业标准硬件描述语言,它的高级描述功能强大,非常适合于大型电子系统的描述;Verilog_HDL1995年被列为IEEE工业标准硬件描述语言,支持的EDA工具较多,综合过程较VHDL简单,但高级描述功能不如VHDL,更适合于硬件细节的描述。1.2.3软件开发系统
近年来,许多生产可编程逻辑器件的公司都相继推出了开发自己公司器件的EDA工具,如Altera、Lattice、Xilinx、Actel、AMD等公司都有自己的EDA工具。这些工具的运行环境是PC机、Windows操作系统。目前较主流的开发工具有:Altera公司的MAX+Plus和QuartusⅡ,Lattice公司的ispDesignEXPERT,Xilinx公司的Foundation等。这些工具能针对自己公司器件的工艺特点做出优化设计,提高资源利用率,降低功耗,改善性能,比较适合于产品开发单位使用。此外,一些专门的EDA软件公司(较著名的有Cadence、Mentor、Graphic、Viewlogic、Synopsys等)独立于器件制造厂商推出的EDA系统具有较好的标准化和兼容性,也比较注意追求技术上的先进性,且对运行环境要求较高,一般要求工作站和UNIX操作系统,因此这些工具比较适合于进行学术性基础研究的单位使用。1.2.4硬件实验箱
目前,国内厂商开发和销售的EDA实验开发工具虽品牌众多,但它们的作用和构成基本相同。EDA实验开发工具的主要作用有:①提供芯片下载电路;②提供实验开发的外围资源;③硬件验证。它们的基本构成有以下几个部分:
(1)可下载实验主芯片适配器,其周边硬件与各厂家适配板相互独立,支持Altera、Lattice、Xilinx、AMD等厂家的产品,可选用的适配板封装形式灵活多样,支持任意门数的CPLD和FPGA器件。
(2)扫描驱动类接口,包括与LED灯、声响提示、LED数码显示器、LCD液晶显示器等的接口。
(3)通用数字式接口,如按键开关、标准PS2键盘、鼠标
接口、RS232接口、标准VGA接口、MCS-51单片机接口和插座等。
(4)模拟器件及接口,包括数/模转换器、音频功率放大器和内置扬声器、可调电位器、扬声器等。
(5)存储器,如EEPROM、Flash等。
(6)基本信号发生模块,如时钟脉冲、高低电平等的发生模块。
(7)模拟可编程器件部分。
(8)其他,如数字时钟源(1Hz~10MHz可调)、支持JTAG方式的下载编程接口、可扩展单元(面包板)、电源等。
(9)监控程序模块,提供电路重新软配置等功能。
1.3EDA开发工具
根据EDA技术的功能要求,EDA工具应包含以下五个基本模块。
(1)设计输入编辑器:接受包括硬件描述语言、原理图等在内的多种形式的设计输入。
(2)综合器:对设计输入文件进行逻辑化简、综合、优化和适配,最后生成编程用的网表文件。
(3)仿真器:将设计描述转换成一个与之对应的软件模型,供设计者在计算机上对其设计进行仿真和定时分析。其目的是检验设计描述的逻辑功能是否正确,同时测试目标器件在最差情况下的时间关系等。
(4)适配器:将由综合器产生的网表文件配置于指定的目标器件中,产生最终的下载文件。
(5)下载器:
将适配后产生的下载文件下载到相应CPLD或FPGA等可编程逻辑器件中,使其成为一个具有设定功能的专用集成芯片。
本书介绍的MAX+PlusⅡ和QuartusⅡ这两个工具软件是将上述功能合为一体的集成软件。它们是Altera公司先后推出的两个EDA工具软件。
MAX+PlusⅡ是一个早期的软件,它的特点是系统规模适中,在性能较弱的PC机上也能很好地运行,可适配的是一些早期的PLD芯片系列。该软件适合受条件限制的个人和实验室在初期进行EDA技术学习和设计时使用。QuartusⅡ是Altera公司开发的一款继MAX+PlusⅡ之后的功能更强大的集成化的EDA工具软件,它不仅具有MAX+PlusⅡ的全部功能,
而且能够适配更多的PLD芯片系列,功能更强大。
1.4EDA工程设计流程
EDA的工程设计流程包括设计准备、设计输入、设计处理和器件编程四个步骤,以及相应的功能仿真、时序仿真和器件测试三个设计验证过程。EDA工程设计流程如图1-1所示。图1-1EDA工程设计流程1.4.1设计准备
根据设计任务要求,设计准备阶段需要完成行为分析和
结构设计两部分工作,即在顶层进行功能划分,确定系统结构方案。1.4.2设计输入
(1)原理图输入方式:利用EDA开发软件提供的元件库、各种符号和连线以及根据需要自己创建的元件画出原理图,形成原理图输入文件。所画原理图与传统的器件连接方式相似,直观、方便,容易被人接受和掌握。但是,当系统较复杂时,原理图输入方式效率较低,而且修改、移植和交流困难,一般适用于简单电路的设计。
(2)硬件描述语言输入方式:用开发软件支持的硬件描述语言编写源程序文本的方式来描述设计。硬件描述语言输入
方式支持逻辑方程、真值表、状态图等逻辑描述方式,且源文件便于修改、移植、交流和复用,是当前非常流行的一种输入方式。
(3)混合输入方式:同时用原理图和硬件描述语言程序文本进行系统逻辑功能的描述。例如,在顶层用原理图描述,对部分功能模块和自己创建的元件用硬件描述语言描述。
(4)图形输入方式:有些开发软件可以根据输入的波形图,或标有时钟信号名、状态转换条件、状态机类型等要素的状态图自动生成逻辑关系或VHDL程序。1.4.3设计处理
(1)语法检查和设计规则检查。设计输入完成后,对源文件进行编译,先检查语法,如原理图有无漏线、信号有无双重来源、文本输入文件中的关键字有无错等;然后进行设计规则检查,检查总的设计有无超出器件资源等,并给出编译报告,指明违反规则的情况。
(2)逻辑化简、优化和综合。化简所有逻辑方程和用户自建的宏,通过优化使设计占用的资源最少。综合的目的是将多个模块设计文件合并成一个网表文件,并使层次化设计平面化。
(3)适配和分割。确定优化后的逻辑能否与器件中的宏单元和I/O单元适配,然后将设计分割为多个便于适配的逻辑小块,映射到器件相应的宏单元中。
(4)布局和布线。布局和布线工作由开发软件自动完成,它能以最优的方式对逻辑器件布局,并准确地实现信号的互连。布线后,软件会自动生成布线报告,提供设计中各部分资源的使用情况等信息。
(5)生成编程数据文件。设计处理的最后一步是产生一个用于器件编程的数据文件。对于CPLD,产生熔丝图文件,即JEDEC文件(简称JED文件);对于FPGA,产生位流数据文件(BitstreamGeneration)。1.4.4设计检验
设计检验包括功能仿真和时序仿真,这两项工作是在设计处理过程中同时进行的。
仿真前需用硬件描述语言编写测试向量文件。功能仿真只是对源文件描述的逻辑功能进行模拟,没有信号延时信息。功能仿真结束后,会给出报告文件和输入输出波形,通过对仿真波形的观察分析,可以检验和改善设计。如果发现错误,需要返回设计输入,修改源文件。时序仿真是在选定了具体器件并完成了布局布线之后进行的,仿真模型中包含信号延时的信息,也称为实时仿真。时序仿真的结果基本与器件实际工作情况相同。由于不同器件的内部延时不一样,不同的布局布线方案对延时的影响也不同,因此,在下载前进行时序仿真是必要的。1.4.5器件编程
器件编程将编程数据下载到具体的可编程器件中,使该器件成为具有设计方案确定的逻辑功能的集成电路。对于CPLD,是将JED文件“下载”到CPLD中;对于FPGA,则是将位流数据文件“配置”到FPGA中。具有在系统编程特性的器件无需专用的编程器,用下载电缆通过计算机即可完成对器件的编程操作。1.5EDA技术的应用现状及发展趋势
1.5.1EDA技术的应用现状
EDA技术发展迅猛,应用领域广泛,在电子、通信、航空航天、机械、化工、矿产、生物、医学、军事等各个领域都有EDA的应用。目前,EDA技术已在产品设计与制造、教学和科研部门广泛使用,发挥着巨大的作用。在教学方面,高校电子类专业的实践教学中,几乎所有高校的理工科(特别是电子信息)都开设了EDA课程,主要是让学生了解EDA的基本原理和基本概念,掌握描述系统逻辑的方法,使用CPLD/FPGA器件进行电子电路课程的模拟仿真实验,并在毕业设计中从事简单电子系统的设计。这样可大大提高学生的实践动手能力、创新能力和计算机应用能力,为今后工作打下基础。在科研和新产品开发中,CPLD/FPGA可直接应用于小批量产品的芯片或作为大批量产品的芯片前期开发。在传统机电产品的升级换代和技术改造中,CPLD/FPGA的应用可提高传统产品的性能,缩小体积,提高技术含量和产品的附加值。在这些应用中主要利用电路仿真工具(EWB或PSPICE、VLOL等)进行电路设计与仿真,并将CPLD/FPGA器件的开发应用到仪器设备中。例如在CDMA无线通信系统中,所有移动手机和无线基站都工作在相同的频谱,为区别不同的呼叫,每个手机有一个唯一的码序列,CDMA基站必须能判别不同的码序列才能分辨出不同的传呼进程。这一判别是通过匹配滤波器的输出实现的。FPGA能提供良好的滤波器设计,而且能完成DSP高级数据处理功能,因而FPGA在现代通信领域获得了广泛应用。在产品设计与制造方面,从高性能的微处理器、数字信号处理器,一直到彩电、音响和电子玩具电路等,EDA技术不单应用于前期的计算机模拟仿真、产品调试,而且也在电子设备的研制与生产、电路板的焊接等方面有着重要的作用。可以说EDA技术已经成为电子工业领域不可缺少的技术支持。1.5.2EDA技术的发展趋势
电子技术将全方位纳入EDA领域,EDA使得电子领域各学科的界限更加模糊,更加互为包容,突出表现在以下几个方面:①使电子设计成果以自主知识产权的方式得以明确表达和确认成为可能;②基于EDA工具的ASIC设计标准单元已涵盖大规模电子系统及IP核模块;③软硬件IP核在电子行业的产业领域、
技术领域和设计应用领域得到进一步确认;④SoC高效低成本设计技术逐渐成熟。面对当今飞速发展的电子产品市场,设计师需要更加实用、快捷的EDA工具,使用统一的集成化设计环境,改变传统的设计思想,将精力集中到设计构思、方案比较和优化设计等方面,需要以最快的速度开发出性能优良、质量一流的电子产品,这对EDA提出了更高的要求。未来的EDA技术将在功能仿真、时序分析、集成电路测试、高速印刷电路板设计及开发操作平台的扩展等方面取得新的突破,向着功能强大、简单易学、使用方便的方向发展。
1.可编程逻辑器件发展趋势
过去的几年里,可编程器件市场的增长主要来自大容量的可编程逻辑器件CPLD和FPGA,其未来的发展趋势如下:
(1)向高密度、高速度、宽频带方向发展。随着电子系统复杂度的提高,高密度、高速度和宽频带的可编程逻辑产品已成为主流器件。这些高密度、大容量的可编程逻辑器件的出现,给现代电子系统(复杂系统)的设计与实现带来了巨大的
帮助。
(2)向在系统可编程方向发展。在系统可编程是指程序(或算法)在植入用户系统后仍具有改变其内部功能的能力。采用在系统可编程技术,可以像对待软件那样通过编程来配置系统内部的功能,从而在电子系统中引入“软硬件”的全新概念。它不仅使电子系统的设计和产品性能的改进和扩充变得十分简便,还使新一代电子系统具有极强的灵活性和适应性,为许多复杂信号的处理和信息加工的实现提供了新的思路和方法。
(3)向混合可编程技术方向发展。可编程逻辑器件为电子产品的开发带来了极大的方便,它的广泛应用使得电子系统的构成和设计方法均发生了很大的变化。1999年11月,Lattice公司推出了在系统可编程模拟电路,为EDA技术的应用开拓了更广阔的前景。它允许设计者使用开发软件在计算机中设计、修改模拟电路,进行电路特性仿真,最后通过编程电缆将设计方案下载至芯片中。
2.开发工具的发展趋势
开发工具的发展趋势如下:
(1)具有混合信号处理能力。20世纪90年代以来,美国Cadence、Synopsys等公司开发的EDA工具已经具有了数模混合设计能力,这些EDA开发工具能够完成含有模/数变换、数/模变换、数字信号处理、专用集成电路宏单元和各种压控振荡器在内的混合系统设计。
(2)高效的仿真工具。电子系统的仿真过程分为设计前期的系统级仿真和设计过程中的电路级仿真。要提高仿真的效率,一方面要建立合理的仿真算法;另一方面要更好地解决系统级仿真中系统模型的建模和电路级仿真中电路模型的建模问题。在未来的EDA技术中,仿真工具将有较大的发展空间。
(3)理想的逻辑综合和优化工具。逻辑综合功能是将高层次系统行为设计自动翻译成门级逻辑电路描述,做到了实现与工艺的独立;优化则是对于上述综合生成的电路网表,根据逻辑方程功能等效的原则,用更少、更快的综合结果替代一些复杂的逻辑电路单元,根据指定目标库映射成新的网表。
3.系统描述方式的发展趋势
(1)描述方式简便化。20世纪90年代,一些EDA公司相继推出了一批图形化的设计输入工具。这些输入工具允许设计师用他们最方便且熟悉的设计方式(如框图、状态图、真值表和逻辑方程等)建立设计文件,然后由EDA工具自动生成综合所需的硬件描述语言文件。图形化的描述方式具有简单直观、容易掌握的优点,是未来主要的发展趋势。
(2)描述方式高效化和统一化。 C/C++ 语言是软件工程师在开发商业软件时的标准语言,也是使用最为广泛的高级语言。许多公司已经尝试在C语言的基础上设计下一代硬件描述语言。随着算法描述抽象层次的提高,使用C/C++ 语言设计系统的优势将更加明显,设计者可以快速简洁地构建功能函数,通过标准库和函数调用技术,创建更庞大、更复杂和更高速的系统。但是目前C/C++ 语言描述方式与硬件描述语言之间还有一段距离,还有待于更多的EDA软件厂家和可编程逻辑器件公司的支持。1.5.3SoPC技术
1. SoPC技术的含义
SoPC(SystemonProgrammableChip)技术是SoC(SystemonChip)技术和EDA技术结合的产物。它可以将处理器、存储器、I/O接口、硬件协处理器和普通的用户逻辑等系统设计需要的功能模块都集成到一个FPGA芯片里,构建一个可编程的片上系统。它还具有灵活的设计方式,可裁减、可扩充、可升级,具备系统可编程等功能,是一种优秀的嵌入式系统设计技术。
2. SoPC的技术内容
SoPC技术涵盖了嵌入式系统设计技术的全部内容,除了以处理器和实时多任务操作系统(RTOS)为中心的软件设计技术、以PCB和信号完整性分析为基础的高速电路设计技术以外,SoPC还涉及目前已引起普遍关注的软硬件协同设计技术。
Altera公司在QuartusⅡ中集成了一个自动化的系统开发工具SoPCBuilder,它支持SoPC嵌入式系统的全部硬件设计,并提供了一个强大的设计平台以搭建基于总线的系统,其内部包含了一系列的模块,如处理器、存储器、总线、DSP(DigitalSignalProcessing)、IP核(IntellectualPropertycore)等。
3. SoPC技术的基本特征
SoPC融合了SoC和FPGA的优点,具备以下基本特征:
①至少包含一个以上的嵌入式处理器IP核;
②具有小容量片内高速RAM资源;
③丰富的IP核资源可供灵活选择;
④足够的片上可编程逻辑资源;
⑤处理器调试接口和FPGA编程接口共用或并存;
⑥可能包含部分可编程模拟电路;
⑦单芯片、低功耗、微封装。
4. SoPC技术的应用方向
(1)基于FPGA嵌入IP硬核的应用。这种SoPC系统是指在FPGA中预先植入处理器。这使得FPGA灵活的硬件设计与
处理器的强大软件功能有机地结合在一起,高效地实现SoPC系统。
(2)基于FPGA嵌入IP软核的应用。这种SoPC系统是指在FPGA中植入软核处理器,如NIOSⅡ核等。用户可以根据设计的要求,利用相应的EDA工具,对NIOSⅡ及其外围设备进行构建,使该嵌入式系统在硬件结构、功能特点、资源占用等方面全面满足用户系统设计的要求。
(3)基于HardCopy技术的应用。这种SoPC系统是指将成功实现于FPGA器件上的SoPC系统通过特定的技术直接向ASIC转化。把大容量FPGA的灵活性和ASIC的市场优势结合起来,实现有较大批量要求并对成本敏感的电子产品,避开了直接设计ASIC的困难。
5. SoPC技术的前景
SoPC是PLD和ASIC技术融合的结果,目前0.13μm的ASIC产品制造价格仍然相当昂贵,相反,集成了硬核或软核的CPU、DSP、存储器、外围I/O及可编程逻辑的SoPC芯片在应用的灵活性和价格上有极大的优势。SoPC被称为“半导体产业的未来”。第2章硬件基础2.1概述2.2简单可编程逻辑器件2.3复杂可编程逻辑器件CPLD2.4现场可编程门阵列FPGA2.5可编程逻辑器件的编程与配置2.6可编程逻辑器件的选择
2.1概述
2.1.1可编程逻辑器件的发展历程
1.标准元件
20世纪60年代,单片集成电路的复杂度达到了每芯片几个简单逻辑门的水平。设计者只需从芯片目录中选取合适的元件,将它们插在面包板或印刷电路板上,通过电路板提供的连线对其进行互连,即可实现相应的逻辑功能。随着时间的推移和设计规模的不断扩大,产品目录中逐渐出现了更加复杂的元件,集成电路从小规模集成(SmallScaleIntegrated,SSI)电路(通常包含10个或更少的逻辑门)发展到中规模集成(MediumScaleIntegrated,MSI)电路(通常包含10~100个逻辑门)。我们熟知的TI公司的7400芯片就是MSI电路典型的例子。在20世纪70年代,随着集成度的不断增加,设计师们尝试使用更高密度的元件来实现逻辑功能,微处理器及随机访问存储器(SRAM)这一类通用元件被设计师们广泛用于系统的设计,集成电路的规模也发展到了大规模集成(LargeScaleIntegrated,LSI)电路(通常包含几万个逻辑门),例如Intel8008微处理器等。
2.专用集成电路
随着系统规模的不断扩大,过多的元件及互连线可能导致功耗高、占用空间大、可靠性差等问题,传统的设计手段已无法满足超大规模集成(VeryLargeScaleIntegrated,VLSI)电路(通常包含10万~1000万个逻辑门)、甚大规模集成(UltraLargeScaleIntegrated,ULSI)电路(通常包含1000万以上个逻辑门)的要求。
20世纪80年代,借助于飞速发展的半导体技术及计算机技术,设计师们提出了“EDA技术”的概念,即借助于计算机强大的处理能力,利用软件及硬件描述语言HDL来完成数字系统的设计,数字系统的设计流程也由传统的“自底向上”转换为“自顶向下”,由此出现了ASIC技术。所谓ASIC,是指专门为某一应用领域或为专门用户需要而设计、制造的电路,它可以将某些专用电路或电子系统设计在一个芯片上,构成单片集成系统。利用ASIC设计数字系统时,设计者可以利用计算机对系统进行方案设计和功能划分,系统的关键电路可以采用一片或几片专用集成电路来实现,因而使系统的体积和重量减小,功耗降低,而且这种系统还具有高性能、高可靠性和保密性好等优点。
3.可编程逻辑器件
尽管ASIC具有诸多的优点,但它存在着成本高、开发周期长、无法用于实验原型验证等问题,因而又出现了现场可编程逻辑器件(FPLD),其中应用最广泛的是现场可编程门阵列(FPGA)和复杂可编程逻辑器件(CPLD)。
早期的可编程逻辑器件只有可编程只读存储器(PROM)、紫外线擦除只读存储器(EPROM)和电可擦除只读存储器(EEPROM)三种。其后,出现了一类结构稍复杂的可编程芯片,即可编程逻辑器件(PLD),为了和后期的CPLD、 FPGA加以区别,我们通常将这一类器件称为简单可编程逻辑器件(SPLD)。利用SPLD能够完成各种数字逻辑功能。典型的PLD由一个“与”门和一个“或”门阵列组成,而任意一个组合逻辑都可以用“与-或”表达式来描述,所以,PLD能以乘积项的形式完成大量的组合逻辑功能。
SPLD的代表有可编程阵列逻辑(PAL)和通用阵列逻辑(GAL)。PAL由一个可编程的“与”平面和一个固定的“或”平面构成,或门的输出可以通过触发器有选择地被置为寄存状态。PAL器件是现场可编程的,它的实现工艺有反熔丝技术、EPROM技术和EEPROM技术。还有一类结构更为灵活的逻辑器件是可编程逻辑阵列(PLA),它也由一个“与”平面和一个“或”平面构成,但是这两个平面的连接关系是可编程的。
PLA器件既有现场可编程的,也有掩膜可编程的。在PAL的基础上,又发展了一种通用阵列逻辑GAL(GenericArrayLogic),如GAL16V8、GAL22V10等。它们采用EEPROM工艺,实现了电可擦除、电可改写,其输出结构是可编程的逻辑宏单元,因而其设计具有很强的灵活性,至今仍有许多人使用。这些早期PLD器件的一个共同特点是可以实现速度特性较好的逻辑功能,但其过于简单的结构也使它们只能实现规模较小的电路。为了弥补这一缺陷,20世纪80年代中期,Altera和Xilinx相继推出了类似于PAL结构的CPLD(ComplexProgrammableLogicDvice)以及与ASIC标准门阵列类似的FPGA(FieldProgrammableGateArray),它们都具有体系结构和逻辑单元灵活、集成度高以及适用范围广等特点。这两种器件兼容了SPLD和通用门阵列的优点,可实现较大规模的电路,编程也很灵活。与门阵列等其他ASIC相比,它们又具有设计开发周期短、设计制造成本低、开发工具先进、标准产品无需测试、质量稳定以及可实时在线检验等优点,因此被广泛应用于产品的原型设计和产品生产(一般在10 000件以下)。几乎所有应用门阵列、PLD和中小规模通用数字集成电路的场合均可应用FPGA和CPLD器件。
4.可编程的片上系统
20世纪90年代以来,出现了可编程的片上系统SoPC和片上系统SoC技术,它们是PLD和ASIC技术融合的结果,涵盖了实时化数字信号处理技术、高速数据收发器、复杂计算以及嵌入式系统设计技术的全部内容。2.1.2PLD的表示方法
1.连接方式
门阵列的每个交叉点称为“单元”,单元的连接方式共有三种情况,如图2-1所示。
(1)硬线连接。硬线连接是固定的连接,不可以编程改变。
(2)可编程接通单元。它依靠用户编程来实现接通连接。
(3)可编程断开单元。编程实现断开状态,这种单元又称为可编程擦除单元。图2-1PLD连接符号
2.基本门电路的表示方式
PLD中的基本门电路符号如图2-2所示。图(a)为与门;图(b)为或门;图(c)为输出恒等于0的与门及其简化表示形式;图(d)中与门的所有输入均不接通,保持“悬浮”的1状态;图(e)为具有互补输出的输入缓冲器;图(f)为三态输出缓冲器。图2-2PLD的基本门电路符号
3. PLD的编程技术
常见的PLD编程技术有以下几种:
(1)熔丝工艺。
(2) EPROM,紫外线擦除电可编程逻辑器件,其工作时用较高电压编程,用紫外线擦除,可编程几十次。
(3) EEPROM,电可擦写编程器,其工作时,用较高电压编程,用电擦除,编程次数稍多。
(4) SRAM,静态随机存储器,可实现无数次擦写,编程速度、编程要求优于前几种方法,但由于具有易失性,因此需专门配置芯片。
(5) Flash,电可擦除编程ROM,既具有EPROM结构简
单、编程可靠的优点,又具有EEPROM擦除快速、集成度高的优点。
2.1.3乘积项原理
人们通过研究发现,任何组合逻辑电路都可以由与门-或门两级电路构成,而只要在组合逻辑电路中引入能够记忆电路状态的存储单元或延迟单元,例如触发器、锁存器等,就可以构成时序逻辑电路。由此人们提出了一种可编程逻辑电路结构,即乘积项(Product-Terms)可编程逻辑结构,其原理图如图2-3所示。图2-3PLD结构图由图2-3可知,这一类型器件的核心是预先设计好的可编程的与门阵列、或门阵列,使用时设计者只需要根据逻辑函数对输入和构成乘积项的与门之间的连接以及由与门构成的乘积项与或门之间的连接进行编程,就可以实现特定的逻辑功能。输入电路由输入缓冲器构成,通过它可以得到互补的输入信号变量送到与阵列,若在输入电路中包含锁存器或寄存器等即可组成时序电路。输出电路也可分为组合和时序两种,组合方式的或阵列连接三态门输出,而时序方式的则经过寄存器和三态门输出。为了增加器件的灵活性,可以根据需要将输出反馈到与阵列的输入。【例2.1】实现一个如下的逻辑函数:
Y=AB+AB
Z=AB
解(1)要实现上面的逻辑函数,则该PLD需要包括2个输入和2个输出。
(2)由于PLD输入电路包括输入缓冲器,故可以直接实
现A、A、B、B。
(3)观察布尔表达式可以看出,要实现以上逻辑功能,需3个乘积项:AB、AB、AB,将与门阵列相应位置的连接线进行编程连接即可。
(4)同理,根据布尔表达式,对或门阵列相应位置进行编程连接,即可得到相应的输出信号Y、Z,编程后的PLD结构图如图2-4所示。图2-4例2-1编程后的结构图2.1.4查找表原理
在FPGA中,实现组合逻辑电路功能的基本电路是查找表(Look-Up-Table,LUT)和数据选择器,而触发器仍是实现时序逻辑电路的基本电路。LUT实质上就是一个SRAM。目前FPGA中使用较多的是4个输入、1个输出的LUT,所以每一个LUT可以看成是一个4根地址线的16×1位的SRAM。利用SRAM实现组合逻辑函数时,只需列出真值表,输入作为地址,输出作为存储内容,将内容按地址写入即可。具体步骤如例2.2所示。
【例2.2】利用LUT实现函数F =ABC+ABCD+AC。
解首先列出F的真值表,如表2-1所示。将F的值写入SRAM中(如图2-5所示),这样,每输入一组ABCD信号进行逻辑运算,就相当于输入一个地址进行查表,就可以找出地址对应的内容,并将其输出,在输出F端便得到该组输入信号逻辑运算的结果。图2-5四输入查找表当用户通过原理图或HDL语言描述一个逻辑电路以后,FPGA开发软件会自动计算逻辑电路的所有可能结果,并把结果写入FPGA中的SRAM,这就是所谓的编程。此后,SRAM中的内容保持不变,LUT就具有了确定的逻辑功能。待FPGA加电后,FPGA首先从PROM中读入编程数据进行SRAM初始化,然后才能完成预定义的逻辑功能。2.1.5可编程逻辑器件的分类
1.按集成度分类
从结构的复杂程度上一般可将PLD分为简单PLD(SPLD)和复杂PLD(CPLD)(如图2-6所示),或分为低密度PLD(LDPLD)和高密度PLD(HDPLD)。所谓简单PLD,是指以逻辑门为编程单位,PROM、PLA、PAL、GAL均属于此类;而复杂PLD则以逻辑块为编程单元,CPLD、FPGA属于复杂PLD。图2-6按集成度PLD分类示意图
2.按编程特性分类
从编程特性上可将PLD分为一次可编程(OTP)和重复可编程两类。OTP型PLD器件包括PROM、PAL及熔丝型FPGA;重复可编程型PLD采用的是MOS工艺,包括EPROM、EEPROM、SRAM和Flash。
2.2简单可编程逻辑器件
简单可编程逻辑器件包括PROM(可编程只读存储器)、PAL(可编程阵列逻辑)、PLA(可编程逻辑阵列)和GAL(通用阵列逻辑)四类,它们都属于阵列型结构的PLD,其结构如图
2-3(a)所示。它们之间的差异在于编程特性与输出方式不同,其工作原理已在2.1.4节讲述,这里不再赘述。本节仅讨论它们的电路结构特点,四种SPLD电路结构特点如表2-2所示。图2-7、图2-8和图2-9分别画出了PROM、PLA、PAL和GAL的阵列结构图。从这些阵列结构图可以看出,可编程阵列逻辑PAL和通用阵列逻辑GAL的基本门阵列结构相同,均为与门阵列可编程,或门阵列固定连接,也就是说,每个或门的输出是若干个乘积项之和,其中乘积项的数目是固定的。图2-7PROM阵列结构图2-8PLA阵列结构图2-9PAL和GAL阵列结构
1. PROM与PLA比较
PROM与PLA电路结构极为相似,都是由一个与门逻辑阵列、一个或门逻辑阵列和输出缓冲器组成的。两者之间的差异在于PROM的与门逻辑阵列是固定的,而PLA的与门逻辑阵列是可编程的。也就是说PROM的与门逻辑阵列将输入变量的全部最小项都译出了,而PLA的与门逻辑阵列只产生所需要的少得多的乘积项。
2. PAL和GAL的比较
PAL和GAL的差异在于其输出的结构不相同。PAL有几种固定的输出结构,选定芯片型号后,其输出结构随之而定。
例如,在图2-10所示的PAL16L8的输出结构中,或门的输出最多可以包含7个乘积项,最上面的与门所对应的乘积项用来控制三态门的输出。当与门输出为“0”时,三态门禁止,输出呈高阻状态,I/O引脚作为输入使用;当与门输出为“1”时,三态门被选通,I/O引脚作为输出使用。两种情况下信号都可以通过右面的互补输出缓冲器反馈至与门阵列的输入端。图2-10只画出了其中一个输出,PAL16L8有8个输出,由于8个输出的时间有可能不一致,因此称为异步I/O输出结构。图2-10异步I/O输出结构
PAL16R8的输出结构如图2-11所示,称为寄存器输出结构。系统时钟的上升沿来到后,或门的输出被存入D触发器,然后通过选通三态缓冲器再将它送至输出端,该输出是低电平有效,而且Q还可以反馈至与门阵列,这样能记忆原来的状态,从而实现时序逻辑功能。图2-11寄存器输出结构
GAL的可编程输出结构称为输出逻辑宏单元OLMC(OutputLogicMacroCell)。图2-12是GAL22V10的OLMC内部逻辑图,从图中看出,OLMC中除了包含或门阵列和D触发器之外,还多了两个多路选择器,其中4选1多路选择器用来选择输出方式和输出极性,2选1多路选择器用来选择反馈信号,而这些多路选择器的输出由两位可编程特征码S1、S2来控制。图2-12GAL22V10的OLMC内部逻辑图2.3复杂可编程逻辑器件CPLD
2.3.1CPLD的基本结构
不同厂家采用的工艺稍有差异,但总体来说,通常都由可编程逻辑宏单元(Macrocell)、可编程连线(PIA)和I/O控制块三部分构成,采用EPROM、EEPROM、Flash等工艺制造。其通用结构如图2-13所示。图2-13通用的CPLD结构示意图
1.可编程逻辑宏单元
逻辑宏单元内部主要包括与或阵列、可编程触发器和多路选择器等电路,能独立地配置为时序或组合工作方式。CPLD器件与GAL器件相似,其逻辑宏单元同I/O在一起,称为输出逻辑宏单元,但其宏单元及与门阵列数目比GAL大得多。CPLD器件的宏单元在内部,称为内部逻辑宏单元。
宏单元的具体结构(以AlteraEPM7032、EPM7064及EPM7096宏单元为例)如图2-14所示。图2-14EPM7032、EPM7064及EPM7096宏单元结构图2-14左侧是乘积项阵列,实际就是一个与或阵列,每一个交叉点都是一个可编程熔丝,如果导通可实现与逻辑。后面的乘积项选择矩阵是一个或阵列。两者一起完成组合逻辑。图右侧是一个可编程触发器,它的时钟、清零输入都可以编程选择,可以使用专用的全局清零和全局时钟,也可以使用内部逻辑(乘积项阵列)产生的时钟和清零信号。如果不需要触发器,也可以将此触发器旁路,信号直接输给PIA或输出到I/O脚。可编程逻辑宏单元具有如下特点:
(1)多触发器结构和“隐埋”触发器结构。GAL器件每个输出宏单元只有一个触发器,而CPLD的宏单元内部通常含两个或两个以上的触发器,其中只有一个触发器与输出端相连,其余触发器的输出通过相应的缓冲电路反馈到与门阵列,从而与其他触发器一起构成较复杂的时序电路。这些不与输出端相连的触发器就称为“隐埋”触发器。这种结构的优点在于可以增加其内部资源。
(2)乘积项共享结构。由图2-14可以看出,每个宏单元只提供5个乘积项,虽然这已经足以应付大多数的逻辑应用,但当要实现更加复杂的逻辑函数时,就必须借助于其他的乘积项。CPLD提供了一种机制,允许每个宏单元提供未使用的乘积项供其他宏单元使用和共享,通常称它们为扩展乘积项。共享扩展乘积项如图2-15所示,这种乘积项可以被任何宏单元使用和共享。并行扩展乘积项如图2-16所示,这种乘积项允许从邻近宏单元借用宏单元。图2-15共享扩展乘积项图2-16并行扩展乘积项
(3)异步时钟和时钟选择。一般GAL器件只能实现同步时序电路,而在CPLD器件中各触发器的时钟可以异步工作,有些器件中触发器的时钟还可以通过多路选择器或时钟网络进行选择。此外,逻辑宏单元内触发器的异步清零和异步置位也可以用乘积项进行控制,因而使用更加灵活。
2.可编程连线阵列
可编程连线阵列PIA(ProgrammableInterconnectArray)的作用是在各逻辑宏单元之间以及逻辑宏单元和I/O单元之间提供互连网络。各逻辑宏单元通过可编程连线阵列接收来自专用输入或输入端的信号,并将宏单元的信号反馈到其需要到达的目的地。这种互连机制有很大的灵活性,它允许在不影响引脚分配的情况下改变内部设计。
3.可编程I/O单元
I/O单元是内部信号到I/O引脚的接口部分。在CPLD中,通常只有少数几个专用输入端,大部分端口均为I/O端,而且系统的输入信号常常需要锁存。因此I/O常作为一个独立单元来处理。
CPLD的I/O由输入缓冲器、输入寄存器/锁存器、可编程数据选择器和三态输出缓冲器组成,CPLD的I/O示意图如图
2-17所示。这些三态输出缓冲器一般由全局使能信号控制或直接与电源或地相连。图2-17CPLDI/O示意图2.3.2Altera公司的CPLD器件
1. Altera的可编程解决方案
Altera的可编程解决方案包括:①FPGA、CPLD和结构化ASIC技术;②IP核;③可定制嵌入式处理器;④现成的开发包。Altera可编程器件除了具有PLD的一般特点外,还具有改进的内部结构、先进的处理技术、现代化的开发工具以及多种兆功能选用等优点。
(1)高性能。Altera器件采用先进的CMOS技术,具有非常低的功耗和相当高的速度;采用连续式互连结构,在整个芯片内提供快速、连续的信号延时;诸如对芯片内部电路的专业改进也增强了系统性能。
(2)高密度逻辑集成。为缩小印制板的尺寸和成本,设计人员总是寻求尽可能高的集成度,试图通过把更多的逻辑器件集成到更少的器件中以降低成本。此外,对现有的设计也经常进行二次开发。高逻辑集成度的CPLD为上述要求提供了很好的解决方案。Altera器件的密度从300门到100万门,能够集成现有的各种逻辑器件,包括小规模及大规模标准逻辑器件、PLD、FPGA或ASIC器件。
(3)较短的开发周期。Altera的快速、直观、易于使用的QuartusⅡ和MAX + PLUSⅡ软件能够极大地缩短开发周期。
(4)高性能价格比。Altera公司不断改进产品的设计与制造工艺,十多年积累的经验使其工艺技术及制造工艺非常先进,因此能够提供性能价格比合理的可编程器件。Altera的PLD的成本与门阵列相当。
(5)兆功能模块。Altera的CPLD高达100万门的集成度,使得在单个可编程器件中实现一个完整的数字系统成为可能。为推进这种高集成度器件的应用,进一步缩短设计周期,Altera提供了兆功能模块并支持AMPP功能。兆功能模块具有高度的灵活性及固定功能器件所不能达到的性能,如高速有限冲激响应FIR滤波器等。兆功能可以实现总线协议、DSP、图像处理、高速网络、微处理器及微型外设等。
(6)在系统可编程(ISP)。Altrea器件的在系统可编程功能提高了设计的灵活性,简化了样品的制作过程及流水线的生产过程,并且可以对产品进行快速而有效的现场升级。Altera的ISP使用标准JTAG测试端口,可以在一个独立的生产过程中对器件进行编程,并可以对印刷电路板进行功能测试。
2. Altera公司的主要CPLD产品
1) MAX7000
Altera的MAX7000系列CPLD是基于乘积项结构的可编程逻辑器件,适用于实现高速、复杂的组合逻辑。该系列器件具有以下主要特点:
①采用第二代多阵列矩阵(MAX)结构。
②通过标准的JTAG接口,支持在系统可编程ISP。
③集成密度为600~5000个可用门。
④引脚到引脚之间的延时为6ns,工作频率最高可达151.5MHz。
⑤ 3.3V或者5V电源供电。
⑥在可编程功率节省模式下工作,每个宏单元的功耗可降到原来的50%或更低。
⑦高性能的可编程连线阵列(PIA)提供一个高速的、延时可预测的互连网络资源。
⑧每个宏单元中可编程扩展乘积项可达32个。
⑨具有可编程保密位,能够全面保护设计者的知识产权。
MAX7000系列中的高密度器件称为MAX7000E系列,它包括EPM7128E、EPM7160E、EPM7192E和EPM7256E。这些器件有一些加强的功能,比如附加全局时钟、附加输出使能控制以及增加连线资源、快速输入寄存器等。
MAX7000系列的另外两个器件族分别为MAX7000A和MAX7000S系列。这两个系列除了具有MAX7000E的增强特性外,还具有在系统可编程(ISP)功能和JTAG边界扫描测试(BST)电路,它们包括EPM7032S、EPM7064S、EPM7128S、EPM7160S、EPM7192S、EPM7256S、EPM7128A、EPM7256A等。
2) MAXⅡ
MAXⅡ系列是Altera最新一代的CPLD产品。它采用全新的构架、0.18μmFlash工艺和6层金属走线,它的逻辑容量从240个到2210个LE,即等效宏单元数从192个到1700个。
与传统的CPLD相比,它可以提供给用户更多的逻辑资源和更多的I/O,同时又有更低的功耗。另外,MAXⅡ系列支持MultiVolt核,它能够在1.8V、2.5V或3.3V电源下工作。该特性将电源线数量减至最少,从而简化了板级设计。
MAXⅡ使用MultiVoltI/O接口,能够和具有1.5V、1.8V、2.5V或3.3V逻辑电平的其他器件无缝连接。MAXⅡ还支持实时在线配置,用户可以在不影响正在工作的逻辑的基础上,对MAXⅡ内部的Flash进行配置,在配置Flash完成后,用户可以选择立即把逻辑信号加到内核工作或者等到下一次重新上电。
MAXⅡ作为大容量、低成本的CPLD可以用来取代一些小FPGA、ASSP和标准逻辑器件。其整个产品系列参见表2-3。2.4现场可编程门阵列FPGA
2.4.1FPGA的基本结构
FPGA由六个部分组成,分别为可编程输入/输出单元、基本可编程逻辑单元、嵌入式块RAM、丰富的布线资源、底层嵌入功能单元和内嵌专用硬核等,其结构示意图如图2-18
所示。图2-18FPGA结构示意图
1.可编程输入/输出单元
为了使FPGA有更灵活的应用,目前大多数FPGA的I/O单元被设计为可编程模式,即通过软件的灵活配置,可以适配不同的电气标准与I/O物理特性;可以调整匹配阻抗特性、上/下拉电阻;可以调整输出驱动电流的大小等。
2.基本可编程逻辑单元
LE内部结构如图2-19所示。FPGA一般是基于SRAM工艺的,其基本可编程逻辑单元主要由查找表、寄存器等组成。FPGA内部查找表一般为4输入,查找表一般完成纯组合逻辑功能。FPGA内部寄存器的结构相当灵活,可以配置为带同步/异步复位或置位、时钟使能的触发器,也可以配置为锁存器。
FPGA通常依赖寄存器完成同步时序逻辑设计。一般来说,比较经典的基本可编程单元的配置是一个寄存器加一个查找表,但是不同厂家的寄存器和查找表的内部结构有一定的差异,而且寄存器和查找表的组合模式也不同。例如,Altera可编程逻辑单元LE是由一个寄存器加一个查找表构成的。Altera大多数FPGA将10个LE有机地组合起来构成更大的功能单元——逻辑阵列模块LAB(LogicArrayBlock)。
Xilinx的可编程逻辑单元称为Slice,它由上下两个部分构成,每个部分都由一个寄存器加一个查找表组成,被称为逻辑单元LC(LogicCell)。而Lattice底层逻辑单元称为可编程功能单元PFU(ProgrammableFunctionUnit),它是由8~9个寄存器加8个LUT构成的。图2-19LE内部结构图
3.嵌入式块RAM
目前大多数FPGA都有内嵌的块RAM(BlockRAM)。 FPGA内部嵌入可编程RAM模块,大大拓展了FPGA的应用范围和使用灵活性。FPGA内嵌的块RAM一般可以灵活配置为单端口RAM(SPRAM)、双端口RAM(DPRAM)、伪双端口RAM(PseudoDPRAM)、CAM(ContentAddressableMemory)、FIFO(FirstInFirstOut)等常用存储结构。所谓CAM,即内容地址存储器。CAM这种存储器在其每个存储单元中都包含了一个内嵌的比较逻辑,写入CAM的数据会和其内部存储的每一个数据进行比较,并返回与端口数据相同的所有内部数据的地址。概括地讲,RAM是一种根据地址读、写数据的存储单元;而CAM和RAM恰恰相反,它返回的是与端口数据相匹配的内部地址。不同器件厂家或不同器件族的内嵌块RAM的结构不同,Xilinx常见的块RAM大小是4Kbit和18Kbit两种,Lattice常用的块RAM大小是9Kbit,Altera的块RAM最为灵活,一些高
端器件内部同时含有3种块RAM结构,分别是M512RAM
(512bit)、M4KRAM(4Kbit)和M-RAM(512Kbit)。
4.丰富的布线资源
FPGA内部有着非常丰富的布线资源,这些布线资源根据工艺、长度、宽度和分布位置的不同而被划分为不同的等级,有一些是全局性的专用布线资源,用以完成器件内部的全局时钟和全局复位/置位的布线;有一些称为长线资源,用以完成器件Bank(分区)间的一些高速信号和一些第二全局时钟信号(有时也被称为LowSkew信号)的布线。
5.底层嵌入功能单元
随着FPGA的发展,这些模块被越来越多地嵌入到FPGA的内部,以满足不同场合的需求。目前大多数FPGA厂家都在FPGA内部集成了DLL或者PLL硬件电路,用以完成时钟的高精度、低抖动的倍频、分频、占空比调整、移相等功能。
Altera芯片集成的是PLL,Xilinx芯片主要集成的是DLL,Lattice的新型FPGA同时集成了PLL与DLL以适应不同的需求。目前,越来越多的高端FPGA产品将包含DSP或CPU等软处理核,从而FPGA将由传统的硬件设计手段逐步过渡为系统级设计平台。
6.内嵌专用硬核
FPGA中的内嵌专用硬核主要是为某些特定应用场合开发的,例如针对某些高端通信应用场合所需的SERDES(串并收发单元),Altera在其StratixGX器件族内嵌了3.1875Gb/s的SERDES,Xilinx的对应器件族是VirtexⅡPro和VirtexProX,而Lattice支持SERDES的器件族有SC系列和FPSC系列。2.4.2Altera公司的FPGA器件
Altera公司自1992年推出第一款FPGA产品FLEX8000至今,不断秉承创新理念,推出了近20个系列的FPGA产品,表2-4列出了Altera公司FPGA产品一览表。
1. Stratix系列
Stratix器件于2002年推出,采用1.5V、0.13μm全铜SRAM工艺,为满足高带宽系统的需求进行了优化。Stratix器件提供了时钟管理、数字信号处理(DSP)应用、差分和单端I/O标准。此外,Stratix器件具有片内匹配和远程系统升级能力。Stratix器件系列是功能丰富的高带宽系统方案,开创了可编程芯片系统(SoPC)方案的新纪元。StratixFPGA系列的特性见表2-5。
2. Cyclone系列
Cyclone系列FPGA于2002年12月推出,采用基于成本优化的全铜1.5VSRAM工艺,相对竞争对手的FPGA仅有其一半的成本,且依然提供了强大的功能。Cyclone系列具有最高达
20060个逻辑单元和288Kb的RAM,除此之外,Cyclone系列的FPGA还集成了许多复杂的功能。
Cyclone系列FPGA提供了全功能的锁相环(PLL),用于板级的时钟网络管理和专用I/O接口,这些接口用于连接业界标准的外部存储器器件。Altera的NiosⅡ系列嵌入式处理器的IP资源也可以用于Cyclone系列FPGA的开发。设计者只需下载Altera提供的完全免费的QuartusⅡ网络版开发软件就可以立即进行Cyclone系列FPGA的设计和开发。Cyclone系列FPGA的主要特性见表2-6。2.5可编程逻辑器件的编程与配置
CPLD器件编程和FPGA器件配置可以使用专用的编程器完成,也可以使用下载编程电缆完成。如Altera公司的ByteBlasterMV,它与Altera器件的接口一般采用10芯连接器,连接器顶视图如图2-20所示,ByteBlasterMV10芯接口引脚信号见表2-7。图2-20连接器顶视图2.5.1CPLD器件的编程
在系统编程(ISP)技术是20世纪80年代末Lattice公司首先提出的一种先进的编程技术。所谓“在系统编程”,是指对器件、电路板或整个电子系统的逻辑功能可随时进行修改或重构的能力。这种重构或修改可以在产品设计、制造过程中的每个环节进行,甚至在交付用户之后仍可进行。利用ISP编程时,不需要使用编程器,只需要通过编程电缆将计算机系统与目标器件相连,直接在目标系统或印刷线路板上进行编程。这种方式有利于提高系统的可靠性,便于系统板的调试和维修。
ISP主要用于CPLD器件的编程,图2-21是AlteraCPLD器件MAX7000的ISP编程连接示意图,其中,ByteBlasterMV通过并口与计算机相连。图2-21MAX7000的ISP编程连接示意图需要注意的是,MAX7000系列CPLD是通过JTAG接口对器件进行在系统编程的。在图2-21中,使用了JTAG的TCK、TDO、TMS、TDI这四条信号线与ByteBlasterMV的10芯接口相连。
JTAG接口是由IEEE联合测试行动组(JTAG)于20世纪80年代开发的,称为IEEE1149.1-1990边界扫描测试技术规范。利用JTAG测试口作为编程口,一方面可以省去专用的编程口,减少系统的引出线;另一方面由于JTAG本身是工业标准,用它来编程有利于各可编程逻辑器件编程接口的统一,从而产生了IEEE编程标准——IEEE1532。
同样,也可以使用JTAG链对多个支持JTAG接口ISP的CPLD器件进行编程,多CPLD芯片ISP编程连接示意图如图
2-22所示。图2-22多CPLD芯片ISP编程连接示意图2.5.2FPGA器件的配置
1.概述
Altera为其FPGA器件提供了若干种配置方式,不同的器件可能采取不同的配置方式。但总的来说,主要有以下三种配置方式:
(1) FPGA主动(active)方式。所谓“主动”,是指由目标FPGA来主动输出控制和同步信号。主动方式又分为AS(主动串行)、AP(主动并行)两种。
(2) FPGA被动(passive)方式。所谓“被动”,是指由系统中的其他设备发起并控制配置过程。这些设备包括配置芯片、单板上的微处理器、CPLD等智能设备。FPGA在配置过程中始终处于被动地位,只是输出一些状态信号来配合配置过程。被动方式又可细分为PS(被动串行)、FPP(快速被动并行)、PPS(被动并行同步)、PPA(被动并行异步)、PSA(被动串行异步)五种方式。
2.配置过程
图2-23显示了FPGA配置循环波形图。从图中可以看出FPGA上电后首先进入配置模式,当最后一个数据载入到FPGA后,进入初始化状态,在初始化完成后,进入用户模式状态。在配置模式和初始化状态下,用户I/O均处于高阻状态,只有进入用户模式状态下,用户I/O才能按照用户设计的功能工作。图2-23FPGA配置循环波形图无论采取何种方案配置FPGA,其配置流程基本相同,通常分为复位、配置和初始化三个步骤。FPGA配置流程如图
2-24所示,FPGA上电后,当其nCONFIG管脚被拉低时,器件处于复位状态。这时所有的配置RAM被清空,当FPGA的nCONFIG管脚出现一个从低到高的跳变后,进入配置状态。同时芯片还会去采样配置模式(MSEL)管脚的信号状态,决定采取何种配置方式。在接收配置数据的过程中,配置数据由DATA管脚送入,而配置时钟信号由DCLK管脚送入,配置数据在DCLK的上升沿被锁存到FPGA中。当配置数据被全部写入到FPGA后,FPGA上的CONF_DONE信号就会被释放,初始化过程开始,但芯片并未开始工作。
INIT_DONE是初始化完成的标志信号。在初始化过程中,内部逻辑、内部寄存器和I/O寄存器将被初始化,I/O驱动器将被使能。当初始化完成后,器件上漏极开路输出的INIT_DONE管脚被释放,同时被外部的上拉电阻拉高。这时,FPGA进入用户模式,所有的内部逻辑以及I/O都按照用户的设计运行。图2-24FPGA配置流程图
3.配置方式
1)使用下载电缆配置FPGA
PS方式下可以利用PC通过ByteBlaster等下载电缆对FPGA器件进行在线配置,配置过程与上类似。PS方式下ByteBlaster配置电路如图2-25所示。图2-25PS方式下ByteBlaster配置电路
2)使用微处理器配置FPGA
FPGA有一个显著的缺点就是保密性不强。在有些应用场合,设计的保密性和可升级性非常重要。用微处理器来配置FPGA能够很好地解决这个问题。微处理器配置FPGA电路如图2-26所示。图2-26微处理器配置FPGA电路图利用微处理器配置FPGA时,为了启动配置,微处理器必须向nCONFIG提供一个由低到高的跳变。当nCONFIG变高时,器件脱离复位状态并释放漏极开路管脚nSTATUS,一旦nSTATUS释放成功,FPGA就可以开始接收数据。当nSTATUS被拉高时,微处理器应该在DATA0管脚上一次放
置1比特的配置数据并且必须首先传送LSB比特。这时,FPGA就可以从DATA0管脚接收数据,当DCLK时钟上升沿到来时,数据就被锁存进FPGA中。数据接收完成后,FPGA释放CONF_DONE信号,CONF_DONE由低变高,配置完成,进入初始化状态。当INIT_DONE由低变高时,初始化完成,进入用户模式状态。进入用户模式后,通过将nCONFIG管脚拉高来启动重配
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 昆虫绘画活动策划方案(3篇)
- 标签管理精准营销方案(3篇)
- 消防管网无水应急预案(3篇)
- 热力分配站施工方案(3篇)
- 生日活动粉丝策划方案(3篇)
- 石头店铺营销方案策划(3篇)
- 竹子探索活动方案策划(3篇)
- 绿化公司盆景营销方案(3篇)
- 良山铺子营销方案(3篇)
- 豆瓣小组引流营销方案(3篇)
- 大型三维五轴光纤激光切割系统技术规范-征求意见稿
- 《肌张力障碍指南》课件
- 工程事故紧急应急预案
- 《事业编制人员入职信息填写表》
- 电气设备绝缘测量-课件
- 内蒙古生产建设兵团组建始末
- 桩基(预应力管桩)工程监理实施细则
- 《内河船舶法定检验技术规则》课件
- 知名房地产公司施工图设计技术指引
- 从报表看企业-2课件
- 产后康复骨盆修复
评论
0/150
提交评论