中国电子技术网

设为首页 网站地图 加入收藏

 
 

让部分重新配置流程的使用更方便

关键词:让部分重新配置流程的使用更方便

时间:2011-03-15 15:43:28       来源:网络

Altera公司

是否曾觉得有必要克服种种困难来使用部分重新配置功能呢?现在,有一种使用方便的精细粒度部分重新配置方法,它降低了成本和功耗,延长了系统工作时间。而且,不需要理解复杂的FPGA体系结构就能够进一步提高器件的密度使用率。

部分重新配置

什么是部分重新配置功能?部分重新配置功能是指能够重新配置部分设计,而其他部分仍然正常运行。它很适用于有很多设计组成而且这些组成不同时工作的设计。考虑到这一定义,很明显,部分重新配置功能具有低成本优势。

部分重新配置的特点

部分重新配置功能的优点在于它增强了效能,提高了灵活性。部分重新配置功能的定义就表明了它能够满足低成本需求,这是因为,与其在一片FPGA中放置不同时工作的两个设计部分,不如放置一部分,在可接受的停机时间内,切换到另一部分。部分重新配置功能可以关断不工作的部分器件,以满足低功耗要求。对器件编程以适应别的设计部分时,器件其他部分仍然在工作,因此,延长了系统工作时间。

Altera开发了使用方便的精细粒度部分重新配置方法。采用这个方法,您不需要知道复杂的FPGA体系结构。您可以发挥部分重新配置功能的优势,进一步提高器件的密度利用率。

应用实例

应用的某些设备实例包括OTN复用转发器和软件无线电。

传统上,OTN系统采用线路卡连接一个或者多个客户侧端口,将其汇集到光传送端口。设计的每一线路卡都可以服务不同的客户侧协议,设定客户侧和协议速率。

在有各类客户侧端口类型的环境中,有不同的线路卡。显然,其性价比不高,这不是高效率解决方案。

新解决方案采用了一块线路卡,满足不同的客户侧协议要求。可以在服务中配置线路卡,以满足客户侧不断变化的需求,而不会影响同一卡上其他客户的工作。

图1所示为典型的OTN系统,采用部分重新配置功能来开发一块实现所有各种客户侧协议和数据速率的线路卡,减少了器件数量,降低了成本。

图1 OTN复用转发器

对于软件无线电,通过修改交换卡,增强波形处理模块以支持多种网络,很容易加入多个通道或者频率。如图2所示。

简化部分重新配置功能

Altera部分重新配置流程使用起来非常方便。传统上,部分重新配置功能要求用户非常了解器件结构。Altera的流程不需要您深入详细的了解体系结构。相反,流程使用成熟的渐进式编译和LogicLock,进一步拓展了现有的技术。Altera在Quartus II GUI和脚本流程中同时提供这一流程。而且,Altera提供可靠的HDL验证方法,支持用户在FPGA上对重新配置过程进行行为仿真。Altera的28-nm Stratix V FPGA就是支持部分重新配置功能的28nm器件系列。


图2 软件无线电

支持部分重新配置技术的Altera器件资源包括收发器和锁相环(PLL),可以改变收发器的数据速率,对设计中的其他收发器不会有影响,可以更新PLL,改变带宽以及频率。

随着部分重新配置功能的出现,整个FPGA内核都是可重新配置的。这包括:Logic Block,可以采用不同的逻辑进行重新配置;Logic Block可以采用不同的精度进行重新配置;存储器模块,可以采用不同的内容进行重新配置,或者完全不同的存储器配置。

Altera器件在PLL和收发器模块上已经采用了重新配置技术,可以针对不同的数据速率来动态优化收发器功能。这是实时完成的,不会影响临近通道中的收发器。由于Altera已经支持这一技术,结合FPGA内核架构的部分重新配置功能,可以在器件上开发OTN复用转发器等应用。与收发器相似,在Altera器件中,还可以实时修改PLL的时钟频率、相移或者带宽,不需要改动整个器件的功能。在收发器和内核架构中结合这一技术,可以采用不同的数据速率和不同的时钟速率来规划系统。

