从零开始学习 UVM10.7UVM TLM —— TLM Fifo [uvm_tlm_fifo]

Posted ReRrain

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从零开始学习 UVM10.7UVM TLM —— TLM Fifo [uvm_tlm_fifo]相关的知识,希望对你有一定的参考价值。

文章目录

假设发送方的数据速率比接收方获取数据包的速率快得多。需要在两者之间插入一个FIFO元素来存储数据包,以便允许发送方和接收方独立操作。FIFO的深度通常根据数据传输速率计算。TLM FIFO被放置在测试台组件之间,这些组件以不同的速率传输数据对象。

UVM TLM FIFO Example

下面定义了一个名为Packet的类,作为从一个组件传输到另一个组件的数据项。这个类对象将有两个随机变量,在发送之前可以随机化。

class Packet e

从零开始学习 UVM6.4UVM 激励产生 —— uvm_do 宏详解

请注意,start方法的call_pre_post字段设置为0,这意味着在使用这些序列宏时,序列的pre_body和post_body方法将永远不会被调用。否则,执行流程与通过start方法执行序列时类似。

文章目录

执行序列宏介绍

使用序列宏的优点是可以使用内联约束,但是您失去了控制执行sequence中 pre_bodypost_body 方法调用的能力。通过创建item、随机化并自动调用所需任务来减少代码行数,以启动给定的sequence或sequence_item。

在之前的文章中,我们了解到所有 uvm_do 宏最终都调用在 uvm_do_on_pri_with 中定义的代码。因此,让我们看看 UVM 中如何构建它以更好地理解这个过程。

`define uvm_do_on_pri_with(SEQ_OR_ITEM

以上是关于从零开始学习 UVM10.7UVM TLM —— TLM Fifo [uvm_tlm_fifo]的主要内容,如果未能解决你的问题,请参考以下文章

从零开始,搭建一个简单的UVM验证平台

从零开始学习 UVM4.1UVM Phases —— UVM Phases 介绍

从零开始学习 UVM3.11UVM TestBench架构 —— UVM Virtual Sequencer

从零开始学习 UVM5.1UVM Factory —— UVM Factory Override(工厂覆盖)

从零开始学习 UVM2.5UVM 基础功能 —— UVM Object Copy/Clone

从零开始学习 UVM6.4UVM 激励产生 —— uvm_do 宏详解