- 博客(9)
- 收藏
- 关注
原创 【小白】UVM入门——Sequence和Sequencer
面对多个sequence如果需要同时挂载到sequencer时,就面临着仲裁的需要,uvm_sequencer自带有仲裁特性,结合sequence的优先级设定,最终可以实现想要的效果。对于UVM初学者,正确区分方法start()和宏`uvm_do;
2024-11-12 11:28:02
433
原创 【小白】UVM入门——Sequence和Item Sequencer和Driver
掌握了组件之间的TLM通信方式,那整个运转的必要条件是组件之间需要有事务(transaction)传送。sequencesequencerdriversequence不属于验证平台的任何一部分,但是它与sequencer之间有着密切的联系。sequence就像是一个弹夹,里面的子弹是transaction,而sequencer是一把枪。单价只有放入枪中才有意义,枪只有放入弹夹后才能发挥威力。
2024-11-08 17:44:15
810
原创 【小白】UVM入门——TLM通信
系统原型芯片验证它们都使用了TLM通信。系统原型是为了更快地实现硬件原型之间的数据通信,芯片验证是为了更快地实现验证组件之间的数据通信。(1)系统原型通过硬件功能描述文档来模拟硬件行为,这种行为要不同于RTL模型。系统原型可以提供一个准确到硬件比特级别、按照地址段访问、不依赖于时钟周期的模型,一般基于SystemC语言。(2)芯片验证RTL模型初步建立之后,通过验证语言和方法学来构建验证平台。
2024-11-06 17:17:46
1087
原创 【小白】UVM入门——消息管理
通过一种标准化的方式打印信息过滤(重要级别)信息打印通道消息方法消息处理消息机制以上就是今天要讲的内容,本文仅仅简单介绍了UVM消息处理的使用,而UVM打印信息的控制可以参考UVM实战这本书。
2024-10-25 17:03:06
597
原创 【小白】UVM入门——phase机制
SV的验证环境构建中,发现传统的硬件设计模型在仿真开始前,已经完成例化和连接了,而SV的软件部分对象例化则需要在仿真开始后执行。构建new()函数可以实现对象例化,但是仅仅通过new()函数如何保证例化的先后顺序,以及各个组件在例化后的连接?在顶层到底层的配置时,SV也无法在底层组件例化之前完成对底层的配置逻辑;因此,引入phase机制。各个phase的先后执行顺序;处于同一phase中的层次化组件之间的phase也有先后关系;在不同时间做不同的事情,这就是UVM中phase的设计哲学。
2024-10-23 17:50:03
1230
原创 【小白】UVM入门——核心基类
在SV模块的学习中,我们懂得了什么是句柄拷贝和对象拷贝。所以,不管是copy或者clone,都需要确保在操作过程中,需要有source object和target object。默认情况下,如果不对比较的情况作出额外配置,用户可以再调用compare()方法是,省略第二个参数,即采用默认的比较配置。在UVM的数据操作中,需要对copy和clone进行区分。(无论是copy还是clone,都需要对数据进行复制)打印方法是核心基类提供的另外一种便于开发和调试的功能,用于打印所有字段。
2024-10-22 16:29:50
1048
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人