Altera的产品非常灵活,对重新配置区没有限制,能够以任意顺序装入配置区,对编程文件的数量没有限制,对逻辑范围也没有限制。部分重新配置方法可以工作在FPGA内核架构上(逻辑模块、存储器模块和DSP模块),结合收发器和PLL的动态重新配置功能,支持高性能计算领域的串行协议或者应用。借助器件的这种通用性,就可以方便地在设计改动以及在设计中增加新功能。收发器动态重新配置如图3所示。

图3 收发器动态重新配置

部分重新配置流程

Altera为部分重新配置提供两种流程:第一种是基于设计分区的流程,在这种情况下,可使用渐进式编译工具和LogicLock区,在这种模式中,可以针对要开发的部分模块划分芯片,设计的其他部分将占用剩余部分。第二种是基于ECO的部分重新配置,在这一流程中,只需要进行少量的改动,类似于对LAB逻辑的改动,而设计的其他部分继续工作。

Quartus II软件采用渐进式编译流程,重新使用设计中这些模块以前的编译结果,修改设计中其他模块,从而缩短了编译时间,保留了设计模块的性能。

渐进式编译是一种通用方法,支持您使用自上而下、自下而上或者基于团队的设计方法来开发设计。它也支持Synopsys的Synplify Pro以及Mentor Graphics的Precision等合作伙伴工具。

在Quartus II软件中还有很多其他工具,开发我们的部分重新配置方法。比如,LogicLock能够在某些模块中加入位置约束,控制模块布局。TimeQuest是可以支持SDC语言的ASIC类时序分析工具,利用这一功能,可以移植现有ASIC时序约束,或者使用SDC语言功能来约束设计,从而高效地实现时序逼近。Quartus II支持多个处理器的FPGA布局布线工具,支持在不同的处理器上并行编译设计,从而缩短了编译时间。

Quartus II的增强功能有很多。Quartus II软件能够开发不同的修订版本,建立不同的设计环境,用于部分重新配置功能。通过行为模型提供验证功能,仿真重新配置不同环境的过程。Quartus II软件提供增强渐进式编译功能,从而支持多个修改版本之间的设计保留。并行编译不同的修订版本,缩短编译时间。TimeQuest时序分析器工具中的新功能可以在多个修订版本之间进行时序分析。还有就是增强了Quartus II编程器,以支持生成部分编程文件。

使用外部或者内部主机的部分重新配置功能如图4所示。

图4 外部/内部主机的部分重新配置功能使用步骤

对FPGA编程的步骤包括:

(1)启动部分重新配置。

(2)FPGA提供可以使用的状态。

(3)将新编程文件装入到FPGA中,用于部分模块。

(4)成功的FPGA在部分模块中实现了新应用。

总结

总之,部分重新配置是非常重要的特性,结合器件特性和设计流程,具有很多优点。首先,通过资源重用或者使用更小的电路板,降低了成本。其次,获得更低的功耗,能够关断部分设计。最后,可以重新配置部分器件,而系统其他部分正常运行。

更多详细内容,敬请浏览:http://seminar.eccn.com/101125/tindex.asp

问答选编

问:QuartusII设计软件的渐进式编译设计流程在设计上有什么优势?

答:有利于设计更新和团队同时进行开发。

问:建议直接使用Q II编译HDL源码,还是使用第三方EDA工具先把HDL源码编译为cdf后,再使用Q II工具编译?

答:可以使用Quartus II的综合工具,也可以使用第三方的综合工具。

问:Altera芯片中配置位流的存储区域有怎样的抗电磁脉冲干扰的设计吗?

答:针对SEU的情况,可以对CRAM区域进行CRC校验。Stratix V的配置存储区有基于帧的ECC电路。另外还可以进行CRC校验,检测SEU引起的干扰。

问:部分重新配置的方法对于系统已有软件的改动会很大吗?

答:部分重新配置是基于logic lock或者ECO的方式进行的。如果模块划分恰当,对于已有的部分不会有很大影响。

问:部分重新配置后是否还需要验证或仿真?如何进行?是局部还是全部仿真?

答:是的,需要对每一个更新的模块进行仿真或验证。由于是基于模块化的设计,在Quartus II中,会对包含了active module的整个设计进行编译,可以根据设计的具体情况来验证、分析。

问:动态重配置可否利用PS方式进行配置呢?

答:目前可以在16-bit FPP的方式进行部分重配置。动态重配置并不更新CRAM,不是通过PS配置接口实现的。而是通过特定的重配置模块,利用逻辑资源更新PLL/GXB的配置寄存器进行重配。

