Assertions(断言)
除了Scala本身的运行断言, 用户还可以使用以下语法添加硬件断言:
assert(assertion : Bool, message : String = null, severity: AssertNodeSeverity = Error)
严重性级别为:
严重性声明 | 描述 |
---|---|
NOTE | 用于提供一个消息信息 |
WARNING | 用于报告一个非常规情况 |
ERROR | 用于报告一个本不该出现的情况 |
FAILURE | 用于报告一个失败的情况并终止仿真 |
以一个实际例子为例, 需要检查握手协议的有效信号valid在ready为低时不会下降:
class TopLevel extends Component {
val valid = RegInit(False)
val ready = in Bool
when(ready) {
valid := False
}
// 这里可以添加某些逻辑
assert(
assertion = !(valid.fall && !ready),
message = "Valid dropped when ready was low",
severity = ERROR
)
}