ESL促使综合向更高抽象级发展

ESL促使综合向更高抽象级发展
上网时间:2006年01月18日 
  David Maliniak 著
硬件设计是将某个想法从高度抽象形式精炼到具体物理实现的一个过程。在这个过程中,设计不断地从一个特定状态的抽象转换到另外一个较少抽象的描述,最终形成物理设计。这些转换过程就是平时我们所说的综合过程

过去15年来,综合的主要作用是将RTL设计描述转换成门级网表。新思公司的Design Compiler则代表了一种新的设计思想,它采用最新的Verilog语言标准,能够帮助设计师管理复杂性呈螺旋状不断上升的LSI芯片

但随着电子系统级(ESL)设计时代的到来,EDA工具供应商开始提供将更高抽象级设计综合到RTL的工具。在今天的高级综合状态与早期的Design Compiler之间很容易看出相互并行的关系,而对那些不愿放弃自己喜欢的原理图设计方式的设计人员来说,接受这些还需要一些时间。

上升到多高级?

为什么设计师首先希望提高抽象级呢?Celoxica公司行销副总裁兼美国总经理Jeff Jussel认为主要有三大原因。

“原因之一是当系统中既有硬件又有软件时,二者用共同的语言(大多用C)有很大的好处。”他说,“其次,有时候算法太过复杂以至于无法用RTL编写。第三是验证。由于C语言在仿真时要比RTL快得多(因为没有时序信息),因此C语言可以用于建模。”

只有少数几类综合工作在RTL级以上,一般或多或少可分为算法、协处理器和行为这几类。反向综合是其中一种比较特殊的情况,它的C级模型是从已有的RTL综合出来的。

在算法种类中,人们更多地关注DSP算法。Catalytic公司总裁兼首席执行官Randy Allen认为,现在的算法显得比以往任何时候都重要,特别是现在有更多设计师开始依赖于标准化可编程的硬件平台

“我们所看到的是从事ASIC设计的人越来越少,而更多的人在从事ASIC代码的编写。”他说道,“对于1亿门规模的SoC来说,在制造方面充分利用这些门的优势的唯一方法是使它们具有可编程性。”

与 那些专注于算法领域的其它工程师一样,Allen和Catalytic都认为高级综合将更适合软件工程师。Catalytic他们的想法是,高级综合能够 帮助设计师将算法从传统的Matlab开发环境综合成高效的C代码。这样的代码既可以用于DSP或处理器,也可以作为功能模型供RTL开发使用(图1)。

 

许多编程人员编写的代码的目标应用是特殊信号处理,知道代码会运行在专用的DSP芯片上。他们一般愿意一开始就使用MathWorks的Matlab这样的高级语言,因为这些语言能让他们专注于数学方法而忽略掉实现细节。

使用Matlab的算法编程人员和使用HDL或SystemC等较低级语言的硬件设计师之间的最大区别在于对并行机制的思考方式。象Matlab和C/C++这些语言内部是按顺序执行的,而硬件(至少高效的硬件)的本质是并行执行

编译通用程序使之运行在通用并行架构上在以前看来几乎是不可能的。而采用特殊应用并行机制编译特殊应用程序则完全在今天的算法综合流程能力范围之内。

Synplicity公司的Synplify DSP是一款DSP综合工具,它能完成大量行为类的优化,例如时序和面积之间的合理取舍。令人感兴趣的是,它还能通过复用例程实现硬件的多线程自动处理。

AccelChip是另外一家涉及高层综合技术的供应商。该公司主张“架构综合”,它开发的技术能够通过有效整合综合引擎和与它的AccelWare内核发生器提供复杂的DSP相关功能,并从Matlab算术表达式创建RTL。

