system verilog学习笔记assertion & debug

来源:互联网 发布:淘宝如何抢整点秒杀 编辑:程序博客网 时间:2024/05/22 03:03
断言:
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、设置断点
原创粉丝点击