
UVM学习
文章平均质量分 77
SV/UVM/VIP验证学习实战记录
小破同学
IC硅农
展开
-
Synopsys验证VIP学习笔记(6)检查和打印信息控制
在使用VIP时,出于对仿真性能和环境效率的考虑,可以关闭VIP中的一些检查和打印信息。当然,屏蔽的前提是确认过这些检查或打印信息是不被需要的或已实现的。原创 2021-12-06 12:48:16 · 7558 阅读 · 13 评论 -
Synopsys验证VIP学习笔记(5)重写VIP中的系统常数
VIP通过include文件来定义一些系统约束,可以通过覆盖这些常量来改写一些系统参数,例如,可以增加VIP限制的一些最大延迟值,或调整最大地址宽度、ID宽度等。VIP中的系统常量在 $DESIGNWARE_HOME/vip/svt/amba_svt/latest/sverilog/include 目录下的以下文件中定义:svt_axi_defines.svi顶层include文件,它包含了common_define.svi和port_define.svi文件。此外,在定义了 `SVT_AXI_I原创 2021-11-15 11:22:05 · 6869 阅读 · 4 评论 -
Synopsys验证VIP学习笔记(4)检查AXI的outstanding数
在使用AXI-VIP验证时,需要检查AXI的outstanding数,由于VIP的monitor port本身仅监测单笔burst,而outstanding涉及多笔burst,可以采用回调机制实现:从 svt_axi_port_monitor_callback 类扩展用户自定义回调类 cust_svt_axi_monitor_callback。class cust_svt_axi_monitor_callback extends svt_axi_port_monitor_callback ;原创 2021-11-04 11:31:31 · 7950 阅读 · 8 评论 -
Synopsys验证VIP学习笔记(3)总线事务的配置和约束
在使用Synopsys AXI VIP时,需要配置一些信号的属性或定义一些信号的delay,通常可以直接在svt_axi_transaction类中控制。AXI VIP中描述从事务数据的类是svt_axi_slave_transaction,从事务类提供了配置信号数据(如rresp[], bresp, data[])和延迟(如bvalid_delay, addr_ready_delay)的一些属性,大多数属性为public且可随机化,并且仅在配置vip slave agent为active模式时才生效。原创 2021-09-28 16:13:42 · 9855 阅读 · 12 评论 -
Synopsys验证VIP学习笔记(2)Port Monitor用法
Synopsys AXI VIP为master和slave agent中的monitor提供了名为item_started_port和item_observed_port的analysis port,前者仅在总线事务传输开始时发送,后者则在总线事务传输完成后发送完整svt_axi_master_transaction和svt_axi_slave_transaction对象到item_observed_port端口,并且在vip agent为passive和active模式下都有效。原创 2021-09-26 10:53:25 · 7751 阅读 · 3 评论 -
Synopsys验证VIP学习笔记(1)Memory模型用法
Synopsys的VIP(本文以AXI slave为例)提供了由svt_mem类表示的momory模型,在passive模式下其观测值与寄存器模型类似,会基于总线更新,在active模式下则由slave sequence更新。原创 2021-09-09 19:10:50 · 14974 阅读 · 11 评论 -
UVM学习记录4
UVM寄存器模型学习。原创 2021-05-30 23:47:35 · 428 阅读 · 0 评论 -
UVM学习记录3
通过UVM sequence机制实现不同测试场景。原创 2021-04-12 22:04:29 · 398 阅读 · 1 评论 -
UVM学习记录2
将SV组件替换为UVM组件和实现TLM通信。原创 2021-03-05 23:29:20 · 591 阅读 · 0 评论 -
UVM学习记录1
记录一些UVM基础机制的学习。原创 2021-03-03 20:48:16 · 839 阅读 · 1 评论 -
Questasim覆盖率数据分析
使用Questasim的一些coverage分析和验证管理方法。原创 2021-03-02 17:44:36 · 4524 阅读 · 0 评论 -
SV实验4 覆盖率的实现
从验证计划到测试用例的实现,最后到覆盖率的量化,目标是实现尽可能高的代码和功能覆盖率。原创 2021-03-01 16:55:13 · 1672 阅读 · 0 评论 -
SV实验3 子系统验证和测试点划分
MCDF子系统相比MCDT添加了数据整形、寄存器控制和状态显示功能。整个验证环境各组件之间相互独立,依靠event和mailbox同步和通信。原创 2021-02-28 20:39:47 · 1519 阅读 · 1 评论 -
SV实验2 随机约束、测试控制和环境构建
SV实验3的学习记录,MCDT部分的Testbench已逐渐完整,包含initiator、generator、agent、monitor、checker和test等组件。原创 2021-02-27 10:16:47 · 1054 阅读 · 0 评论 -
SV实验1 基于SV的Testbench
SV实验1和2部分的学习记录,Testbench逐渐由硬件环境转变为软件环境。原创 2021-02-26 11:44:01 · 2061 阅读 · 0 评论 -
SV实验0 DUT设计描述
MCDF(多通道数据整形器,Multi-Channel Data Formatter)将上行(uplink)多个通道数据经过内部FIFO,并以数据包(data packet)的形式送出。上行和下行数据的接口协议不同;MCDF有寄存器读写接口,可以支持更多控制功能。原创 2021-02-25 22:40:25 · 2452 阅读 · 0 评论