电子大神的日记本,供应链专家的功夫茶盘,在这里记录、分享与共鸣。

登录以开始

FPGA设计的注意事项

 

不管你是一名逻辑设计师、硬件工程师或系统工程师,甚或拥有所有这些头衔,只要你在任何一种高速和多协议的复杂系统中使用了FPGA,你就很可能需要努力解决好器件配置、电源管理、IP集成、信号完整性和其他的一些关键设计问题。不过,你不必独自面对这些挑战,因为在当前业内领先的FPGA公司里工作的应用工程师每天都会面对这些问题,而且他们已经提出了一些将令你的设计工作变得更轻松的设计指导原则和解决方案。

 

I/O信号分配

 

可提供最多的多功能引脚、I/O标准、端接方案和差分对的FPGA在信号分配方面也具有最复杂的设计指导原则。尽管Altera的FPGA器件没有设计指导原则(因为它实现起来比较容易),但赛灵思的FPGA设计指导原则却很复杂。但不管是哪一种情况,在为I/O引脚分配信号时,都有一些需要牢记的共同步骤:

 

1.使用一个电子数据表列出所有计划的信号分配,以及它们的重要属性,例如I/O标准、电压、需要的端接方法和相关的时钟。

 

2.检查制造商的块/区域兼容性准则。

 

  1. 考虑使用第二个电子数据表制订FPGA的布局,以确定哪些管脚是通用的、哪些是专用的、哪些支持差分信号对和全局及局部时钟、哪些需要参考电压。

 

4. 利用以上两个电子数据表的信息和区域兼容性准则,先分配受限制程度最大的信号到引脚上,最后分配受限制最小的。例如,你可能需要先分配串行总线和时钟信号,因为它们通常只分配到一些特定引脚。

 

5. 按照受限制程度重新分配信号总线。在这个阶段,可能需要仔细权衡同时开关输出(SSO)和不兼容I/O标准等设计问题,尤其是当你具有很多个高速输出或使用了好几个不同的I/O标准时。如果你的设计需要局部/区域时钟,你将可能需要使用高速总线附近的管脚,最好提前记住这个要求,以免最后无法为其安排最合适的引脚。如果某个特定块所选择的I/O标准需要参考电压信号,记住先不要分配这些引脚。差分信号的分配始终要先于单端信号。如果某个FPGA提供了片内端接,那么它也可能适用于其他兼容性规则。

 

6.在合适的地方分配剩余的信号。

 

在这个阶段,考虑写一个只包含端口分配的HDL文件。然后通过使用供应商提供的工具或使用一个文本编辑器手动创建一个限制文件,为I/O标准和SSO等增加必要的支持信息。准备好这些基本文件后,你可以运行布局布线工具来确认是否忽视了一些准则或者做了一个错误的分配。

 

这将使你在设计的初始阶段就和布局工程师一起工作,共同规划PCB的走线、冗余规划、散热问题和信号完整性。FPGA工具可能可以在这些方面提供帮助,并协助你解决这些问题,因此你必须确保了解你的工具包的功能。

 

你咨询一位布局专家的时间越晚,你就越有可能需要去处理一些复杂的问题和设计反复,而这些可能可以通过一些前期分析加以避免。一旦你实现了满意的信号分配,你就要用限制文件锁定它们。

 


 

基于CMOS的设计主要消耗三类功率:内部的(短路)、漏电的(静态的)以及开关的(电容)。当门电路瞬变时,VDD与地之间短路连接消耗内部功率。漏电功耗是CMOS工艺普遍存在的寄生效应引起的。而开关功耗则是自负载电容,放电造成的。开关功耗与短路功耗合在一起称为动态功耗。下面介绍降低静态功耗和动态功耗的设计技巧。

 

降低静态功耗

 

简介

 

虽然静态电流与动态电流相比可以忽略不计,然而对电池供电的手持设备就显得十分重要,在设备通电而不工作时更是如此。静态电流的因素众多,包括处于没有完全关断或接通的状态下的I/O以及内部晶体管的工作电流、内部连线的电阻、输入与三态电驱动器的上拉或下拉电阻。在易失性技术中,保持编程信息也需一定的静态功率。抗熔断是一种非易失性技术,因此信息存储不消耗静态电流。

 

降低静态功耗的方法

 

·驱动输入应有充分的电压电平,因而所有晶体管都是完全通导或关闭的。

 

·由于I/O线上的上拉或下拉电阻要消耗一定的电流,因此尽量避免使用这些电阻。

 

