system verilog学习笔记assertion & debug

本文是关于System Verilog的学习笔记,重点探讨了assertion在验证中的应用,如检查模块输入的X,Z态,检测设计不支持的用法,确保接口时序,防止buffer/FIFO溢出等问题。同时,还介绍了并发断言property,用于功能覆盖检测和仲裁公平性的衡量。
摘要由CSDN通过智能技术生成
断言:
Design Engineer用 assert来检查

     1)模块输入有没有X,Z态

     2)发现design不支持的用法,报警

     3)设计时的假设,包括接口的时序

     4) buffer/FIFO 的overflow

     5) 一些不能出现的情况,譬如read和write同时有效

     6) 握手总是能够完成 (ack总是跟在req之后)

     7) case语句不会进入未曾预料的区域

     8) not duplicate RTL.   (monitor output changes, and verifiy the input value will cause that changes)

Verification Engineer 用 assert 来

     1) 进行functional coverage检测

     2) 衡量仲裁的公平性。。。

两种类型的assertion

     1) immediate   

            [ name : ] assert ( expression ) [ pass_statement ] [ else fail_statement ]

            一般只是dynamic cast和randomize时使用,只在当前时刻做一次check

     2) concurrent

            [ name : ] assert property ( property_specification ) pass_statement [ else fail_statement ]

Debug的方式:
1、在每个put前(putting xxx), get后(got xxx) 用`vmm_debug 打印data_id等有用信息。
2、设置断点
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值