本文关键字: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技术的发展历史和动向的更多相关文章

  1. 为什么会出现container、injection技术?发展历史及未来发展趋势

    container 原因: 随着软件开发的发展,相比于早期的集中式应用部署方式,现在的应用基本都是采用分布式的部署方式,一个应用可能包含多种服务或多个模块,因此多种服务可能部署在多种环境中,如虚拟服务 ...

  2. Erlang cowboy 入门参考之现代Web的发展历史

    Erlang cowboy 入门参考之现代Web发展史 原文: http://ninenines.eu/docs/en/cowboy/1.0/guide/modern_web/ 让我回顾一下web技术 ...

  3. Spring项目的发展历史和SpringBoot的发展历史

    Spring项目的发展历史和SpringBoot的发展历史 在Java做web应用的服务端开发领域,一直存在着两套技术体系,一套是Sun公司官方推出的JavaEE,另一套是Spring.Spring ...

  4. Web开发技术发展历史

    Web开发技术发展历史   来自:天码营 原文:http://www.tianmaying.com/tutorial/web-history Web的诞生 提到Web,不得不提一个词就是"互 ...

  5. 【转载】Web开发技术发展历史-版本1

    原文在这里. Web开发技术发展历史 Web的诞生 提到Web,不得不提一个词就是“互联网”.Web是World Wide Web的简称,中文译为万维网.“万维网”和我们经常说的“互联网”是两个联系极 ...

  6. 区块链学习笔记:D02 区块链的技术发展历史和趋势

    对于区块链的技术发展历史,其实在我的印象中也就对比特币有所了解,也听过什么火币之类的玩意,但是具体是什么.怎么运作的就不清楚了... 这次的内容首先是讲解了区块链的技术演进,一张图一目了然,虽然里面涉 ...

  7. Web开发的发展历史

    了解一下Web开发相关的历史,相关技术的演进历程,知其前世今生,非常有助于加深Web开发相关技术的理解和认识. 下面是对网上几篇相关文章的总结和摘要: 1. Web开发的发展史 对过去的15年来,We ...

  8. CentOS以及Oracle数据库发展历史及各版本新功能介绍, 便于构造环境时有个对应关系

    CentOS版本历史 版本 CentOS版本号有两个部分,一个主要版本和一个次要版本,主要和次要版本号分别对应于RHEL的主要版本与更新包,CentOS采取从RHEL的源代码包来构建.例如CentOS ...

  9. 软件项目发展历史<人月神话>这本书好

    几乎是计算机软件开发的发展历史     人月神话,增加人手并不一定能提高开发速度. 原因在于,有些任务是无法分解的,存在先后顺序.无法同步进行. 增加人手,增加的是沟通成本,相互牵制.可以分解的任务就 ...

随机推荐

  1. IBM Rational AppScan 无法记录登录序列 分类: 数据安全 2015-03-18 16:46 158人阅读 评论(0) 收藏

    为了测试漏洞,我在本地部署了一个站点,为http://localhost/app,并且有登录页面. 但是尝试多次,都无法记录登录页面.此时尝试了在hosts文件中,自定义了一个域名 127.0.0.1 ...

  2. Oracle优化 -- 关于Database Buffer Cache相关参数DB_CACHE_SIZE的优化设置

    select size_for_estimate, buffers_for_estimate ,ESTD_PHYSICAL_READ_factor,ESTD_PHYSICAL_READS from v ...

  3. angularjs实战

    1.指令  transclude 保留原来的内容 replace 去掉<my-directive>指令 <script src="http://apps.bdimg.com ...

  4. How to use the Visual Studio

    推荐一个提供VS配色方案的一个网站:StudioStyles,域名和网站同名:http://studiostyl.es/ 2. 整行剪切:Ctrl + X.光标不要选中任何文字,然后按这个快捷键就可以 ...

  5. NSDate用法整理总结

    int main(int argc, const char * argv[]) { @autoreleasepool { NSDate *date=[NSDate date]; NSLog(@&quo ...

  6. JMeter中的关联-正则表达式提取(2)

    JMeter获取正则表达式中的提取的所有关联值的解决方法: 需求如下: { : ", : "results": : [ : : { : : : "total_e ...

  7. js高级技巧之高级定时器

    实际上,浏览器负责进行排序,指派某段代码在某个时间点运行的优先级. 可以吧js想象成在时间线上运行的. JavaScript中没有任何代码是立刻执行的,但一旦进程空闲则尽快执行. 1.重复的定时器: ...

  8. (转)set集合的用法

    原地址:http://blog.csdn.net/chaiwenjun000/article/details/50561775 SET 集合 百度百科中说集合中的元素有三个特征: 1.确定性(集合中的 ...

  9. 黑客语(Leet)

    黑客语(Leet)   Leet是从网络发展起来的一种文字书写方式.通常将英语中的字母替换为数字和特殊符号.这种方式被很多黑客组织所使用.由于具有隐密性,所以它也广泛被用于密码中.使用Leet书写的密 ...

  10. AFNetworking 之于 https 认证

    写在开头: 本来这篇内容准备写在AFNetworking到底做了什么?(三)中的,但是因为我想在三中完结这个系列,碍于篇幅所限.并且这一块内容独立性比较强,所以单独拎出来,写成一篇. 本文从源码的角度 ...