本文关键字: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. Spring XML配置文件示例(二)——web.xml

    <?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_ID" ...

  2. Jquery easy UI 上中下三栏布局 分类: ASP.NET 2015-02-06 09:19 368人阅读 评论(0) 收藏

    效果图: 源代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://w ...

  3. phpcms-v9系统搭建wap网站及单页面

    如需要绑定域名为wap.domain.com,作下如操作: 一.把wap.domain.com域名绑定到你的这个网站主机上. 二.在网站后台——模块——手机门户域名里面填写“http://wap.do ...

  4. memset中的sizeof

    记录memset中的sizeof的用法, unsigned char *buff = (unsigned char*) malloc(128 * sizeof(char)); //错误的:memset ...

  5. HDU 2222 Keywords Search (AC自动机)

    题意:给你一些模式串,再给你一串匹配串,问你在匹配串中出现了多少种模式串,模式串可以相同 AC自动机:trie树上进行KMP.首先模式串建立trie树,再求得失配指针(类似next数组),其作用就是在 ...

  6. POJ 2002 统计正方形 HASH

    题目链接:http://poj.org/problem?id=2002 题意:给定n个点,问有多少种方法可以组成正方形. 思路:我们可以根据两个点求出对应正方形[有2个一个在两点左边,一个在两点右边] ...

  7. POJ 2201 Cartesian Tree ——笛卡尔树

    [题目分析] 构造一颗笛卡尔树,然后输出这棵树即可. 首先进行排序,然后用一个栈维护最右的树的节点信息,插入的时候按照第二关键字去找,找到之后插入,下面的树成为它的左子树即可. 然后插入分三种情况讨论 ...

  8. Dapper ORM 用法—Net下无敌的ORM(转)

    假如你喜欢原生的Sql语句,又喜欢ORM的简单,那你一定会喜欢上Dapper这款ROM.点击下载Dapper的优势:1,Dapper是一个轻型的ORM类.代码就一个SqlMapper.cs文件,编译后 ...

  9. sed 字符串替换

    1. sed替换的基本语法为: sed 's/原字符串/替换字符串/' 单引号里面,s表示替换,三根斜线中间是替换的样式,特殊字符需要使用反斜线”\”进行转义. 2. 单引号” ‘ ’”是没有办法用反 ...

  10. 点击 Run 之后发生了什么?

    这是我以前去链家网面试的一个题目,当时回答不够全面,现在看了2016 WWDC以及Sunnyxx iDev大会的分享之后,感觉对这个问题有了一些简单的认识,就来总结下.如果大家有补充,麻烦评论下哦! ...