芯片设计中RTL级别总结

目录

    • 一、简介
    • 二、详细介绍
      • 2.1 RTL级的基本要素和设计步骤
      • 2.2 书中推荐的设计步骤
      • 2.3 常用RTL级建模
    • 三、其他相关链接
      • 芯片行业常用英文术语详细总结

一、简介

芯片设计级别简介
行为级(Behavior Level):通过行为级算法描述数字系统。
寄存器传输级(Register Transfer Level)RTL:在寄存器传输级,通过寄存器之间的数据传输进行电路功能设计, 例如有限状态机。
门级(Gate level):数字系统按门级(AND,OR,NOT,NAND等等…)描述。通常不会进行门级设计,门级网表网表一般是通过逻辑综合的输出。

二、详细介绍

RTL指不关注寄存器和组合逻辑的细节(如使用了多少逻辑门,逻辑门之间的连接拓扑结构等),通过描述寄存器到寄存器之间的逻辑功能描述电路的HDL层次。RTL级是比门级更高的抽象层次,使用RTL级语言描述硬件电路一般比门级描述简单高效得多。

RTL级语言的最重要的特性是:RTL级描述是可综合的描述层次。

2.1 RTL级的基本要素和设计步骤

典型的RTL设计包含一下3个部分:
时钟域描述:描述所使用的所有时钟,时钟之间的主从与派生关系,时钟域之间的转换;
时序逻辑描述(寄存器描述):根据时钟沿的变换,描述寄存器之间的数据传输方式;
组合逻辑描述:描述电平敏感信号的逻辑组合方式与逻辑功能。

2.2 书中推荐的设计步骤

功能定义与模块划分:根据系统功能的定义和模块划分准则划分各个功能模块;

定义所有模块的接口:首先清晰定义每个模块的接口,完成每个模块的信号列表,这种思路与Modular Design(模块化设计方法)一致,利于模块重用、调试、修改;

设计时钟域:根据设计的时钟复杂程度定义时钟之间的派生关系,分析设计中有哪些时钟域,是否存在异步时钟域之间的数据交换;对于PLD器件设计,还需要确认全局时钟是否使用PLL/DLL完成时钟的分频、倍频、移相等功能,哪些时钟使用全局时钟资源布线,哪些时钟使用第二全局时钟资源布线;全局时钟的特点是:几乎没有Clock Skew(时钟倾斜),有一定的Clock Delay(时钟延迟),驱动能力最强;第二全局时钟的特点是:有较小的Clock Shew,较小的Clock Delay,时钟驱动能力较强;

补充:时钟抖动(Clock Jitter):指芯片的某一个给定点上时钟周期发生暂时性变化,使得时钟周期在不同的周期上可能加长或缩短。时钟偏移(Clock Skew):是由于布线长度及负载不同引起的,导致同一个时钟信号到达相邻两个时序单元的时间不一致。区别:Jitter是在时钟发生器内部产生的,和晶振或者PLL内部电路有关,布线对其没有影响。Skew是由不同布线长度导致的不同路径的时钟上升沿到来的延时不同。

考虑设计的关键路径:关键路径是指设计中时序要求最难以满足的路径,设计的时序要求主要体现在频率、建立时间、保持时间等时序指标上,;在设计初期,设计者可以根据系统的频率要求,粗略的分析出设计的时序难点(如最高频率路径、计数器的最低位、包含复杂组合逻辑的时序路径等),通过一些时序优化手段(如Pipeline、Retiming、逻辑复制等)从代码上缓解设计的时序压力,这种方法以但依靠综合与布线工具的自动优化有效的多;

顶层设计:RTL设计推荐使用自顶而下的设计方法,因为这种设计方法与模块规划的顺序一致,而且更有利于进行Modular Design,可以并行开展设计工作,提高模块复用率;

FSM设计:FSM是逻辑设计最重要的内容之一;

时序逻辑设计:首先根据时钟域规划好寄存器组,然后描述各个寄存器组之间的数据传输方式;

组合逻辑设计:一般来说,大段的组合逻辑最好与时序逻辑分开描述,这样更有利于时序约束和时序分析,使综合器和布局布线器达到更好的优化效果。

2.3 常用RTL级建模

非阻塞赋值、阻塞赋值、连续赋值
对于时序逻辑,即always块的敏感信号列表为边沿敏感信号,统一使用非阻塞赋值“<=”;
对于always块敏感信号列表为电平敏感的组合逻辑,统一使用阻塞赋值“=”;
对于assign关键字描述的组合逻辑,统一使用阻塞赋值“=”,变量被定义为wire型信号。

三、其他相关链接

芯片行业常用英文术语详细总结

你可能感兴趣的:(芯片,芯片)