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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1524|回复: 7

[讨论] vcs仿真自定义ucli函数

[复制链接]
发表于 2022-5-25 22:53:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
在验证工作中,有的用例运行非常慢,如果在仿真过程中发现有错误,停掉仿真再次编译非常浪费时间。如果可以自定义一些函数,对DUT或者验证环境进行一些操作,比如读写寄存器,修改memory数据等,使仿真能够正常继续下去,将会非常方便。目前搜索到的一些资料是使用vcs pli,哪位大佬有过类似实践,求指导
发表于 2022-5-28 15:38:16 | 显示全部楼层
我之前就做过读写寄存器的,具体还是得看场景。比如我之前访问寄存器是通过apb接口访问的,所以在testbench里挂了一个可以发起apb读写的task,入口参数是读写标志、地址、数据。然后使用vcs ucli的call命令调用该task,就可以在仿真过程随意读写寄存器,而不用重新编译。
在不了解ip的情况下,对ip的寄存器进行读写测试,根据ip对寄存器不同值做出的反应来深入了解ip的功能是很有必要的。每次修改一个值然后查看结果,编译的时间所占用的时间是相当大的。
发表于 2022-5-28 15:53:40 | 显示全部楼层
此外我还发现一个更复杂一点,但更通用的方式。
实现一个简单的指令解析模块(简化的cpu),只需要一些简单的指令就行,约定好机器码格式。比如读写某个地址数据,跳转指令、加减法、判断等等。把模块能访问的地址范围里划出一部分来绑定到输入输出。这样就可以使用“代码文件”来作为读写寄存器的配置文件,每次修改配置文件后,用脚本解析配置文件,生成二进制文件(编译过程),testbench读取二进制文件开始执行。
这个模块的好处在于精细控制信号,如果是一些标准的协议,还可以借助已有的开源代码写出对应的驱动配置文件,实现寄存器读写。本质上是实现一个配置文件的翻译器。
实际工程中确实有某个vip就提供了这种方式来进行测试,人家用的是已有的汇编语法,使用现成的汇编器进行编译(甚至可以用c语言,意味着可以用现有的驱动设备驱动源码来修改),得到机器码,然后进行测试。
 楼主| 发表于 2022-5-29 17:56:25 | 显示全部楼层


zhangdeshuai 发表于 2022-5-28 15:38
我之前就做过读写寄存器的,具体还是得看场景。比如我之前访问寄存器是通过apb接口访问的,所以在testbench ...


您好,能大概写一下您的伪代码吗?您的这个task,听起来是个sv的,那是把这个task  export作为dpi了吗,还是说sv的task也可以直接用ucli调用,如果可以的话,是怎么操作呢
 楼主| 发表于 2022-5-29 17:57:30 | 显示全部楼层


zhangdeshuai 发表于 2022-5-28 15:53
此外我还发现一个更复杂一点,但更通用的方式。
实现一个简单的指令解析模块(简化的cpu),只需要一些简单 ...


这个思路也非常棒,感谢分享
发表于 2022-5-30 19:36:51 | 显示全部楼层


买履人 发表于 2022-5-29 17:56
您好,能大概写一下您的伪代码吗?您的这个task,听起来是个sv的,那是把这个task  export作为dpi了吗, ...


sv的task也可以直接用ucli调用,ucli里就是 call {top.xxx.xxx.yyy_task()},可以调用的前提是你可以从top看得到task的层次。你可以写个简单的testbench试一下。
 楼主| 发表于 2022-5-30 21:10:32 | 显示全部楼层


zhangdeshuai 发表于 2022-5-30 19:36
sv的task也可以直接用ucli调用,ucli里就是 call {top.xxx.xxx.yyy_task()},可以调用的前提是你可以从to ...


好的,我今天搜到这种方式了,不过貌似我的编译选项加的不对,没成功,明天再试试
发表于 2022-6-5 15:52:11 | 显示全部楼层
在task里用fscanf读入一个txt文件,文件内容是
wr,<addr>,data
rd,<addr>,expected data

task根据读入的每一行内容再调用read write  task就好。

这样要修改寄存器读写序列,改txt内容就好。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-4-28 13:59 , Processed in 0.024882 second(s), 6 queries , Gzip On, Redis On.

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