FPGA series # 行为(Behavior)级和RTL级

做一次整理。

行为级(Behavior)

  1. 指的是仅仅描述电路的功能而可以采用任何verilog语法的描述方式。
  2. 行为级描述是为了实现特定的功能而没有可综合的限制。目的是加快仿真速度,做法是尽量减少一个always块中要执行的语句数量,其结果不是为了综合,只关注算法。更多的是采取直接赋值的形式,只能看出结果,看不出数据流的实际处理过程。可大量采用算术运算,延迟等一些无法综合的语句,常常只用于验证仿真。
  3. 行为级描述是为了综合工具能够正确的识别而编写的代码,verilog中有一个可综合的子集,不同的综合工具支持的也有所不同。
  4. 行为级 is for testbench for modelling.
  5. 行为级不考虑电路的实现,不考虑综合。
  6. 行为级就是指定输入和输出之间的关系。

RTL级(register transfer level)

  1. 指的是用寄存器这一级别的描述方式来描述电路的数据流方式。
  2. 目的就是可综合,RTL在很大程度上是对流水线原理图的描述。在硬件设计中有一句著名的话:thinking of hardware。哪里是组合逻辑,哪里是寄存器,设计者应该了然于胸。组合逻辑到底如何实现,取决于综合器和限制条件。
  3. RTL级的描述就会更详细一些,并且从寄存器的角度,把数据的处理过程表达出来。
  4. RTL is for synthesis
  5. RTL级描述数据在寄存器层次的流动模型。RTL是晶体管传输级,描述硬件的相互联接关系,一般都可以综合。
  6. RTL就是用寄存器和组合逻辑组成,不能再用其他construct;

细节点:

  • RTL级可以理解为,可以直接用综合工具生成你要的网表的代码,而行为级则不行。
  • 比如real可以用于行为级,而不能用于rtl级。
  • 语法块如果可以被综合到gate level,就是RTL的。否则就是behavior level的。
  • 同样是for语句,如果循环条件是常数,就是RTL的,如果是变量,就是behavior的。
  • always 属于行为级模型,是最基本的行为模型,是可以综合的。
  • 综合与RTL或者行为级没有必然联系,虽然大多数行为模型不能综合

两者之间的关系和转换:
  行为级是RTL的上一层,行为级是最符合人类逻辑思维方式的描述角度,一般基于算法,用C/C++来描述。
  从行为级到RTL级的转换,一般都是由IC设计人员手工翻译。这个过程繁琐,工作量很大,特别是随着数字系统的复杂性提升,这样的纯手工"翻译"过程容易出错,且使得开发周期变长。一批高级综合工具应运而生,如Menter Graphics的高层次综合工具Catapult C Synthesis。有行为综合工具,可以直接将行为级的描述综合为RTL级的,比如Behavioral Compiler。能够将数字系统的行为级描述映射为RTL设计,并满足给定的目标限制。从层次由上到下,数字系统的设计过程为:Idea->行为级描述->RTL描述->门级网标->物理版图。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值