1、模块RTL代码编写前都必须准备设计说明书。一般来说,设计说明书主要描述一下内容:
1.1、模块功能简要介绍
1.2、模块接口信号以及系统框图
1.3、模块寄存器地址及功能描述
1.4、时钟信号连接(Multicycle Path/False Path/Negedge Clock/Generated Clock)
1.5、复位信号连接(Gated Reset/Soft Reset)
1.6、模块挂载总线--ARM公司的AMBA和AXI总线,IBM公司的Processor Local Bus
2、模块划分
2.1、确保只有顶层模块中才包含IO引脚。
2.2、顶层模块还应该包含边界扫描单元等测试逻辑。
2.3、IP选择及设计
2.3.1、确定那些模块是基于标准单元库进行设计,那些模块需要购买IP。
2.3.2、模块接口协议要尽可能简单。一个常用技巧就是在设计传输接口建立申请应答机制。
2.3.3、分钟分布,关键路径布线,电源和地址布线,IP模块支持的测试结构保持与系统芯片一致。
3、可测性
芯片可测性是指在芯片的生产测试中发现生产缺陷的能力。对于数字电路,通常使用扫描链提高可测试性。一般来说,综合工具中会有对RTL可测试的检查工具。但RTL设计人员应当尽量避免在RTL编写中引入影响可测试的问题:
3.1、复位信号在测试过程中应当设置为无效,否则测试过程可能被复位信号打乱。
3.2、门控时钟在测试中应当有效,只有时钟有效才可以进行扫描连的操作。
3.3、三态的驱动在测试中必要有可知的输出