FPGA介绍

转载:http://www.elecfans.com/tags/fpga/

fpga简介

  FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

fpga特性

FPGA是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
 

  开发

  FPGA的开发相对于传统PC、单片机的开发有很大不同。FPGA以并行运算为主,以硬件描述语言来实现;相比于PC或单片机(无论是冯诺依曼结构还是哈佛结构)的顺序操作有很大区别,也造成了FPGA开发入门较难。目前国内有专业的FPGA外协开发厂家,如[北京中科鼎桥ZKDQ-TECH]等。FPGA开发需要从顶层设计、模块分层、逻辑实现、软硬件调试等多方面着手。

  工作原理

  FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输入输出模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。 现场可编程门阵列(FPGA)是可编程器件,与传统逻辑电路和门阵列(如PAL,GAL及CPLD器件)相比,FPGA具有不同的结构。FPGA利用小型查找表(16×1RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了既可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。FPGA的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式,并最终决定了FPGA所能实现的功能,FPGA允许无限次的编程。

  电源类型

  FPGA电源要求输出电压范围从1.2V到5V,输出电流范围从数十毫安到数安培。可用三种电源:低压差(LDO)线性稳压器、开关式DC-DC稳压器和开关式电源模块。最终选择何种电源取决于系统、系统预算和上市时间要求。

  如果电路板空间是首要考虑因素,低输出噪声十分重要,或者系统要求对输入电压变化和负载瞬变做出快速响应,则应使用LDO稳压器。LDO功效比较低(因为是线性稳压器),只能提供中低输出电流。输入电容通常可以降低LDO输入端的电感和噪声。LDO输出端也需要电容,用来处理系统瞬变,并保持系统稳定性。也可以使用双输出LDO,同时为VCCINT和VCCO供电。

  如果在设计中效率至关重要,并且系统要求高输出电流,则开关式稳压器占优势。开关电源的功效比高于LDO,但其开关电路会增加输出噪声。与LDO不同,开关式稳压器需利用电感来实现DC-DC转换。

 

fpga应用

  电路设计

  连接逻辑,控制逻辑是FPGA早期发挥作用比较大的领域也是FPGA应用的基石.事实上在电路设计中应用FPGA的难度还是比较大的这要求开发者要具备相应的硬件知识(电路知识)和软件应用能力(开发工具)这方面的人才总是紧缺的,往往都从事新技术,新产品的开发成功的产品将变成市场主流基础产品供产品设计者应用在不远的将来,通用和专用IP的设计将成为一个热门行业!搞电路设计的前提是必须要具备一定的硬件知识.在这个层面,干重于学,当然,快速入门是很重要的,越好的位子越不等人电路开发是黄金饭碗.

  产品设计

  把相对成熟的技术应用到某些特定领域如通讯,视频,信息处理等等开发出满足行业需要并能被行业客户接受的产品这方面主要是FPGA技术和专业技术的结合问题,另外还有就是与专业客户的界面问题产品设计还包括专业工具类产品及民用产品,前者重点在性能,后者对价格敏感产品设计以实现产品功能为主要目的,FPGA技术是一个实现手段在这个领域,FPGA因为具备接口,控制,功能IP,内嵌CPU等特点有条件实现一个构造简单,固化程度高,功能全面的系统产品设计将是FPGA技术应用最广大的市场,具有极大的爆发性的需求空间产品设计对技术人员的要求比较高,路途也比较漫长不过现在整个行业正处在组建“首发团队”的状态,只要加入,前途光明产品设计是一种职业发展方向定位,不是简单的爱好就能做到的!产品设计领域会造就大量的企业和企业家,是一个发展热点和机遇。

  系统级

  系统级的应用是FPGA与传统的计算机技术结合,实现一种FPGA版的计算机系统如用Xilinx V-4,V-5系列的FPGA,实现内嵌POWER PC CPU,然后再配合各种外围功能,实现一个基本环境,在这个平台上跑LINUX等系统,这个系统也就支持各种标准外设和功能接口(如图象接口)了这对于快速构成FPGA大型系统来讲是很有帮助的。这种“山寨”味很浓的系统早期优势不一定很明显,类似ARM系统的境况但若能慢慢发挥出FPGA的优势,逐渐实现一些特色系统也是一种发展方向。若在系统级应用中,开发人员不具备系统的扩充开发能力,只是搞搞编程是没什么意义的,当然设备驱动程序的开发是另一种情况,搞系统级应用看似起点高,但不具备深层开发能力,很可能会变成爱好者,就如很多人会做网页但不能称做会编程。类似以上是几点个人观点,希望能帮助想学FPGA但很茫然无措的人理一理思路。这是一个不错的行业,有很好的个人成功机会。但也肯定是一个竞争很激烈的行业,关键看的就是速度和深度当然还有市场适应能力。

转载:https://blog.csdn.net/baidu_37973494/article/details/82926464

对初学者的FPGA选型建议
前言已经说得很清纯,虽然话是这样说,但是对于一个初学者来说,选择一款适合学习的FPGA是整个FPGA学习生涯的必经之路。我个人建议在选择FPGA的时候,应该抓住如下几个原则:

1、选择主流厂家的流行的型号,这样更容易获取学习资源。
     选择一家主流公司的FPGA芯片:在国内目前来说,主流是Xilinx以及Altera(Intel)。获取资料最便捷的途径就是这些生产厂家的官方网站(http://www.altera.com.cn/,http://china.xilinx.com/)。一般情况下,官方网站都会按照产品系列或应用场合列出所有的产品,直观的告诉你某个系列产品的应用场合。比如在ALTERA的网站,就会明确标明它的三大类的FPGA产品,高端的Stratix系列,中端的Arria系列和低成本的Cyclone系列。

2、选择一个性价比较高的FPGA芯片
    1) Xilinx 的主流FPGA分为两大类,一种侧重于低成本应用,容量中等,性能可以满足一般的逻辑设计要求,如Spartan系列;还有一种侧重于高性能应用,容量大,性能能满足各类高端应用,如Virtex系列。

    2) Altera 的主流FPGA分为两大类,一种侧重低成本应用,容量中等,性能可以满足一般的逻辑设计要求,如Cyclone系列;还有一种侧重于高性能应用,容量大,性能能满足各类高端应用,如Startix系列。

   用户可以根据自己实际应用要求进行选择。在性能可以满足的情况下,优先选择低成本器件。对于初学者而言,本人建议选择Xilinx的Spartan系列或者Altera 的Cyclone系列。

