当前位置: 首页 > news >正文

江门网站建设推广前端优化网站

江门网站建设推广,前端优化网站,360搜索网站提交入口,别人冒用我们公司做的网站怎么关掉放丢失,转载一下,原文:https://blog.csdn.net/qq_31348733/article/details/1010546251. 上下文(context)的含义导入函数的上下文是该函数定义所在的位置,比如$unit 、模块、program或者package作用域(scope),这一点跟…

放丢失,转载一下,原文:

https://blog.csdn.net/qq_31348733/article/details/101054625

1. 上下文(context)的含义

导入函数的上下文是该函数定义所在的位置,比如$unit 、模块、program或者package作用域(scope),这一点跟普通的sv方法是一样的。如果你把一个函数导入到两个不用的作用域,对应的C代码会依据import语句所在位置的上下文执行。这类似于在SV的两个不同模块中分别定义一个run()任务,每个任务都会明确地访问自己所在模块的内部变量。

下面是C方法根据导入和导出语句的上下文来调用不同SV方法的一个实例:

//top.sv

module top;

import "DPI-C" context

endmodule:top

2. 设置导入函数的作用域

如同SV代码可以在局部作用域调用方法,导入的C方法也可以在它默认的上下文之外调用方法。使用svGetScope方法可以获得当前作用域的句柄,然后就可以对svGetScope的调用中使用该句柄,使得C代码认为它处在另外一个上下文中。

下面是一个实例:

第一个方法save_my_scope()保存它在SV中调用处的作用域

第二个方法c_display()将其作用域设置为已保存的作用域,并打印信息

//c_display.c

#include <stdio.h>

#include <svdpi.h>

extern void sv_display();

svScope my_scope;

void save_my_scope(){

my_scope = svGetScope();

}

void c_display(){

//打印当前作用域

io_printf("C:c_display called from scope %s\n", svGetNameFromScope(svGetScope()));

//设置新的作用域

//io_prinf("scope: %s", svGetNameFromScope(svGetScope()));

svSetScope(my_scope);

io_printf("C:calling %s.sv_display\n", svGetNameFromScope(svGetScope()));

sv_display();

}

上面的C代码调用了svGetNameFromScope(),该函数返回表征当前作用域的一个字符串。返回的作用域被打印了两次,一次是C代码首次被调用时的作用域,另一次是先前保存过的作用域。

下面SV代码代码中,第一个模块block调用了一个C方法来保存上下文信息。当top模块调用c_display()方法时,该方法将作用域设置回block,这样它调用的便是block模块中的sv_display(),而非top模块中的同名方法

//top.sv

`timescale1ns/1ns

moduletop;

//=====================================================================\

// ********** Define Parameter and Internal Signals *************

//=====================================================================/

//======================================================================

// *************** Main Code ****************

//======================================================================

import "DPI-C" context function void c_display();

export "DPI-C" function sv_display;

function void sv_display();

$display("SV:top %m");

endfunction

block b1();

initial begin

#1 c_display();

end

endmodule:top

module block;

import "DPI-C" context function void c_display();

import "DPI-C" context function void save_my_scope();

export "DPI-C" function sv_display;

function void sv_display();

$display("SV:block %m");

endfunction

initial begin

save_my_scope();

c_display();

end

endmodule:block

下面是程序运行结果

# C:c_display called from scope top.b1

# C:calling top.b1.sv_display

# SV:block top.b1.sv_display

# C:c_display called from scope top

# C:calling top.b1.sv_display

# SV:block top.b1.sv_display

————————————————

版权声明:本文为CSDN博主「强迫症高级患者」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/qq_31348733/article/details/101054625

http://www.hkea.cn/news/29536/

相关文章:

  • 怎样做网站轮播今日国内重大新闻事件
  • 想给大学做网站百度网盘搜索神器
  • jsp网站开发论文官方app下载安装
  • 关于机场建设的网站今日疫情最新情况
  • 网站域名注册服务商google浏览器官方
  • 通过网站开发工具怎么改自动跳网站百度指数有哪些功能
  • 可以发锚文本的网站百度搜索官方网站
  • 东莞网站建设企慕简述如何优化网站的方法
  • 可以做网站的公司seo外包
  • 自己怎么做网站视频赚钱5g网络优化培训
  • 数据库修改网站管理员密码seo网站有优化培训吗
  • 福田做商城网站建设找哪家公司好抖音怎么运营和引流
  • 厘米售卡站怎么做网站禁止搜索引擎收录的方法
  • 网站首页滚动图片怎么做谷歌搜索关键词排名
  • 嵩县网站开发友情链接获取的途径有哪些
  • 国家企业信息公示网(广东)海南快速seo排名优化
  • 高端网站设计 上海徐州seo排名公司
  • 泰安网站建设公司排名石家庄最新消息
  • 域名只做邮箱没网站要备案吗常见的网络推广方式包括
  • 昆山建设局网站360搜索首页
  • 正常做网站多少钱无锡网站制作无锡做网站
  • php做网站csdn网站seo公司哪家好
  • 今日头条建站工具何鹏seo
  • wordpress 培训模板优化落实疫情防控新十条
  • 关于做外汇现货的网站太原整站优化排名外包
  • 星悦做任务网站是新网站百度收录
  • 十大营销网站seo关键词查询工具
  • 怎么查询网站所有关键词靠谱的广告联盟
  • 超酷的网站设计磁力搜索引擎
  • 网站建设写程序用什么软件成都疫情最新消息