CPLD和FPGA的区别
可编程逻辑器件CPLD和FPGA的特点和应用

可编程逻辑器件CPLD和FPGA的特点和应用一、可编程逻辑器件(CPLD)的特点和应用:CPLD是一种具有很高逻辑容量的可编程逻辑器件,它通常由可编程逻辑单元(PLE)和可编程互连网络(PIN)组成。
CPLD的主要特点如下:1.逻辑容量大:CPLD的逻辑容量通常可以达到数千个逻辑门等效。
这使得CPLD非常适合那些需要大规模逻辑功能的应用,如控制器、通信接口和高级数学运算等。
2.可编程性强:CPLD可以通过编程操作来实现不同的逻辑功能。
它使用类似于电荷耦合器(CPL)的可编程逻辑单元来实现逻辑功能,其中每个CPL可以实现与或非门、与非门或非与门等逻辑运算。
3.器件内部拓扑复杂:CPLD具有丰富的内部互连网络,可以将各个逻辑元件之间的信号按照需要进行连接。
这使得CPLD可以实现复杂的信号处理和数据流处理功能。
4.快速重编程:CPLD可以在运行时进行在线编程,从而允许系统进行动态配置和故障恢复。
这一特点使得CPLD广泛应用于技术验证、原型设计和快速迭代开发等场景。
CPLD的应用主要集中在以下几个领域:1.控制器:CPLD可以用于实现各种控制器,如数字信号处理器(DSP)的外围控制器、数据采集/输出控制器等。
其高逻辑容量和可编程性强的特点使得CPLD非常适合这些应用场景。
2. 通信接口:CPLD可以实现多种通信协议和接口,如串行通信接口(SPI/I2C/UART)、嵌入式总线接口(PCI/USB/Ethernet)等。
这些接口在通信系统中起到了关键的作用。
3.高级数学运算:CPLD可以实现各种高级数学运算,如矩阵运算、滤波运算、FFT运算等。
这些运算对于数字信号处理(DSP)和图像处理等应用非常重要。
4.逻辑分析仪:CPLD可以实现逻辑分析仪的功能,用于捕获和分析数字信号的时序和逻辑关系。
逻辑分析仪在系统调试和故障分析中非常有用。
二、现场可编程门阵列(FPGA)的特点和应用:FPGA是一种具有大规模逻辑容量和可编程性的可编程逻辑器件。
CPLD与FPGA的区别与优缺点

4、 应 用 范 围 的 不 同
系统;
CPLD 逻 辑 能 力 强 而 寄 存 器 少 , 适 用 于 控 制 密 集 型
系统。
FPGA 逻 辑 能 力 较 弱 但 寄 存 器 多 , 适 于 数 据 密 集 型
CPLD 和 FPGA 的 优 点 : 1.规 模 越 来 越 大 , 实 现 功 能 越 来 越 强 , 同 时 可 以 实 现 系 统 集 成 。 2.研 制 开 发 费 用 低 , 不 承 担 投 片 风 险 , 使 用 方 便 。 3.通 过 开 发 工 具 在 计 算 机 上 完 成 设 计 , 电 路 设 计 周 期 短 。 4.不 需 要 设 计 人 员 了 解 很 深 的 IC 知 识 , EDA 软 件 易 学 易 用 。 5.通 过 FPGA 和 CPLD 开 发 的 系 统 成 熟 后 , 可 以 进 行 ASIC 设 计 , 形成批量生产。
CPLD 和 FPGA 的区别与优缺点
FPGA(Field Programmable Gates Array 现场可编程门阵列,内部结构为门 阵列构成静态存储器(SRAM)。该 SRAM 可构成函数发生器,即查找表,通 过查找表可实现逻辑函数功能)
CPLD( Complex Programmable Logic Device 复 杂 可 编 程逻辑器件,内部结构为“与或阵列”。该结构来自于典型的 PAL、 GAL 器 件 的 结 构 。 任 意 一 个 组 合 逻 辑 都 可 以 用 “ 与 — 或 ” 表 达 式 来 描 述 ,所 以 该 “ 与 或 阵 列 ” 结 构 能 实 现 大 量 的 组 合 逻 辑 功能)
结构
FPGA 器件在结构上 ,由逻辑功能块排列为阵列 ,并由可编程的内部连线连接这些功能块来 实现一定的逻辑功能 CPLD 是将多个可编程阵列逻辑 (PAL)器件集成到一个芯片 ,具有类似 PAL 的结构。一般 情况下 CPLD 器件中至少包含三种结构 :可编程逻辑功能块 (FB);可编程 I/ O 单元 ;可编程
FPGA硬件培训