3、选择一个学习资源比较多的FPGA开发板
1)对于Cyclone系列:建议选择Cyclone IV E系列。因为Cyclone IV E学习资源多,譬如黑金fpga开发板Cyclone IV EP4CE15有一整套的视频以及系列的学习笔《FPGA的那些事》。黑金开发板对应的社区论坛有:黑金动力社区。其实黑金动力社区也有Xilinx的spartan6系列的开发板。还有市面上培训机构华清远见也是使用Cyclone系列的产品。明德样FPGA培训机构也有Cyclone系列和spartan6系列的开发板以及学习资源。

由上图知道,对于学习而言选择一个不是很旧也不是很新的系列为宜,建议选择Cyclone IV。Cyclone IV分为Cyclone IV E和Cyclone IV GX(这两者的详细区别有兴趣的可以到官网查看)。官网查看片上资源如下图,芯片选型时可以查阅一下。

2)对于Xilinx的spartan系列:建议选择spartan 6。选择原因如下:

1、首先现在有一部分高校开设fpga课程使用的就是spartan 6。主要原因也是因为这个系列的fpga芯片对于初学者而言,更容易上手,而且市面上利用spartan6系列芯片作为核心芯片的fpga开发也不少,也有不少培训机构使用该系列的芯片开发板。总的来说,spartan6系列的网上学习资源还是比较丰富的。例如红色飓风的spartan6系列开发板就使用了spartan6-XC6SLX16芯片

2、spartan 6是一个划时代的产品,如下图可以看到spartan 6是45nm,这个不是我想说的,我想说的是:Xilinx公司的spartan 6系列以及更早推出的fpga系列芯片使用的开发环境EAD是ISE,而spartan6系列之后新推出的fpga芯片使用开发环境EDA是vivido。其实两个开发EDA大同小异。不过为了学习的全面性,建议初学者可以选择spartan6以及ISE。等入门之后再转到vivado也是如鱼得水的事情。

与Cyclone IV分为Cyclone IV E和Cyclone IV GX相似,spartan-6也分为spartan-6 LX系列已经spartan-6 LXT系列。下面给出spartan-6 LX系列的片上资源(这些都是从官网截图下来的,有兴趣的朋友可以到官网查阅)

由上图,根据资源是否够用原则,可以选择一个片上资源适中的,譬如XC6SLX45,如果对片上资源要求不是那么大,也可以选择XC6SLX16,尽量别选择XC6SLX4或者XC6SLX9,因为资源太少也不利于后面的扩展。以上便是我对初学者选择FPGA的一些建议。

 
对于一个FPGA高手而言
在选择具体的FPGA芯片型号以及封装的时候,要根据下面的几个方面做综合的考量:

以下三点考虑来自网友:https://blog.csdn.net/whw8007/article/details/9566761?utm_source=copy

1,片上资源,主要依据表1给出的信息。要根据设计的大小选择合适的片上资源。这个是比较难确定的一个参数,自己做的设计到底有多大,需要多少片上资源,很难一下子确定下来。比较推荐的一个方式是先拿之前的设计去综合后映射到某一个芯片上,看看需要占用多少的片内资源,然后评估要做的新的设计跟之前的大小,做换算后得到需要片上资源的数量。另外的一种方式就是先完成新的设计,直接综合出来映射到不同型号的芯片上,然后评估哪一种芯片合适。还有一个需要注意的地方就是,不能选择片上资源刚刚够用的芯片,要留有一定的余量,以便于后期设计错误的修正和升级。

2,选择封装,主要需要在两个方面考量,第一个就是可用的I/O口的数量。第二个就是封装的尺寸。I/O数量是一个必要的条件,先要根据这个条件筛选出可以用的芯片。然后在筛选出来的芯片中,再根据封装类型,尺寸和pitch尺寸选择合适的芯片。在封装尺寸符合要求的情况下,尽量选择有利于PCB设计和生产的封装。比如如果有TQFP封装的芯片,尺寸又符合项目的需求,那么就不要选择BGA封装的。对于BGA封装的芯片,如果有pitch为1.0mm的可以满足要求,就不要选择pitch为0.5mm的。这直接影响到PCB设计难度,制造成本和良率。

3,速度等级,速度等级是一个相对比较独立的参数。要根据实际设计所能综合出来的最高运行频率和需求的运行频率做比较,尽量选用速度等级比较慢的芯片。当所有的速度等级都不能满足需要的时候,更多的要从优化设计的角度来提高设计本身所能达到的最高运行频率。
————————————————
版权声明:本文为CSDN博主「aoxiang_ywj」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/baidu_37973494/article/details/82926464

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值