基于CPLD与FPGA的数字IC设计方法DesigningwithFPGA&CPLDs一套完整的设计数字集成电路的方法1.立项:对要设计的数字集成电路进行市场调查,以明确它的应用前景;如果市场看好,则要为其制定详细的设计规范。2.准备:为设计的项目选择合适的CPLD或FPGA以及相应的开发工具(软件),说到底就是选择合适的生产供应商。3.设计:采用自上而下的设计方法把整个设计项目划分成若干个模块,然后对各个模块分别进行设计。4.仿真:就是在设计的每一个阶段都要进行仿真,要对每一个设计子模块进行仿真。5.检验:就是要对整个设计项目进行检验。前言复杂可编程逻辑器件(CPLD)和现场可编程门阵列(FPGA)已经日益成为每一个系统设计中十分重要的部分。历史回顾:可编程逻辑集成电路到专用集成电路ASIC1.可编程逻辑阵列(PLA)的输入和输出端均有反相器,以便获得取反的信号。与阵列或阵列输入端输出端可用外部触发器构成状态机。PLA的与阵列和或阵列中的每一个连接点,都可以被编程连接或是不连接。这样就可以实现布尔函数。人们开发出了简易的高级语言---ABEL,PALASM和CUPL,可以把布尔方程转换为数据文件。例如:a=(b&!c)|(b&!d&e)简易高级语言的出现为可编程器件开辟了一个新领域。在这里,逻辑可以用具有可读性的程序来描述。这种程序较之1,0编出来的程序,是一种更高级的程序。2.可编程阵列逻辑(PAL)由于a+b=(a’b’)’,所以,只要使用与和非就能代替所有的或运算。这样减少了或阵列的需要。节省的面积可以用来制造其他的基本逻辑器件,像多路开关、异或门和锁存器。最重要的是:可以把时钟控制元件(典型的就是触发器)也做到PAL里。这样一来,这些器件就可以实现大量的逻辑函数,包括状态机所需要的时钟时序逻辑。2.可编程阵列逻辑(PAL)(续)见黑板上的PAL结构图:有圆点的地方表示交叉点已被编程。用或门表示固定个数的变量相或。一个时钟输入端用于触发器的时钟输入。触发器的输出既可以向片外驱动,也可以反馈回与阵列,以便于实现一个状态机。由于包含触发器,增大了PAL的复杂性和使用潜力,也产生了一种对新编程方法的需求。于是第一个HDL诞生了。简单的HDL包括ABEL,CUPL和PALASM。他们是Verilog和VHDL的先驱。Verilog和VHDL是复杂的多的语言,被用于FPGA,CPLD和ASIC的设计。2.掩膜门阵列ASIC(1)一个专用集成电路,或者叫ASIC,他并不是可编程器件,但却是将技术开发引向CPLD和FPGA的重要先驱。一个工程师可以设计一片ASIC芯片,而不需要具有专门的半导体物理或半导体制造加工方面的知识。用两种内部结构之一来实现ASIC:门阵列或标准单元。由于门阵列与CPLD和FPGA有关,所以现在仅讨论门阵列。门阵列ASIC是由有规则的晶体管排列构造出的行列所组成的,围绕在芯片四周的小片就是I/O单元。这些单元包含了输入和输出缓冲器以及有限的晶体管。2.掩膜门阵列ASIC(2)阵列内核的内部,是基本的逻辑单元和门电路。其中每个单元均由一些少量的晶体管组成。这些晶体管未作链接。实际上,门阵列上所有的晶体管在初始时是根本不链接的。之所以这样,是因为晶体管的连接完全取决于所要实现的设计任务。首先将各底层的逻辑功能连接在一起。例如,6只晶体管可以接成一个D触发器。这6只晶体管在物理位置上彼此靠的很近。当所有底层的逻辑功能实现以后,就可以按照顺序将他们连在一起。布局设计软件将会继续这个过程,直至完成整个设计方案。2.掩膜门阵列ASIC(3)ASIC的厂商制造了许多未连接成型的管芯片。这些管芯片包含了若干门阵列电路,可为任何门阵列的用户所使用。一块集成电路由多层材料所组成。其中包括半导体材料、绝缘体和导体。一个未连接的管芯片是用上述加工制造的。当然,不包括最后的金属层,因为金属层的作用是将各门电路连接在一起。一旦完成设计,厂商只需对每个金属层进行照相掩膜,并将这最后的金属层加到管芯片上。于是就生产出了自己的芯片。如果设计中发现一个小错误,那样修改这个错误,并重新生产出新的ASIC芯片就需要花费很长时间和昂贵的生产费用。理想的情况是,硬件工程师需要的某种器件既具有ASIC优点(电路的高密度和高速度),同时具有一个可编程器件较短的转换功能时间。解决的办法来自于两种新型的器件:复杂可编程逻辑器件(CPLD)和现场可编程门阵列(FPGA)。CPLD的工作速度与PAL一样快,但前者比后者更复杂。FPGA接近于门阵列的复杂程度,但是仍然可编程。CPLD结构和工艺PAL一样,FPGA的结构则类似于门阵列ASICCPLD和FPGA很短的交货时间可编程的没有非循环工程的费用高密度性能实现许多逻辑函数速度相对较快PAL门阵列小结在开发出CPLD和FPGA之前,有几种可编程和用户半定制的技术。本节从回顾可编程器件(PLA,PAL)的结构、特性、用途及优缺点开始。这些器件均应用于CPLD和FPGA产生之前。然后,描述了ASIC,并考察了一种叫做门阵列的特殊类型ASIC结构的组成。之后,又讨论了一个门阵列的结构、特性、用途及优缺点。最后,简单地介绍了CPLD和FPGA。作为可编程芯片的解决方案,CPLD和FPGA填充了可编程器件和门阵列ASIC之间的沟壑。练习1.ASIC表示什么意思?a、标准集成芯片应用;b、应用系统集成电路;c、专用集成电路。(a)一种具有大规模的与阵列和或阵列的逻辑器件,他可以用于实现布尔逻辑的不同组合。(b)一种逻辑器件。它是由大规模的与阵列和规模很小且数量固定的或门组成。它可以实现布尔函数和状态机。(c)一种由许多PAL构成的逻辑器件。(d)一种可被用来设计实现很多大型的逻辑函数的逻辑器件。除了他能被快速的编程并且价格不贵以外,很像ASIC。2.连线A、PLAB、PALC、CPLDD、FPGA3.用PAL或ASIC填空1.____具有很短的交货时间。2.____是高密度器件。3.____能实现非常复杂的逻辑函数。4.____没有非循环工程费用。5.____可编程。复杂可编程逻辑器件(CPLD)复杂可编程逻辑器件(CPLD)如何将CPLD和他的姊妹FPGA相区别。第一个特点是该器件的内部结构以及这种结构如何实现逻辑函数;第二个特点是制造该器件所用到的半导体技术------允许器件可被编程,允许器件内部各种电路结构相互连接。本节目标重点介绍CPLD的结构和制造技术。具体目标如下:1.了解CPLD的内部结构。2.获得有关技术的知识。这些技术用于CPLD的编程和其内部模块的互相连接。3.明白不同结构和不同技术各自具有的优点和折中方案。2.1CPLD体系结构最早的CPLD设计好像在一片芯片上集成大量的PAL,通过交叉点开关把这些PAL互相连接起来。这种结构就使得它们同印刷电路板设计者密切起来,这些设计者已经把PAL设计到期印刷电路板上。大量使用CPLD可以简化多PAL的组合,以便于在一块印刷电路板上节省使用面积。CPLD和PAL使用同一开发工具和编程器,并且是基于同一种技术制造的;但是CPLD却可以处理复杂的多的逻辑,所实现的逻辑规模也要大得多。下图示出了一个典型的CPLD内部结构。尽管各制造商在生产时有各种不同的变化,但是有一点是类似的,即所生产CPLD都是由功能模块、输入/输出模块和一个互连矩阵所组成。输入/输出互连矩阵输入/输出功能模块功能模块功能模块功能模块功能模块功能模块功能模块功能模块2.2功能模块功能模块由“与”阵列和数目固定的“或”门组成。“与”阵列由图交叉线段所示。“与”阵列能接受来自I/O模块和另一个功能模块的输入量,或者也可以接受同一个模块反馈回来的输入量。在“与”阵列中,位于每一个交叉点上的编程元件能使垂直线被连接到水平线上或是保持与之断开,这就产生了乘积项。然后这些乘积项再被“或”在一起并被直接或通过一个钟控触发器传送出本模块。图中还有一些标示为M1,M2和M3的梯形框,这些梯形框就是多路转换器,每一个多路转换器的下面有一只场效应(FET)晶体管。他表示连接到选择线上的一个编程元件。换句话说,多路转换器可以被编程为从多个输入信号中选择一个进行输出。因为M1是选择一个用于清除触发器的信号,所以M1叫做“清除选择”。M2多路转换器上标示着“时钟/使能选择”,是因为他的两个输入端被编程,以使得它可以控制触发器的时钟和时钟使能输入。M3多路转换器上标示着“寄存器旁路”,因为它可以被编程,以确定功能模块的输出信号是一个寄存信号(一个触发器的输出),还是一个组合信号(组合逻辑的输出)。许多CPLD都包含额外的、特殊的逻辑。具体到本模块,他包含了一个“异或”门。可以通过把此异或门的一个输入端编程为0,而将该异或门有效地旁路。因为要想在一个PAL里实现这种额外的、特殊的逻辑功能是困难的,所以拥有一个异或门是件好事。使用异或门可以很容易地在总线中产生机偶位,以此来进行简单的误码检测。每一个功能模块实际上都有很多或门、逻辑门、多路转换器和触发器。2.3I/O模块典型的CPLD的I/O模块如下图。I/O模块的作用是以合适的电平(例如TTL,CMOS)把内部信号驱动到CPLD器件的外部引脚上。典型的情况是,I/O模块允许每一个I/O引脚被单独的配置成为输入、输出,或双向操作的引脚。I/O引脚都有一个三态输出缓冲器。来自开关矩阵VccGND来自功能模块至功能模块或开关矩阵开漏输出摆率控制2.4时钟驱动器为了保证同步设计,时钟信号必须同一时间到达电路中每一个触发器的时钟输入端。2.5内部互连内部互连是可编程的。允许任何信号输出传送到片内任何信号目的地。&&………|至功能模块的输入端开关矩阵至功能模块的输出端2.6嵌入式器件一个与许多CPLD器件的结构相关的新近增加的器件就是嵌入式器件。这种器件是由集成了大规模功能器件的CPLD所组成。这些器件可通过开关矩阵连接到CPLD的其他剩余部分。嵌入式的器件的出现把“可编程系统芯片(SoPC)”的概念更加拉近到工程师的面前。现在工程师们可以将处理器、存储器和其他复杂的标准气件直接移入CPLD。嵌入式的主要优点是节省费用,缩小印刷电路板面积和通常情况下的低功耗。目前,这些器件主要有:SRAMFlash微控制器微处理器DSPPLL网络处理器小结:选择CPLD的准则功能模块的性能,数量;嵌入式器件;I/O引脚的数量和类型;始终输入引脚数量等等。练习CPLD表示什么意思?1.复杂可编程逻辑器件;2.组合可编程逻辑器件;3.组合可编程局部器件。