project log
Lint检查
用spyglass或者nLint做RTL lint检查。
CDC检查
每个模块设计完成之后,都需要做CDC检查。
SDC检查
使用Primetime的PTC来检查Timing Constraint的完备性和正确性。
设计考量
- 功耗和Performance往往不能兼得, 此时设计上需要保留弹性,增加选项,让上层来选择
Performance还是Power。
- 时序紧凑和设计复杂度(Schedule)往往不能兼得,需要保留一定的弹性来增加正确性
和挑战性之间的选择,也要提供更多的debug option。
- FSM编码,状态跳转分析,尽可能减少DFF翻转的次数,从而减少功耗,并利于debug看波形。
不会发生示波器采样采到中间状态。在统计上,尽可能让跳转频率较高的两个状态之间编码只相差1个bit,降低功耗。
- 基本小模块应该用通用的library,而不是在module内部细节描述。比如跨时钟域产生一个
pulse的同步电路,把这个基本pulse产生电路做成一个library模块,让其他人共用。
- RTL代码的可读性。
- 设计文档WIKI保存。
注意
- Non-Glitch-Mux APR的时候Group起来,并设定magnet Net,不做Scan。
- Retention Cell要仔细检查电路细节。
- Reset Pin有在Cell内部做Isolation吗?
- CK在restore的过程中需要keep High or Keep Low
- negedgeDFF的Retention Cell是否Vendor有提供
- Retention NWell连接如果接到OnPower,需要考虑漏电