三家EDA供应商承诺,凭借他们新推出来的高级综合工具,ASIC和FPGA设计人员可以在今天RTL级之上进行设计。虽然这三家公司分别采取了不同的方法,但他们都宣称自己的工具不仅能显著加快上市时间,还能大幅提高设计质量。
明导资讯的Catapult C综合工具采用不定时的C++描述作为输入,同时适用于ASIC和FPGA设计。Celoxica公司的Agility C编译器提供对可编程逻辑的SystemC综合功能。新兴企业Bluespec公司则抛弃了C语言综合,转而采用SystemVerilog声明。
这三家公司的产品可能有助于实现电子系统级(ESL)设计。一些观察家认为,ESL设计将是EDA行业的下一波发展浪潮。由于缺少自动化综合工具,ESL的发展一直徘徊不前。为了填补这项空白,Forte设计自动化公司不久前发布了SystemC行为综合产品Cynthesizer。
但明导公司认为,SystemC并不是唯一的解决方案。它声称其Catapult是一款“算法”综合工具,而不是行为综合工具。Catapult输入纯粹的不定时C++语言,并产生可综合代码。它瞄准的目标是计算密集型应用,如数字信号处理等。据称,Catapult至少能加快50%的设计速度,而且与手工编写的RTL代码相比,它能生成相同甚至更好的结果。
Gartner Dataquest公司首席EDA分析师Gary Smith认为,Catapult是2004年设计自动化大会上最重要的新闻。“该工具似乎具备接口综合能力,”他指出。虽然多家供应商已经提供了针对模块的行为综合工具,但根据Smith的ESL“发展蓝图”,接口综合是被大家忽略的部分。
以10年的研发作为后盾,Catapult不仅是一种承诺。“它已经投入使用有2年左右的时间,并实现了10个以上的出带,客户包括阿尔卡特、爱立信、诺基亚、西门子和意法半导体(ST)等,”明导公司高级综合产品经理Shawn McCloud表示。在2001年3月举行的国际HDL研讨会上,明导公司曾透露过Catapult背后的一些技术。
“我们第一次可以从完全抽象的C++描述(类似于今天系统设计师编写的代码)开始做系统级建模。”McCloud说,“结果的质量不仅能与设计师手工编写的代码相媲美,而且还常常超过它们。”
虽然Catapult能同时处理数据路径和控制逻辑,但McCloud表示,该工具目前瞄准的是计算密集型应用,特别是通信和视频图像处理市场。它没有瞄准数据密集型应用,如网络交换器件。
“我们的使命是完全从C++描述开始进行综合,”McCloud说,“这意味着不仅算法,而且连接口也是不定时的。”他透露,明导正在申请一项名为“接口综合”的专利技术,它允许用户保持纯粹的C++描述,并将C语言接口映射成硬件元件。然后,该工具将创建符合接口带宽要求的硬件。
Catapult对C++代码有一些限制。例如,指针必须是静态可确定的。用户需要定义约束条件,并必须提供时钟周期和目标技术。对于ASIC设计,Catapult的C库创建器允许用户收集该工具所需的详细特征数据。
除了周期精确的仿真模型外,Catapult还能为数据路径和控制逻辑生成可阅读、可综合的RTL。“在大多数情况,代码质量超过手工编写的代码,”McCloud表示,“与手工编写的RTL相比,用户一般会发现ASIC设计的面积缩小了20%,同时速度加快了20倍。”
“诺基亚的达拉斯研究中心使用Catapult已经有2年的时间,”该中心研究经理Dennis McCain表示。该研究中心的应用目标是赛灵思的Virtex FPGA,而不是ASIC。诺基亚还没有在产品开发中使用Catapult。
“我们通常用Matlab或C代码开发算法。”McCain说,“借助Catapult,我们可以在非常高的层次上作出架构决策,并生成可综合的RTL,从而显著缩短了我们的设计流程。与以前手工编写RTL的流程相比,它可以节省50%到60%的时间。”
“结果质量与手工编写的VHDL相当接近,”McCain表示,“在规范固定的情况下,如果你非常努力地用手工编程,那么有可能得到比Catapult C更好的结果。但通常,我们没有固定的规范,而且它们经常变化。”
诺基亚的研究员Yaunbin Guo表示,他希望该工具在处理控制逻辑方面能有所改进。“在现阶段,他们仍专注于计算密集型应用,”他说。
Celoxica公司对于C语言综合并不陌生。这家英国公司的DK设计套件提供了采用其专有语言Handel-C的综合和仿真。Agility C的新颖之处在于它采用工业标准的SystemC语言进行综合。ALT="图:明导的Catapult输入抽象的不定时C++描述,产生可综合代码。">
Celoxica公司专注于可重配置逻辑,不仅包括FPGA,还包括一些新的架构,如Elixent公司所谓的“可编程算法处理”架构。“把系统级设计的重点放在ASIC是完全错误的。”Celoxica的副总裁Jeff Jussell表示,“C设计人员应该采用FPGA创建首个原型。”
Agility C能产生用于ASIC设计的RTL代码,但它真正的重点是可编程逻辑。“该工具是面向DSP的,”Jussell表示,“瞄准的应用包括数字成像和信号处理等。”
与明导的Catapult不同,Agility C使用定时的SystemC描述。“我们相信这是向设计师提供控制能力的最有效方式。”Jussell说,“如果你正在使用C语言,并试图用硬件实现设计,那么一点都不懂硬件功能肯定是行不通的。”
软件设计师可能比较喜欢Celoxica的Handel-C系列产品,因为它基本上是带编译器指南的ANSI C,Jussell表示。而Agility C瞄准的目标是那些想用C++编程或已经拥有SystemC IP模块的硬件设计师。
Jussell强调,Celoxica公司并不认为使用Agility C会牺牲面积或性能,而且Handel-C综合经常能取得超过人工RTL代码的性能。“设计时间能加快50%,而结果也具有相同的质量,甚至常常超出目标,”他说。
新兴公司Bluespec也声称能减少一半的设计时间,并提供与手工RTL代码相同或更好的结果。因此,它似乎与Forte、明导和Celoxica等公司处于同一阵营,但实际上却有重大差别。Bluespec的编译器可以根据SystemVerilog声明产生可综合的RTL,从而完全避免了C语言综合。
另一个重大区别是:Bluespec公司瞄准的主要目标不是DSP或数据路径密集型设计。该公司首席执行官Shiv Tasker透露,目前大多数评估中的应用集中在控制逻辑领域,包括网络处理芯片和MPU。
Bluespec已经公布了它的综合方法,并详细介绍了所采用的“术语重写系统”技术。不久前,它正式发布了Bluespec Comiler。
在使用此编译器时,工程师首先要识别状态单元,然后阐释SystemVerilog设计声明蕴含的行为。“我们相信工程师应该能控制微架构,”Tasker说,“我们发现了一种方法,既能提高抽象水平,又能使工程师保持良好的控制。”
Bluespec公司最近发布了一个综合的基准套件,它采用了Interra系统公司的IP库。其中,25个中小规模的设计在设计声明级被重新编码和测试,以确保与原始Verilog设计具有相同的功能。Tasker表示:“通过在相同的综合流程中运行原始的Verilog代码和Bluespec综合得到的RTL代码,这项测试表明我们可以获得与手工RTL代码相同或更好的结果。”
Bluespec Compiler输出Verilog 95 RTL代码。之所以这样选择是因为对新思的Design Compiler而言,Verilog 95 RTL具有非常好的可预测性。Bluespec Compiler还能生成周期精确的C模型,可用于Bluespec Simulator的系统级验证。“这种方法架起了高级建模与硬件设计之间的桥梁,”Tasker说。
作者:葛立伟