首页 理论教育 FPGA系统设计:行为描述与RTL描述对比

FPGA系统设计:行为描述与RTL描述对比

时间:2023-10-20 理论教育 版权反馈
【摘要】:RTL级,它关注的是从寄存器这一级别来描述电路的数据流方式。RTL级的描述比行为级的描述详细很多。可以近似的认为行为级描述是RTL级的上层描述,比RTL更抽象。可不可以综合和它是行为描述还是RTL描述没有必然联系。归根到底,行为级和RTL级的区别还是来自于工程师的思考和技术上的实现方式。对于行为描述和RTL描述的区别,有如下几个要注意的地方:1)Verilog语句里,如果综合后能被综合到门级,那就可以RTL描述。

FPGA系统设计:行为描述与RTL描述对比

5.1节的HDL五级建模模型的分类,一般可以把这5级分为2大类:行为描述和非行为描述。我们主要把系统级和算法级归类为行为描述。有些参考资料里把RTL级也归类为行为描述。本书中,我们把RTL级单独归为一类。

系统级的建模方式主要是从要实现的系统的整体功能行为这个角度来进行描述。相当于是个黑盒子,不关注细节。这是一种行为描述。

算法级的建模方式主要是对数据信号的流动行为进行描述,它一般会用到一些算法来描述这种流动,比如加法、减法、乘法和除法等。它关注的是从算法这个层面来进行描述。这也是一种行为描述。

一般来说,行为描述大量采用直接赋值的形式,只能看到结果,也就是谁赋值给谁,而看不出数据的实际处理过程。主要采用大量的算术逻辑运算和延迟语句。为了描述系统的功能,行为描述可以采用任何的语法结构。这就导致很多行为描述是没法综合成实际的电路的,只能用于对已建立模型进行仿真。

RTL级,它关注的是从寄存器这一级别来描述电路的数据流方式。它的具体实现方式,是用门级电路和触发器相互搭配来实现。RTL级的描述比行为级的描述详细很多。它可以从寄存器的角度,直观地把数据的处理过程表达出来。RTL级的描述一般对应着清晰的、可以综合成具体电路的形式。

可以近似的认为行为级描述是RTL级的上层描述,比RTL更抽象。行为描述不关心电路的具体结构细节,只关注大面上的功能或算法。所以,大家要记住,行为级的描述一般适用于仿真,而RTL级的描述一般适用于综合。

可不可以综合和它是行为描述还是RTL描述没有必然联系。有些行为描述就是可以综合的。比如后面我们要经常用到的always模块就是行为模型的语句,是可以综合的。

归根到底,行为级和RTL级的区别还是来自于工程师的思考和技术上的实现方式。目前,无论是哪个公司开发的集成开发环境,它都大致遵循如下思路:首先得有个想法,也就是idea,工程师的脑子里首先得有这么个大致的图像,准备要做个什么东西;然后,工程师就可以对其能实现的功能进行描述,如果想稍微干涉一下内部的细节,那就可以有个算法;其次,集成开发环境会把行为级的描述映射成RTL结构;在这之后,对应的自动生成门级的网表表达;最后,映射成对应的物理结构实现。

早期的时候,在从行为级过渡到RTL级的时候,靠的是设计人员的手工翻译;随着集成开发环境的发展,现在出现了很多的综合工具,可以自动地将行为级的描述映射为RTL级描述。(www.xing528.com)

对于行为描述和RTL描述的区别,有如下几个要注意的地方:

1)Verilog语句里,如果综合后能被综合到门级,那就可以RTL描述。因为我们在前两段说过描述的几个层次:想法->实现的算法->RTL->门级网表->物理结构。既然能被综合到门级,一定能RTL描述。

2)我们看两个for语句。

第一个例子:

这个例子,我们有一组内存空间mem,它的范围memory_size是个变量,未定义,无法综合,以上语句就是行为级描述。

第二个例子:

这个例子,我们对内存空间mem的范围进行了定义,memory_size=255是个常量。内存范围从mem[0]~mem[255],共256个空间。该for语句可以综合,以上语句就是RTL级描述。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