1、FPGA与ASIC
ASIC相对于FPGA的优势:(1) 功耗更低:ASIC由于其门控时钟结构和异步电路设计方式,功耗非常低。这点对于一些简单设计并不明显,但是对于大规模器件和复杂设计就变得十分重要。目前有些网络处理器ASIC的功耗在数十瓦以上,如果用超大规模FPGA完成这类设计,其功耗将不可思议。(2) 能完成高速设计:ASIC适用的设计频率范围比FPGA广泛得多。目前FPGA宣称的最快频率不过500MHz,而对于大规模器件,资源利用率高一些的设计想达到250MHZ都是非常困难的,而很多数字ASIC的工作频率在10GHz以上。(3) 设计密度大:由于FPGA的底层硬件结构一致,在实现用户设计时会有大量单元不能充分利用,所以FPGA的设计效率并不高。与ASIC相比,FPGA的等效系统门和ASIC门的设计效率比约为1:10。
ASIC与FPGA相比的这3个显著优势将传统FPGA排除在很多高速、复杂、高功耗设计领域之外。
FPGA与ASIC相比的优势:(1) FPGA比ASIC设计周期短。FPGA的设计流程比ASIC简化很多,而且FPGA可以重复开发,其设计与调试周期比传统ASIC设计显著缩短。(2) FPGA比ASIC开发成本低:ASIC的NRE费用非常高,而且一旦NRE失败,必须耗巨资重新设计。加之ASIC开发周期长,人力成本激增,所以FPGA的开发成本与ASIC相比不可同日而语。(3) FPGA比ASIC设计灵活:因为FPGA易于修改,可重复编程,所以FPGA更适用于不断演进的标准。
如何能使FPGA和ASIC两者扬长避短、互相融合呢?解决方法有两种思路:一是在FPGA中内嵌ASIC模块,以完成高速、大功耗、复杂的设计部分,而对于其它低速、低功耗、相对简单的电路则由传统的FPGA逻辑资源完成,这种思路体现了FPGA向ASIC的融合;另一种思路是在ASIC中集成部分可编程的灵活配置资源,或者继承成熟的FPGA设计,将之转换成ASIC,这种思路是ASIC向FPGA的融合,被称为结构化ASIC。
二、FPGA与CPLD
特点 |
FPGA |
CPLD |
备注 |
结构工艺 |
多为LUT加寄存器结构,实现工艺多为SRAM,也包含Flash、Anti-Fuse等工艺 |
多为乘积项,工艺多为E2COMS,也包含EEPROM、Flash、Anti-Fuse等不同工艺 |
|
触发器数量 |
多 |
少 |
FPGA更适合实现时序逻辑,CPLD多用于实现组合逻辑 |
Pin-to-Pin延时 |
不可预测 |
固定 |
对FPGA而言,时序约束和仿真非常重要 |
规模与逻辑复杂度 |
规模大、逻辑复杂度高,新型器件高达千万门级 |
规模小、逻辑复杂度低 |
FPGA用以实现复杂设计,CPLD用于实现简单设计 |
成本与价格 |
成本高、价格高 |
成本低、价格低 |
CPLD用于实现低成本设计 |
编程与配置 |
一般包含两种:外挂BootROM和通过CPU或DSP等在线编程。多数基本属于RAM型,掉电后程序丢失 |
有两种编程方式:一种是通过编程器烧写ROM,另一种较方便的方式是通过ISP模式。一般为ROM型,掉电后程序不丢失 |
FPGA掉电后一般将丢失原有逻辑配置,而反熔丝工艺的FPGA,如Actel的某些器件族和目前一些内嵌Flash或EECMOS的FPGA,如Lattice的XP器件族,可以实现非易失配置方式 |
保密性 |
一般保密性较差 |
好 |
一般FPGA不容易实现加密,但是目前一些采用Flash加SRAM工艺的新型器件(如LatticeXP系列等),在内部嵌入了加载Flash,能提供更高的保密性 |
互联结构、连线资源 |
分布式、丰富的布线资源 |
集总式、相对布线资源有限 |
FPGA布线灵活,但是时序更难规划,一般需要通过时序约束、静态时序分析、时序仿真等手段提高并验证时序性能 |
适用的设计类型 |
复杂的时序功能 |
简单的逻辑功能 |
|
此外:
1、CPLD的基本结构:早期的CPLD主要用来代替PAL器件,所以其结构与PAL、GAL基本相同,采用了可编程的与阵列和固定的或阵列结构。在此基础上增加了一个全局共享的可编程与阵列,把多个宏单元连接起来。另外,I/O控制模板的数量和功能都有了进一步的提高。
2、FPGA一般由3种可编程电路和一个用于存储编程数据的静态存储器SRAM组成。这3种可编程电路是:可编程逻辑块(CLB: Configurable Logic Block)、输入/输出模块(IOB: I/O Block)和互连资源(IR: Interconnect Resource)。可编程逻辑块是实现逻辑功能的基本单元,它们通常规则地排列成一个阵列,散布于整个芯片;可编程输入/输出模块主要完成芯片上的逻辑与外部封装脚的接口,它通常排列在芯片的四周;可编程互连资源包括各种长度的连线线段和一些可编程连接开关,它们将各个CLB之间、CLB与IOB之间以及IOB之间连接起来,构成特定功能的电路。
文章评论(0条评论)
登录后参与讨论