返回介绍

E.11.10 Example 6 — access to packed arrays

发布于 2020-09-09 22:56:16 字数 837 浏览 788 评论 0 收藏 0

SystemVerilog:

import "DPI" function void foo(input logic [127:0]);
import "DPI" function void boo(input logic [127:0] i []); // open array of
// 128-bit

C:

#include "svdpi.h"
/* one 128-bit packed vector */
void foo(const svLogicPackedArrRef packed_vec_128_bit)
{
svLogicVec32 arr[SV_CANONICAL_SIZE(128)]; /* canonical representation */
svGetLogicVec32(arr, packed_vec_128_bit, 128);
...
}
/* open array of 128-bit packed vectors */
void boo(const svOpenArrayHandle h)
{
int i;
svLogicVec32 arr[SV_CANONICAL_SIZE(128)]; /* canonical representation */
for (i = svLow(h, 1); i <= svHigh(h, 1); i++) {
svLogicPackedArrRef ptr = (svLogicPackedArrRef)svGetArrElemPtr1(h, i);
/* user need not know the vendor representation! */
svGetLogicVec32(arr, ptr, 128);
...
}
...
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文