首页 > 其他分享 >2.3.1---加入transaction

2.3.1---加入transaction

时间:2024-05-17 16:57:18浏览次数:21  
标签:transaction randomize driver --- uvm 2.3 my 以太网

transaction概念:

可以简单地将transaction理解为一个包,在不同的验证平台中的transaction也不相同。

一个简单的transaction如下:

在这些代码中,其中dmac是48bit的以太网目的地址,smac是48bit的以太网源地址,ether_type是以太网类型,pload是其携带的数据大小,通过pload_cons约束可以看到,其大小被限制在46~1500byte,CRC是前面所有数据的校验值。这里的post_randomize只是为了演示所以放了空函数。post_randomize是sv中提供的一个函数,当某个类的实例的randomize函数被调用后,post_randomize会紧随其后无条件地被调用。

一:my_transaction的基类是uvm_sequence_item

在uvm中,所有的transaction都要从uvm_sequence_item中派生,只有这样才能使用UVM强大的sequence机制。

二:这里没有使用uvm_component_utils宏来实现factory机制,而是使用了uvm_object_utils

从本质上来说,my_transaction和my_driver是有区别的,在整个仿真周期之内my_driver是一直存在的,my_transaction不同,他有生命周期。它在仿真的某一个时间产生,经过driver驱动,再经过reference model处理,最终由scoreboard比较完成后,其生命周期就结束了。

首先在main_phase中:
23:实例化my_transaction
24:提起objection
31:先用randomize将tr随机化,之后通过driver_one_pkt任务将tr的内容驱动到DUT的端口上。
drive_one_pkt中,先将tr中所有数据压入队列data_q中,再把data_q中所有的数据弹出并驱动

标签:transaction,randomize,driver,---,uvm,2.3,my,以太网
From: https://www.cnblogs.com/tomako123/p/18197971

相关文章

  • mybatis-plus id在高并发下出现重复
    mybaits-plusASSIGN_ID生成id生成策略在分布式高并发环境下出现重复idhttps://github.com/baomidou/mybatis-plus/issues/3077mybatis-plus对@TableId(type=IdType.ASSIGN_ID)生成默认使用com.baomidou.mybatisplus.core.toolkit.Sequence,这个类是雪花算法的实现,在该实现......
  • 铁威马硬盘柜D4-320:超越网盘,让数据存储更自由
    时至今日,我们越来越依赖数字数据来记录生活的点滴和工作的成果。然而,随着数据的不断累积,我们时常会遇到一个问题:网盘空间不够用。此外,网盘的安全性也是我们关注的焦点,一旦网盘服务商出现问题或数据泄露,我们的宝贵数据就可能面临丢失的风险。因此,寻找一个可靠的本地存储解决方案成......
  • 网络性能监控与流量回溯分析 - 轻松诊断网络问题
    随着网络的普及和应用的不断增加,网络性能监控和故障诊断已经成为IT管理工作的重中之重。高效的网络性能监测能够及时发现和解决网络问题,确保业务的稳定运行。而对网络流量的全面分析和回溯也是网络诊断的关键所在。实时监控网络性能,定位故障根源网络性能的波动和故障可能源于......
  • CSS动画-数字轮盘滚动效果实现(组件封装,快速使用)
    效果图:原理分析:这玩意就和垂直方向的轮播图差不多,只是把轮播的图换成数字 主要实现:父组件:父组件接收一个curNum属性,这个属性代表当前需要显示的数字。它将这个数字传递给子组件AnimateNum,以便子组件可以正确地显示和滚动数字。子组件一(AnimateNum):这个组件接收父组件传递......
  • 力扣-96. 下一个更大元素 I
    1.题目题目地址(496.下一个更大元素I-力扣(LeetCode))https://leetcode.cn/problems/next-greater-element-i/题目描述nums1 中数字 x 的下一个更大元素是指 x 在 nums2中对应位置右侧的第一个比 x 大的元素。给你两个没有重复元素的数组 nums1和 nums......
  • MDS800-16-ASEMI整流模块MDS800-16
    编辑:llMDS800-16-ASEMI整流模块MDS800-16型号:MDS800-16品牌:ASEMI封装:MDS平均正向整流电流(Id):800A最大反向击穿电压(VRM):1600V产品引线数量:5产品内部芯片个数:6产品内部芯片尺寸:102MIL峰值正向漏电流:<10ua恢复时间:>2000ns正向浪涌电流:9600A正向压降:1.10V工作结温:-40℃~150......
  • Leedcode-下一个更大元素 I
    自己写的:classSolution:defnextGreaterElement(self,nums1:List[int],nums2:List[int])->List[int]:res=[]#结果列表,用于存储每个nums1中元素在nums2中的下一个更大元素num1_ptr=0#指向nums1当前元素的指针num2_ptr=0#......
  • GPT-4o 后 LLM 时代 RTC 需求讨论会丨社区伙伴活动分享
    我们将于5.19(周日)上午10点举办《GPT-4o后LLM时代RTC需求讨论会》讨论会。本期讨论会预计为线上闭门形式。 每期讨论会分别邀请了行业里面最资深的从业者、创业者朋友,每次讨论时间都限制在1.5-2小时,围绕主题,全程干货。 GPT-4o后最大的变动就是大模型的延迟时间大大缩短......
  • pg升级(14-15)link方式
    环境:OS:Centos7旧版本:pg14新版本:pg151.查看当前的数据库版本su-postgres-bash-4.2$psql-hlocalhost-Upostgres-p5432psql(15.6,server14.11)Type"help"forhelp.postgres=#selectversion();version......
  • .Net6 web API (AOP理解--ResourceFilter)
    前沿Aop(AspectorientProgramming),面向切面编程,作为面向对象编程的一种补充,可以在不破坏之前的封装为基础动态增加一些功能;从而让系统更具备扩展性:增加一个缓存功能增加一个日志功能既希望不要违背开闭原则,也希望能够增加新的工能在之前的业务逻辑之前增加了逻辑,在之前......