×
FPGA/DSP > 可编程逻辑 > 详情

为第10代器件而生,论Altera Spectra-Q引擎的技战术

发布时间:2020-05-16 发布时间:
|
   由于集成了ARM核,Arria10和Stratix10 SoC的复杂度明显比一般的FPGA要高得多,再加上它们其他一些诸如高性能DSP、快速DDR4等特点,利用Arria10和Stratix10进行设计的难度自然倍增。
 
论软硬件战术
 
    工欲善其事,必先利其器,想要把高性能的SoC用好,设计工具很重要。Altera近日推出了专为Arria10和Stratix10等Altera“第10代”及后续产品而设计的强劲引擎Spectra-Q,其在Quartus II软件中使用,以提高Altera下一代可编程器件的设计效能,缩短产品面市时间。
 
    Altera专门请Altera软件和DSP产品市场经理Albert Chang先生通过远程视频的方式,向记者详细介绍了Spectra-Q的重要特点。
 
    Albert表示:“由Altera多年的经验发现,开发软件比对应器件的能力提升得更快,才能保证硬件充分发挥性能特点,并提高效率。这也是为什么Altera为了第10代产品而推出Spectra-Q。‘Spectra’是Spectrum的复数,有十分宽广的含义,Altera这样的命名也是表示Spectra-Q可以大幅拓展Quartus II的功能。”
 
    其实,“三军未动,粮草先行”的策略是很多公司都在采用了,这也使得我们在嵌入式开发市场上看到了越来越优秀的开发工具、IP等。那么,Spectra-Q到底有什么本领呢?Spectra-Q引擎是分层数据库生成引擎,提供一组新的综合、布局、布线和时序分析算法。此外,还提供了新工具和功能,包括BluePrint平台、分层设计流程、分布式编译以及为HLS提供的A++编译器,这些新功能可以缩短编译时间,减少迭代次数。用户可以在早期试用Quartus II 15.0版中使用Spectra-Q新引擎。
 
编译环境的压力与蜕变
 
    Albert列出了一张图,“可以看出,在过去,Altera FPGA的器件功能是线性增加的,与之对应的编译环境的效能也是同样的递增规律,但总是比硬件先进一步。而Arria10和Stratix10的出现打破了这种规律,其功能的跨越式增长(ARM核及浮点运算等),给其开发效能带来了很大压力。”Albert表示,“更复杂的FPGA需要更多的设计迭代,比以前更严格的时间线和设计要求,编译环境仅仅快是不能满足需求的。此外,硬件工程师、软件工程师、嵌入式工程师、算法工程师等不同背景的人都在使用FPGA,他们最需要的是直接把IP和设计方法放在FPGA中使用。而客户也需要不同的项目可以共享同一个IP。”
图1 FPGA及设计能效发展趋势图
 
    为了帮助各类设计人员从繁琐的工作中解放出来处理最重要的工作,Altera Spectra-Q支持DSP Builder、Qsys、OpenCL以及C++这些软件来源的快速通用设计输入,共同汇聚到同一个FPGA平台,设计人员可采用自己喜欢的语言或者设计环境,以更出色的效率针对FPGA进行设计。通过多个通用设计流程,除了支持最新的HDL语言,新引擎还支持Altera为HLS™ (高级综合)提供的A++新编译器,从C或者C++语言中建立IP内核,通过更快速的仿真和IP生成大幅度提高生产能力。 Spectra-Q到底怎样提高能效呢?Albert表示:“Spectra-Q采用先进的I/O和时序收敛工具,迭代次数更少;为设计输入提供更高层的抽象;并提供FPGA业界最快的编译时间。”
 
分布式编译与分层数据库带来的速度和精度
 
    首先,Spectra-Q引擎有一套新的算法,包括布局、布线、时序分析各个阶段,它的算法速度更快,而且都可以扩展。Spectra-Q引擎可以把整个编译阶段分为三部分:外设布放器、内核布放器和布线器。Albert解释到:“这样你就不用进行完全的编译,而是完成一个阶段再进入下一个阶段,以让迭代速度更快。你可以对你的设计进行一个渐进式的改善。比如每次对设计进行修改后,工程师不用进行完全的时序分析,只需要对所修改的部分进行重新分析,Spectra-Q引擎可以做到这一点。”
 
    此外,Spectra-Q引擎它有一个全新的基础结构,就是所谓的分层数据库。这种分层的设计支持IP复用(比如说支持RTL,还支持后综合等)以及可选IP重新编译,还能在不同层面上实现IP模块,并且更新后的IP不再需要对整个数据库重新编译。
 
   “如下图所示,它可以对工程师选择的一个IP进行重新编译,例如你只对IP3进行一些修改,你可以对它进行重新的分析和编译,但是它不会对IP1和IP2产生任何的影响。”Albert表示,“过去我们使用的是扁平的数据库,我们现在的Spectra-Q引擎和过去引擎的最大的区别就是它使用的是分层数据库,针对这个IP,它现在可以提供这种预编译的数据库,而不是像过去提供一个RTL文件。”
图2 分层数据库案例图
 
    Spectra-Q引擎有一个统一的编译器,Albert解释了这样的好处:“不同的前端可能有不同的前端工具,他们都有一个目标,就是要把你的设计意图转换为RTL或者VHTL这样语言。我们可以看到,统一的Spectra-Q引擎再加上统一的编译器技术,可以支持不同的前端工具。所有这些机器的优化都可以实现共享,这样可以带来更好的质量。另外,统一的编译器与Quartus II软件有更加紧密的集成。”
 
自动实时分配引脚
 
    Spectra-Q引擎的顶层是名为BluePrint的平台设计工具,它是业界第一款支持设计人员探查体系结构、以更高的效率分配接口的平台设计工具。你不用再像过去一样要做引脚的分配,BluePrint直接通过这种物理接口的布局来实现。它在设计开始时生成合法引脚输出,并实时将接口放置到合法的起始位置,使得迭代仅为原来的1/10。BluePrint还含有时钟和内核规划功能,极大减少了时序收敛所需要的设计迭代次数。Albert补充到:“我们看到过去客户在I/O引脚的设计和布局上面会花2~3个月的时间,有了BluePrint设计平台之后,不到一个月的时间就可以完成I/O的布局设计。”
 
分层设计流程
 
    利用分层设计流程,工程师可以呈现IP内核,但是它最后形成的是这种后布局和后综合(如下图所示),它也可以支持IP的重用和编译,而不是使用这种RTL文件。
图3 后布局和后综合
 
    分层设计流程能够实现设计模块可以独立完成也可以物理实现可重用设计模块,团队之间最终可以进行并行设计,支持IP重用和可选IP重新编译。
 
    Albert总结了Spectra-Q引擎具体如何缩短编译时间:“采用当今的多核处理器计算机以及算法的更新使得编译速度提高2倍;进行渐进式设计优化,只需要对修改的那部分进行编译,这使得速度再提高2倍;分层数据库使得工程师能把一个单一的设计分成不同的块,把它再分配给不同的计算机来处理,这使得速度再提高2倍,编译速度总共提升了8倍。”
 
    最后,需要强调一下,Spectra-Q引擎是Altera专为其第10代FPGA和SoC而打造的,并且目前只有Quartus II 15.0版本支持该引擎。如果您使用的前一代产品,但又特别想用Spectra-Q引擎优化设计流程,那么就找Altera工程师反馈吧!


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
FPGA的电机测速系统电路设计