架构综合为DSP算法工程师提供了一种快速分类大量微架构选项的方法。如果将Matlab作为起点,那么算法的实现就非常清晰。AccelChip公司的流程能够完全抽取掉硬件,允许设计师定义比方说快速傅里叶变换的细节,同时保持在架构级(图2)。

 
AccelChip公司的工具能够生成可综合的Matlab,可进行浮点到定点的转换。与那些一般工作于8、16或32位边界的C语言工具不同,Matlab可以提供高达63,000位的精度。

该工具能够仿真定点Matlab,捕获输入和输出,为VHDL或Verilog语言编写的RTL创建自检测试平台。由此设计师就能验证综合而成的RTL代码是否匹配定点Matlab代码的特征和性能。

虽然通过软件定制来适合特定硬件架构是一种可行的方法,但为软件应用设计定制硬件也是可以的。Celoxica公司的方法就开始于一个功能,然后解决架构问题。与之相对的方法是开始于架构,然后再将功能映射到架构中。

上 述方法最初并不是从算法级开始的,而是开始于一个被称为Handel-C的私有ANSI C变量。Celoxica试图利用Handel-C找到能让设计师通过基于规则的方法表达并行机制的语言。同时,Handel-C避免了将C进一步向类似 HDL方向发展的硬件构造的强制使用。

“如果想综合C代码,还需要做些妥协。”Celoxica公司的Jussel说道。有些妥协折衷可能 意味着要决定是否用C表达设计结构,或决定对你的C代码做多少工作才能完成硬件描述。“你可以用这么多实际上是RTL的实现细节编写SystemC。从这 一点看,为什么还会使人困绕呢?但纯C和C++没有硬件的概念,因此这里又需要做些折衷。”

从C开始工作

Celoxica的工具只是将C级描述综合成RTL的许多候选工具中的一种。象Synfora公司等其它供应商的方法是分析顺序型C代码,从中尽可能多地抽取并行内容。Synfora的方法似乎能在模块级解决在四个不同层次的顺序型C算法上强加并行内容的问题。

首先,并行内容是在任务级抽取的,因此不同的任务可以并行运行。其次,针对潜在并行性对代码中的循环进行了检查。然后就可以并行运行这些循环的多次反复。最后,不同操作的循环也可以并行运行。Synfora工具通过对并行机制的调整来满足设计师所希望的吞吐量要求。

在Synfora流程中,工具接收顺序型C代码以及带用C编写的测试向量的测试平台,然后创建RTL测试平台和仪器化C测试平台。该工具还能产生三种不同类型的SystemC模型:完全无定时关系的位精确模型;具有高层定时的并行模型;提供循环级定时的RTL模型。

明 导资讯公司进入C综合领域也才一年多,它的工具名字叫CatapultC,公司将该工具称为算法综合工具。CatapultC接收用ANSI C++做的算法功能描述。用户需要告诉工具他们的目标技术,如90nm ASIC技术,并规定时钟周期和硬件接口。CatapultC可以产生满足实际系统规范要求的RTL。

最新版的CatapultC经过扩展已经可以自动产生SystemC模型。该工具现在可以产生全定时、循环精确的SystemC模型。明导公司计划在今年晚些时候产生定时和不定时的TLM模型。

行为综合

在行为综合的前沿阵地上,Forte Design公司长期以来受到了很多人的关注。Forte公司的Cynthesizer对行为综合来说是最理想的工具,它将消除较早一代被宣传较多的行为综合技术给人们带来的不愉快记忆。

设计师必须认真考虑行为级综合,原因有很多。其中一个关键原因是存在作为行为工具输入的C、C++和SystemC和过多的C级模型。

行 为综合的优势表现在多个方面。其中之一是它能使设计师快速收敛设计,因为修改用C代码编写的功能规范比RTL要容易得多。行为综合还能让设计师将设计快速 重定位到不同的技术库。技术库是Cynthesizer工具的输入。只需让工具重新生成以新库为目标的RTL代码就能实现库的修改。

值得一提的是,将C转换到RTL的行为综合并不意味着设计师可以不用掌握硬件设计知识。

