systemverilog语法(十)

本文介绍了SystemVerilog中的虚拟接口(virtual interface),它是物理接口的句柄,用于隔离设计和验证平台,提高组件重用性。同时,讲解了如何通过直接编程接口(DPI)与C语言进行交互,包括调用C函数、参数方向、数据类型映射以及在C++测试平台中的应用。

二十一、高级接口
虚接口(virtual interface)是一个物理接口的句柄(handle)。
虚接口和对应的通用方法可以把设计和验证平台分隔开来,保证其不受设计改动的影响。当我们对一个设计引脚名字进行改动时,无须改动驱动这个接口的方法,而只需在例化该实物交易处理器的时候,给虚接口绑定对应连接的实体接口即可。以此来实现实物交易处理器的更大重用性。
虚接口的定义:virtual interface_type name;
虚接口可以定义为类的一成员,可以通过构建函数的参数或者过程进行初始化。
例:
Interface sbus;
Logic req,grant;
Logic[7:0] addr ,data;
Endinterface

Class sbustransaction;
Virtual sbus vif;
Function new(virtual sbus s);
Vif=s;
Endfunction

Task request();
    Vif.req <=1’b1;
Endatsk

Task wait_for_bus();
    @(posedge vif.grant);
Endtask

endclass

二十二、systemverilog与c语言的接口
Systemverilog引入直接编程接口(DPI),它能更加简单的连接C,C++或者其他非Verilog编程语言。一旦你声明或者使用import语句导入一个C子程序,你就可以像调用systemverilog的子程序一样调用它。
1、例:systemverilog代码调用C语言子程序factorial

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南国之邱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值