FPGA技术的发展历史和动向
本文关键字:fpga技术,fpga发展, fpga培训,FPGA应用开发入门与典型实例
一、FPGA技术的发展历史
纵观数字集成电路的发展历史,经历了从电子管、晶体管、小规模集成电路到大规模以及超大规模集成电路等不同的阶段。发展到现在,主要有3类电子器件:存储器、处理器和逻辑器件。
存储器保存随机信息(电子数据表或数据库的内容);处理器执行软件指令,以便完成各种任务(运行数据处理程序或视频游戏);而逻辑器件可以提供特殊功能(器件之间的通信和系统必须执行的其他所有功能)。
逻辑器件分成两类:
① 固定的或定制的。
② 可编程的或可变的。
其中,固定的或定制的逻辑器件通常称为专用芯片(ASIC)。ASIC是为了满足特定的用途而设计的芯片,例如MP3解码芯片等。其优点是通过固化的逻辑功能和大规模的工业化生产,降低了芯片的成本,同时提高了产品的可靠性。随着集成度的提高,ASIC的物理尺寸也在不断的缩小。
但是,ASIC设计的周期很长,而且投资大,风险高。一旦设计结束后,功能就固化了,以后的升级改版困难比较大。电子产品的市场正在逐渐细分,为了满足快速产品开发,产生了现场可编程逻辑器件(FPGA)。
自1984年Xilinx公司推出了第一片现场可编程逻辑器件(FPGA)至今,FPGA已经历了20几年的快速发展历程。特别是近几年来,更是发展迅速。FPGA的逻辑规模已经从最初的1000个可用门发展到现在的1000万个可用门。
FPGA技术之所以具有巨大的市场吸引力,其根本原因在于:FPGA不仅可以解决电子系统小型化、低功耗、高可靠性等问题,而且其开发周期短、投入少,芯片价格不断下降。FPGA正在越来越多地取代传统上ASIC,特别是在小批量、个性化的产品市场方面。
二、FPGA技术的发展动向
随着芯片设计工艺水平的不断提高,FPGA技术呈现出了以下4个主要的发展动向。
1.基于FPGA的嵌入式系统(SoPC)技术正在成熟
System on Chip(SoC)技术在芯片设计领域被越来越广泛地采用,而SoPC技术是SoC技术在可编程器件领域的应用。这种技术的核心是在FPGA芯片内部构建处理器。Xilinx公司主要提供基于Power PC的硬核解决方案,而Altera提供的是基于NIOSII的软核解决方案。
Altera公司为NIOSII软核处理器提供了完整的软硬件解决方案,可以让客户短时间完成SoPC系统的构建和调试工作。
如图1所示,是Altera Stratix III FPGA基于NIOS II解决方案的内部结构图。
图1 NIOS II解决方案
2.FPGA芯片向高性能、高密度、低压和低功耗的方向发展
随着芯片生产工艺不断提高,FPGA芯片的性能和密度都在不断提高。早期的FPGA主要是完成接口逻辑设计,比如AD/DA和DSP的粘合逻辑。现在的FPGA正在成为电路的核心部件,完成关键功能。
在高性能计算和高吞吐量I/O应用方面,FPGA已经取代了专用的DSP芯片,成为最佳的实现方案。因此,高性能和高密度也成为衡量FPGA芯片厂家设计能力的重要指标。
随着FPGA性能和密度的提高,功耗也逐渐成为了FPGA应用的瓶颈。虽然FPGA比DSP等处理器的功耗低,但是要明显高于专用芯片(ASIC)的功耗。FPGA的厂家也在采用各种新工艺和技术来降低FPGA的功耗,并且已经取得了明显的效果。
例如,Altera公司的StratixIII系列FPGA的功耗比上一代产品StratixII系列降低了50%以上。
3.基于IP库的设计方法
未来的FPGA芯片密度不断提高,传统的基于HDL的代码设计方法很难满足超大规模FPGA的设计需要。随着专业的IP库设计公司不断增多,商业化的IP库种类会越来越全面,支持的FPGA器件也会越来广泛。
作为FPGA的设计者,主要的工作是找到适合项目需要的IP库资源,然后将这些IP整合起来,完成顶层模块设计。由于商业的IP库都是通过验证的,因此整个项目的仿真和验证工作主要就是验证IP库的接口逻辑设计的正确性。
目前,由于国内的知识产权保护的相关法律法规还不尽完善,基于IP库的设计方法还没有得到广泛应用。但是随着FPGA密度不断提高和IP库的价格逐渐趋于合理化,这种设计方法将会成为主流的FPGA设计技术。
4.FPGA的动态可重构技术
FPGA动态重构技术主要是指对于特定结构的FPGA芯片,在一定的控制逻辑的驱动下,对芯片的全部或部分逻辑资源实现高速的功能变换,从而实现硬件的时分复用,节省逻辑资源。
由于密度不断提高,FPGA能实现的功能也越来越复杂。FPGA全部逻辑配置一次的需要的时间也变长了,降低了系统的实时性。局部逻辑的配置功能可以实现“按需动态重构”,大大提高了配置的效率。
动态可重构的FPGA可以在系统运行中对电路功能进行动态配置,实现硬件的时分复用,节省了资源,主要适用于以下两个系统设计。
① 最新通信系统。
FPGA的动态重构特性可以适应不同体制和不同标准的通信要求,满足软件无线电技术的发展和第三代(3G)和第四代(4G)移动通信系统的需要。
② 重构计算机:
FPGA具有并行处理能力和动态配置能力,可自动改变硬件来适应正在运行的程序,产生了基于这种软硬件环境的全新概念的计算机。
本文选自华清远见FPGA培训教材《FPGA应用开发入门与典型实例》
FPGA技术的发展历史和动向的更多相关文章
- 为什么会出现container、injection技术?发展历史及未来发展趋势
container 原因: 随着软件开发的发展,相比于早期的集中式应用部署方式,现在的应用基本都是采用分布式的部署方式,一个应用可能包含多种服务或多个模块,因此多种服务可能部署在多种环境中,如虚拟服务 ...
- Erlang cowboy 入门参考之现代Web的发展历史
Erlang cowboy 入门参考之现代Web发展史 原文: http://ninenines.eu/docs/en/cowboy/1.0/guide/modern_web/ 让我回顾一下web技术 ...
- Spring项目的发展历史和SpringBoot的发展历史
Spring项目的发展历史和SpringBoot的发展历史 在Java做web应用的服务端开发领域,一直存在着两套技术体系,一套是Sun公司官方推出的JavaEE,另一套是Spring.Spring ...
- Web开发技术发展历史
Web开发技术发展历史 来自:天码营 原文:http://www.tianmaying.com/tutorial/web-history Web的诞生 提到Web,不得不提一个词就是"互 ...
- 【转载】Web开发技术发展历史-版本1
原文在这里. Web开发技术发展历史 Web的诞生 提到Web,不得不提一个词就是“互联网”.Web是World Wide Web的简称,中文译为万维网.“万维网”和我们经常说的“互联网”是两个联系极 ...
- 区块链学习笔记:D02 区块链的技术发展历史和趋势
对于区块链的技术发展历史,其实在我的印象中也就对比特币有所了解,也听过什么火币之类的玩意,但是具体是什么.怎么运作的就不清楚了... 这次的内容首先是讲解了区块链的技术演进,一张图一目了然,虽然里面涉 ...
- Web开发的发展历史
了解一下Web开发相关的历史,相关技术的演进历程,知其前世今生,非常有助于加深Web开发相关技术的理解和认识. 下面是对网上几篇相关文章的总结和摘要: 1. Web开发的发展史 对过去的15年来,We ...
- CentOS以及Oracle数据库发展历史及各版本新功能介绍, 便于构造环境时有个对应关系
CentOS版本历史 版本 CentOS版本号有两个部分,一个主要版本和一个次要版本,主要和次要版本号分别对应于RHEL的主要版本与更新包,CentOS采取从RHEL的源代码包来构建.例如CentOS ...
- 软件项目发展历史<人月神话>这本书好
几乎是计算机软件开发的发展历史 人月神话,增加人手并不一定能提高开发速度. 原因在于,有些任务是无法分解的,存在先后顺序.无法同步进行. 增加人手,增加的是沟通成本,相互牵制.可以分解的任务就 ...
随机推荐
- IBM Rational AppScan 无法记录登录序列 分类: 数据安全 2015-03-18 16:46 158人阅读 评论(0) 收藏
为了测试漏洞,我在本地部署了一个站点,为http://localhost/app,并且有登录页面. 但是尝试多次,都无法记录登录页面.此时尝试了在hosts文件中,自定义了一个域名 127.0.0.1 ...
- Oracle优化 -- 关于Database Buffer Cache相关参数DB_CACHE_SIZE的优化设置
select size_for_estimate, buffers_for_estimate ,ESTD_PHYSICAL_READ_factor,ESTD_PHYSICAL_READS from v ...
- angularjs实战
1.指令 transclude 保留原来的内容 replace 去掉<my-directive>指令 <script src="http://apps.bdimg.com ...
- How to use the Visual Studio
推荐一个提供VS配色方案的一个网站:StudioStyles,域名和网站同名:http://studiostyl.es/ 2. 整行剪切:Ctrl + X.光标不要选中任何文字,然后按这个快捷键就可以 ...
- NSDate用法整理总结
int main(int argc, const char * argv[]) { @autoreleasepool { NSDate *date=[NSDate date]; NSLog(@&quo ...
- JMeter中的关联-正则表达式提取(2)
JMeter获取正则表达式中的提取的所有关联值的解决方法: 需求如下: { : ", : "results": : [ : : { : : : "total_e ...
- js高级技巧之高级定时器
实际上,浏览器负责进行排序,指派某段代码在某个时间点运行的优先级. 可以吧js想象成在时间线上运行的. JavaScript中没有任何代码是立刻执行的,但一旦进程空闲则尽快执行. 1.重复的定时器: ...
- (转)set集合的用法
原地址:http://blog.csdn.net/chaiwenjun000/article/details/50561775 SET 集合 百度百科中说集合中的元素有三个特征: 1.确定性(集合中的 ...
- 黑客语(Leet)
黑客语(Leet) Leet是从网络发展起来的一种文字书写方式.通常将英语中的字母替换为数字和特殊符号.这种方式被很多黑客组织所使用.由于具有隐密性,所以它也广泛被用于密码中.使用Leet书写的密 ...
- AFNetworking 之于 https 认证
写在开头: 本来这篇内容准备写在AFNetworking到底做了什么?(三)中的,但是因为我想在三中完结这个系列,碍于篇幅所限.并且这一块内容独立性比较强,所以单独拎出来,写成一篇. 本文从源码的角度 ...