“要想充分发挥我们工具的价值,用户必须是硬件设计师。”Forte公司行销总监Brett Cline表示。“我们不会让设计师在每个时钟周期都做存储器访问这样的事。但我们可以产生满足时序要求的RTL,因为我们为用户给出的技术库和速度表征化了基本的部件包。”

可编程性规则

一 些综合供应商对从C开始并不太感兴趣,而是关心是否从硬件或软件为中心的观点出发。Celoxica主张的从功能而不是架构开始的概念并没有被 Critical Blue公司完全抛弃,该公司的Cascade协处理器综合工具可以从C代码生成适合可编程协处理器架构的RTL代码。

Cascade可以从协处理器上运行的软件例程综合生成硬件协处理器 ,从而有效地减轻了过重的ARM CPU负担。Critical Blue公司首席执行官David Stewart认为,功耗要求将促使设计师向可编程协处理器综合方向发展。

“即使采用90nm工艺的通用处理器能够以特别高的速度运行,但现实条件中的功率预算一般也不允许这样做。”他说,“这就意味着,目前在处理器上运行的部分代码将必须逐渐被卸载到具有更高效率的解决方案中去。”

RTL:还有希望

虽然许多设计师都开始在RTL层以上开发他们的选项功能,但RTL综合还没有远离我们。不过即使是RTL综合也正在慢慢向更高层抽象发展

例 如,Bluespec的工具可以接受采用私有格式SystemVerilog的无定时设计描述。Bluespec方法采用它所谓的“规则和方法”来描述并 行机制和模块到模块的接口。“规则和方法”被嵌入在SystemVerilog的扩展部分。合并的结果被Bluespec称为Bluespec SystemVerilog。

“传统的行为综合非常擅长于采用紧密嵌套的for-loop语句,并在硬件中实现并行化。”Bluespec 公司行销总监George Harper表示,“但此处的多数IP并不符合那种类别。”Bluespec公司一直在试图通过增加这些规则和方法来积极提升RTL综合的抽象水平,这有 点类似于断言。

在今天的综合环境中需要重点关注的是实现选择的增多。设计师可以选择FPGA、ASIC或结构化ASIC。因此,综合工具能够适应所选的实现架构是非常重要的。

Synplicity公司正在设法让它的综合工具能够满足这个要求。公司最近推出了针对FPGA的图形化物理综合技术。Synplicity的工具利用这一功能可以执行并行布局、优化和布线,然后将布局信息和网表递交给FPGA供应商的布线器。

同时,Synplicity还与LSI Logic、NEC和富士通等结构化ASIC供应商开展了紧密合作,因此Synplicity的物理综合工具的时序分析和ASIC供应商的后端流程之间能够保持密切相关性。

Synplicity采用一种它称之为敏感网络分析和防止(SNAP)的技术来降低布线变化引起相关性问题的可能性(图3)。这样,综合工具就能保证布局后的门设计在具体布线后仍然满足时序要求。

 

“依我们的经验看,只需占用很少量的面积就能增强预测效果。”首席执行官Ken McElvain表示。

虽然新思公司的Design Compiler已是所有RTL综合工具的‘祖师爷’了,但仍然在综合市场占据着绝对优势。最新版的Design Compiler 2005具有更好的精确性,其时序和面积报告更接近实际的物理实现。

到目前为止,新思已经抛弃了Design Compiler中的线载模型,而将更多的物理信息转向综合步骤。同时,公司仍尽量保持了一致的工具外观和感觉。

Magma设计自动化公司也认同逻辑综合与物理综合有相同的精确度。“RTL综合的价值就是要让设计师看清物理实现可能会是什么样子。”Magma公司产品行销总监Yatin Trivedi表示。

