数字系统的设计层级(行为级、RTL、门级)

数字系统的设计层级(行为级、RTL、门级)

1 层级介绍

数字系统设计层级从上到下可以分为:
Idea——>行为级描述——>RTL级描述——>门级网标——>物理版图

1.1 Behavior级

Behavior级,即行为级,指的是仅仅描述电路的功能,可以采用任何Verilog语法的描述形式,行为级的目标是实现特定的功能,而没有可综合的限制。

**行为描述不关心电路的具体结构,只关注算法。**行为级是RTL级的上一层,行为级是最符合人类逻辑思维方式的描述角度,可以基于算法利用C/C++/Python/Matlab/Simulink描述。行为级的描述更多的是采取直接赋值,或者给定输入的形式,只能看出结果,看不出数据流的实际处理过程,而且多数还使用算术、延迟等一些无法综合的语句,多数只用于仿真。

目前阶段,从行为级到RTL级的转换,一般都是由IC设计人员手工翻译。 如果能实现自动翻译或者自动代码生成,就可以直接利用C/C++或者Python实现编程,而不一定非要使用Verilog。 手工翻译的过程复杂,纯手工的翻译过程易出错、开发周期长、优化调试复杂。不同于上述利用高级语言自动代码生成RTL级代码的思路,直接将数字系统行为级描述映射为RTL级设计的思路已经实现。这也就是高级综合工具,如Mentor Graphics的高层次综合工具Catapult C Synthesis,Behavior Compiler。

1.2 RTL级

RTL级,register transfer level,指的是用寄存器这一级别的描述方式来描述电路的数据流。由于从寄存器的角度表达了数据的处理过程,故更容易被综合工具综合成电路形式。

在硬件设计中有一句著名的话:thinking of hardware。RTL在很大程度上是对流水线原理图的描述。哪里是组合逻辑,哪里是寄存器,设计者应该了然于胸。组合逻辑到底如何实现,取决于综合器和限制条件。
rtl级可以理解为,可以直接给综合工具生成你要的网表的代码,而行为级则不行。比如real可以用于行为级,而不能用于rtl级!

猜你喜欢

转载自blog.csdn.net/zhanshen112/article/details/107681251