首页 > 代码库 > RTL 编码指南

RTL 编码指南

1 使用函数,减少代码的书写量。

2 使用有意义的变量名。

3 不要使用立即数。

4 使用工艺无关库。

5 避免使用混合时钟沿。如果必须使用上升沿和下降沿进行触发,则必须保证综合和时序分析后该模块的时序周期在最坏的情况下也是正确的。且必须给出文档说明。

6 如果需要使用门控时钟或内部时钟,或者Reset信号,应把内部时钟产生电路或者Reset电路分离出来。Reset信号的功能是直接清除所有寄存器。

7 避免产生锁存器,在使用case 以及if else 时可能引入锁存器。

8 避免产生组合电路的反馈。

9 完整的敏感向量列表。

10 注意阻塞和非阻塞的区别。

11 避免使用,延时语句,full_case 和parallel_case.

12 所有输出采用寄存器,各个模块的输入也应采用寄存器。

13 将相关的组合逻辑放在一起。组合逻辑尽量靠近目的寄存器。

14 将不同设计目标的部分分配到不同模块。

15 避免使用异步逻辑,时序例外(所有的时需尽量在一个周期完成)

16 消除顶层模块交联逻辑电路。

17 将存储器的接口管脚置于IP核设计的顶层。

RTL 编码指南