Verilog / FPGA 要点
赋值规则
- 阻塞赋值:
= - 非阻塞赋值:
<=
常见经验:
- 组合逻辑优先使用阻塞赋值.
- 时序逻辑优先使用非阻塞赋值.
避免锁存器
锁存器通常出现在组合逻辑描述不完整时.
常见规避方式:
if / else要写完整.case要补齐default.- 对输出信号要保证所有分支都有确定赋值.
组合逻辑与时序逻辑
组合逻辑
常见写法:
assignalways_comb或等效组合逻辑块
时序逻辑
- 常用寄存器把组合逻辑结果打一拍, 便于消除毛刺和做时序收敛.
- 对总线输出, 加一级寄存器也更利于数据对齐.
学习建议
- 先把组合逻辑, 时序逻辑, 时钟域和复位策略分清楚.
- 再进入仿真, 约束和上板调试.
- 出现异常时, 先用仿真确认功能, 再回头看时序与引脚约束.