gpt4 book ai didi

vhdl - 如何将SV接口(interface)信号绑定(bind)到VHDL类型?

转载 作者:行者123 更新时间:2023-12-03 02:20:55 26 4
gpt4 key购买 nike

我正在尝试将接口(interface)绑定(bind)到我的 VHDL 模块。我想要绑定(bind)的信号在模块中定义如下:

TYPE dut_fsm_type is (
IDLE_STATE,
WAIT_STATE,
IDENTIFY_STATE,
LATCH_STATE,
DONE_STATE,
ERROR_STATE
);
signal dut_fsm_state : dut_fsm_type;
signal prev_dut_fsm_state : dut_fsm_type;

我的接口(interface)模块和绑定(bind)语句的实例化看起来像这样:

bind my_dut my_intf my_intf_0 (.*,
.fsm_state (tb.u_dut.dut_fsm_state),
.prev_fsm_state(tb.u_dut.prev_dut_fsm_state)
);

我不知道输入信号 fsm_state 的长度应该是多少,所以我只是将其设置为 32 位。

interface my_intf (
input bit[31:0] fsm_state,
input bit[31:0] prev_fsm_state
);

当我尝试在 questasim 10.4 中进行编译时,收到以下消息:

(vopt-2245) Type ('dut_fsm_type') of VHDL hierarchical reference, used as actual expression in bind statement, must be defined in a package.

知道如何处理这个问题吗?

最佳答案

根据错误消息,听起来您需要在 SystemVerilog 端定义等效类型,并且需要在包中定义它。因此,添加以下包并修改接口(interface)端口应该可以工作。

package typdef_pkg;
typedef enum {
IDLE_STATE,
WAIT_STATE,
IDENTIFY_STATE,
LATCH_STATE,
DONE_STATE,
ERROR_STATE
} dut_fsm_type;
endpackage : typdef_pkg

interface my_intf (
input typdef_pkg::dut_fsm_type fsm_state,
input typdef_pkg::dut_fsm_type prev_fsm_state
);
...
endinterface

混合语言模拟往往很棘手。我不是 100% 相信这会起作用,但应该会让你朝着正确的方向前进。

关于vhdl - 如何将SV接口(interface)信号绑定(bind)到VHDL类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40775770/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com