随笔分类 - 最近日常
常
摘要:UART串口校验方式(无校验、奇偶校验、固定校验) 概念 https://www.codenong.com/cs106550351/ 奇校验(ODD):添加校验位,使得每个字节传送整个过程中bit为1的个数是奇数个。 偶校验(EVEN):添加校验位,使得每个字节传送整个过程中bit为1的个数是偶数个
阅读全文
摘要:断言的onehot taa: vcs -sverilog -R taa.sv 代码文件 onehot、onehot0是断言的语法,不是sv的系统函数,因此只能在property等断言代码中使用。 property需要添加clk,需要仿真时间,才能测试效果。 onehot检查是否为只有一位为1,one
阅读全文
摘要:默认声明 以下的taa中,b被默认声明为wire类型,a被默认声明为wire类型。(verilog语法) c如果是input类型:Implicit wire 'b' does not have any driver module taa (); taax taax_inst(.c(b)); assi
阅读全文
摘要:Vim的let g:、let b: 是变量的一个属性说明,g:Global b:local to the current buffer w:local to the current window t:local to the current tab page ... Vim显示状态栏设置 set s
阅读全文
摘要:断言;
外部传值;
vim折叠;
UVM默认的info设置;
uvm的log文件写入;
assert和cover;
rs锁存器真值表;
import和include;
阅读全文
摘要:其它属性 可能还有其他协议规则,这些规则在本质上不是严格的时序性的。对于APB3协议,以下属性为真: •在任何时候,只有一条PSEL线在逻辑1上处于激活状态 有关实现,请参见示例页面的“其他属性”部分。 功能覆盖率 除了检查用于有效传输的协议断言所表示的功能覆盖率之外,我们还需要检查所有可能的传输类
阅读全文
摘要:功能覆盖率应基于观察 试验平台的激励侧应该用于驱动DUT,激励侧不应该用于覆盖率,因为DUT或激励可能无法正常工作,从而导致错误的覆盖率。相反,功能覆盖率应基于在测试平台上DUT输出处观察到的情况。在UVM测试平台中,功能覆盖率将基于分析的事务内容。这对测试平台的设计和分析的事务有影响。 功能覆盖有
阅读全文
摘要:功能覆盖率 功能验证的目的是确定我们规范中定义的设计要求是否按预期运行。但是,您如何知道所有指定的功能是否都实际实现了呢?此外,我们如何知道是否所有指定的功能都经过了真正的测试?代码覆盖率指标无法帮助我们回答这些问题。 在本节中,我们将介绍一种称为功能覆盖率的显式覆盖率指标,它可以与设计规范书或实现
阅读全文
摘要:代码覆盖率 在本节中,我们将介绍各种覆盖率度量,这些度量与设计模型的隐式实现覆盖率空间相关联。通常,这些度量与设计模型的隐式实现覆盖空间相关的。通常,这些指标被称为代码覆盖率或结构覆盖率指标。 优点: 代码覆盖率的起源可以追溯到20世纪60年代,是最早为系统软件测试发明的方法之一[1]。代码覆盖率的
阅读全文
摘要:异步FIFO https://gitee.com/bai-mengwei/asyn_fifo/tree/master/dut 最重要的是同步时钟域和亚稳态,是使用非阻塞赋值(两级D触发器实现的) 功能点分为: 存储体本身 always @(posedge rclk) begin if (rclk_e
阅读全文
摘要:约束重载 约束的定义:constraint name{},如果是想分布的,用dist就可以。 约束的重载是把类继承一下,被继承了然后覆盖约束,用子类完成功能调用。 module taa (); class con_base; rand int a; rand int b; constraint a_
阅读全文
摘要:我的DUT 我只用了mem[0],它的地址是0x12345678。 信号线一共就这几条、时钟、复位、地址、写数据线、读数据线、数据使能线、写读方向线。 三段always,其中第一段没有用。 module dut (clk, rst_n, addr, w_data, r_data, data_vali
阅读全文
摘要:seq的消息返回 一般是seq发送给drv,drv可以给seq重新返回一个trans。这个trans可以默认是req类型的rsp,也可以在定义一个rsp的trans 简单发送和接收 drv通过seq_item_port.put_response,实现rsp的发送。 seq通过get_response
阅读全文
摘要: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:
阅读全文
摘要:验证导向 提高覆盖率流程 无法达到100%功能覆盖率时候: 更多的种子,测试现有程序。 建立新的约束 定向测试 建议 收集信息为导向,而不是数据(如所有的数据包) 只监控将要使用的数据,提高运行速度 保存那些能够获得更高覆盖率的测试和种子,以备回归 注意覆盖率测量结果、漏洞率的情况和趋势,漏洞出现是
阅读全文
摘要:uvm的功能覆盖率收集 类定义 创建了一个类,继承于uvm_subscriber#(trans_name) https://gitee.com/bai-mengwei/sy_uvm_tb/blob/main/inout_coverage.sv#L4 另外需要定义和实例化trans后,后面write的
阅读全文
摘要:urandom_range 只有一个参数,是从0到该参数的范围。 有两个参数,大小无所谓,但是范围是二者之间并包括二者。 module taa (); initial begin for (int i = 0; i < 100; i++) begin #1; $display("random val
阅读全文
摘要:http://blog.sina.com.cn/s/blog_13f7886010102xqlu.html VCS Compile阶段加上“-kdb -lca”这个选项,这样就能在VCS Compile中看到simv.daidir/kdb.elab++这个目录,这个目录就是VCS为Verdi产生的库
阅读全文
摘要:module的参数例化 module async_fifo #(parameter FIFO_PTR = 4, FIFO_WIDTH = 32)([port_list]) 格雷码转换与generate结构 generate语句可以配合genvar实现将assign语句进行并行化处理。否则有有以下提示
阅读全文
摘要:IC产业用语 https://zhuanlan.zhihu.com/p/403874080 IDM Integrated Device Manufacture 集芯片设计、芯片制造、芯片封装和测试等多个产业链环节于一身 Fabless 无工厂模式,就是只做芯片设计和销售,其它环节全都使用外部资源 F
阅读全文