设计错误
SpinalHDL编译器将对您的设计执行许多检查,以确保生成的 VHDL/Verilog 对于仿真和综合来说是安全的。总体来说应该不可能生成有错误的VHDL/Verilog设计。以下是SpinalHDL检查的非详尽列表:
赋值覆盖(Assignment overlapping)
跨时钟域(Clock crossing)
层次违例(Hierarchy violation)
组合逻辑环(Combinatorial loops)
锁存器(Latches)
无驱动信号(Undriven signals)
位宽不匹配(Width mismatch)
无法访问的switch语句(Unreachable switch statements)
在每个SpinalHDL错误报告中,您都会找到堆栈跟踪,这对于准确找出设计错误在哪里非常有用。乍一看,这些设计检查可能有点矫枉过正,但一旦您开始远离传统的硬件描述方式,它们就变得非常宝贵。
- 赋值覆盖(Assignment overlap)
- 跨时钟域违例(Clock crossing violation)
- 组合逻辑环(Combinatorial loop)
- 层次违例(Hierarchy violation)
- IO线束
- 锁存器检测(Latch detected)
- 无驱动检测(No driver on)
- 空指针异常(NullPointerException)
- 超出范围的常数(Out of Range Constant)
- 定义为组件输入的寄存器(Register defined as component input)
- 作用域违例(Scope violation)
- Spinal无法克隆类(Spinal can’t clone class)
- 未赋值的寄存器(Unassigned register)
- 无法访问的is语句(Unreachable is statement)
- 位宽不匹配(Width mismatch)