用途:该技能面向 SystemVerilog 硬件验证,提供验证方法学、SVA 断言模式、覆盖率技术与测试平台模板,当用户提到 testbench、assertion 等关键词时使用。
主要能力:
- SVA 断言:区分立即断言(assert (a == b) else $error("mismatch");)与并发断言(assert property (@(posedge clk) ...));提供时序操作符 ##N、##[M:N]、##[0:$],属性操作符 |->、|=>、not、and、or;并给出请求-应答握手、互斥、one-hot 状态、valid 期间数据稳定、FIFO 防溢出、计数器边界等常见断言模式。
- 断言系统函数:$rose、$fell、$stable、$changed、$past、$onehot、$onehot0、$isunknown、$countones。
- 覆盖率:covergroup 结构,含 option.per_instance、option.goal、基本 coverpoint、范围 bins、非法 bins、状态转移 bins 与 cross 交叉覆盖;建议目标设为 90-100%,使用有意义的 bins。
- 测试平台架构:推荐 tb_top 结构(时钟/复位、DUT 实例、接口、激励、断言、覆盖率、记分板);提供 apply_reset、带超时的 wait_for、random_delay 等任务模板。
- 约束随机:Transaction 类中 rand 变量、inside 约束与 dist 权重分布,配合 randomize() 使用。
- 调试:$dumpfile/$dumpvars 生成 VCD,$display/$monitor/$strobe 输出格式,以及波形标记。
使用方式:按需引用上述断言、覆盖率与 testbench 模板编写验证代码;命令与代码保持原样。
适用场景:数字电路/芯片模块的仿真验证、断言检查与覆盖率收敛。
限制:资料未提供具体工具链、仿真器版本、安装命令或收费信息,暂未提供。