故事的两个HLS观点

是高级合成误导和行业采取了解决方案,是无效的,不明确的,考虑不周的吗?答案取决于你的视角。

受欢迎程度

设计自动化会议吸引了几个共存会议、研讨会和其他这样的集会的人,往往比将吸引更专门的主题一般DAC与会者。他们中的一些人更之一,但会议有点奇怪,因为它是关于一个话题转换到商业工具开发,但仍然是一个活跃的研究领域。这个领域是电子系统级设计和会议ESLSyn

半导体工程参加会谈的主题之一由森林布鲁尔教授来自加州大学圣芭芭拉分校。布鲁尔创造了一个高水平的合成工具(Chippe)作为1988年和以后的发展成为了毕业Synopsys对此协议编译器。虽然他已经合成领域的一段时间,他仍有一些直言不讳的观点对高层次综合的商业方向和一些选择。

brianhlspic

为什么这个行业采用的解决方案是无效的,不明确的,考虑不周的?这是教授布鲁尔提出的问题。他说,这个行业已经解决一个几乎无法解决的问题时,在高级合成研究和行业采取了错误的方法。然而,EDA公司出现了明显的成功。他们怎么能都是正确的吗?

布鲁尔教授的演讲
非母语英语课程多次被重新定义,讨论可以追溯到1971年。许多大学参与开发。上面的抽象级别是一步逻辑和自动机。我们做了一个类pascal语言和多种语言已经尝试——其中一些擅长描述一些问题而不是其他人的一部分,和其他语言,擅长这些,而不是其他人的。

这些天的部分工作是在c语言中完成。他们用它来探索RTL设计。它基本上是一个映射和调度问题是在一个自动或半自动的方式。循环展开、程序性转换——这些都是艰难的。我们要做的是描述算法。

由于缺乏一个等效模型,没有规范形式的输入格式(这是一个问题。变量的生命周期模型是犹豫不决。很难做出任何有意义的接口比fifo的复杂。你可以做的事情是非常小的规模,这是因为我们错过了船。我们选择使用的算法并不是可伸缩指标我们选择将没有意义。

HLS问题并不难,但我们错了件蠕变和试图咬掉有点太多了。此外,解决方案的通用性是有限的。人选择一个模型的操作太简单,尽管他们不能解决这个问题。你不能使高效的代码,你不能构建代码片段,作为硬件的选择,因为两件事从时间的角度来看是不相容的,通信的观点。

我们应该测量诸如有多少可用的并行性实际上是发现。我们使用连续的语言,有大量的无意的依赖性。这不是聪明。

在CAD中,我们仔细的历史定义的模型和功能模型。没有,很难级质量的结果。HLS,当结果显示,人们不相信他们,因为一个很轻微的修改输入的代码会给你非常不同的结果。

模型是被定义为软件和65年前的定义。这说得通吗?我不这么认为。我们整个事情人为地努力。

布鲁尔谈到设计,他曾参与和困难他们复制的结果。这使他的研究在一个新的方向。

创建一个高效的事件我有主意语言来编写界面行为,将功能模型的行为事件信号。功能模型可能非常简单,比如Verilog代码片段。这导致调查同步语言如Esterel、并发的欧洲标准规范的安全关键飞行系统。我们定义了一个编译器,成为Synopsys对此协议编译器和导致产权规范语言/糖。这是定义事件场景Verilog语言和当地自动机导致非常有效。这些都是适当的语言来描述接口,这是行业面临的最大问题之一。

是时候该行业有一个令人信服的标准接口语言,可合成的硬件或软件。它应该有一个异步握手和响应模式,尽管它可以同步采样,它应该有一个有效的映射顺序交易安巴等公共汽车。

啤酒然后讨论系统级架构决策,以及他们如何限制许多电子功能的性能。他认为,总体性能是有限的,需要有一个功能在设计执行同步,确保操作的一致性。他相信这个人为降低的速率可以执行计算和通信。

布鲁尔提出了一个与抽象的层次结构模型。从定时时间将抽象函数,只捕获函数依赖的规范。它包括功能抽象,所有行为数据和控制都是封装在交易,可以简化分析事务边界和空间的抽象,封装和数据控制允许充分开发潜在的位置。除此之外资源交易,允许一个调度程序的注释/粘结剂来自动决定物理位置的组件,也允许通信链路建模和数据排序。

市场对商业HLS成功
虽然HLS可能不会取代RTL综合的杀手级应用,提高整个行业更高层次的抽象,它已成为一个可行的工具将算法转化为硬件模块。行业观点,半导体工程跟戴夫•Pursley HLS高级产品经理原则节奏

的基本前提,这是一个困难的问题是正确的。它是NP完全找到确切的完美,最优实现一个给定的一组约束。这意味着有很多挑战,但等同的困难,它不是工作或正在使用偏离现实。

采用HLS的最大障碍之一是教育的定义一个可重复的方法是普遍适用的,可用的,每个人都可以跟随它。这仍然是一个巨大的挑战。考虑如果你想把微软的Word软件的源代码和编译硬件。它不会工作,因为它是无限的。在现实中存在有界的方法,使广泛的同时提供足够的描述方式表达的接口和接口之间的关系,时间和权力约束和能够得到实现。

如果有人认为HLS的目标是采取软件和将其转换为优化硬件,然后他们没有正确的视图或务实的观点可以实现什么。它可以非常抽象的描述从C、c++或SystemC并创建一个RTL实现。

使用编译器可以找到变量的依赖关系。你可以看到当它第一次书面和所有的读取。如果你重用变量并分配在不同的地方,从编译器的角度来看这是一个新的变量,并通过分析方式使它更容易一些。有困难当你有多个线程和一个变量被分配在一个由其他线程和线程和阅读没有同步。你不会知道你需要保持多久的变量,但这不是一个根本的问题。

在早期的RTL综合,有不一致的结果。如果你稍微改变了输入描述,你可以得到完全不同的结果。行业制定正确的和错误的方法来描述HLS一样的东西,这是真的。这可以追溯到教育。我们确实有一个知识库,其中包含提示和技巧,但它不像以下几个简单的指导方针。一部分是方法论,这是RTL的一样。

很早就在我们意识到你必须能够模拟和综合同样的事情。这意味着您必须能够表达你的接口周期精确的方式,你也希望能够在高水平的抽象。这意味着界面知识产权是至关重要的。当你只是合成软件你很快得到,它必须与其他模块通信和系统以后,你不能考虑这个。这不是硬件。接口是根本性的问题。

HLS提供了两种方法获得结果的质量。一个是能够做更好的局部优化的事情如寄存器和HLS比大多数人类能做的更好。另一方面,真正的赢家,是考虑许多不同的体系结构的能力。

结论
在一天结束的时候,用户有口语和使用HLS最顶尖的半导体公司。他们把EDA供应商到C, c++, SystemC营地和HLS创建他们使用芯片赚他们的钱。他们可能不是最优的,但他们可能是更优的如果一个工程师设计它没有帮助的工具。这是否意味着教授布鲁尔是错误的吗?不。学术界应该继续追求卓越和更好的解决方案,可以提供更优的设计。但今天存在的是不够好。



留下一个回复


(注意:这个名字会显示公开)

Baidu