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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1350|回复: 12

[求助] 请问大家,为什么CPU或者MCU的验证,主要用C/C++而不是UVM或者systemverilog?

[复制链接]
发表于 2023-9-10 01:31:26 | 显示全部楼层 |阅读模式

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

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

x
如题,请问大家,为什么cpu或者MCU的验证,主要用C/C++而不是UVM或者systemverilog?,感谢各位解答,谢谢分享。

发表于 2023-9-10 12:05:55 | 显示全部楼层
谁告诉你的?完全是误导青少年啊
发表于 2023-9-10 20:43:12 | 显示全部楼层
相比一般的asic,cpu或者soc除了进行电路级的验证,还需要使用编译器将C/C++语言编译成指令让cpu执行。C/C++更直接接近用户的视角
 楼主| 发表于 2023-9-11 00:09:55 | 显示全部楼层


tinytera 发表于 2023-9-10 12:05
谁告诉你的?完全是误导青少年啊


CPU/MCU指令集的验证,是不是主要用C/C++?因为一般的话,指令集需要先经过编译器转换成二进制文件,然后load进来。


我之前没做过CPU/MCU的验证,这是一位朋友说的。
发表于 2023-9-11 10:02:48 来自手机 | 显示全部楼层
没做过也不敢乱说,我就看看
发表于 2023-9-11 11:22:24 | 显示全部楼层
平台也是一样的UVM  只不过其他验证的数据流和控制流都是UVM产生的,CPU验证需要让CPU去产生控制流  所以更多的是C+SV的联动。一般来说单纯验CPU功能的时候就是固定一个uvm_test,然后吃不同的C跑不同的场景吧
发表于 2023-9-13 11:18:35 | 显示全部楼层
因为cpu是买的;也是可能有bug的;
发表于 2023-9-16 20:57:32 | 显示全部楼层
UVM/CRV(随机测试)的测试向量对应到MCU级就是用c编译好的bin文件了。

另外,如果有CPU模型的话,比如一个有AXI接口的VIP,根据具体用例可以代替CPU,承担一个参与仿真发送激励的角色。
发表于 2023-9-19 11:46:57 | 显示全部楼层
如果是要验证CPU,我一般用汇编代码,C还有一个优化的问题,未必能拿到你要的。

如果是验证周边电路,无非就是寄存器读写。我就写个简单的C代码实现单个读写和burst的读写,和外面的UVM联动。
发表于 2023-9-21 10:46:23 | 显示全部楼层


kang98253 发表于 2023-9-11 11:22
平台也是一样的UVM  只不过其他验证的数据流和控制流都是UVM产生的,CPU验证需要让CPU去产生控制流  所以更 ...


那要看你的激励是从外设来的还是CPU来的,所以C和sv协同验证的话会同时跑C和UVM双case,可以在C中结束仿真也可以再UVM中结束,就比如最简单的I2C的外设跟CPU交互,CPU中可以polling RX_FIFO相关中断,有数据就读走,UVM case负责发送数据给DUT,而C case中就是个无限循环
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

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

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

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