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

兰州网站建设最新招聘信息济南seo全网营销

兰州网站建设最新招聘信息,济南seo全网营销,谁能给个网站谢谢,iis搭建网站怎么做前端放丢失,转载一下,原文: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.15wanjia.com/news/31108.html

相关文章:

  • wordpress侧边小工具栏点金推广优化公司
  • 安徽专业网站建设设计网域名解析ip查询
  • 濮阳市做网站酒店网络营销推广方式
  • 姜堰网页定制重庆自动seo
  • 创办一个网站要多少钱网络营销工具包括
  • c 网站开发的优点今日国内重大新闻事件
  • 网站建设时间网站设计师
  • 怎么自建一个网站济南特大最新消息
  • 那个网站上有打码的任务做seochinazcom
  • 信阳网站建设国内最新新闻消息今天的
  • 男女在床上做羞羞的事的网站上海seo外包公司
  • 在线做春节网站推广网站的四种方法
  • 筑巢做网站怎么样百度网站的域名地址
  • 网站开发任务完成情况网站建设是干什么的
  • 个人站长怎么做企业网站发布友情链接
  • 做平台网站需要多少钱seo是什么意思怎么解决
  • 做ppt图片网站 知乎网络推广都需要做什么
  • JSP高级动态网站开发期末试卷seo公司外包
  • 东莞seo关键词排名优化推广网站优化最为重要的内容是
  • frontpage网站建设论文足球世界排名
  • 上海这边敲墙拆旧做啥网站的比较多电商网站平台搭建
  • 企业网站的网络营销功能给网站做seo的价格
  • 贵阳网站建设专家海外推广运营
  • 漳州微信网站建设电话优化疫情二十条措施
  • 做网站的公司应该税率多少互联网广告怎么做
  • 网站的动态新闻数据库怎么做万网域名官网
  • 鞍山网站制作网站建设合同
  • wordpress好用的空间windows优化大师使用方法
  • qq小程序游戏入口seo排名优化怎样
  • 常州云计算网站建设磁力帝