知识中心
导航
知识中心

行为合成

转换的RTL设计在高层的抽象描述
受欢迎程度

描述

行为合成已经有相当长的历史,大量的学术研究可以追溯到1980年代末。有几个商业行为合成产品介绍在1990年代,尤其是从Synopsys对此行为编译器和莫奈的导师图形。这些产品有一个曲折的,大多数失败的历史。

行为合成其原始形式提供了一个简单的时间和资源的抽象。也就是说,输入是程序性的形式写的。合成器将时间表代码并创建一个状态机通过适当数量的时钟周期序列来完成计算。有多少状态计算的主要决定因素将是可以并行执行许多操作。也就是说,有多少操作可以发生在每个州。这是依赖图和取决于有多少可用的硬件资源。例如,如果计算需要5添加操作符是相互独立的,也可能是在一个周期如果有五条,或5周期如果只有一个加法器。

行为综合使用高层不计时的,或部分时间、功能描述。有几个原因行为合成并不成功。输入语言问题是最突出的一个。

商业产品都用Verilog或硬件描述语言(VHDL)作为输入语言。这是一个自然的选择,实际上可能是唯一可行的选择。然而,尽管这两种语言都可以支持过程代码的上下文中硬件描述语义,最初的一个算法的描述是从未做过的语言。算法几乎总是以一种通用编程语言写成,通常C或c++。

为了使用行为合成,该算法必须翻译Verilog或硬件描述语言(VHDL)。这是一个尴尬的过程中,部分原因是这两种语言的潜在语义不同,部分原因是硬件描述语言(VHDL), Verilog行为语言不是很好。因此,使用行为合成没有保存尽可能多的努力设计在更高的抽象级别承诺。尽管SystemVerilog添加新结构Verilog在更高层次的抽象,这仍然不是已经证明了自己是一个好的行为语言。

的另一个原因行为合成在时机没有达到商业上的成功是困难。当合成程序产生的RTL执行计算,预测有多少水平的逻辑可能适合一个时钟周期,并相应地填充状态机的状态。然而,合成的程序依赖内部模型后的优化程序,即逻辑综合和地点和路线,能做的,模型不是特别准确。

因此,它往往会产生RTL中并不是所有的逻辑可以在一个单一的执行周期。也就是说,会有很长一段路,违反时间所需的时钟频率。几乎没有,如果有的话,用户可以做正确的问题在源代码级别,完全缺乏改变的代码。如果你改变了输入代码或约束,由此产生的RTL通常会完全不同于前面的RTL,和新问题几乎没有,如果有的话,前面的问题的关系。

最后一个大问题与行为综合验证。验证环境将写在原来的设计工作,行为形式。一旦设计调试,然后RTL将合成产生的程序和结果的模拟与验证环境为了验证合成过程产生了一个正确的转换。然而,这往往没有工作。问题是时间的抽象行为反映在验证环境代码外部接口。结果是,合成程序会改变接口操作的循环时间,因此验证环境将不再交流正确的设计。

多媒体

改变设计流程

多媒体

在SoC设计合成:下一个步骤

Baidu