01
RTL代码规范概述
为什么需要代码规范 · 行业标准(Low Power/CDC) · 可维护性影响
概述行业标准
02
命名规范(上)
模块/端口/信号命名 · 避免歧义缩写
命名端口
03
命名规范(下)
参数/宏定义 · 状态机命名 · 文件命名
宏定义状态机
04
注释规范
文件头注释 · 接口注释 · 关键逻辑 · 维护更新
注释文档
05
代码排版与缩进
空格 vs Tab · 行宽限制 · 括号对齐
排版风格
06
模块化设计规范
模块划分原则 · 接口清晰 · 避免超大模块
模块化设计
07
组合逻辑设计规范
避免锁存器 · 敏感列表完整 · 赋值完整性
组合逻辑Latch
08
时序逻辑设计规范
同步/异步复位 · 时钟域划分 · 寄存器命名
时序复位
09
状态机编码规范
One-hot vs 二进制 · 三段式 · 综合
FSM编码
10
FSM设计最佳实践
状态跳转清晰 · 默认状态 · 避免冗余
FSM最佳实践
11
时钟与复位设计规范
时钟命名 · 门控时钟 · 复位同步器 · 异步释放
时钟复位
12
跨时钟域(CDC)规范
单bit同步器 · 多bit握手 · FIFO深度
CDC同步
13
低功耗设计规范(RTL级)
时钟门控 · 操作数隔离 · 多阈值电压
低功耗门控
14
可测试性设计(DFT)规范
扫描链 · 测试模式 · BIST接口
DFT测试
15
仿真验证规范
Testbench结构 · 断言 · 覆盖率
验证断言
16
综合约束规范
SDC写法 · false path · multicycle path
综合约束
17
代码检查工具使用
Lint工具(SpyGlass/DC) · 规则配置
Lint工具
18
版本控制规范
Git分支策略 · Code Review · 标签管理
Git版本
19
文档规范
设计文档结构 · 接口说明 · 变更记录
文档规范
20
代码复用规范
参数化设计 · IP封装 · 通用库函数
复用参数化
21
接口协议规范
握手信号(valid/ready) · AXI/APB编码风格
协议总线
22
流水线设计规范
流水级划分 · 寄存器平衡 · 数据冒险
流水线冒险
23
算术运算规范
定点数 · 饱和处理 · 进位链优化
算术定点
24
存储器接口规范
RAM/ROM例化 · 地址译码 · 读写时序
存储器接口
25
异步FIFO设计规范
格雷码指针 · 空满判断 · 深度计算
异步FIFO格雷码
26
同步FIFO设计规范
双端口RAM · 读写指针 · almost full/empty
同步FIFO指针
27
复位树设计规范
复位扇出 · 同步器链 · 释放顺序
复位树扇出
28
时钟树设计规范(RTL视角)
时钟源选择 · 分频 · 时钟使能
时钟树RTL
29
功耗优化规范(RTL级)
数据路径优化 · 状态机编码 · 门控插入
功耗优化
30
综合与后端交接规范
网表交付 · 时序报告 · 物理约束
后端综合