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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: lshj98115

[原创] SoC功能仿真验证技术分享

[复制链接]
发表于 2018-1-23 19:47:20 | 显示全部楼层
赞同代码覆盖率一定要收,
个人认为代码覆盖率是最重要的,是一定要统计和仔细的检查的。

功能覆盖率(包括assertion的覆盖率)应该是Testplan的反映,我觉得只是提供对Testplan覆盖的数据统计,Testplan本身可能是不完备的,所以功能覆盖率的100%并不能代表验证充分了。可
发表于 2018-3-15 19:45:30 | 显示全部楼层
回复 1# lshj98115

关于打印的实现:
   在SoC环境的Testcase的嵌入式C语言程序中没有标准的stdio,所以要实现printf. printf是“不定参数个数的函数”,利用“参数从右向左压栈,最开始的参数在最接近栈顶的位置,字符串最后一个字符是\0”来实现printf.  在C端只需要把第一个参数的地址(肯定不是0)传到共享空间指定位置,在SVTB中获取到地址以后按照%和参数地址来实现(SV端的实现和C语言里printf的实现很类似),需要注意的是1)C端程序要保证参数地址及时写入到共享空间中,不要停在cache或者传输太长;2)使用ISS要打印的信息存在memory空间里,要能让SV端看到memory空间。当使用多核CPU-RTL的时候,注意不同core的打印控制(可以为每个core分配一个共享的空间,在print函数中根据不同的core-id来执行不同的操作)。

malloc等函数的实现也可以利用共享空间来实现。







有个地方不是很懂:在SVTB中获取到地址以后按照%和参数地址来实现。
c代码只把第一个参数的地址写入了共享memory,svtb怎么获取其余参数的地址呢?
发表于 2020-9-26 13:05:52 | 显示全部楼层
very very good
发表于 2021-4-25 14:42:28 | 显示全部楼层
学习好文
发表于 2021-4-25 18:05:10 | 显示全部楼层
写的真好,拜读了
发表于 2021-11-26 15:12:12 | 显示全部楼层
写的非常好
发表于 2021-11-27 12:01:21 | 显示全部楼层
pretty good
发表于 2023-1-17 13:09:39 | 显示全部楼层
感谢分享,工作好多年,看了您的讲解仍然受益匪浅
发表于 2023-3-17 07:10:58 | 显示全部楼层
Thanks for sharing
发表于 2023-3-29 16:43:07 | 显示全部楼层
谢谢分享
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

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

GMT+8, 2024-4-28 17:37 , Processed in 0.034233 second(s), 6 queries , Gzip On, Redis On.

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