|
最近整理的一份较完整的规则
1、代码规则
1、语法规则,遵循代码本身语法
2、增加必要的注释,包括文件头,使用环境,代码本身的注释
3、命令规则
1、命名统一
2、通俗易懂,有具体含义
3、使用下划线间隔,不要出现其它符号
4、总线采用从高到低,最低位是0
2、正确设计规则
1、时钟
1、全局时钟
2、异步全局复位信号
3、只使用一个时钟沿
4、不要使用门控时钟和分频时钟
5、时钟不可当数据输入
2、latch,无论那种latch(if-else,case,组合逻辑回环等产生的),禁止使用
3、对于FPGA,高速时钟信号一定从时钟管脚引入
4、FSM中禁止有死状态
5、异步逻辑同步化,同步跨时钟域的信号
6、除特殊要求,所有的寄存器要求复位
3、高性能规则
1、设计之初控制关键路径
2、控制内部组合逻辑时延级数
3、FSM采用one-hot,FSM里面不包含其它数据和无相关逻辑
4、复制高扇出网络
5、外部接口采用IOB寄存器(高速),对于三态,必须为低,放于IOB中
6、ram的输入输出要求锁存,提高时序
6、采用高速的逻辑单元,加法器,乘法器等
7、采用case代替if-else
8、采用ram代替多选择
9、流水设计
4、约束规则
1、全局时钟约束,主要是针对周期和相偏
2、管脚约束
3、局部路径约束,包括无关约束,多周期约束等
5、其它规则
1、在verilog中使用*代替信号敏感表(verilog-2001语法)
2、时序逻辑使用delay便于仿真
3、时序逻辑和组合逻辑分开,便于综合,调试