·少用驱动电阻或双极晶体管,这些器件需维持一个恒定电流,从而增加了静态电流。

 

·将时钟引脚按参数表推荐条件连接至低电平。悬空的时钟输入会大大增加静态电流。

 

·在将设计划分为多个器件时,减少器件间I/O的使用。

 

eX器件LP方式引脚的使用

 

Actel eX系列设计了特殊的低功率“休眠”模式。在该引脚驱动至高电平800ns后,器件进入极低功率待机模式,待机电流小于100μA。在低功率模式下,所有I/O(除时钟输入外)都处于三态,而内核全部断电。由于内核被断电,触发器中存储的信息会丢失,在进入工作模式(在引脚驱动至低平200ms后)时,用户需再次对器件初始化。同样,用户也应关闭所有通过CLKA、CLKB以及HCLK输入的时钟。然而这些时钟并不处于三态,时钟就可进入器件,从而增加功耗,因此在低功率模式下,时钟输入必须处于逻辑0或逻辑1。

 

有时用户很难阻止时钟进入器件。在此场合,用户可使用与CLKA或CLKA相邻的正常输入引脚并在设计中加进CLKINT。这样,时钟将通过靠近时钟引脚的正常输入进入器件,再通过CLKINT向器件提供时钟资源。

 

采用这种输入电路后,由于常规I/O是三态的,因此用户不必担心时钟进入器件。当然,增加一级门电路会产生0.6ns的较大时钟延时,幸好这在多数低功率设计中是可以接受的。注意应将与CLKINT缓冲器相关的CLKA或CLKB引脚接地。

 

此外还要注意,CLKINT只可用作连线时钟,HCLK并不具备将内部走线网连接到HCLK的能力,因而HCLK资源不能被常规输入驱动。换句话说,如果使用LP引脚就不能使用HCLK;使用HCLK时就应在外部截断时钟信号。

 

降低动态功耗

 

动态功耗是在时钟工作且输入正在开关时的功耗。对CMOS电路,动态功耗基本上确定了总功耗。动态功耗包括几个成分,主要是电容负载充电与放电(内部与I/O)以及短路电流。多数动态功率是内部或外部电容向器件充、放电消耗的。如果器件驱动多个I/O负载,大量的动态电流构成总功耗的主要部分。

 

对设计中给定的驱动器,动态功耗由下式计算

 

p=CL×V 2 DD×f

 

式中,CL是电容负载,VDD是电源电压,f则是开关频率。总功耗是每个驱动器功耗之总和。

 

由于VDD是固定的,降低内部功耗就要降低平均逻辑开关频率,减少每个时钟沿处的逻辑开关总数、减少连线网络,特别是高频信号连线网络中的电容值。对低功率设计,需要从系统至工艺的每个设计级别中采取相应预防措施,级别越高,效果越好。

 

 

 

与CPLD的辨别和分类

 

FPGA与CPLD的辨别和分类主要是根据其结构特点和工作原理。通常的分类方法是:

 

将以乘积项结构方式构成逻辑行为的器件称为CPLD,如Lattice的ispLSI系列、Xilinx的XC9500系列、Altera的MAX7000S系列和Lattice(原Vantis)的Mach系列等。

 

将以查表法结构方式构成逻辑行为的器件称为FPGA,如Xilinx的SPARTAN系列、Altera的FLEX10K或ACEX1K系列等。

 

尽管FPGA和CPLD都是可编程ASIC器件,有很多共同特点,但由于CPLD和FPGA结构上的差异,具有各自的特点:

 

①CPLD更适合完成各种算法和组合逻辑,FP GA更适合于完成时序逻辑。换句话说,FPGA更适合于触发器丰富的结构,而CPLD更适合于触发器有限而乘积项丰富的结构。

 

②CPLD的连续式布线结构决定了它的时序延迟是均匀的和可预测的,而FPGA的分段式布线结构决定了其延迟的不可预测性。

 

③在编程上FPGA比CPLD具有更大的灵活性。CPLD通过修改具有固定内连电路的逻辑功能来编程,FPGA主要通过改变内部连线的布线来编程;FP GA可在逻辑门下编程,而CPLD是在逻辑块下编程。

 

④FPGA的集成度比CPLD高,具有更复杂的布线结构和逻辑实现。

 

⑤CPLD比FPGA使用起来更方便。CPLD的编程采用E2PROM或FASTFLASH技术,无需外部存储器芯片,使用简单。而FPGA的编程信息需存放在外部存储器上,使用方法复杂。

 

