
UVM总结
文章平均质量分 69
从数据结构和设计模式角度解析UVM
王野的自留地
这个作者很懒,什么都没留下…
展开
-
uvm sequence是怎么跑起来的?
所谓的sequence启动,就是将sequence中的sequencer句柄执行sequencer对象,将sequencer中的sequence句柄指向sequence对象。注意,Vsqr中的sqrA和agtA中的sqrA要指向同一个实体,否则就乱套了,因此要在connect_phase中(也就是上图中的第0步),做以下连接。完成连接后,sequencer就可以调用sequence中的方法,sequence就可以调用sequencer中的方法,从此双方就可以相互通信。(手动启动,或者自动启动时)原创 2023-05-05 17:29:52 · 431 阅读 · 0 评论 -
systemVerilog与多态
H为基类,R,G,B为子类,分别继承自H积累。原创 2023-05-05 12:05:16 · 270 阅读 · 0 评论 -
UVM组件是怎么连起来的?
如下图中的producer与consumer,producer在生产好数据后,直接通过绝对路径调用消费者的接口。当消费者的路径,名字,或者接口发生变化时,生产者的代码也必须跟着修改,即生产者和消费者直接高耦合。生产者,消费者都不需要实现接口,接口在中介fifo中实现,生产者和消费者直接负责调用中介即可。问:既想调用客户的接口,又不想关心客户的路径和名称,也不想关注客户的接口。为了避免中间商赚差价,m_imp_list,这个数据结构,直接连接到最终的客户。问:既想调用客户的接口,又不想关心客户的路径和名称。原创 2023-04-14 09:45:41 · 320 阅读 · 0 评论 -
UVM中树的数据结构
clone,要clone的数据结构是啥样的?本质是遍历如下数据结构。另外,也能深刻理解,clone的底层是调用copy,其本质是创建实体和copy。clone和copy遍历两个维度,一个是包含的维度,一个是继承的维度。子类的clone,如何clone基类的内容?build_phase,自定向下创建整个树。new函数的本身,嵌套创建。原创 2023-04-14 09:44:35 · 127 阅读 · 0 评论 -
UVM是怎么跑起来的?
UVM是怎么跑起来的原创 2022-10-31 22:52:18 · 277 阅读 · 0 评论 -
UVM的phase数据结构
UVM源码,继承关系,合作关系 展示。原创 2022-10-30 20:41:21 · 163 阅读 · 0 评论 -
UVM与桥梁模式
port和consumer之间?port与port之间的connect?1 将接口(想要扩展的功能)封装成另一个类来实现,以此和consumer解除耦合。consumer提供put函数,producer调用consumer的put函数。顺序关系,创建了了之后再传递,拿到上游的东西之后再传递给下游。cons: 路径变化,名字变化,传输方式变化。bottom-up的执行序列能满足。原创 2022-10-30 20:38:12 · 86 阅读 · 0 评论 -
UVM与模板模式
proc_1),还可以使用井号来提供参数赋值或覆盖的列表。原创 2022-10-30 20:35:13 · 182 阅读 · 0 评论 -
UVM与组合模式
背景#场景:验证平台中,各组件以一颗树的形式构成,每个组件都有自己的程序(demo_phase())。#问题:如何启动这些组件的程序?#方案 - 朴素:将各个组件的demo_phase()程序添加到traverse_demo_phase()中。原创 2022-10-30 20:34:36 · 125 阅读 · 0 评论 -
UVM与工厂模式和策略模式
模式说明:指对象有某个行为,但是在不同的场景中,该行为有不同的实现算法定义了一族算法(业务规则);封装了每个算法;这族的算法可互换代替(interchangeable)。UVM应用:模式说明:工厂通常是一个用来创建其他对象的对象。工厂是构造方法的抽象,用来实现不同的分配方案。应用场景:创建对象需要大量重复的代码。可以把这些代码写在工厂基类中。创建对象需要访问某些信息,而这些信息不应该包含在复合类中。UVM应用:run_test()原创 2022-10-30 20:32:11 · 157 阅读 · 0 评论 -
UVM与订阅者模式
模式说明:一个目标对象管理所有相依于它的观察者对象,并且在它本身的状态改变时主动发出通知应用场景:当其中一个对象的变更会影响其他对象,却又不知道多少对象必须被同时变更时。原创 2022-10-30 19:12:56 · 116 阅读 · 0 评论 -
UVM与单例模式
模式说明:单例对象的类必须保证只有一个实例存在应用场景:整个系统只需要拥有一个全局对象应用举例:多进程/多模块共享资源/通信/同步等信息UVM应用:UVM RootUVM Pool,原创 2022-10-30 19:09:16 · 318 阅读 · 0 评论