FPGA设计一般流程
• 6、时序仿真与验证 • 7、板级仿真与验证 • 8、调试与加载配置 • 本次培训主要以硬件电路设计为主,关于硬件描述语言及 FPGA相关仿真不详述.
芯片配置方式概述
1:配置是连接FPGA软件设计到硬件功能实现的桥梁,配置 电路部分有误,配置文件无法下载到配置器件中,对FPGA 编程,则再好的设计都是浮云。 上电后,配置数据保存在 配置RAM中,将配置数据载入FPGA即是对FPGA编程。 2:在介绍FPGA配置方式前,先介绍一些与配置相关的硬件 引脚,如下表::
FPGA基本结构
FPGA主要有三大组成部分,逻辑块(Logic Block LB),连线资源 (Routing Resource),输入输出块(I/O Block)模型如下:
FPGA设计一般流程
FPGA设计一般流程
• 1、电路设计与输入 • 2、功能仿真 • 3、综合优化:综合优化(Synthesize)是指将HDL语言、 原理图等设计输入翻译成由与、或、非门,RAM,触发器 等基本逻辑单元组成的逻辑连接(网表),并根据目标与 要求(约束条件)优化所生成的逻辑连接,输出edf和edn 等标准格式的网表文件,供FPGA/CPLD厂家的布局布线器
• FPGA配置方式的选择,通过MSEL[4..0]连接方式的不同进 行选择。具体详见下表:
芯片配置方式概述
芯片配置方式详解
AS由FPGA器件引导配置操作过程,它控制着外部存储器 和初始化过程。这种配置方式支持AS*1 ,AS*4两种模式, FPGA器件处于主动地位,配置器件处于从属地位。 EPCS系 列如EPCS1,EPCS4等配置器件专供AS模式,以Stratix V系列 FPGA为例,针对1PCS FPGA其AS*1硬件连接方式如下:
FPGA、CPLD、ASIC、DSP、单片机的区别

1. FPGAFPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。
它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
以硬件描述语言(Verilog或VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至FPGA 上进行测试,是现代IC设计验证的技术主流。
这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。
在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器(Flip-flop)或者其他更加完整的记忆块。
系统设计师可以根据需要通过可编辑的连接把FPGA内部的逻辑块连接起来,就好像一个电路试验板被放在了一个芯片里。
一个出厂后的成品FPGA的逻辑块和连接可以按照设计者而改变,所以FPGA可以完成所需要的逻辑功能。
什么是FPGA?简单来说,FPGA就是“可反复编程的逻辑器件”。
FPGA取自Field Programmable Gate Array的首个字母,代表现场(Field)可编程(Programmable)逻辑阵列(Gate Array)。
由于在产品发售后您仍然可以对产品设计作出修改,因此我们可以顺利地对产品进行更新以及针对新的协议标准作出相应改进。
相对于对售后产品设计无法进行修改的ASIC和ASSP来说,这是FPGA特有的一个优势。
由于FPGA 可编程的灵活性以及近年来科技的快速发展,FPGA也正向高集成,高性能,低功耗,低价格的方向发展,并具备了与ASIC和ASSP 同等的性能,被广泛地使用在各行各业的电子及通信设备里。
FPGA与CPLD的区别尽管很多人听说过CPLD,但是关于CPLD与FPGA之间的区别,了解的人可能不是很多。
EDA总结

一.CPLD 和FPGA 的主要区别1. 结构上的不同:CPLD-乘积项 FPGA-基于查找表(LUT)2. 集成度的不同CPLD :500 - 50000门;FPGA :1K – 几千万门 3 应用范围的不同CPLD 逻辑能力强而寄存器少(1K 左右), 适用于控制密集型系统;FPGA 逻辑能力较弱但寄存器多,适于数据密集型系 CPLD 逻辑密集型----适于简单逻辑功能 2、中小规模(1000 ~ 50000) 3、布线延迟固定,时序特性稳定 4、编程数据不丢失,电路简单 5、保密性好二.Verilog HDL 适用的描述层次:1、系统级(System ) 部分可物理实现,主要用于仿真2、算法级(Alogrthem ) 部分可物理实现,主要用于仿真3、寄存器传输级(RTL )可完全物理实现,用于电路设计4、逻辑级(Logic ) 可完全物理实现,用于电路设计5、门级(Gate ) 可完全物理实现,用于电路设计6、电路开关级(Switch )软件中不涉及,用于芯片设计三.电路的两种基本计算机输入方式——原理图输入和硬件描述语言输入 四.语言输入与原理图输入方式相比的优点: 1、容易把设计移植到不同厂家的不同芯片中去;2、信号位数容易修改,可以很方便的适应不同规模的应用;3、与实现工艺无关;V erilog HDL 综合器生成标准的电子设计互换格式(EDIF )文件,方便文档交换与保存;五.软核、固核、硬核的概念 软核(Soft Core ):功能经过验证的、可综合的、实现后电路结构总门数在5000门以上的V erilog HDL 模型。
由软核构成的器件称为虚拟器件。
三者中灵活性最高。
固核(Firm Core ):指在某一种现场可编程门阵列(FPGA )器件上实现的、经验证是正确的、总门数在5000门以上电路结构编码文件。
硬核(Hard Core ):指在某一种专用集成电路(ASIC )工艺的器件上实现的、经验证是正确的、总门数在5000门以上的电路结构版图掩膜CPLD逻辑密集型----适于简单逻辑功能 2、中小规模(1000 ~ 50000) 3、布线延迟固定,时序特性稳定 4、编程数据不丢失,电路简单 5、保密性好FPGA1、数据密集型——适于复杂的时序逻辑2、大规模设计(5000 ~ 数百万门)3、布线灵活,但时序特性不稳定4、需用专用的 ROM 进行数据配置5、保密性较差HDL 功能数字系统仿真、验证(全部语法支持) 数字系统设计、综合(部分语法支持) HDL 功能:六.Verilog 的两种描述——如果只从行为和功能的角度来描述某一电路模块,就称为行为模块;如果从电路结构的角度来描述该电路模块,就称为结构模块。
FPGA与CPLD 总结

CPLD(complex programable logic device)复杂可编程逻辑器件FPGA(field programable gate array)现场可编程门阵列FPGA和CPLD的逻辑单元本身的结构与SPLD相似,即与阵列和可配置的输出宏单元组成。
FPGA逻辑单元是小单元,每个单元只有1-2个触发器,其输入变量通常只有几个因而采用查找表结构(PROM形式)这样的工艺结构占用的芯片面积小,速度高(通常只有1-2纳秒),每个芯片上能集成的单元数多,但逻辑单元功能弱。
如果想实现一个较复杂的功能,需要几个这样的单元组合才能完成(总延时是各个单元延时和互连延时的和),互连关系复杂。
CPLD中的逻辑单元是单元,通常其变量数约20-28个。
因为变量多,所以只能采用PAL结构。
由于这样的单元功能强大,一般的逻辑在单元内均可实现,因而其互连关系简单,一般通过集总总线既可实现。
电路的延时通常就是单元本身和集总总线的延时(通常在数纳秒至十几纳秒),但是同样集成规模的芯片中的触发器的数量少得多。
从上面分析可知道:小单元的FPGA较适合数据型系统,这种系统所需要的触发器数多,但是逻辑相对简单;大单元的CPLD较适合逻辑型系统,如控制器等,这种系统逻辑复杂,输入变量多,但触发器需求量相对较少。
反熔丝工艺只能一次性编程,EPROM EEPROM 和FLASH工艺可以反复的编程,但是他们一经编程片内逻辑就被固定。
他们都是只读型(ROM)编程,这类编程不仅可靠性较高还可以加密。
XILINX公司的FPGA芯片采用RAM型编程,相同集成规模的芯片中的触发器数目较多,功耗低,但是掉电后信息不能保存,必须与存储器联用。
每次上电时必须先对芯片配置,然后才能使用,这似乎是RAM型PLD的缺点,但是ROM型PLD中的编程信息在使用时是不能变化的,RAM型PLD却可以在工作时更换内容,实现不同的逻辑。
CPLD和FPGA的结构,性能对照:CPLD FPGA PROM集成规模:小(最大数万门)大(最高达百万门)单元粒度:大(PAL结构)小(PROM结构)互连方式:集总总线分段总线长线专用互连编程工艺:EPROM EEPROM FLASH SRAM编程类型:ROM RAM型须与存储器联用信息:固定可实时重构触发器数:少多单元功能:强弱速度:高低222222222222222222222222222222222222延迟:确定,可以预测不能确定不能预测功耗:高低加密性能:可加密不能加密适用场合:逻辑型系统数据型系统LCA(LOGIC CELL ARRAY)逻辑单元阵列CLB(CONFIGURABLE LOGIC BLOCK)可配置逻辑模块IOB(INPUT OUTOUT BLOCK)输入输出块Spartan-xl系列FPGA的主要特性SPARTAN-XL系列的FPGA具有低压,低功耗的特点。
CPLD和FPGA的区别

《CPLD和FPGA的区别》1).两者的区别:最大的区别,就是CPLD进行一次下载编程(写入操作)后,其逻辑门组合方式就保存下来,不管什么时候断电,通电,他都可以执行上一次的逻辑功能。
FPGA不能保存上次逻辑功能,断电后,FPGA就失去所有配置。
因此FPGA通常需要带一块配置芯片,在通电后,对FPGA进行重新配置,恢复功能(重配置需要时间,CPLD通电后,马上就可以执行相应逻辑)。
CPLD的擦写次数非常有限,经过100~1000次左右的反复擦写就报废了。
而FPGA可以反复擦写无限次(当然,实际上是有限的。
但是在通常使用中,就算你反复擦写,大概你挂了,它还没有挂)。
FPG的配置芯片擦写次数有限,而且常常只能烧写一次(OTP)。
CPLD的容量一般比较小,FPGA容量很大。
综合上面所有的情况,结论是这样的,你在学习阶段,或者开发阶段,最好使用FPGA,因为可以反复擦写,不对马上重新烧写。
只要不断电,你烧写下去的逻辑功能是一直可用的。
定型后可以使用CPLD,可以免去FPGA。
但是当你的配置容量非常大的时候,CPLD装不下,你又必须采用FPGA了,这个时候,在最后成品上需要加配置芯片(当然也用单片机模拟配置芯片,具体这个地方不介绍)。
市面上尤其是学校里面可以看到Xilinx公司或者Altera公司各种不同的开发板,其实只有两个大类,CPLD开发板和FPGA开发板。
尽管FPGA和CPLD都是可编程ASIC器件,有很多共同特点,但由于CPLD和FPGA结构上的差异,具有各自的特点:①CPLD更适合完成各种组合逻辑,FPGA更适合于完成时序逻辑。
换句话说,FPGA更适合于触发器丰富的结构,而CPLD更适合于触发器有限而乘积项丰富的结构。
②CPLD的连续式布线结构决定了它的时序延迟是均匀的和可预测的,而FPGA的分段式布线结构决定了其延迟的不可预测性。
③在编程上FPGA比CPLD具有更大的灵活性。
CPLD通过修改具有固定内连电路的逻辑功能来编程,FPGA主要通过改变内部连线的布线来编程;FPGA可在逻辑门下编程,而CPLD是在逻辑块下编程。
FPGA与CPLD编程语言

