在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1662|回复: 6

[原创] UVM中AHB协议的搭建,如何在读写寄存器过程中控制hbrust、htrans、hsize

[复制链接]
发表于 2022-8-17 16:52:17 | 显示全部楼层 |阅读模式
10资产
向大佬们请教下,uvm实战中是apb的读写寄存器是用,read、write(status,value,FRONTDOOR)。但是到了AHB协议中,还需要去控制HBRUST、HTRANS、Hsize这几个,是如何写读写寄存器的时候同时进行控制的,我目前能想到的办法就是通过直接去修改uvm库里面的函数,(status,value,htrans,hsize,FRONTDOOR)。但是实际操作起来,需要修改的东西太多了,想问问大佬们,有没有什么别的办法,可以在正常读写寄存器的时候去控制那三根信号的变化。我在其他的资料中看到,是在driver里面直接去赋值这三个信号,通过ahb_pkt这个数据包,但是我的疑惑点就是,实际操作的话,还是要读写寄存器的前门访问的操作啊
d058f1ca031da67b9cf7bb77746c6d2.png

发表于 2022-8-17 21:23:48 | 显示全部楼层
是在adapter里完成reg_op到ahb_seq_item转换的,通过定义adapter就行,定义reg2bus函数,在前门访问中将reg_op转换成一些简单的seq_item(例如设置seq_item的burst type直接是single),然后再传给driver进行驱动。
 楼主| 发表于 2022-8-18 09:12:53 | 显示全部楼层
想再向您请教下,您说的这个reg_op是指reg_bus_op吗,我有点没太懂这个缩写,还有一个是,前门访问中转换的这个过程是怎么实现的,是直接去修改uvm库吗 07639fd0b1fe69e943d5b870a816f6d.png 2a4a6cee3e2d559c1a04532b2fdb283.png
发表于 2022-8-19 23:47:15 | 显示全部楼层


q574640068 发表于 2022-8-18 09:12
想再向您请教下,您说的这个reg_op是指reg_bus_op吗,我有点没太懂这个缩写,还有一个是,前门访问中转换的 ...


不要改动源码,uvm提供的组件足够完成很多事情了;这个前门访问后门访问与adapter的设置的前提是你需要有寄存器模型的,你可以看看《uvm实战》里寄存器模型那一节。regop 就是uvm_reg_bus_op,adapter的作用是你对寄存器的操作通过adapter产生为总线上的sequence item,然后再由driver驱动。
发表于 2022-8-22 02:15:28 | 显示全部楼层
very nice thanks
发表于 2022-8-31 16:32:38 | 显示全部楼层


q574640068 发表于 2022-8-18 09:12
想再向您请教下,您说的这个reg_op是指reg_bus_op吗,我有点没太懂这个缩写,还有一个是,前门访问中转换的 ...


可以这样理解,adapter这里的转换类似于层级的转换,将抽象级的读写时间,转为读写信号的值,类似于转换成transaction,然后再给driver变成真正的bus时序。
 楼主| 发表于 2022-9-20 11:14:01 | 显示全部楼层


gerry1512 发表于 2022-8-31 16:32
可以这样理解,adapter这里的转换类似于层级的转换,将抽象级的读写时间,转为读写信号的值,类似于转换 ...


了解了解,但是我现在遇到的问题又变成了就是,AHB的写操作基本都没有问题,然后我用寄存器进行读写的时候,read(value,FRONTDOOR)这个操作以后,然后我打印value这个值是没有,我通过driver那边去追,vif.prdata值是有的,但是在我读取寄存器时,这个vif.prdata的值还没改变,传递到adapter这边,导致就是我无法在case里面去直接进行读写数据值的比较,这个应该怎么解决啊 b7459a81138ab8a909cd1a13f253c4b.png b19b20e0a7aa76da7728929d5993982.png
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-25 22:41 , Processed in 0.026918 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表