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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 694|回复: 8

[求助] UVM寄存器模型

[复制链接]
发表于 2023-9-7 14:49:21 | 显示全部楼层 |阅读模式
10资产
UVM寄存器模型中如果有很多寄存器,有没有批量化配置的方法,还有如果C模型也需要这些寄存器配置的话,怎么把寄存器模型和C模型串联起来

发表于 2023-9-7 16:47:05 | 显示全部楼层
ralgen

点评

这个不是生成reg model的脚本吗,我想问的是怎么批量的配置寄存器,还有怎么把配置传递到c model  发表于 2023-9-7 18:44
发表于 2023-9-8 17:55:36 | 显示全部楼层
配置寄存器的操作是固定的,只是看你传入的参数是reg名字还是地址段,然后可以把reg名字或者地址段写在一个文本里面,然后代码读入这个文本,逐行去配置,当然了,需要你自己写函数实现。C模型的话,也可以用类似的文本传递进去,不过C模型大概率是识别“地址 数据”这样格式的吧,你可以参考这个思路,自己琢磨一下怎么写SV代码,底层的操作,UVM的ral机制都提供了。

点评

这样的话没办法用随机化了把  发表于 2023-9-11 09:16
发表于 2023-9-13 17:53:34 | 显示全部楼层


gaurson 发表于 2023-9-8 17:55
配置寄存器的操作是固定的,只是看你传入的参数是reg名字还是地址段,然后可以把reg名字或者地址段写在一个 ...


RAL只是配置的机制,上层你肯定要提供配置值,也就是data。RAL会通过地址或者寄存器域段名字等方式找到你需要处理的寄存器信息,你把transaction的值当作data传入即可。transaction就可以做随机了。

点评

意思是先通过transaction随机化寄存器配置,然后把配置写入到一个文件,C模型读取对应的文件,可以这么理解吗  发表于 2023-9-14 10:24
发表于 2023-9-14 19:25:05 | 显示全部楼层
是的。
发表于 2023-9-28 14:33:46 | 显示全部楼层
有一个思路啊,不知能能否满足你的需求。可以通过sv进行随机验证,在uvm验证的过程中dump出来c语言的配置方式。这样可以做到跑完一个sv的用例就能够得到一个对应的c语言配置寄存器的文件。具体的实现有两个方案供参考:
1.uvm_reg.read/write最终其实都会调用uvm_reg_map中的do_bus_read 和do_bus_write这两个函数,通过factory override uvm_reg_map,对上述两个方法进行重载,在上述两个方法插入c语言代码的打印函数。这个方法比较通用,可以不用动现有的验证平台。不过要求reg_model的实现是精确的,至少地址是精确的。不过这种方式不太容易区分到底是fld.write还是reg.write。当然一些callback也可以实现上述功能,就是可能稍微麻烦了点
2.使用宏定义或者方法封装write和read,在封装的内容中添加打印函数
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-4-29 00:02 , Processed in 0.026970 second(s), 7 queries , Gzip On, Redis On.

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