业内领先的ANSI C综合系统——— ImpulseC
北京阿尔戴信息技术有限公司 杨锐
电子系统级(ESL)技术是近十年来电子系统设计技术发展的新方向。从方法学演变的角度来说,当归属于第四代电子设计方法学。与可综合RTL代码对业内技术发展影响力一样,ESL技术很好地解决了RTL不能解决的设计当中的诸多问题,大大提升了设计质量以及效率,成为电子系统设计的里程碑式技术方法,也必将成为今后若干年电子设计技术的主要研究方向。
ESL方法的主要特性有:设计者只需关注系统模型的功能设计及验证,而不用关注具体实现方法;整个系统不论是软件还是硬件可用统一的高级语言描述,如ANSI C语言;具有完备的系统级验证方法,包括软硬件的合理划分及协同验证;具有完备的设计重用解决方案,大量的软件算法IP核可以直接移植到硬件当中;具有快速的系统实现方法,可以将整个系统模型快速可靠的自动优化实现到目标硬件平台上。
上文的描述体现了ESL技术的先进性,但是真正从方法学演进到工程应用还应得益于ESL工具的产生与发展。有据可查,成熟的ESL工具是21世纪的产物,特别是2003年ImpulseC的推出极大促进了ESL技术的普及和发展,在相当长时间里引领此项技术的发展潮流。
实践ImpulseC
由Impulse Accelerated公司于2003年推出的Impulse Codeveloper(简称为ImpulseC)一经面世就成为了各大电子设计公司企业争相实践的平台。为了增加直观性,笔者用数字信号处理领域当中的经典算法——FFT作为示例来测试其性能。
在ImpulseC当中进行系统设计可以通过特定的流程来实现。而从该流程中可以看出,我们按照流程向导操作,从应用程序级的ANSI C代码输入到完成任意平台的实现,都是无缝连接的。以下是此次评测步骤:
第一步,输入代码到Codeveloper平台当中,这是ImpulseC的集成开发环境。
这是一个基4算法的32位浮点FFT描述。为了考量ImpulseC的自动优化能力,此次试验过程没有添加任何的优化指令。
第二步,对代码进行功能测试。ImpulseC提供了一个完整的C级代码调试环境。我们不但可以对其进行GCC编译并直接运行仿真,而且可以通过ImpulseC提供的接口直接将代码导入到MS Visual Studio、Borland C++、Turbo C等第三方调试工具当中进行调试分析。除此之外,ImpulseC还提供了模块级数据分析察看工具Application Monitor,在此当中可以专注于随着运行时间而变化的模块或者函数之间数据传递,可以对功能错误进行更加明确的定位。
ESL方法学的核心之一在于重点关注系统模型的功能,而且相对RTL来讲,高级语言的调试手段非常丰富。所以,笔者推荐系统调试在高级语言阶段完成大部分工作。
第三步,系统综合与实现。通过ImpulseC提供的CoBuilder可以直接将可综合C代码优化综合生成可综合的RTL(VHDL/Verilog)代码。除此之外,在综合过程当中ImpulseC可以根据代码的结构与描述方式自动增加各类优化方式。当然,所有的优化方式都可以通过设计师来明确化。这些优化方式包括:Pipeline,Unroll,Primitive等。如果需要明确化,可通过Pragma例化。
第四步,对生成代码进行逻辑综合并评价比较。综合后生成的代码总共由2个文件与1个文件夹组成,包括FFT代码的VHDL/Verilog实现及相应的库。将代码导入到ISE当中,创建工程并直接综合,可得到设计的时序与面积预估。
通过典型的Verilog实现对比,ImpulseC综合后的时序和面积与RTL描述差距很小。这证明了ImpulseC优异的综合能力及优化能力。此外,这是由工具自动优化生成的代码,没有进行任何的人工干预。
第五步,RTL代码的验证。ImpulseC可以自动生成RTL代码的Testbench,并且可直接应用于RTL仿真器进行仿真,通过这种方法可完成功能等效验证。
上述5个步骤也是一个典型的算法硬件化流程。在ImpulseC当中,设计者只需要关注C算法功能的正确性就可以快速完成一个高质量的硬件IP设计。除此之外,ImpulseC还可以支持SoPC、SoC等以处理器为核心的系统设计,可根据设计需求自动产生可配置的各类处理器总线模型,从而大大缩短一个完整的系统设计由桌面到市场的时间。
ImpulseC的应用状况及前景
ImpulseC是到目前为止最为完整的最优秀的基于ANSI C的ESL设计开发平台,可以帮助设计者完成快速的算法硬件化及完整的电子系统快速实现。这无疑解决了现有手段所亟待解决的问题。自2003年推出以后,ImpulseC得到了大量业内用户的好评,已经成为这些用户的系统设计首选。ImpulseC主要优势归纳起来有以下几点:完整的ANSI C支持,多层次系统综合优化手段,全方位的系统调试手段,等效验证解决方案,全面的各类平台支持。
ImpulseC的应用领域涵盖了多个行业,如航空、航天、防御军工、金融、民用等领域。全球公认的10大防御企业已全部采用ImpulseC。ImpulseC在国内也同样拥有大量用户。
随着ESL技术的不断发展、ESL平台的不断完善,其最终将取代传统的电子设计手段,而ImpulseC作为其中的姣姣者,将引领此项技术不断发展。我们有理由相信,随着时间的推移,ImpulseC会更加完善,更加能够融入到我们的应用当中。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。