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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 4548|回复: 5

[讨论] 关于用C语言进行芯片验证的一些疑问

[复制链接]
发表于 2019-3-19 13:11:23 | 显示全部楼层 |阅读模式

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

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

x
各位大神,小白最近关于芯片验证陷入一些疑问。具体如下,希望有大牛给与点拨。目前主流的验证方法是UVM验证方法学,但是了解到C语言和SystemC也可以做芯片的验证工作。我的问题是         1. C语言做验证如何对DUT施加激励?

         2. 如何验证输出是否正确,通过观测波形吗?
         3. 如何收集功能覆盖率?
         4. 使用C语言写驱动程序,配合FPGA做板级验证这种方式的合理性?

我有查到使用PLI接口调用C程序,这么做不还是需要在verilog/SV环境下,PLI调用的C程序是只起到添加激励的作用吗?
发表于 2019-3-20 21:03:13 | 显示全部楼层
对于SoC完整,使用c和汇编编写firmware,工具链结合链接文件将其生成bin,或者txt,$readmem函数将txt读入memory,完成cpu启动;
对于ASIC,可以使用SystemC编写产生transaction的xactor,完成transaction级到pin(interface)级转换的driver,这其实和sv实现方式一致只不过换了种编程语言儿子,本质上是相同的;
ASIC中用到c或c++,其使用场景是用c和c++编写pli/vpi程序,然后在verilog的testbench中调用这些pli/vpi对应的自定义系统函数/任务,或者直接使用dpi。
再给你举个例子:你验证一个大型serdes接口,比如pcie,vendor一般不会给你提供sv源码,或者给加密的sv源码,另一种方式是提供了一个verilog的bfm shell,里面各种调用自定义系统函数,此外还必须提供libpcie.so,这个.so文件就是编写pli/vpi的c源码编译出的的,你在编译环境时必须将此.so文件链接到simv中。
 楼主| 发表于 2019-3-28 09:16:49 | 显示全部楼层


saipolo 发表于 2019-3-20 21:03
对于SoC完整,使用c和汇编编写firmware,工具链结合链接文件将其生成bin,或者txt,$readmem函数将txt读入m ...


非常感谢您的回答,虽然我还是不是很理解,但是有了大致的一个认识。谢谢
发表于 2023-4-26 10:19:48 | 显示全部楼层


saipolo 发表于 2019-3-20 21:03
对于SoC完整,使用c和汇编编写firmware,工具链结合链接文件将其生成bin,或者txt,$readmem函数将txt读入m ...


请问如何学习C语言
发表于 2023-5-10 10:46:09 | 显示全部楼层


追乐人66 发表于 2023-4-26 10:19
请问如何学习C语言


C语言是学科基础,如果没学这个,那就先把c学好
发表于 2023-11-29 18:25:36 | 显示全部楼层


追乐人66 发表于 2023-4-26 10:19
请问如何学习C语言


C PRIMER PLUS你值得拥有
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

GMT+8, 2024-12-19 00:44 , Processed in 0.020414 second(s), 7 queries , Gzip On, Redis On.

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