⑥CPLD的速度比FPGA快,并且具有较大的时间可预测性。这是由于FPGA是门级编程,并且CLB之间采用分布式互联,而CPLD是逻辑块级编程,并且其逻辑块之间的互联是集总式的。

 

⑦在编程方式上,CPLD主要是基于E2PROM或FLASH存储器编程,编程次数可达1万次,优点是系统断电时编程信息也不丢失。CPLD又可分为在编程器上编程和在系统编程两类。FPGA大部分是基于SRAM编程,编程信息在系统断电时丢失,每次上电时,需从器件外部将编程数据重新写入SRAM中。其优点是可以编程任意次,可在工作中快速编程,从而实现板级和系统级的动态配置。

 

⑧CPLD保密性好,FPGA保密性差。

 

⑨一般情况下,CPLD的功耗要比FPGA大,且集成度越高越明显。

 

 

 

应用

 

1.电路设计应用

 

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

 

2.产品设计

 

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

 

3.系统级应用

 

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

 

生产厂商及开发平台

 

目前全球知名的FPGA生产厂商有:

 

1、Altera ,开发平台是Quarus II

 

2、Xilinx ,开发平台是ISE

 

3、Actel ,开发平台是Libero

 

4、Lattice

 

5、Atmel

 

其中Altera和Xilinx主要生产一般用途FPGA,其主要产品采用RAM工艺。Actel主要提供非易失性FPGA,产品主要基于反熔丝工艺和FLASH工艺。

 

 

 

最新应用

 

北京时间2010年12月30日消息,美英两国科学家联合开发了一款运算速度超快的电脑芯片,使当前台式机的运算能力提升20倍。

 

当前的个人电脑使用双核、4核、16核处理器来执行各项任务。如今,美英研究人员开发的中央处理器(CPU)将1000个内核有效集成于一个芯片上。这项突破或将在今后几年开启一个超高速运算的新时代,使家庭用户不再对运行缓慢的电脑系统感到沮丧。虽然速度更快,但由于新型“超级”电脑的能耗远低于当前电脑,所以更加环保。

 

研究人员采用了一种名为“现场可编程门阵列”(以下简称“FPGA”)的芯片,使得微晶片就像都含有数百万个晶体管一样,而晶体管则是任何电路的基本组成部分。不过,FPGA芯片可由用户安装到特定电路,它们的功能不是在出厂时就设定好的。这样一来,用户可以将晶体管划分成一个个“小群体”,要求每个“小群体”完成不同的任务。

 

通过在FPGA芯片内创建逾1000个微电路,研究人员便将这个芯片变成了1000个内核的处理器——每个内核都可以遵照自己的指令工作。在测试中,FPGA芯片每秒能处理5GB的数据,处理速度大概相当于当前台式机的20倍。这项研究由英国格拉斯哥大学的韦姆·范德堡韦德(Wim Vanderbauwhede)博士和美国马萨诸塞大学卢维尔分校的同行共同实施。

 

范德堡韦德说:“FPGA芯片没有应用于标准电脑上,原因是对FPGA芯片编程相当困难。FPGA芯片的处理能力强大,由于速度更快,能耗相当低,是我们更为环保的选择。”虽然当前市场上销售的电脑大多数内核超过一个,可以同时实施不同任务,但传统多核处理器只能共用一个存储源,这降低了运算速度。范德堡韦德的研究团队给每个内核分配一定量的专用存储空间,从而加快了处理器的运算速度。

 

一名用户坐在运算速度很慢的台式机前面,看上去一筹莫展。在测试中,FPGA芯片每秒能处理5GB的数据,处理速度大概相当于当前台式机的20倍

 

范德堡韦德博士说:“这只是初期概念验证研究,我们试图展示对FPGA编程的便捷方式,令其超高速处理的潜力可以更为广泛地应用于未来的运算器和电子设备上。虽然现有许多技术充分使用FPGA芯片,如等离子电视、液晶电视和电脑网络路由器,但它们在标准台式机上的应用却十分有限。”

 

“但是,我们看到,包括英特尔和ARM在内的一些厂商已经宣布将开发集成传统CPU与FPGA芯片的微晶片。我认为此类处理器会得到更广泛的应用,有助于在今后几年进一步提升电脑运算速度。”范德堡韦德希望在2011年3月应用重构运算国际研讨会上详细介绍他的研究发现。

博主
1069217225@qq.com
只要你想,你可以做所有事情
To be a top of FPGA designer
点击跳转