“游戏规则已经从‘给我最优化的网表’转变成‘帮助我创建更好的RTL,并完成约束’”,Trivedi说道。在Trivedi和Magma公司看来,真正提高时序性能的最佳技术将是物理综合,而不是逻辑综合。

“物理综合提供了重新实现数据路径的机会,”Trivedi表示,“传统方法中数据路径单元是固定的。当工程师发现问题时只能在后端进行修复。而你真正需要的是动态地或在线实现数据路径综合。”

Cadence 在它的RTL Compiler技术中采用了它称为全局逻辑综合的技术。RTL Compiler并不随机创建实现然后再进行优化,而是在全局测量过程中考虑所有的优化因素。Cadence公司副总裁Chi-Ping Hsu认为,全局综合在功率优化方面有很大的影响力。

“漏电功率优化更倾向于与面积目标一致,而动态功率优化则与面积目标相反。”Hsu说,“当增加多个电压时,确实会使传统的增量方法变得非常困难。运行时间特别慢,结果也不是最理想的。”

就像逻辑综合那样,EDA供应商也在物理综合领域努力提高精度。新思公司升级了IC Compiler,通过扩展它的物理综合功能把布局和布线都覆盖了进去。

就像早期的物理综合弥补了综合与布局间的鸿沟那样,新思公司的扩展物理综合(EPS)技术也将布局、时钟树综合和布线紧密结合在一起。合并效果就是时钟树综合中布局的可见性更高,可以预测以前完全不同的工艺结果,问题在布局优化过程中就得到了解决。

EPS 技术也能帮助时钟树综合预测和指导布线。另外,布线甚至能够修改布局,需要时还能在本地进行重新综合。物理综合的未来会如何?也许从Zenasis技术公 司能得到一些启示。它的旗舰工具ZenTime能够对标准单元进行晶体管级优化,通过精确地调整标准单元来满足时序目标要求。

“在20世纪 80年代和90年代初,逻辑综合是改变标准单元设计的重要因素,随后就是物理综合,现在物理综合已经占据了整个综合领域。”Zenasis公司行销经理 Sunil Mudinuri表示,“我们相信未来的综合领域将是我们所称的灵活单元(flex-cell)或特殊设计单元综合。”

目前大多数标准单元设计是在固定库上完成的。Zenasis公司建议在标准单元周围增加一层或外层,从而使ESL工具在必要时可以用满足特定时序、面积和功率约束要求的单元替换这些标准单元。

Zenasis的技术工作在晶体管级,因此其工具能够非常清楚地看到单元内部发生的事情。在灵活单元概念中,更多的物理信息可以导入ESL工具,因此可以更好地估计特定实现。

几乎具有讽刺意味的是,针对物理综合的未来概念将一直上升到ESL级。但就综合所采取的路径看,EDA供应商试图将物理信息尽可能提高到流程的高层就不足为奇了。

在某种意义上,Zenasis的概念形成了一个封闭的圆圈,它将设计过程的终点-物理综合与前端连接了起来。如果摩尔定律在21世纪仍能成立的话,这很可能会是EDA产业最终会、也必须经过的一条路径。

更多的信息请访问以下各公司的网站。
AccelChip
www.accelchip.com

Bluespec
www.bluespec.com

Cadence
www.cadence.com

Carbon Design Systems
www.carbondesignsystems.com

Catalytic Inc.
www.catalyticinc.com

Celoxica
www.celoxica.com

Critical Blue
www.crtiticalblue.com

Forte Design Systems
www.forteds.com

Magma Design Automation
www.magma-da.com

The MathWorks
www.mathworks.com

Mentor Graphics
www.mentor.com

Synfora
www.synfora.com

Synopsys
www.synopsys.com

Synplicity
www.synplicity.com

Tenison EDA
www.tenison.com

Zenasis Technologies
www.zenasis.com

作者:David Maliniak

此文章源自《电子系统设计》网站:
http://www.ed-china.com/ART_8800011549_400012_500016_OT.HTM
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值