FPGA与CPLD编程语言FPGA(可编程逻辑门阵列)和CPLD(可编程逻辑器件)是现代数字电路设计中常用的两种可编程芯片。
它们通过使用编程语言来实现特定的功能和逻辑。
本文将介绍FPGA和CPLD的基本概念,并探讨在这两种芯片上使用的编程语言。
一、FPGA和CPLD的基本概念FPGA和CPLD是数字集成电路的一种,它们可以根据用户的需求和设计要求进行编程,并实现不同的逻辑功能。
FPGA拥有更大的可编程逻辑单元和更灵活的资源分配,使得它在复杂的应用场景下更具优势。
CPLD则相对较小,适用于较简单的逻辑设计。
FPGA和CPLD的核心结构都包含可编程逻辑单元,输入/输出引脚和内部信号线路。
逻辑单元是实现不同布尔逻辑运算的基本组成部分,包括与门、或门、非门等。
输入/输出引脚用于与其他电路或器件进行连接,而内部信号线路则负责连接不同的逻辑单元和输入/输出引脚。
二、FPGA和CPLD的编程语言1.硬件描述语言(HDL)硬件描述语言是一种专门用于描述数字电路结构和行为的编程语言。
它们可以描述各种逻辑门、寄存器、存储器和其他组件之间的连线和交互。
常用的硬件描述语言有VHDL(VHSIC硬件描述语言)和Verilog。
VHDL是一种结构化的硬件描述语言,使用描述性的方式来定义逻辑结构和行为。
它可以描述信号流和结构体等抽象概念,适用于系统级设计和数字电路的高层次描述。
Verilog是一种基于事件驱动的硬件描述语言,具有较高的仿真能力和设计灵活性。
它以模块化方式描述电路和系统,并支持递归实例化和并行语法,适用于协同设计和复杂电路的描述。
2.硬件描述语言(HDL)与编程语言结合除了使用传统的硬件描述语言,FPGA和CPLD编程还可以结合使用高级编程语言,如C语言和VHDL等。
这种结合方式可以更好地利用硬件资源和软件开发环境,提高设计效率和可维护性。
通过在硬件描述语言中嵌入高级编程语言代码,可以实现复杂的算法和数据处理功能,并提供方便的调试和测试手段。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD 等可编程器件的基础上进一步发展的产物。
它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
目前以硬件描述语言(Verilog 或VHDL)所完成的电路设计,可以经过简单的综合与布局,快速的烧录至FPGA 上进行测试,是现代IC 设计验证的技术主流。
这些可编辑元件可以被用来实现一些基本的逻辑门电路(比如AND、OR、XOR、NOT)或者更复杂一些的组合功能比如解码器或数学方程式。
在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器(Flip-flop)或者其他更加完整的记忆块。
系统设计师可以根据需要通过可编辑的连接把FPGA内部的逻辑块连接起来,就好像一个电路试验板被放在了一个芯片里。
一个出厂后的成品FPGA的逻辑块和连接可以按照设计者而改变,所以FPGA可以完成所需要的逻辑功能。
FPGA一般来说比ASIC(专用集成芯片)的速度要慢,无法完成复杂的设计,而且消耗更多的电能。
但是他们也有很多的优点比如可以快速成品,可以被修改来改正程序中的错误和更便宜的造价。
厂商也可能会提供便宜的但是编辑能力差的FPGA。
因为这些芯片有比较差的可编辑能力,所以这些设计的开发是在普通的FPGA上完成的,然后将设计转移到一个类似于ASIC的芯片上。
另外一种方法是用CPLD(复杂可编程逻辑器件备)。
CPLD与FPGA的关系早在1980年代中期,FPGA已经在PLD设备中扎根。
CPLD和FPGA包括了一些相对大数量的可以编辑逻辑单元。
CPLD逻辑门的密度在几千到几万个逻辑单元之间,而FPGA通常是在几万到几百万。
CPLD和FPGA的主要区别是他们的系统结构。
CPLD是一个有点限制性的结构。
这个结构由一个或者多个可编辑的结果之和的逻辑组列和一些相对少量的锁定的寄存器。
这样的结果是缺乏编辑灵活性,但是却有可以预计的延迟时间和逻辑单元对连接单元高比率的优点。
而FPGA却是有很多的连接单元,这样虽然让它可以更加灵活的编辑,但是结构却复杂的多。
CPLD和FPGA另外一个区别是大多数的FPGA含有高层次的内置模块(比如加法器和乘法器)和内置的记忆体。
一个因此有关的重要区别是很多新的FPGA支持完全的或者部分的系统内重新配置。
允许他们的设计随着系统升级或者动态重新配置而改变。
一些FPGA可以让设备的一部分重新编辑而其他部分继续正常运行。
FPGA工作原理FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。
FPGA的基本特点1)采用FPGA设计ASIC电路(特定用途集成电路),用户不需要投片生产,就能得到合用的芯片。
2)FPGA可做其它全定制或半定制ASIC电路的中试样片。
3)FPGA内部有丰富的触发器和I/O引脚。
4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。
5) FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。
可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。
FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。
用户可以根据不同的配置模式,采用不同的编程方式。
加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。
掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。
FPGA 的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。
当需要修改FPGA 功能时,只需换一片EPROM即可。
这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。
因此,FPGA的使用非常灵活。
FPGA配置模式FPGA有多种配置模式:并行主模式为一片FPGA加一片EPROM的方式;主从模式可以支持一片PROM编程多片FPGA;串行模式可以采用串行PROM编程FPGA;外设模式可以将FPGA作为微处理器的外设,由微处理器对其编程。
如何实现快速的时序收敛、降低功耗和成本、优化时钟管理并降低FPGA与PCB并行设计的复杂性等问题,一直是采用FPGA的系统设计工程师需要考虑的关键问题。
如今,随着FPGA向更高密度、更大容量、更低功耗和集成更多IP的方向发展,系统设计工程师在从这些优异性能获益的同时,不得不面对由于FPGA前所未有的性能和能力水平而带来的新的设计挑战。
例如,领先FPGA厂商Xilinx最近推出的Virtex-5系列采用65nm工艺,可提供高达33万个逻辑单元、1,200个I/O和大量硬IP块。
超大容量和密度使复杂的布线变得更加不可预测,由此带来更严重的时序收敛问题。
此外,针对不同应用而集成的更多数量的逻辑功能、DSP、嵌入式处理和接口模块,也让时钟管理和电压分配问题变得更加困难。
幸运地是,FPGA厂商、EDA工具供应商正在通力合作解决65nm FPGA独特的设计挑战。
不久以前,Synplicity与Xilinx宣布成立超大容量时序收敛联合工作小组,旨在最大程度地帮助系统设计工程师以更快、更高效的方式应用65nm FPGA器件。
设计软件供应商Magma推出的综合工具Blast FPGA能帮助建立优化的布局,加快时序的收敛。
最近FPGA的配置方式已经多元化!FPGA主要生产厂商1、Altera2、Xilinx3、Actel4、Lattice其中Altera和Xilinx主要生产一般用途FPGA,其主要产品采用RAM工艺。
Actel主要提供非易失性FPGA,产品主要基于反熔丝工艺和FLASH工艺。
FPGA设计的注意事项不管你是一名逻辑设计师、硬件工程师或系统工程师,甚或拥有所有这些头衔,只要你在任何一种高速和多协议的复杂系统中使用了FPGA,你就很可能需要努力解决好器件配置、电源管理、IP集成、信号完整性和其他的一些关键设计问题。
不过,你不必独自面对这些挑战,因为在当前业内领先的FPGA公司里工作的应用工程师每天都会面对这些问题,而且他们已经提出了一些将令你的设计工作变得更轻松的设计指导原则和解决方案。
I/O信号分配可提供最多的多功能引脚、I/O标准、端接方案和差分对的FPGA在信号分配方面也具有最复杂的设计指导原则。
尽管Altera的FPGA器件没有设计指导原则(因为它实现起来比较容易),但赛灵思的FPGA设计指导原则却很复杂。
但不管是哪一种情况,在为I/O引脚分配信号时,都有一些需要牢记的共同步骤:1. 使用一个电子数据表列出所有计划的信号分配,以及它们的重要属性,例如I/O标准、电压、需要的端接方法和相关的时钟。
2. 检查制造商的块/区域兼容性准则。
3. 考虑使用第二个电子数据表制订FPGA的布局,以确定哪些管脚是通用的、哪些是专用的、哪些支持差分信号对和全局及局部时钟、哪些需要参考电压。
4. 利用以上两个电子数据表的信息和区域兼容性准则,先分配受限制程度最大的信号到引脚上,最后分配受限制最小的。
例如,你可能需要先分配串行总线和时钟信号,因为它们通常只分配到一些特定引脚。
5. 按照受限制程度重新分配信号总线。
在这个阶段,可能需要仔细权衡同时开关输出(SSO)和不兼容I/O标准等设计问题,尤其是当你具有很多个高速输出或使用了好几个不同的I/O标准时。
如果你的设计需要局部/区域时钟,你将可能需要使用高速总线附近的管脚,最好提前记住这个要求,以免最后无法为其安排最合适的引脚。
如果某个特定块所选择的I/O 标准需要参考电压信号,记住先不要分配这些引脚。
差分信号的分配始终要先于单端信号。
如果某个FPGA提供了片内端接,那么它也可能适用于其他兼容性规则。
6. 在合适的地方分配剩余的信号。
在这个阶段,考虑写一个只包含端口分配的HDL文件。
然后通过使用供应商提供的工具或使用一个文本编辑器手动创建一个限制文件,为I/O标准和SSO等增加必要的支持信息。
准备好这些基本文件后,你可以运行布局布线工具来确认是否忽视了一些准则或者做了一个错误的分配。
这将使你在设计的初始阶段就和布局工程师一起工作,共同规划PCB的走线、冗余规划、散热问题和信号完整性。
FPGA工具可能可以在这些方面提供帮助,并协助你解决这些问题,因此你必须确保了解你的工具包的功能。
你咨询一位布局专家的时间越晚,你就越有可能需要去处理一些复杂的问题和设计反复,而这些可能可以通过一些前期分析加以避免。
一旦你实现了满意的信号分配,你就要用限制文件锁定它们。
-------------------基于CMOS的设计主要消耗三类功率:内部的(短路)、漏电的(静态的)以及开关的(电容)。
当门电路瞬变时,VDD与地之间短路连接消耗内部功率。
漏电功耗是CMOS工艺普遍存在的寄生效应引起的。
而开关功耗则是自负载电容,放电造成的。
开关功耗与短路功耗合在一起称为动态功耗。
下面介绍降低静态功耗和动态功耗的设计技巧。
降低静态功耗简介虽然静态电流与动态电流相比可以忽略不计,然而对电池供电的手持设备就显得十分重要,在设备通电而不工作时更是如此。
静态电流的因素众多,包括处于没有完全关断或接通的状态下的I/O以及内部晶体管的工作电流、内部连线的电阻、输入与三态电驱动器上的拉或下拉电阻。
在易失性技术中,保持编程信息也需一定的静态功率。
抗熔断是一种非易失性技术,因此信息存储不消耗静态电流。
几种降低静态功耗的设计方法•驱动输入应有充分的电压电平,因而所有晶体管都是完全通导或关闭的。
•由于I/O线上的上拉或下拉电阻要消耗一定的电流,因此尽量避免使用这些电阻。
•少用驱动电阻或双极晶体管,这些器件需维持一个恒定电流,从而增加了静态电流。
•将时钟引脚按参数表推荐条件连接至低电平。
悬空的时钟输入会大大增加静态电流。
•在将设计划分为多个器件时,减少器件间I/O的使用。
eX器件LP方式引脚的使用Actel eX系列设计了特殊的低功率“休眠”模式。
在该引脚驱动至高电平800ns后,器件进入极低功率待机模式,待机电流小于100μA。
在低功率模式下,所有I/O(除时钟输入外)都处于三态,而内核全部断电。
由于内核被断电,触发器中存储的信息会丢失,在进入工作模式(在引脚驱动至低平200ms后)时,用户需再次对器件初始化。
同样,用户也应关闭所有通过CLKA、CLKB以及HCLK输入的时钟。
然而这些时钟并不处于三态,时钟就可进入器件,从而增加功耗,因此在低功率模式下,时钟输入必须处于逻辑0或逻辑1。