• 在使用DPI-C的时候遇见了一个问题:在想使用export来在verilator中调用c的函数的时候,会报错(见下图)

  • 此时应该在main.cpp中设置写入:svSetScope(svGetScopeFromName("TOP.ysyx_22040895_top.my_ifu"));

  • 特别注意,参数应该为TOP(这个TOP不是你写的TOP,而是verilator自己生成的TOP,而后是你例化的top的名称以及你例化的模块的名称,他们之间有一个层级的关系)

  • 最后,将所有的代码附上

点击查看代码(Verilator)
`include "/home/groot/ysyx-workbench/npc/include/define.v"
`include "/home/groot/ysyx-workbench/npc/vsrc/ysyx_22040895_pc.v" module ysyx_22040895_ifu (input wire clk,
input wire rst,
input wire[`ysyx_22040895_InstBus] inst_i_ifu,
input wire pcsel_i_ifu,
input wire[`ysyx_22040895_InstAddrBus] dnpc_i_ifu,
output wire[`ysyx_22040895_InstBus] inst_o_ifu,
output wire[`ysyx_22040895_InstAddrBus] instaddr_o_ifu,
output wire[`ysyx_22040895_InstAddrBus] pc_o_ifu,
output wire ce_o_ifu); export "DPI-C" function get_inst; ysyx_22040895_pc my_pc(
.clk(clk),
.rst(rst),
.pc_o_pc(instaddr_o_ifu),
.ce_o_pc(ce_o_ifu),
.pcsel_i_pc(pcsel_i_ifu),
.dnpc_i_pc(dnpc_i_ifu)
); assign inst_o_ifu = inst_i_ifu;
assign pc_o_ifu = instaddr_o_ifu; function void get_inst();
output int inst;
inst = inst_i_ifu;
endfunction endmodule //ifu
点击查看代码(cpp)
#include "verilated_dpi.h"
#include "Vysyx_22040895_top__Dpi.h"
***
main()
{
***
extern void get_inst(int* inst);
svSetScope(svGetScopeFromName("TOP.ysyx_22040895_top.my_ifu"));
***
get_inst(&inst);
*** }

DPI-C中遇见的export问题:%Error: unknown:0: Testbench C called 'xxxxxxx' but scope wasn't set, perhaps due to dpi import call without 'context', or missing svSetScope. See IEEE 1800-2017 35.5.3.的更多相关文章

  1. 请求部署在 IIS7.5 上的 REST 服务的 Put/Post/Delete 操作发生 HTTP Error 405.0 - Method Not Allowed 错误之解决

    背景 请求部署在 IIS7.5 上的 REST 服务的 Put/POST/DELETE 操作发生 HTTP Error 405.0 - Method Not Allowed 错误. Issue 解决 ...

  2. Xcode export/upload error: Your session has expired. Please log in-b

    1.Xcode export/upload error: Your session has expired. Please log in 我在stack over flow上找到的答案:  一看pre ...

  3. MySQL中执行sql语句错误 Error Code: 1093. You can't specify target table 'car' for update in FROM clause

    MySQL中执行sql语句错误 Error Code: 1093. You can't specify target table 'car' for update in FROM clause 201 ...

  4. 【应用服务 App Service】NodeJS +Egg 发布到App Service时遇见 [ERR_SYSTEM_ERROR]: A system error occurred:uv_os_get_passwd returned ENOENT(no such file or directory)

    问题情形 本地NodeJS应用使用Egg脚手架构建,本地运行测试完全没有问题,发布后App Service后不能运行.通过登录到kudu后(https://<your web site>. ...

  5. 程序中使用ajax时,type为put,或者delete时在 IIS上没效果,发生HTTP Error 405.0 - Method Not Allowed

    其实使用put delete  是在创建webapi中基本才会使用. WebDAV 是超文本传输协议 (HTTP) 的一组扩展,为 Internet 上计算机之间的编辑和文件管理提供了标准.利用这个协 ...

  6. Thinkphp框架中自定义修改success和error页面

    Thinkphp框架中自定义修改success和error页面 Thinkphp框架的默认success和error太难看,可以自定义设置,步骤如下: (注意:TP原框架中的success跳转有问题, ...

  7. (maven项目)使用java -jar命令遇到的小问题|xx.jar中没有主清单或Error:Invalid or corrupt jarfile xx.jar

    xx.jar中没有主清单或Error:Invalid or corrupt jarfile xx.jar 遇到这个问题,是因为你的jar包没有设置主类的入口. 即在META-INF文件夹的MANIFE ...

  8. [持续更新] Python学习、使用过程中遇见的非代码层面知识(想不到更好的标题了 T_T)

    写在前面: 这篇博文记录的不是python代码.数据结构.算法相关的内容,而是在学习.使用过程中遇见的一些没有技术含量,但有时很令人抓耳挠腮的小东西.比如:python内置库怎么看.python搜索模 ...

  9. [笔记] MySql Workbench 导出表结构和数据报错 mysqldump: [ERROR] unknown variable 'delayed-insert=FALSE'

    下午使用MySql Workbench导出数据库表结构,设置完导出选项后执行导出,报如下错误: :: Dumping nacweixindb (tb_app) Running: mysqldump.e ...

  10. IIS7.5上的REST服务的Put,Delete操作发生HTTP Error 405.0 - Method Not Allowed 解决方法

    WebDAV 是超文本传输协议 (HTTP) 的一组扩展,为 Internet 上计算机之间的编辑和文件管理提供了标准.利用这个协议用户可以通过Web进行远程的基本文件操作,如拷贝.移动.删除等.在I ...

随机推荐

  1. Centos设置Redis自启动(Systemd)

    前言 在生产环境中,我们在设置Redis服务自启动时有多种方式,这里采用Systemd管理方式进行设置Redis, Systemd管理起centos7版本中使用了systemd,systemd同时兼容 ...

  2. Blazor学习之旅(2)第一个Blazor应用

    本篇我们来构建第一个Blazor Web应用,这里我们选择Blazor Server类型,后面我们再学习Blazor WebAssembly类型. 话外音:有人问我西门子在用Blazor吗?是的,西门 ...

  3. create-react-app搭配react16+ts+less

    脚手架默认不支持lesscreate-react-app创建ts类型的react项目 // 全局安装脚手架工具 npm install -g create-react-app // 使用脚手架创建re ...

  4. lingo 练习3

    简介 练习 question 有一个护士工作站点,每天(周一至周日)所需最少职员数量20,16,13,16,19,14,和12,并要求每个职员一周连续工作5天,试求每周所需最少职员数,并给出安排. c ...

  5. ETL如何执行Java脚本

    ETLCloud提供了执行 Java 脚本的方式,让用户能够灵活地处理数据并实现各种复杂的数据处理任务. ETLCloud在数据处理领域的应用优势主要体现在以下几个方面: 灵活性:通过执行Java脚本 ...

  6. SciTech-BigDataAIML-Measurement: Euclidian Distance + Manhattan Distance + Area面积 + Density密度 + KLD(KL散度):测度比较"两Distribution(概率分布)"的Similarity(接近度)

    Measurement 测度 Euclidian Distance(欧几理得距离) \(\large \begin{array}{rl} \\ EuDistance(Point_1, Point_2) ...

  7. ICEE-SPI-debug最好用 SPI 和 JTAG 或更优的(高达104MHz的)SPI通信保障飞速的debug响应;不再像UART的115200 BaudRate ~

    S25FL032P : 32-Mbit CMOS 3.0 Volt Flash Memory with 104-MHz SPI (Serial Peripheral Interface) Multi ...

  8. SqlServer复制和订阅(实现主从同步) -九五小庞

    1.登录必须是服务器名称不能是ip 2.订阅服务器不需要提前创建数据库 复制方: (1).展开要发布的数据库节点,找到复制下的本地发布 (2).右击本地发布,选择本地发布 (3.下一步选择要发布的数据 ...

  9. win11正式版出现驱动程序不兼容的问题

    有不少雨林木风系统的小伙伴,在电脑上安装win11正式版以后,电脑都会自动安装驱动程序,而因为是自动安装的,常常会出现驱动程序不兼容问题,导致一些硬件出现不能正常使用的问题,那样这种情况我们要如何解决 ...

  10. 开源基础框架 csx-bsf-all【开源】【原创】

    开源csx-bsf-all Git地址 https://gitee.com/chejiangyi/free-bsf-all/ https://gitee.com/yhcsx/csx-bsf-all​ ...