sv编程语言_SV DPI-C接口学习心得

本文介绍了SV中的DPI-C接口,它是SV与C/C++交互的桥梁。DPI-C接口主要用于解决SV在系统级验证、处理器模拟等方面的局限性,通过数据类型转换和控制信号传递实现两者之间的通信。文中通过示例详细讲解了如何导入和导出C函数,以及数据类型的映射关系,包括四值逻辑变量的转换。最后提到了纯函数、上下文关联和通用导出方法的区别。
摘要由CSDN通过智能技术生成

1、是什么??

DPI(Direct Programming Interface),全称直接编程接口,是SV与其它语言(C/C++)交互的接口,基本上是唯一接口了。

2、为什么??

说完是什么,那么我们可以考虑一下了,为什么需要这个接口呢?或者说为什么SV/UVM需要与其它语言产生交互呢?

其实就是SV和C之间的一种转换关系。

这就涉及到了一些应用场景,我们可以说几个看看。

(1)我们知道,在模块级乃至子系统级的验证,使用SV就完全够用了,而在更上面的层级,例如系统级,多采用大量的C代码组成。那么为了完成测试用例从子系统到系统级的复用,我们最好在子系统级开始就有意识地建立支持C测试的环境,并且使用一些基于C的测试用例,这样才能使得整体具有更好的复用性。

(2)处理器的需要。子系统测试时,不一定本身自带了处理器的硬件实例(Verilog编写的),因此在构建子系统时还要考虑如何模拟外部处理器对子系统的访问行为。

当然,我们直接加上一个外部的处理器实例是完全可以的,等验证完子系统的功能后再撤掉就行。注意,这个处理器实例也是verilog编写的。

但是,这种方法也存在了一些弊端:即使这个外部处理器再小巧,但硬件体积还是过大了,肯定会影响整个仿真的速度;针对不同子系统的预留接口(APB/AHB/AXI等),处理器子系统也要进行对应的调整吧;这种真实的处理器,必然要处理C代码,所以要进行编译、转换成二进制bin文件以及下载到memory中,还是太麻烦&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值