Systemverilog —— UVM 实验项目
文章平均质量分 84
基于SV和UVM编写的验证实验和项目
IC天然居士
ICer小白的披荆斩棘记录,学无止境啊
展开
-
MCDF_uvm实验4
对路科 uvm 入门实验4的总结原创 2022-10-06 16:08:05 · 789 阅读 · 0 评论 -
MCDF——基于uvm入门与进阶实验2的总结
前言:在MCDF—uvm入门进阶实验2中,从SV验证平台转化为UVM时,接口的传递与各个组件的运行是如何展开的,SV与UVM的不同之处。原创 2022-07-09 14:40:39 · 1446 阅读 · 6 评论 -
MCDF_uvm_lab1
工厂机制,phase机制,域的自动化,config机制,消息管理等的描述原创 2022-07-05 21:55:48 · 1008 阅读 · 5 评论 -
MCDF实验4(4)
mcdf_checker中添加的检查原创 2022-07-01 15:12:26 · 1061 阅读 · 1 评论 -
MCDF实验4(2)
目录给出 class fmt_driver 的完整代码fmt_generatorfmt_monitor接着上篇的 MCDF实验4(1)MCDF实验4(1)fmt_generator它和其他的 chnl_generator , reg_generator 相差不大主要的步骤都一样: 主要的就是数据不同,fmt_generator 有两个数据: fmt_fifo_t fmt_bandwidth_t这两个数据都是对 fmt_driver 模拟 fifo 而配置的,一个深度,一个带宽,原创 2022-06-27 21:14:14 · 894 阅读 · 2 评论 -
MCDF实验4(3)
目录1. 对整个 MCDF_pkg.sv 的 结构的理解 2. mcdf_reg_t 3. 对 mcdf_refmod 的理解3.1 对 run() 里的 do_reset() 进行解释3.2 对 run() 里的 do_reg_updata() 进行解释3.3 对run() 里的do_packet()进行解释4. 对 mcdf_checker 中的 do_compare()进行代码解释5. 对 mcdf_env 的理解6. 对mcdf_base_test 的理解mcdf_checker 包含了 reg_原创 2022-06-30 17:55:32 · 2087 阅读 · 6 评论 -
MCDF 实验4 (1)
目录fmt_pkg.sv 代码分析fmt_pkg.sv 中的 fmt_driver do_consume() 的代码解析 do_receive() 的代码解析 do_config() 的代码解析driver 分为 inititator 和 responder, 之前的 chnl_driver 和 reg_driver 都是 initiator 发送数据或者指令, 而 formatter 的 driver 是一个 接收数据的 从端 slave, 所以我们的 driver 类似要模仿一个 fifo 缓冲数据原创 2022-06-19 15:35:36 · 1755 阅读 · 3 评论 -
MCDF实验3
class chnl_trans 里面内容的变化 复习 实验2 的 发送数据过程逻辑: agent 可以控制发送 trans 的数量(ntrans), 并且 get_trans()和 chnl_write() 都只进行有限次数 ntrans。 也就是整个agent 的run() 只执行 ntrans 次。现在实验3的 agent() 不控制 发送 trans 的数量,只让 gen.run() 和 init.run() 运行起来 generator 来控制 ntrans , 产生有限的数据, 而原创 2022-06-17 11:01:25 · 1292 阅读 · 3 评论 -
MCDF实验2(下)
在实验3 tb3.sv 中, 已经把 chnl_initiator 和 chnl_generator 改造为了类 class 改造好的内容chnl_intiator 在模块中和在类中的对比如下:chnl_generator 在类中和在模块中的对比如下:新添加的 class chnl_trans 如下:到了 tb4 把这三个类都封装在一个包 package chnl_pkg 中,另外还添加了以下的类: 层次关系是: chnl_agent 类 具体代码如下: chnl_root_test 具体代码如下: chn原创 2022-06-17 11:02:55 · 606 阅读 · 0 评论 -
MCDF实验2(上)
目录接口的使用仿真的结束 类的例化和类的成员问题1.1:可以看到之前的实验 channel initiator 发送的数据例如 valid 和 data 与时钟 clk 均在同一个变化沿,没有任何延迟,这种0延迟的数据发送不利于波形查看和阅读,因此在已有代码的基础上使用 intf.ck 的方式来做数据驱动,并且再观察波形,查看驱动的数据与时钟上升沿的延迟是多少?采用 intf.ck 来做数据驱动,代码如下:上升沿后1ns驱动数据波形如下:问题1.2:为了更好地控制相邻数据之间的空闲间隔,引入一个变量 idl原创 2022-06-12 22:23:12 · 866 阅读 · 0 评论 -
MCDF实验1
目录从Verilog到SV的进场任务task 和 函数function数组的使用验证结构1. 修改tb1.v 为 tb1.sv ,编译仿真,查看仿真行为是否同tb1.v的仿真行为一致?这说明了什么呢?没有变化,仿真行为一致,说明编译器对 SV 的语法和Verilog语法是全部兼容的2. 将tb1.sv中的信号变量类型由reg或者wire 修改为 logic 类型, 再编译仿真,查看行为是否同修改前的一致呢?这是为什么? 没有变化,仿真行为一致,说明在SV中, reg 和 wire 类型都可以简化为 logi原创 2022-06-11 13:09:54 · 3282 阅读 · 0 评论 -
MCDF实验0
目录功能描述设计结构从上图中可以看出MCDF的结构如下接口描述1.系统信号接口2.通道从端接口3.整形器接口4.控制寄存器接口接口时序1.通道从端接口时序2.整形器接口时序3.控制寄存器接口时序寄存器描述:1.地址0x00通道1控制寄存器32bits读写寄存器2.地址0x04通道2控制寄存器32bits读写寄存器3.地址0x08通道3控制寄存器32bits读写寄存器4.地址0x10通道1状态寄存器32bits只读寄存器5.地址0x14通道2状态寄存器32bits只读寄存器6.地址0x18通道3状态寄存器32原创 2022-06-10 10:55:01 · 1422 阅读 · 2 评论