《第2章 可编程逻辑器件的设计.ppt》由会员分享,可在线阅读,更多相关《第2章 可编程逻辑器件的设计.ppt(44页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第2 2章章 可编程逻辑器件的设计可编程逻辑器件的设计 第第2章章 可编程逻辑器件的设计可编程逻辑器件的设计 2.1 可编程逻辑器件的设计流程可编程逻辑器件的设计流程 2.2 在系统可编程技术在系统可编程技术 2.3 边界扫描技术边界扫描技术 第第2 2章章 可编程逻辑器件的设计可编程逻辑器件的设计 2.1 可编程逻辑器件的设计流程可编程逻辑器件的设计流程 可编程逻辑器件的设计是指利用开发软件和编程工具对器件进行开发的过程。高密度可编程逻辑器件的设计流程如图 2.1 所示,它包括设计准备、设计输入、设计处理和器件编程四个步骤以及相应的功能仿真(前仿真)、时序仿真(后仿真)和器件测试三个设计验
2、证过程。第第2 2章章 可编程逻辑器件的设计可编程逻辑器件的设计 图 2.1 高密度可编程逻辑器件的设计流程第第2 2章章 可编程逻辑器件的设计可编程逻辑器件的设计 2.1.1 设计准备 在对可编程逻辑器件的芯片进行设计之前,首先要进行方案论证、系统设计和器件选择等设计准备工作。设计者首先要根据任务要求,如系统所完成的功能及复杂程度,对工作速度和器件本身的资源、成本及连线的可布性等方面进行权衡,选择合适的设计方案和合适的器件类型。第第2 2章章 可编程逻辑器件的设计可编程逻辑器件的设计 数字系统设计有多种方法,如模块设计法、自项向下(TopDown)设计法和自底向上设计法等等。自顶向下设计法是
3、目前最常用的设计方法,也是基于芯片的系统设计的主要方法。它首先从系统设计入手,在顶层进行功能划分和结构设计,采用硬件描述语言对高层次的系统进行描述,并在系统级采用仿真手段验证设计的正确性,然后再逐级设计低层的结构。由于高层次的设计与器件及工艺无关,而且在芯片设计前就可以用软件仿真手段验证系统方案的可行性,因此自顶向下的设计方法有利于在早期发现结构设计中的错误,避免了不必要的重复设计,提高了设计的一次成功率。第第2 2章章 可编程逻辑器件的设计可编程逻辑器件的设计 自顶向下的设计采用功能分割的方法从顶向下逐次进行划分。在设计过程中采用层次化和模块化将使系统设计变得简洁和方便。层次化设计是分层次、
4、分模块地进行设计描述。描述器件总功能的模块放在最上层,称为顶层设计;描述器件某一部分功能的模块放在下层,称为底层设计;底层模块还可以再向下分层,这种分层关系类似于软件设计中的主程序和子程序的关系。层次化设计的优点一是支持模块化,底层模块可以反复被调用,多个底层模块也可以同时由多个设计者同时进行设计,因而提高了设计效率;其次模块化设计比较自由,它既适合于自顶向下的设计,也适合于自底向上的设计。第第2 2章章 可编程逻辑器件的设计可编程逻辑器件的设计 2.1.2 设计输入 设计者将所设计的系统或电路以开发软件要求的某种形式表示出来,并送入计算机的过程称为设计输入。设计输入通常有以下几种方式:1.原
5、理图输入方式 这是一种最直接的设计描述方式,它使用软件系统提供的元器件库及各种符号和连线画出原理图,形成原理图输入文件。这种方式大多用在对系统及各部分电路很熟悉的情况,或在系统对时间特性要求较高的场合。当系统功能较复杂时,原理图输入方式效率低,它的主要优点是容易实现仿真,便于信号的观察和电路的调整。第第2 2章章 可编程逻辑器件的设计可编程逻辑器件的设计 2.硬件描述语言输入方式 硬件描述语言是用文本方式描述设计,它分为普通硬件描述语言和行为描述语言。普通硬件描述语言有ABELHDL#,CUPL等,它们支持逻辑方程、真值表、状态机等逻辑表达方式。行为描述语言是目前常用的高层硬件描述语言,有VH
6、DL和VerilogHDL等,它们都已成为IEEE标准,并且有许多突出的优点:如语言与工艺的无关性,可以使设计者在系统设计、逻辑验证阶段便确立方案的可行性;第第2 2章章 可编程逻辑器件的设计可编程逻辑器件的设计 又如语言的公开可利用性,使它们便于实现大规模系统的设计等;同时硬件描述语言具有很强的逻辑描述和仿真功能,而且输入效率高,在不同的设计输入库之间转换非常方便。因此,运用VHDL,VerilogHDL硬件描述语言设计已是当前的趋势。第第2 2章章 可编程逻辑器件的设计可编程逻辑器件的设计 3.波形输入方式 波形输入主要用于建立和编辑波形设计文件以及输入仿真向量和功能测试向量。波形设计输入
7、适合用于时序逻辑和有重复性的逻辑函数。系统软件可以根据用户定义的输入/输出波形自动生成逻辑关系。波形编辑功能还允许设计者对波形进行拷贝、剪切、粘贴、重复与伸展,从而可以用内部节点、触发器和状态机建立设计文件,并将波形进行组合,显示各种进制的状态值,还可以通过将一组波形重叠到另一组波形上,对两组仿真结果进行比较。第第2 2章章 可编程逻辑器件的设计可编程逻辑器件的设计 2.1.3 设计处理 这是器件设计中的核心环节。在设计处理过程中,编译软件将对设计输入文件进行逻辑化简、综合和优化,并适当地用一片或多片器件自动地进行适配,最后产生编程用的编程文件。1.语法检查和设计规则检查 设计输入完成之后,在
8、编译过程中首先进行语法检验,如检查原理图有无漏连信号线,信号有无双重来源,文本输入文件中关键字有无输错等各种语法错误,并及时列出错误信息报告供设计者修改;第第2 2章章 可编程逻辑器件的设计可编程逻辑器件的设计 然后进行设计规则检验,检查总的设计有无超出器件资源或规定的限制并将编译报告列出,指明违反规则情况以供设计者纠正。2.逻辑优化和综合 化简所有的逻辑方程或用户自建的宏,使设计所占用的资源最少。综合的目的是将多个模块化设计文件合并为一个网表文件,并使层次设计平面化(即展平)。第第2 2章章 可编程逻辑器件的设计可编程逻辑器件的设计 3.适配和分割 确定优化以后的逻辑能否与器件中的宏单元和I
9、/O单元适配,然后将设计分割为多个便于适配的逻辑小块形式映射到器件相应的宏单元中。如果整个设计不能装入一片器件时,可以将整个设计自动划分(分割)成多块并装入同一系列的多片器件中去。划分(分割)工作可以全部自动实现,也可以部分由用户控制,还可以全部由用户控制进行。划分时应使所需器件数目尽可能少,同时应使用于器件之间通信的引脚数目最少。第第2 2章章 可编程逻辑器件的设计可编程逻辑器件的设计 4.布局和布线 布局和布线工作是在设计检验通过以后由软件自动完成的,它能以最优的方式对逻辑元件布局,并准确地实现元件间的互连。布线以后软件会自动生成布线报告,提供有关设计中各部分资源的使用情况等信息。5.生成
10、编程数据文件 设计处理的最后一步是产生可供器件编程使用的数据文件。对CPLD来说,是产生熔丝图文件,即JEDEC文件(电子器件工程联合会制定的标准格式,简称JED文件);对于FPGA来说,是生成位流数据文件(Bitstream Generation)。第第2 2章章 可编程逻辑器件的设计可编程逻辑器件的设计 2.1.4 设计校验 设计校验过程包括功能仿真和时序仿真,这两项工作是在设计处理过程中间同时进行的。功能仿真是在设计输入完成之后,选择具体器件进行编译之前进行的逻辑功能验证,因此又称为前仿真。此时的仿真没有延时信息,对于初步的功能检测非常方便。仿真前,要先利用波形编辑器或硬件描述语言等建立
11、波形文件或测试向量(即将所关心的输入信号组合成序列),仿真结果将会生成报告文件和输出信号波形,从中便可以观察到各个节点的信号变化。若发现错误,则返回设计输入中修改逻辑设计。第第2 2章章 可编程逻辑器件的设计可编程逻辑器件的设计 时序仿真是在选择了具体器件并完成布局、布线之后进行的时序关系仿真,因此又称后仿真或延时仿真。由于不同器件的内部延时不一样,不同的布局、布线方案也给延时造成不同的影响,因此在设计处理以后,对系统和各模块进行时序仿真,分析其时序关系,估计设计的性能以及检查和消除竞争冒险等是非常有必要的。实际上这也是与实际器件工作情况基本相同的仿真。第第2 2章章 可编程逻辑器件的设计可编
12、程逻辑器件的设计 2.1.5 器件编程 编程是指将编程数据放到具体的可编程器件中去。对CPLD器件来说是将JED文件“下载(Down Load)”到CPLD器件中去,对FPGA来说是将位流数据BG文件“配置”到FPGA中去。器件编程需要满足一定的条件,如编程电压、编程时序和编程算法等。普通的CPLD器件和一次性编程的FPGA需要专用的编程器完成器件的编程工作。第第2 2章章 可编程逻辑器件的设计可编程逻辑器件的设计 基于SRAM的FPGA可以由EPROM或其它存储体进行配置。在系统的可编程器件(ISPPLD)则不需要专门的编程器,只要一根下载编程电缆就可以了。器件在编程完毕之后,可以用编译时产
13、生的文件对器件进行检验、加密等工作。对于具有边界扫描测试能力和在系统编程能力的器件来说,测试起来就更加方便。第第2 2章章 可编程逻辑器件的设计可编程逻辑器件的设计 2.2 在系统可编程技术在系统可编程技术 在系统可编程(InSystem Programmable,简称ISP)技术是 20 世纪 80 年代末Lattice公司首先提出的一种先进的编程技术。所谓“在系统编程”是指对器件、电路板或整个电子系统的逻辑功能可随时进行修改或重构的能力。这种重构或修改可以在产品设计、制造过程中的每个环节,甚至在交付用户之后进行。支持ISP技术的可编程逻辑器件称为在系统可编程逻辑器件(ISPPLD)。第第2
14、 2章章 可编程逻辑器件的设计可编程逻辑器件的设计 ISPPLD不需要使用编程器,只需要通过计算机接口和编程电缆,直接在目标系统或印刷线路板上进行编程。传统的可编程逻辑器件只能插在编程器上先进行编程,然后再装配,而ISPPLD则可以先装配,后编程。因此ISP技术有利于提高系统的可靠性,便于系统板的调试和维修。第第2 2章章 可编程逻辑器件的设计可编程逻辑器件的设计 2.2.1 在系统编程的基本原理 ISP技术是一种串行编程技术。下面以Lattice公司的ispLSI器件为例说明其编程原理。ispLSI器件的编程结构如图 2.2 所示。器件的编程信息数据用E2CMOS元件存储,E2CMOS元件按
15、行和列排成阵列,编程时通过行地址和数据位对E2CMOS元件寻址。第第2 2章章 可编程逻辑器件的设计可编程逻辑器件的设计 图 2.2 ispLSI器件的编程结构 第第2 2章章 可编程逻辑器件的设计可编程逻辑器件的设计 编程的寻址和移位操作由地址移位寄存器和数据移位寄存器完成。两种寄存器都按F1F0(先入先出)的方式工作。数据移位寄存器按低位字节和高位字节分开操作。由于器件是插在目标系统中或线路板上进行编程,因此在系统编程的关键是编程时如何使芯片与外系统脱离。从图 2.3 所示的编程接口可以看到,计算机和ISPPLD的编程接口有五根信号线,它们起到了传递编程信息的作用。其中 是编程使能信号。第
16、第2 2章章 可编程逻辑器件的设计可编程逻辑器件的设计 器件为正常工作状态,时,器件所有的I/O端被置成高阻状态,因而割断了芯片与外电路的联系,避免了被编程芯片与外电路的相互影响。SDI向串行移位寄存器提供编程数据和其它命令;SDO为数据输出线;MODE为编程状态机的控制线;SDI同时为模式控制线,同MODE 一起为编程状态机的控制线;SLCK为串行时钟线。第第2 2章章 可编程逻辑器件的设计可编程逻辑器件的设计 图 2.3 编程连接口 第第2 2章章 可编程逻辑器件的设计可编程逻辑器件的设计 图 2.4 ISP编程操作状态转移图 第第2 2章章 可编程逻辑器件的设计可编程逻辑器件的设计 SD
17、I具有双重功能:首先是作为器件的串行移位寄存器的数据输入端;其次它与MODE一起作为编程状态机的控制信号。SDI的功能受MODE控制。当MODE为低电平时,SDI作为移位寄存器的串行输入端;当MODE为高电平时,SDI为编程状态机的控制信号。ISP状态机共有三个状态:闲置态(IDLE)、移位态(SHIFT)和执行态(EXECUTE),其状态转移如图 2.4 所示。第第2 2章章 可编程逻辑器件的设计可编程逻辑器件的设计 ispLSI器件内部设有控制编程操作的时序逻辑电路,其状态受MODE和SDI信号的控制。器件进入ISP编程模式时,闲置态是第一个被激活的状态。在编程模式、器件空闲或读器件标识时
18、(每一个类型的ISP器件都有唯一的八位标识码ID),状态机处在闲置态。当MODE和SDI都置为高电平,并且在ISP状态机处在时钟沿时,状态转移到命令移位态。移位态主要是把指令装入状态机。在移位态下,当MODE处于低电平时,SCLK将指令移进状态机。第第2 2章章 可编程逻辑器件的设计可编程逻辑器件的设计 一旦指令装进状态机,状态机就必须转移到执行态,以执行指令,将MODE和SDI均置为高电平,状态机就从移位态转移到执行态。如果需要使状态机从移位态转移到闲置态,则将MODE置为高电平,SDI置为低电平。执行态主要是状态机执行在移位态已装入器件的指令。执行一个指令时,MODE置为低电平,SDI置为
19、任意态。将MODE和SDI均置为高电平时,状态机回到移位态;将MODE置为高电平和将SDI置为低电平时,状态机回到闲置态。第第2 2章章 可编程逻辑器件的设计可编程逻辑器件的设计 2.2.2 在系统编程方法 在系统可编程逻辑器件从编程元件上来分有两类:一类是非易失性元件的E2CMOS结构或快闪存储单元结构的可编程逻辑器件;另一类是易失性元件的SRAM结构的FPGA器件。现场可编程FPGA器件和ISPPLD都可以实现系统重构。采用ISPPLD器件通过ISP技术实现的系统重构称为静态重构;由基于SRAM的FPGA实现的系统重构称为动态重构。第第2 2章章 可编程逻辑器件的设计可编程逻辑器件的设计
20、所谓“动态重构”是指在系统运行期内,可根据需要适时地对芯片重新配置以改变系统的功能。FPGA可以无限次地被重新编程,利用它可以在一秒钟内几次或数百次地改变器件执行的功能,甚至对器件的部分区域进行重组,且在部分重组期间,芯片的其它部分仍可有效地运行。目前在系统编程的实现方法有以下几种:第第2 2章章 可编程逻辑器件的设计可编程逻辑器件的设计 1.利用计算机接口和下载电缆对器件编程 连接电路如图 2.5 所示。一种方法需要在ISP器件的开发软件支持下进行。它可以利用串口的Bit Blaster串行下载或利用并口的Byte Blaster并行下载。例如,对Altera公司的CMOS结构的MAX700
21、0 系列器件或SRAM结构的FLEX系列器件均适应。另一种方法是脱离ISP的开发环境,根据编程时序的要求,利用自己的软件向ISP器件写入编程数据。这种方法多适用于SRAM结构的FPGA器件。第第2 2章章 可编程逻辑器件的设计可编程逻辑器件的设计 图 2.5 利用PC机和编程电缆对ISPPLD编程第第2 2章章 可编程逻辑器件的设计可编程逻辑器件的设计 2.利用目标板上的单片机或微处理器对ISP器件编程 这种在系统编程方法是将编程数据存储在目标板上的EPROM中,当目标板上电时自动对ISP器件进行编程。编程的关键在于提供准确定时的ISP编程时钟。此种编程方法多适用于易失性的SRAM结构的FPG
22、A器件。第第2 2章章 可编程逻辑器件的设计可编程逻辑器件的设计 3.多芯片ISP编程 ISP器件有一种特殊的串行编程方式,称为菊花链结构(Daisy Chain),如图 2.6 所示。其特点是各片共用一套ISP编程接口,每片的SDI输入端与前一片的SDO输出端相连,最前面一片的SDI端和最后一片的SDO端与ISP编程口相连,构成一个类似移位寄存器的链形结构。链中器件数可以很多,只要不超出接口的驱动能力即可。第第2 2章章 可编程逻辑器件的设计可编程逻辑器件的设计 图 2.6 菊花链编程结构 第第2 2章章 可编程逻辑器件的设计可编程逻辑器件的设计 2.2.3 在系统编程技术的优越性 利用IS
23、P技术可以完全摆脱编程器,并且解决传统可编程器件比较难以解决的问题。例如,多个器件同时编程、管脚间距很密(例如TQFP的间隙不到 0.6 mm)、器件的编程和管脚弯曲等问题。ISP技术开始了器件编程一个新的时代,对系统的设计、制造、测试和维护也产生了重大的影响。由于ISP器件允许在设计、测试和制造过程中和器件焊接在电路板的条件下重构系统,这种能力给样机设计、电路板调试、系统制造和系统升级带来革命性的变化。例如,它简化了生产流程,可以免去重做印刷电路板的工作,同时也提供了遥控现场升级和维护的可能。第第2 2章章 可编程逻辑器件的设计可编程逻辑器件的设计 为今后的系统重构提供了新思路。采用ISP技
24、术,使系统内硬件的功能可以像软件一样通过编程来配置,从而在电子系统中引入了“软”硬件的全新概念。它不仅可以使电子系统的设计和产品性能的改进以及扩充变得十分简便,还使新一代电子系统具有有极强的灵活性和适应性。例如可以利用FPGA可重复再配置的功能使单个硬件实现多任务、多功能的要求,从而使系统用较少的部件和硬件费用实现较多的功能,并能在多个系统功能之间动态地进行互换;第第2 2章章 可编程逻辑器件的设计可编程逻辑器件的设计 此外,可再配置FPGA正在勾画着未来的计算机,这种计算机包含一组互相连接在一起的FPGA,能将计算机的软件程序映射成FPGA的硬件来执行,从而大大加速了计算机系统的运行。因此I
25、SP为系统重构的发展提供了新思路,被称为在最终用户产品中实现“设计的可再编程性”的时代已经到来。第第2 2章章 可编程逻辑器件的设计可编程逻辑器件的设计 2.3 边界扫描技术边界扫描技术 边界扫描测试技术主要解决芯片的测试问题。20 世纪 80 年代后期,对电路板和芯片的测试出现了困难。以往在生产过程中,对电路板的检验是由人工或测试设备进行的,但随着集成电路密度的提高,集成电路的引脚也变得越来越密,测试变得很困难。例如,TQFP封装器件,管脚的间距仅有 0.6 mm,这样小的空间内几乎放不下一根探针。第第2 2章章 可编程逻辑器件的设计可编程逻辑器件的设计 边界扫描测试(BST-Boundar
26、yScan Testing)是针对器件密度及I/O口数增加,信号注入和测取难度越来越大而提出的一种新测试技术。它是由联合测试活动组织(JTAG)提出来的,后来IEEE对此制定了测试标准,称为IEEE1194.1 标准。BST结构不需要使用外部的物理测试探针来获得功能数据,它可以在器件(必须是支持JTAG技术的ISP可编程器件)正常工作时进行。器件的边界扫描单元能够迫使逻辑追踪引脚信号,或是从引脚、器件核心逻辑信号中捕获数据。强行加入的测试数据串行地移入边界扫描单元,捕获的数据串行移出并在器件外部同预期的结果进行比较。图 2.7 说明了边界扫描测试的方法。第第2 2章章 可编程逻辑器件的设计可编
27、程逻辑器件的设计 图 2.7 边界扫描测试方法 第第2 2章章 可编程逻辑器件的设计可编程逻辑器件的设计 该方法提供了一个串行扫描路径,它能捕获器件核心逻辑的内容,或者测试遵守IEEE规范的器件之间的引脚连接情况。通过JTAG测试端口实现对ISP器件的在系统编程,可以很容易的完成电路测试。标准的边界扫描测试只需要四根信号线,即TDI(测试数据输入)、TDO(测试数据输出)、TMS(测试模式选择)和TCK(测试时钟输入),能够对电路板上所有支持边界扫描的芯片内部逻辑和边界管脚进行测试。应用边界扫描技术能够增强芯片、电路板甚至系统的可测试性。第第2 2章章 可编程逻辑器件的设计可编程逻辑器件的设计 边界扫描技术有着广阔的发展前景。现在已经有多种器件支持边界扫描技术,如Xilinx4000系列的FPGA以及Lattice的ispLSI3000、ispLSI6000系列与Altera的MAX7000、MAX9000,FLEX6000,FLEX8000,FLEX10K等 器 件 和MACH4000,5000系列都支持边界扫描。
限制150内