Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Verilog / FPGA 要点

赋值规则

  • 阻塞赋值: =
  • 非阻塞赋值: <=

常见经验:

  • 组合逻辑优先使用阻塞赋值.
  • 时序逻辑优先使用非阻塞赋值.

避免锁存器

锁存器通常出现在组合逻辑描述不完整时.

常见规避方式:

  • if / else 要写完整.
  • case 要补齐 default.
  • 对输出信号要保证所有分支都有确定赋值.

组合逻辑与时序逻辑

组合逻辑

常见写法:

  • assign
  • always_comb 或等效组合逻辑块

时序逻辑

  • 常用寄存器把组合逻辑结果打一拍, 便于消除毛刺和做时序收敛.
  • 对总线输出, 加一级寄存器也更利于数据对齐.

学习建议

  • 先把组合逻辑, 时序逻辑, 时钟域和复位策略分清楚.
  • 再进入仿真, 约束和上板调试.
  • 出现异常时, 先用仿真确认功能, 再回头看时序与引脚约束.