1、第第1212章章 可编程逻辑器件可编程逻辑器件是由编程来确定其逻辑功能的器件。是由编程来确定其逻辑功能的器件。Programmable Logical Device,简称,简称 PLD本章目标本章目标赖祖亮赖祖亮 小木虫小木虫了解可编程逻辑器件了解可编程逻辑器件FPGA/CPLD的的基本工作原理及其分类基本工作原理及其分类了解不同厂商的可编程逻辑器件了解不同厂商的可编程逻辑器件FPGA/CPLD产品产品熟练根据设计要求,能够对可编程逻熟练根据设计要求,能够对可编程逻辑器件辑器件FPGA/CPLD进行选型进行选型能够根据能够根据FPGA/CPLD开发流程进行开发流程进行应用设计应用设计引引 言言
2、可编程逻辑器件可编程逻辑器件是指可以通过是指可以通过软件手段软件手段更改、配置器件更改、配置器件内部连接结内部连接结构和逻辑单元构和逻辑单元,完成既定设计功能的,完成既定设计功能的数字集成电路。数字集成电路。广义上讲,可编程逻辑器件是指一切通过软件手段更改、配置器件广义上讲,可编程逻辑器件是指一切通过软件手段更改、配置器件内部连接结构和逻辑单元,完成既定设计功能的数字集成电路。内部连接结构和逻辑单元,完成既定设计功能的数字集成电路。 当今主流的可编程逻辑器件主要分为当今主流的可编程逻辑器件主要分为复杂可编程逻辑器件(复杂可编程逻辑器件(CPLD)和和现场可编程门阵列(现场可编程门阵列(FPGA
3、)2大类。大类。采用可编程逻辑器件,通过采用可编程逻辑器件,通过定义器件内部的逻辑和输入、输出引出定义器件内部的逻辑和输入、输出引出端端,将原来由,将原来由电路板设计完成的大部分工作放在芯片设计中进行电路板设计完成的大部分工作放在芯片设计中进行。大大大大减轻了电路图设计和电路板设计的工作量和难度减轻了电路图设计和电路板设计的工作量和难度,从而,从而有效地有效地增强了设计的灵活性,提高了工作效率增强了设计的灵活性,提高了工作效率。内容提要内容提要Altera主流主流CPLD/FPGA最小硬件系统设计最小硬件系统设计 CPLD/FPGACPLD/FPGA厂商及产品概述厂商及产品概述 CPLD/FP
4、GA的基本结构的基本结构 PLD的可编程原理的可编程原理 PLD的发展及分类的发展及分类 QuartusIIQuartusII软件入门向导软件入门向导 进行可编程逻辑设计时,进行可编程逻辑设计时,通过定义器件内部的逻辑和输入、输出引通过定义器件内部的逻辑和输入、输出引出端,将原来由电路板设计完成的大部分工作放在芯片设计中进行。出端,将原来由电路板设计完成的大部分工作放在芯片设计中进行。在采用在采用PLD设计逻辑电路时,设计者借助计算机在相关集成开发软设计逻辑电路时,设计者借助计算机在相关集成开发软件平台上完成数字逻辑电路的描述,通过编译和逻辑网表的生成后,件平台上完成数字逻辑电路的描述,通过编
5、译和逻辑网表的生成后,将相关数据写入将相关数据写入PLD器件,最终在器件上实现通过计算机所做的逻器件,最终在器件上实现通过计算机所做的逻辑电路描述和系统设计辑电路描述和系统设计自自20世纪世纪80年代以来,年代以来,PLD发展非常迅速,器件的速度指标得到飞发展非常迅速,器件的速度指标得到飞速提高,速提高,FPGA的门延时已小于的门延时已小于5 ns,CPLD的工作速度也已达到的工作速度也已达到数百数百MHz以上。采用以上。采用PLD设计的数字系统的工作速度及工作可靠性设计的数字系统的工作速度及工作可靠性远远优于传统的中小规模数字逻辑器件远远优于传统的中小规模数字逻辑器件12.1.1 可编程逻辑
6、器件综述可编程逻辑器件综述 目前,可编程逻辑器件已发展为目前,可编程逻辑器件已发展为CPLD/FPGA两大结构阵营体系,两大结构阵营体系,分别适合于承担组合逻辑设计及复杂的时序逻辑设计。分别适合于承担组合逻辑设计及复杂的时序逻辑设计。12.1.2 可编程逻辑器件的发展历程可编程逻辑器件的发展历程 按集成度进行分类按集成度进行分类 1按阵列进行分类按阵列进行分类 2乘积项结构乘积项结构PLD:基本结构为乘积项,采用基本结构为乘积项,采用“与与-或阵列或阵列”。 (大部分简单大部分简单PLD和和CPLD都属于这个范畴都属于这个范畴)查找表结构查找表结构FPGA:简单的查找表构成可编程门,再构成阵列
7、形简单的查找表构成可编程门,再构成阵列形式。式。(大多数大多数FPGA属于此类器件属于此类器件)12.1.3 可编程逻辑器件的分类可编程逻辑器件的分类 按编程工艺进行分类按编程工艺进行分类 31熔丝(熔丝(Fuse)型器件:)型器件:编程过程就是根据设计的熔丝图文编程过程就是根据设计的熔丝图文件来烧断对应的熔丝,达到编程的目的件来烧断对应的熔丝,达到编程的目的2反熔丝(反熔丝(Anti-fuse)型器件:)型器件:与熔丝烧断获得开路相反与熔丝烧断获得开路相反3EPROM型:紫外擦除电可编程,型:紫外擦除电可编程,与熔丝、反熔丝型不同,与熔丝、反熔丝型不同,可多次编程可多次编程4EEPROM型:
8、电可擦写编程器件,不需紫外线擦除型:电可擦写编程器件,不需紫外线擦除 5SRAM型:型:即即SRAM查找表结构的器件。大部分查找表结构的器件。大部分FPGA器件器件均均采用此编程工艺。编程速度最快,在断电后数据立即丢失,采用此编程工艺。编程速度最快,在断电后数据立即丢失,再次上电需要再次编程。通过外挂专用的再次上电需要再次编程。通过外挂专用的EEPROM器件来辅助器件来辅助存储编程数据,下次上电时自动将数据导入存储编程数据,下次上电时自动将数据导入FPGA的的SRAM6Flash型:采用型:采用Flash工艺的反熔丝型工艺的反熔丝型 器件,器件,实现多次可编实现多次可编程,同时做到掉电后不需要
9、重新配置程,同时做到掉电后不需要重新配置12.2 简单简单PLD的可编程原理的可编程原理 n数字系统都是由基本门来构成的数字系统都是由基本门来构成的n任何组合逻辑电路都可以用任何组合逻辑电路都可以用“与门与门-或门或门”二级电路实现;二级电路实现;n任何时序逻辑电路都可以由组合逻辑电路加上存储元件(触任何时序逻辑电路都可以由组合逻辑电路加上存储元件(触发器、锁存器构成)发器、锁存器构成)n人们由此提出乘积项可编程电路结构,原理结构如下:人们由此提出乘积项可编程电路结构,原理结构如下:固定连接固定连接 可编程连接可编程连接 断开连接断开连接PLD 中与门和或门的习惯画法中与门和或门的习惯画法(
10、(a) )( (b) )YCABCBAACBYYYCBA1AAAAAAPLD 器件中连接的习惯画法器件中连接的习惯画法 (a)一般画法一般画法 输入缓冲电路输入缓冲电路(b)PLD 中的中的习惯画法习惯画法电路符号表示电路符号表示 1输入电路:用来产生所需的原变量及反变量输入电路:用来产生所需的原变量及反变量与阵列:与阵列:由多个多输入与门组成,用以产生输入变量的各乘积项由多个多输入与门组成,用以产生输入变量的各乘积项或阵列:或阵列:由多个多输入或门组成,用以产生或项,即将输入的某些乘由多个多输入或门组成,用以产生或项,即将输入的某些乘积项相加积项相加可编程逻辑器件的基本结构可编程逻辑器件的基
11、本结构 2CABCCA BBAW7 = ABCABCW0 =ABCY3Y2Y1 与阵列与阵列或阵列或阵列左图表示的逻辑式:左图表示的逻辑式: Y1 = ABC + ABC + ABC Y2 = ABC + ABC Y3 = ABC + ABC可编程逻辑器件逻辑表达式输出可编程逻辑器件逻辑表达式输出 3乘积项阵列实际上就是乘积项阵列实际上就是一个一个 “与或与或”阵列,阵列,每一个交叉点都是一个每一个交叉点都是一个可编程熔丝,如果导通可编程熔丝,如果导通就是实现就是实现“与与”逻辑,逻辑,在在“与与”阵列后一般还阵列后一般还有一个有一个“或或”阵列,用阵列,用以完成最小逻辑表达式以完成最小逻辑表
12、达式中的中的“或或”关系。关系。“与与或或”阵列配合工作,完阵列配合工作,完成复杂的组合逻辑功能。成复杂的组合逻辑功能。12.2 PROM、PLA、PAL及及GAL PROM (可编程只读存储器)(可编程只读存储器):只能用于组合电路可编只能用于组合电路可编程,不适于多输入变量的组合函数,浪费严重程,不适于多输入变量的组合函数,浪费严重PAL(可编程阵列逻辑(可编程阵列逻辑):):是是PLA的改进型与阵列可编的改进型与阵列可编程,或阵列固定,程,或阵列固定,IO结构不通用,不同的用途种类繁多,结构不通用,不同的用途种类繁多,熔丝工艺,一次编程熔丝工艺,一次编程PLA(可编程逻辑阵列):可编程逻
13、辑阵列):与、或阵列均可编程,利用与、或阵列均可编程,利用率高,需要逻辑函数的最简与或表达式,公共与项难利率高,需要逻辑函数的最简与或表达式,公共与项难利用,软件算法较复杂。用,软件算法较复杂。GAL(通用阵列逻辑):(通用阵列逻辑):EEPROM工艺,改进了工艺,改进了IO结结构,增加了输出逻辑宏单元(构,增加了输出逻辑宏单元(OLMC,Output Macro Cell),通用性好),通用性好逻辑阵列固定与可编程的结构示意图逻辑阵列固定与可编程的结构示意图15PROM、PLA、PAL、GAL特征及优缺点对比特征及优缺点对比随着集成工艺的不断发展,现代可编程逻辑器件已进入随着集成工艺的不断发
14、展,现代可编程逻辑器件已进入大容量大容量CPLD/FPGA 时代,使得单片逻辑系统的实现成时代,使得单片逻辑系统的实现成为事实。为事实。12.3 CPLD与与FPGA的基本结构的基本结构 早期早期的的PROM只能存储少量数据,完成简单逻辑功能;只能存储少量数据,完成简单逻辑功能;中期中期的的PAL、GAL等能完成中大规模的数字逻辑功能;等能完成中大规模的数字逻辑功能;现代现代微电子设计技术与微电子工艺的发展,将可编程逻微电子设计技术与微电子工艺的发展,将可编程逻辑器件推进到了新的高度,进入了辑器件推进到了新的高度,进入了CPLD/FPGA时代时代v 当今当今的复杂可编程逻辑器件(的复杂可编程逻
15、辑器件(CPLD)及现场可编程)及现场可编程门阵列(门阵列(FPGA)可以完成超大规模的复杂组合逻辑)可以完成超大规模的复杂组合逻辑与时序逻辑;与时序逻辑;v 目前,在目前,在FPGA上已可集成中央处理器(上已可集成中央处理器(CPU)或数)或数字处理器(字处理器(DSP)内核,为实现片上可编程系统)内核,为实现片上可编程系统 (SOPC,System OnProgrammable Chip)提供了)提供了强大的硬件支持强大的硬件支持 。12.3 CPLD与与FPGA的基本结构的基本结构 早期早期的的PROM只能存储少量数据,完成简单逻辑功能;只能存储少量数据,完成简单逻辑功能;中期中期的的P
16、AL、GAL等能完成中大规模的数字逻辑功能;等能完成中大规模的数字逻辑功能;现代现代微电子设计技术与微电子工艺的发展,将可编程逻微电子设计技术与微电子工艺的发展,将可编程逻辑器件推进到了新的高度,进入了辑器件推进到了新的高度,进入了CPLD/FPGA时代时代v 当今当今的复杂可编程逻辑器件(的复杂可编程逻辑器件(CPLD)及现场可编程)及现场可编程门阵列(门阵列(FPGA)可以完成超大规模的复杂组合逻辑)可以完成超大规模的复杂组合逻辑与时序逻辑;与时序逻辑;v 目前,在目前,在FPGA上已可集成中央处理器(上已可集成中央处理器(CPU)或数)或数字处理器(字处理器(DSP)内核,为实现片上可编
17、程系统)内核,为实现片上可编程系统 (SOPC,System OnProgrammable Chip)提供了)提供了强大的硬件支持强大的硬件支持 。CPLD:复杂可编程逻辑器件:复杂可编程逻辑器件 1CPLD( Complex Programmable Logic Device )是)是在在PAL、GAL基础上发展起来的,采用基础上发展起来的,采用EEPROM工艺,工艺,实现的逻辑功能比实现的逻辑功能比PAL、GAL有了大幅度的提升;有了大幅度的提升;CPLD一般可以完成设计中较复杂、较高速度的逻辑功一般可以完成设计中较复杂、较高速度的逻辑功能,如接口转换、总线控制等。能,如接口转换、总线控制
18、等。FPGA:现场可编程门阵列:现场可编程门阵列 2FPGA( Field Programmable Gate Array ),是在),是在CPLD的基础上发展起来的,采用查找表结构,是一种的基础上发展起来的,采用查找表结构,是一种新型高性能可编程逻辑器件。新型高性能可编程逻辑器件。FPGA采用采用SRAM工艺,集成度很高,器件密度从数万工艺,集成度很高,器件密度从数万系统门到数千万系统门不等系统门到数千万系统门不等FPGA可以完成极其复杂的时序与组合逻辑电路功能,可以完成极其复杂的时序与组合逻辑电路功能,适用于高速、高密度的高端数字逻辑电路设计领域,如适用于高速、高密度的高端数字逻辑电路设计
19、领域,如数字信号处理、高速数据采集等。数字信号处理、高速数据采集等。ASIC:专用集成电路:专用集成电路 3ASIC是固定的或定制的逻辑器件,是为了满足特定的是固定的或定制的逻辑器件,是为了满足特定的用途而设计的芯片,用途而设计的芯片,ASIC通过固化的逻辑功能和大规通过固化的逻辑功能和大规模的工业化生产,降低了芯片的成本,同时提高了产模的工业化生产,降低了芯片的成本,同时提高了产品的可靠性。品的可靠性。但是但是ASIC的设计已经固定,今后升级改版难度、投资的设计已经固定,今后升级改版难度、投资都比较大,灵活性差等缺陷制约着它的应用范围。都比较大,灵活性差等缺陷制约着它的应用范围。FPGA可以
20、零活地更改逻辑设计,根据需要,可以随时可以零活地更改逻辑设计,根据需要,可以随时随地的设计、更改大规模数字逻辑,具有随地的设计、更改大规模数字逻辑,具有ASIC无法比无法比拟的优势。拟的优势。不过,由于不过,由于FPGA功耗、体积都比功耗、体积都比ASIC大,在逻辑设计大,在逻辑设计的前期,采用的前期,采用FPGA进行验证,待设计定型后再直接转进行验证,待设计定型后再直接转向向ASIC投产,克服了直接进行投产,克服了直接进行ASIC设计的弊端。设计的弊端。12.3.1 CPLD的基本结构的基本结构 CPLD的结构相对比较简单,基本都由可编程的结构相对比较简单,基本都由可编程I/O单元、单元、基
21、本逻辑单元、布线池和其它辅助功能模块构成基本逻辑单元、布线池和其它辅助功能模块构成 。可编程可编程I/O单元用来完成不同电气特性下对输入输出单元用来完成不同电气特性下对输入输出信号的驱动与匹配。与信号的驱动与匹配。与FPGA相比,相比,CPLD的可编程的可编程I/O的性能和复杂度都较低。的性能和复杂度都较低。 基本逻辑单元是基本逻辑单元是CPLD的主体,通过不同的配置,的主体,通过不同的配置,CPLD的基本逻辑单元可以完成不同类型的逻辑功能。的基本逻辑单元可以完成不同类型的逻辑功能。MC的本质是有一些与、或阵列加上触发器构成的;的本质是有一些与、或阵列加上触发器构成的;CPLD广泛采用的乘积项
22、代表了广泛采用的乘积项代表了MC中与阵列的输出,中与阵列的输出,其数量标志了其数量标志了CPLD的容量;的容量; 可编程可编程I/O单元单元 1基本逻辑单元基本逻辑单元 2布线池本质上就是一个开关矩阵,通过打结点可以完成布线池本质上就是一个开关矩阵,通过打结点可以完成不同不同MC的输入与输出项之间的连接的输入与输出项之间的连接 。由于由于CPLD的布线池结构固定,所以的布线池结构固定,所以CPLD的输入管脚的输入管脚到输出管脚的标准延时固定,被称为到输出管脚的标准延时固定,被称为Pin to Pin延时,延时,用用Tpd表示,它反应了表示,它反应了CPLD器件可以实现的最高频率器件可以实现的最
23、高频率辅助功能模块如辅助功能模块如JTAG(IEEE 1532、IEEE 1149.1)编)编程模块,一些全局时钟、全局使能、全局复位程模块,一些全局时钟、全局使能、全局复位/置位单置位单元等。元等。 布线池、布线矩阵布线池、布线矩阵3辅助功能模块辅助功能模块412.3.2 FPGA的基本结构的基本结构 不同厂商的不同厂商的FPGA的基本构架都可简化为的基本构架都可简化为6个部分,分别为可个部分,分别为可编程输入编程输入/输出单元、基本可编程逻辑单元、嵌入式输出单元、基本可编程逻辑单元、嵌入式RAM、丰富的布线资源、底层嵌入功能单元和内嵌专用硬核等丰富的布线资源、底层嵌入功能单元和内嵌专用硬核
24、等输入输入/输出(输出(Input/Output)单元简称)单元简称I/O单元,它们是单元,它们是芯片与外界电路的接口部分。芯片与外界电路的接口部分。 基本可编程逻辑单元是可编程逻辑的主体,通过改变其基本可编程逻辑单元是可编程逻辑的主体,通过改变其内部连接与配置来不同的逻辑功能;内部连接与配置来不同的逻辑功能;FPGA一般基于一般基于SRAM工艺,其基本可编程逻辑单元几工艺,其基本可编程逻辑单元几乎都是由查找表(乎都是由查找表(LUT,Look Up Table)和寄存器)和寄存器(Register)组成的;)组成的;可编程可编程I/O单元单元 1基本可编程逻辑单元基本可编程逻辑单元2在应用设
25、计中进行器件选型时,一个基本的原则就是根在应用设计中进行器件选型时,一个基本的原则就是根据底层配置单元的据底层配置单元的LUT和和Register比率来对器件规模进比率来对器件规模进行估算,从而选择合适的器件。行估算,从而选择合适的器件。FPGA内部一般都包含嵌入式块内部一般都包含嵌入式块RAM单元,实现单元,实现RAM、ROM、CAM、FIFO等存储结构。等存储结构。布线资源是布线资源是FPGA内部各单元的连接纽带,连线的长度内部各单元的连接纽带,连线的长度和工艺决定着信号在连线上的驱动能力和传输速度和工艺决定着信号在连线上的驱动能力和传输速度嵌入式块嵌入式块RAM3丰富的布线资源丰富的布线
26、资源4为了满足一定的要求,为了满足一定的要求,FPGA开始嵌入如开始嵌入如PLL(Phase Locked Loop,锁相环)、,锁相环)、DSP(Digital Signal Prossor,数字信号处理器)、,数字信号处理器)、CPU(Central Processing Unit,中央处理器)等,中央处理器)等底层嵌入功能单元底层嵌入功能单元512.3.3 CPLD与与FPGA的比较的比较 12.3.4主流主流CPLD/FPGA厂商及其代表产品厂商及其代表产品 目前市场上目前市场上CPLD/FPGA芯片主要来自芯片主要来自Xilinx和和Altera公公司,它们占据了司,它们占据了FPG
27、A 80以上的市场份额。以上的市场份额。Lattice公公司只提供司只提供CPLD器件,器件,Actel公司主要生产反融丝结构的公司主要生产反融丝结构的FPGA,主要应用于航空、航天领域产品,价格较高,主要应用于航空、航天领域产品,价格较高,因此,因此,Lattice及及Actel在在FPGA的市场占有比例较低的市场占有比例较低 Lattice是最早推出是最早推出PLD的公司,是的公司,是GAL器件的发明者。器件的发明者。20世纪世纪90年代,年代,Lattice首创了首创了ISP技术(技术(In-System Programmability,在系统可编程),使,在系统可编程),使CPLD的应
28、用的应用领域有了巨大的扩展,也为设计人员调试程序提供了领域有了巨大的扩展,也为设计人员调试程序提供了极大的方便。极大的方便。Lattice公司的公司的CPLD产品主要有产品主要有GAL、ispLSI、ispMACH、LatticeEC、LatticeECP系列等。系列等。Lattice公司及其公司及其CPLD/FPGA器件器件1Xilinx公司及其公司及其CPLD/FPGA器件器件2Xilinx在在1985年推出了业界首款年推出了业界首款FPGA,随后不断推出,随后不断推出新的集成度更高、速度更快、价格更低、功耗更小新的集成度更高、速度更快、价格更低、功耗更小FPGA器件系列,目前已成为世界领
29、先的器件系列,目前已成为世界领先的CPLD/FPGA器件供应商,器件供应商,Xilinx的的CPLD器件以器件以CoolRunner、XC9500系列为代表,系列为代表,FPGA器件以器件以XC4000、Spartan、Virtex系列为代表,其性能不断提高系列为代表,其性能不断提高 。Altera是著名的是著名的PLD生产厂商,多年来一直占据着行业生产厂商,多年来一直占据着行业领先的地位。领先的地位。Altera的的PLD具有高性能、高集成度和高具有高性能、高集成度和高性价比的优点,此外它还提供了功能全面的开发工具性价比的优点,此外它还提供了功能全面的开发工具和丰富的和丰富的IP核、宏功能库
30、等,因此核、宏功能库等,因此Altera的产品获得了的产品获得了广泛的应用广泛的应用 。其可编程逻辑器件可以分为高密度。其可编程逻辑器件可以分为高密度FPGA、低成本、低成本FPGA和和CPLD等等3类,每个产品类别在类,每个产品类别在不同时期都有其主流产品。不同时期都有其主流产品。 Altera公司及其公司及其CPLD/FPGA器件器件3Actel公司的公司的FPGA器件器件 4Actel公司生产的公司生产的FPGA采用了反熔丝工艺,反熔丝工艺采用了反熔丝工艺,反熔丝工艺未编程时内部节点开路,编成后接通,去传统编程方法未编程时内部节点开路,编成后接通,去传统编程方法正好相反,使用正好相反,使
31、用Flash存储器,加密性能最好,因此被存储器,加密性能最好,因此被广泛应用于航空航天、军事等保密性要求高的场合广泛应用于航空航天、军事等保密性要求高的场合 12.3.5 工程项目中工程项目中CPLD/FPGA芯片的选型原则芯片的选型原则 Xilinx和和Altera公司都是知名的公司都是知名的CPLD/FPGA供应商,供应商,二者的产品各有特色。一般根据设计者对其硬件的熟悉二者的产品各有特色。一般根据设计者对其硬件的熟悉程度选择一个公司的产品,这样有利于加快开发的进度。程度选择一个公司的产品,这样有利于加快开发的进度。选择选择Altera还是还是Xilinx公司的产品公司的产品1优先选择开发
32、软件成熟、界面良好、开发人员熟悉的开优先选择开发软件成熟、界面良好、开发人员熟悉的开发软件相关产品。发软件相关产品。 考虑开发平台考虑开发平台2CPLD器件逻辑规模小于器件逻辑规模小于FPGA,价格低廉,在用于简,价格低廉,在用于简单逻辑控制等场合,选择单逻辑控制等场合,选择CPLD即可。即可。FPGA是专为数字信号处理的实现而设计,逻辑容量大、是专为数字信号处理的实现而设计,逻辑容量大、内嵌许多专用功能模块,在对成本不敏感及复杂的时序内嵌许多专用功能模块,在对成本不敏感及复杂的时序设计的场合适宜选择设计的场合适宜选择FPGA 。选择选择CPLD还是还是FPGA器件器件 3从逻辑容量从逻辑容量
33、 、应用的速度要求、功耗、可靠性及内嵌、应用的速度要求、功耗、可靠性及内嵌功能块等方面综合考虑型号选型。其中逻辑容量是考虑功能块等方面综合考虑型号选型。其中逻辑容量是考虑的首要方面。的首要方面。选择器件所属系列和型号选择器件所属系列和型号412.4 CPLD/FPGA的开发流程的开发流程 CPLD/FPGA只是数字可编程逻辑设计的承载器件,而只是数字可编程逻辑设计的承载器件,而逻辑的设计实现则依靠软件进行,进行逻辑设计时,可逻辑的设计实现则依靠软件进行,进行逻辑设计时,可以通过传统的以通过传统的原理图方式原理图方式进行,也可以通过专有的进行,也可以通过专有的硬件硬件描述语言描述语言(HDL)来
34、实现)来实现 CPLD/FPGA开发流程图开发流程图12.4.1 设计输入方式设计输入方式 设计输入方式主要分为图形输入法和文本输入法,见下表设计输入方式主要分为图形输入法和文本输入法,见下表 文本输入法需要通过文本输入法需要通过VHDL或或Verilog语言来进行逻辑设计语言来进行逻辑设计的描述,这需要设计者对于这类的描述,这需要设计者对于这类HDL语言的语法规则有初语言的语法规则有初步的语法基础步的语法基础原理图输入方式与使用原理图输入方式与使用PROTEL绘制电路原理图类似,设绘制电路原理图类似,设计直观,易于掌握,设计者进行电子线路设计不需要增加计直观,易于掌握,设计者进行电子线路设计
35、不需要增加新的相关知识(新的相关知识(VHDL或或VevilogHDL),便于),便于CPLD/FPGA 入门使用。入门使用。 由于图形设计方式没有标准化,造成不同的由于图形设计方式没有标准化,造成不同的EDA软件中的软件中的图形处理工具对图形的设计规则、存档格式和图形编译方图形处理工具对图形的设计规则、存档格式和图形编译方式都不同。因此,图形文件兼容性差。正是由于图形文件式都不同。因此,图形文件兼容性差。正是由于图形文件兼容性较差,一些性能优秀的电路模块的移植和再利用十兼容性较差,一些性能优秀的电路模块的移植和再利用十分困难分困难 12.4.2 常用硬件描述语言(常用硬件描述语言(HDL)简
36、介)简介 硬件描述语言硬件描述语言(Hardware Description Language,HDL)就是指对硬件电路进行行为描述、寄存器传输描述或者结就是指对硬件电路进行行为描述、寄存器传输描述或者结构化描述的一种语言构化描述的一种语言 HDL是用文本的形式描述硬件电路的功能、信号连接关系是用文本的形式描述硬件电路的功能、信号连接关系以及时序关系。它可以进行大规模,多个芯片的数字系统以及时序关系。它可以进行大规模,多个芯片的数字系统的设计。目前主流硬件描述语言有的设计。目前主流硬件描述语言有VHDL和和Verilog VHDL起源于美国国防部的起源于美国国防部的VHSIC,Verilog起
37、源于集成电起源于集成电路路(ASIC)的的(仿真仿真)设计。它们在各方面有着自己的特点设计。它们在各方面有着自己的特点 。VHDL与与VerilogHDL的对比的对比12.4.3 主流主流EDA软件概述软件概述 QuartusII是是Altera公司的综合性公司的综合性CPLD/FPGA开发软件,开发软件,支持原理图、支持原理图、VHDL、VerilogHDL等多种等多种HDL语言,以语言,以及它们之间的混合输入形式,内嵌自有的综合器以及仿真及它们之间的混合输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整器,可以完成从设计输入到硬件配置的完整PLD设计流程设计流程ISE
38、是由著名的可编程器件开发商是由著名的可编程器件开发商 Xilinx公司提供的集成公司提供的集成化开发平台。化开发平台。ISE具有界面良好、操作简单的特点,使得具有界面良好、操作简单的特点,使得ISE成为了非常通用的成为了非常通用的FPGA工具软件。工具软件。ISE提供了包括代提供了包括代码编写、库管理以及码编写、库管理以及HDL综合、仿真、下载等几乎所有综合、仿真、下载等几乎所有FPGA开发所需的功能开发所需的功能Quartus II概述概述1ISE 概述概述 2仿真是指在软件环境下,验证电路的行为和设计意图是否仿真是指在软件环境下,验证电路的行为和设计意图是否一致。在逻辑设计领域,仿真与验证
39、时整个设计流程中最一致。在逻辑设计领域,仿真与验证时整个设计流程中最重要、最复杂与最耗时的步骤重要、最复杂与最耗时的步骤Altera公司的公司的QuartusII和和Xilinx公司的公司的ISE本身也具备仿本身也具备仿真功能,它们自带的仿真功能有限,一般在小型设计中较真功能,它们自带的仿真功能有限,一般在小型设计中较为常用为常用。在从事大型数字系统的设计开发在从事大型数字系统的设计开发时时,软件自带的,软件自带的仿真工具仿真起来十分耗时仿真工具仿真起来十分耗时。ModelSim概述概述3Mentor Graphics ModelSim是业界公认的最优秀的是业界公认的最优秀的HDL语言仿真器,
40、它提供最友好的调试环境,是单内核支持语言仿真器,它提供最友好的调试环境,是单内核支持VHDL和和Verilog混合仿真的仿真器,是作混合仿真的仿真器,是作FPGA/ASIC设设计的计的RTL级和门级电路仿真的首选级和门级电路仿真的首选。ModelSim采用直接优化的编译技术、采用直接优化的编译技术、Tcl/Tk技术、和单技术、和单一内核仿真技术,编译仿真速度快,编译的代码与平台无一内核仿真技术,编译仿真速度快,编译的代码与平台无关,便于保护关,便于保护IP核。核。ModelSim个性化的图形界面和用户个性化的图形界面和用户接口,为用户加快调错提供强有力的手段接口,为用户加快调错提供强有力的手段
41、。12.5.1 FPGA最小系统最小系统 一个最基本的一个最基本的CPLD/FPGA最小系统是可以使最小系统是可以使CPLD/FPGA正常工作的最简单的系统,只包括正常工作的最简单的系统,只包括CPLD/FPGA必要的电源必要的电源电路、下载电路、下载/配置电路、外部时钟电路、配置电路、外部时钟电路、I/O接口电路等接口电路等 基于现代集成工艺的基于现代集成工艺的CPLD/FPGA为了在更为了在更小的体积与更高的集成小的体积与更高的集成度基础上上获得更多的度基础上上获得更多的输出引脚,往往采用了输出引脚,往往采用了薄型扁平封装(薄型扁平封装(LQFP、PQFP)及阵列球珊封)及阵列球珊封装(装
42、(BGA)。)。 右图是一个基本的右图是一个基本的FPGA最小系统的样板例子,外最小系统的样板例子,外引了引了IO,预设了几个,预设了几个LED灯和拨码开关灯和拨码开关 12.5.2 SOPC-NiosII-EP2C35实验教学开发平台简述实验教学开发平台简述 完备的完备的FPGA开发平台拥有丰富的外设资源和接口器件开发平台拥有丰富的外设资源和接口器件EP2C35核心板系统功能框图核心板系统功能框图FPGA系统平台功能框图系统平台功能框图12.5.3 实例设计实例设计要求:要求:设计实现设计实现8位流水灯,在秒脉冲作用下,实现位流水灯,在秒脉冲作用下,实现8个个LED灯灯7亮亮1暗循环流动。暗
43、循环流动。软件软件:QuartusII6.0实现平台:实现平台: SOPC-NiosII-EP2C35实验实验开发平台开发平台整个整个设计设计过程在过程在QuartusII上完成上完成,将,将涉及涉及如下如下应用应用: QuartusII工程创建及属性设置;工程创建及属性设置; QuartusII HDL设计及原理图设计输入方式;设计及原理图设计输入方式; QuartusII 时序仿真时序仿真; QuartusII 引脚锁定;引脚锁定; QuartusII 工程编译;工程编译; QuartusII 硬件下载。硬件下载。QuartusIIQuartusII软件入门向导软件入门向导v 请参照后面的
44、步骤,提前做好预习,熟悉请参照后面的步骤,提前做好预习,熟悉QuartusIIQuartusII软件软件的操作环境;的操作环境;v QuartusIIQuartusII软件安装时要注意它的破解步骤。软件安装时要注意它的破解步骤。工程创建时的准备工作工程创建时的准备工作vQuartusIIQuartusII通过通过“工程(工程(ProjectProject)”来管理设计来管理设计文件,文件,必须必须为此工程创建一个放置与此工程相关为此工程创建一个放置与此工程相关的所有设计文件的文件夹;的所有设计文件的文件夹;v此此文件夹名不宜用中文文件夹名不宜用中文,也最好不要用数字,应,也最好不要用数字,应放
45、到磁盘上容易找到的地方,不要放在软件的安放到磁盘上容易找到的地方,不要放在软件的安装目录中;装目录中;v建立完工程文件夹后再进行后续操作建立完工程文件夹后再进行后续操作在在QuartusII6.0环境下建立工程环境下建立工程1 1、项目创建向导、项目创建向导工程文件名,任取,建立工程文件名,任取,建立在用户自己的目录下,在用户自己的目录下,不不要使用软件的安装目录或要使用软件的安装目录或系统目录系统目录选择文件的存放路径选择文件的存放路径顶层实体名,一般和工程顶层实体名,一般和工程名相同名相同文件菜单文件菜单基于已有项目创建工程基于已有项目创建工程(一般(一般 不使用)不使用)设置完毕后单击设
46、置完毕后单击“Next”2 2、为创建的工程添加设计文件、为创建的工程添加设计文件添加用户的设计文件添加用户的设计文件-选中待添加的文件后点击选中待添加的文件后点击“Add”,若暂无文件,若暂无文件,直接点击直接点击“Next”设置完毕后单击设置完毕后单击“Next”3 3、器件选择、器件选择选择选择FPGA器件型号器件型号选择选择FPGA器器件所属系列件所属系列实验开发板所使用的器件为实验开发板所使用的器件为ALtera公司公司CycloneII系列系列(Family)的的EP2C35F484C8(Avaliable devices)设置完毕后单击设置完毕后单击“Next”4 4、EDA E
47、DA 工具设置工具设置选择第三方选择第三方EDA工具(工具(如如ModelSim、Synplify等)等)这里不需要,都不打这里不需要,都不打勾勾该步骤可单击该步骤可单击“Next”直接直接跳过跳过5 5、完成、完成! !工程创建完毕,在工程管理器界工程创建完毕,在工程管理器界面出现所选用的器件系列、器件面出现所选用的器件系列、器件名及工程文件名名及工程文件名“CycloneII”;单击单击“Finish”,完成工程,完成工程创建创建综上所述,创建工程时的几个步骤如下综上所述,创建工程时的几个步骤如下v(1 1)指定工程所在的工作库文件夹、工程名及设)指定工程所在的工作库文件夹、工程名及设计实
48、体名;计实体名;v(2 2)将设计文件加入工程中,若无设计文件直接)将设计文件加入工程中,若无设计文件直接跳过;跳过;v(3 3)选择仿真器和综合器类型(默认)选择仿真器和综合器类型(默认“None”None”为为选择选择QuartusIIQuartusII自带的);自带的);v(4 4)选择目标芯片(开发板上的芯片类型);)选择目标芯片(开发板上的芯片类型);v(5 5)工具设置,默认为都不选择,可直接跳过;)工具设置,默认为都不选择,可直接跳过;v(6 6)完成创建。)完成创建。v工程建立后,若需要新增设计文件,可以通过工程建立后,若需要新增设计文件,可以通过菜单菜单项项Project /
49、Add_RemoveProject /Add_Remove在工程中添加新建立在工程中添加新建立的设计文件,也可以删除不需要的设计文件。编译的设计文件,也可以删除不需要的设计文件。编译时将按此选项卡中列出的文件处理。时将按此选项卡中列出的文件处理。在在QuartusII6.0工程下建立设计文件工程下建立设计文件1、在、在File菜单下点击菜单下点击“New”,即弹出新建文件窗口,即弹出新建文件窗口QuartusII支持原理图输入、支持原理图输入、VHDL语言输入等语言输入等多种设计输入方式多种设计输入方式,后面以后面以原理图输入原理图输入(Block Diagram/Schematic File
50、)为例介绍)为例介绍选此后单击选此后单击OK2 2、建立原理图设计文件、建立原理图设计文件原理图编辑原理图编辑区区绘图辅助绘图辅助工具工具工程文工程文件名件名上图中,选择第二项:上图中,选择第二项:Block Diagram/Schematic File,点击点击ok后即得如下界面:后即得如下界面:3 3、调用参数化元件(内置元件)、调用参数化元件(内置元件)v在绘图区双击鼠标左键,即弹出添加元件的窗口在绘图区双击鼠标左键,即弹出添加元件的窗口在此输入已知的在此输入已知的元件名,可以快元件名,可以快速地调出元件速地调出元件/端口并预览端口并预览点击点击“+”号可号可展开查看查看展开查看查看库中