问:对增加功能部分进行编译,然后就可以直接下载吗?

答:Quartus II会对包含了增加功能模块的整个设计进行编译,产生的配置文件有基于整个器件的配置文件,和基于更新模块的配置文件。可以直接下载更新模块的配置部分。

问:为了能进行部分重新配置,在开始设计FPGA时如何进行更细粒度的功能模块划分?有什么样原则吗?

答:部分重配置模块的大小和数量没有限制,可以从单个LAB到整个器件。可以使用LogicLock定义分区。只更新部分模块时,模块的边界是不能改变的,不同模块之间可能会需要一些相应的握手信号。当进行部分重配置时,部分模块的复位信号不是全局复位,需要通过设计保证想要实现的功能。

问:Stratix V FPGA用在那些领域需要部分重新配置?

答:可以对Stratix V 的逻辑模块,数字信号处理模块,以及存储器模块进行部分重配置。

问:部分重新配置功能是否在芯片中置入支援此功能的模块,若使用到部分重新配置功能,是否反而形成浪费?

答:部分重配置并不需要利用逻辑资源实现更新模块。而是通过特定配置接口对配置存储器进行更新,所以不会形成浪费。

问:部分重配置技术是怎样的情况下需要使用?其使用会给设计带来哪些优势?

答:当不同的功能模块不需要同时工作的时候,或者部分功能模块需要更新,增加功能的时候,可以使用部分重配置技术。优势:(1) 资源的重复利用:可以在单个FPGA上实现多种应用,降低功耗,减少器件数量,减小板子面积,降低成本。(2) 可以远程更新设计,支持系统升级。(3) 缩短更新时间,在更现时,可以保持系统的其他功能继续工作。应用方面:(1)OTN复用转发器。(2)解决bug时的动态更新。(3)基站的重新配置。(4)多通道多网络的软件无线电。(5)医疗CAT系统的快速的算法改变等等。

问:对于模块级的部分重构,FPGA中可重构的区域是否被划分成了固定大小或者有固定位置?

答:是的,基于设计分区和增量式编译,可以划分固定区域为重配置的部分。当然,具体划分时,对大小和位置没有限制,最小可以是单个LAB单元。

问:重配置功能提到的配置几个不同工作的模块,这几个模块在逻辑上有联系么?

答:划分好需要重配置的功能模块后,边界就固定了,可以没有逻辑关系,也可能这些不同工作模块与其他不更新的模块具有相同的接口。

问:重新配置是否可以远程进行?

答:部分配置数据可以远程更新,使用网络或其他通信方式,传送给配置控制器或者存放到存储器,通过配置控制器对FPGA进行部分重配置。

问:请问部分重新配置功能主要使用什么样的算法?

答:根据设计需求,用户可以自己定义需要重新配置的功能和区域。Quartus II软件会编译产生所对应的配置数据以及这些数据对应的地址空间。重配置时,首先发起重配置请求,当器件进入可以重配置的状态后,只要通过配置端口发送这些数据即可,不需要特殊算法。

问:部分重新配置功能是如何降低功耗的?

答:仅仅在需要某些功能的时候,才更新相应的模块,可以降低功耗。另外,如果利用该功能使用更小容量的器件,也可以节约系统功耗。

问:采用重新配置技术时,与其相应的输出端口状态是什么样的?关闭还是保持?

答:在重配置时,Quartus II会在边界上插入或门,可以根据需要设定端口状态。

问:如何在设计时避免竞争冒险?

答:在组合逻辑设计当中,由于延时的问题,容易产生竞 争冒险。推荐使用同步逻辑设计。

问:能否举例说明部分重新配置提高逻辑密度的效率?

答:如果有功能A和功能B,一片器件的资源不足以同时实现,而且AB是在不同时间内工作的,那么使用部分重配置,可以使逻辑资源得到重复利用。

问:Stratix V FPGA的重新配置新架构是怎么样的?

答:Stratix V FPGA的重配置架构基于配置存储器可以在器件工作的时候,通过配置端口对其进行访问,修改部分数据,以实现功能更新。

欲了解更多、更详细的内容,敬请登录http://seminar.eccn.com

GEC

  • 分享到:

 

猜你喜欢

  • 新闻
  • 新品
  • 方案