03 2022 档案

摘要:断言; 外部传值; vim折叠; UVM默认的info设置; uvm的log文件写入; assert和cover; rs锁存器真值表; import和include; 阅读全文
posted @ 2022-03-28 16:37 大浪淘沙、 阅读(119) 评论(0) 推荐(0)
摘要:其它属性 可能还有其他协议规则,这些规则在本质上不是严格的时序性的。对于APB3协议,以下属性为真: •在任何时候,只有一条PSEL线在逻辑1上处于激活状态 有关实现,请参见示例页面的“其他属性”部分。 功能覆盖率 除了检查用于有效传输的协议断言所表示的功能覆盖率之外,我们还需要检查所有可能的传输类 阅读全文
posted @ 2022-03-20 23:26 大浪淘沙、 阅读(125) 评论(0) 推荐(0)
摘要:功能覆盖率应基于观察 试验平台的激励侧应该用于驱动DUT,激励侧不应该用于覆盖率,因为DUT或激励可能无法正常工作,从而导致错误的覆盖率。相反,功能覆盖率应基于在测试平台上DUT输出处观察到的情况。在UVM测试平台中,功能覆盖率将基于分析的事务内容。这对测试平台的设计和分析的事务有影响。 功能覆盖有 阅读全文
posted @ 2022-03-18 21:20 大浪淘沙、 阅读(267) 评论(0) 推荐(0)
摘要:功能覆盖率 功能验证的目的是确定我们规范中定义的设计要求是否按预期运行。但是,您如何知道所有指定的功能是否都实际实现了呢?此外,我们如何知道是否所有指定的功能都经过了真正的测试?代码覆盖率指标无法帮助我们回答这些问题。 在本节中,我们将介绍一种称为功能覆盖率的显式覆盖率指标,它可以与设计规范书或实现 阅读全文
posted @ 2022-03-16 21:57 大浪淘沙、 阅读(515) 评论(0) 推荐(1)
摘要:代码覆盖率 在本节中,我们将介绍各种覆盖率度量,这些度量与设计模型的隐式实现覆盖率空间相关联。通常,这些度量与设计模型的隐式实现覆盖空间相关的。通常,这些指标被称为代码覆盖率或结构覆盖率指标。 优点: 代码覆盖率的起源可以追溯到20世纪60年代,是最早为系统软件测试发明的方法之一[1]。代码覆盖率的 阅读全文
posted @ 2022-03-14 23:17 大浪淘沙、 阅读(1043) 评论(0) 推荐(0)
摘要:异步FIFO https://gitee.com/bai-mengwei/asyn_fifo/tree/master/dut 最重要的是同步时钟域和亚稳态,是使用非阻塞赋值(两级D触发器实现的) 功能点分为: 存储体本身 always @(posedge rclk) begin if (rclk_e 阅读全文
posted @ 2022-03-12 18:30 大浪淘沙、 阅读(130) 评论(0) 推荐(0)
摘要:约束重载 约束的定义:constraint name{},如果是想分布的,用dist就可以。 约束的重载是把类继承一下,被继承了然后覆盖约束,用子类完成功能调用。 module taa (); class con_base; rand int a; rand int b; constraint a_ 阅读全文
posted @ 2022-03-10 21:09 大浪淘沙、 阅读(152) 评论(0) 推荐(0)
摘要:我的DUT 我只用了mem[0],它的地址是0x12345678。 信号线一共就这几条、时钟、复位、地址、写数据线、读数据线、数据使能线、写读方向线。 三段always,其中第一段没有用。 module dut (clk, rst_n, addr, w_data, r_data, data_vali 阅读全文
posted @ 2022-03-09 19:44 大浪淘沙、 阅读(311) 评论(0) 推荐(0)
摘要:seq的消息返回 一般是seq发送给drv,drv可以给seq重新返回一个trans。这个trans可以默认是req类型的rsp,也可以在定义一个rsp的trans 简单发送和接收 drv通过seq_item_port.put_response,实现rsp的发送。 seq通过get_response 阅读全文
posted @ 2022-03-07 22:23 大浪淘沙、 阅读(296) 评论(0) 推荐(0)
摘要:Makefile 点击查看代码 comp=vcs -sverilog -debug_access_all -ntb_opts uvm-1.2 taa: set -e $(comp) taa.sv ./simv tbb: set -e vcs -sverilog tbb.sv ./simv tcc: 阅读全文
posted @ 2022-03-06 20:53 大浪淘沙、 阅读(578) 评论(0) 推荐(0)
摘要:验证导向 提高覆盖率流程 无法达到100%功能覆盖率时候: 更多的种子,测试现有程序。 建立新的约束 定向测试 建议 收集信息为导向,而不是数据(如所有的数据包) 只监控将要使用的数据,提高运行速度 保存那些能够获得更高覆盖率的测试和种子,以备回归 注意覆盖率测量结果、漏洞率的情况和趋势,漏洞出现是 阅读全文
posted @ 2022-03-05 19:37 大浪淘沙、 阅读(565) 评论(0) 推荐(0)
摘要:uvm的功能覆盖率收集 类定义 创建了一个类,继承于uvm_subscriber#(trans_name) https://gitee.com/bai-mengwei/sy_uvm_tb/blob/main/inout_coverage.sv#L4 另外需要定义和实例化trans后,后面write的 阅读全文
posted @ 2022-03-04 21:49 大浪淘沙、 阅读(282) 评论(0) 推荐(0)
摘要:urandom_range 只有一个参数,是从0到该参数的范围。 有两个参数,大小无所谓,但是范围是二者之间并包括二者。 module taa (); initial begin for (int i = 0; i < 100; i++) begin #1; $display("random val 阅读全文
posted @ 2022-03-03 21:49 大浪淘沙、 阅读(141) 评论(0) 推荐(0)
摘要:http://blog.sina.com.cn/s/blog_13f7886010102xqlu.html VCS Compile阶段加上“-kdb -lca”这个选项,这样就能在VCS Compile中看到simv.daidir/kdb.elab++这个目录,这个目录就是VCS为Verdi产生的库 阅读全文
posted @ 2022-03-01 19:28 大浪淘沙、 阅读(502) 评论(0) 推荐(0)