DPI-C 错误“c 函数声明冲突”

问题描述 投票:0回答:1

我正在开发一个 RISC-V 项目,对 DPI-C 机制还不熟悉。 我想用cpp实现

pmem_read
&
pmem_write
功能并导出到verilog中

这是声明。

// paddr.cpp
extern "C" void pmem_read(unsigned char re, uint32_t raddr, uint32_t mask, uint32_t *rword){...}
// Dcache.sv
import "DPI-C" function void pmem_read(input bit re, input int addr, input int mask, output int rword);
// main.cpp
#include <Vtop.h>
#include <paddr.h>
...

但是,当使用 Verilator 编译它们时,我遇到一个错误,报告

Vtop.h
中的声明与
paddr.cpp
中的声明冲突。

但是使用DPI-C时,只是声明不同,实在不知道如何解决。

c++ verilator
1个回答
0
投票

真蠢!
我发现我错误地在

Vtop.h
中添加了
paddr.cpp
,这是引发冲突错误的原因。
删除后,代码可以正常工作。

© www.soinside.com 2019 - 2024. All rights reserved.