c# 是否有DPI-C兼容的类型< stdint.h>?

f0ofjuux  于 2023-08-01  发布在  C#
关注(0)|答案(1)|浏览(236)

我试图为Verilog写一个与DPI-C兼容的结构。
结构如下:

/* Microcontroller FW config */
struct ucode_image_config {
    uintptr_t src_addr;
    uint32_t size;
};

字符串
在DPI-C中,代码如下:

/* Microcontroller FW configuration */
typedef struct {
  int unsigned src_addr;
  int unsigned size;
} ucode_image_config_t;


由于uintptr_t的大小是可变的,我假设这不是1-1等价,所以我想知道是否有更好的解决方案。

tpgth1q7

tpgth1q71#

SystemVerilog没有指针,因此C和SystemVerilog之间没有兼容的指针数据类型。它有一个叫做chandle的不透明指针,它允许你把一个C指针从一个DPI-C例程传递到另一个DPI-C例程。但是,如果不导入另一个DPI-C访问例程,就无法从SystemVerilog端使用chandle引用任何内容。
DPI具有开放阵列的概念(35.5.6.1IEEE 1800-2017 SystemVerilog LRM中的www.example.com部分)。你应该看看这个,然后问另一个问题,详细说明你想要完成的目标。

相关问题