【问题标题】:Error: (E107) bind interface to port failed: type mismatch on port 4 of module `simple_instance.data_in_reg'错误:(E107)绑定接口到端口失败:模块“simple_instance.data_in_reg”的端口4上的类型不匹配
【发布时间】:2021-08-13 00:02:57
【问题描述】:

我想在 register_out 中读取总线并在 register_in 中写入总线,但是我在 register_in 的端口 4 上遇到类型不匹配错误

注册.hpp文件

#pragma once
#include<systemc.h>
#include"bus.hpp"
class Register:public sc_module{
private:
  sc_port<sc_signal_in_if<sc_logic>> clk,rst,lden;
  sc_port<sc_signal_in_if<sc_lv<8>>> in_load;
  sc_port<sc_signal_write_if<sc_lv<8>>> out;

public:
  SC_CTOR(Register){
    SC_METHOD(eval);
    sensitive<<clk<<rst;
  }
void eval(){
    if(rst->read()=='1')
        out->write(0);
    else if(clk->event() && clk->read()=='1')
        out->write(in_load->read());
  }
};

test_module 头文件

#pragma once  
#include<systemc.h>
#include"Register.hpp"
class test_module:public sc_module{
  sc_port<sc_signal_in_if<sc_logic>> clk,rst,lden_in,lden_out;
  sc_port<sc_signal_in_if<sc_lv<8>>> data_in;
  sc_port<sc_signal_write_if<sc_lv<8>>> data_out;
  sc_port<sc_signal_inout_if<sc_lv<8>>> bus; 

public:
  Register  *data_in_reg,*data_out_reg;
  SC_CTOR(test_module){
    data_in_reg=new Register("data_in_reg");
      (*data_in_reg)(clk,rst,lden_in,data_in,bus); // ERROR  
    data_out_reg=new Register("data_out_reg");
      (*data_out_reg)(clk,rst,lden_out,bus,data_out);
   }
 };

【问题讨论】:

  • 您是否尝试过从register_in 读取并写入register_out?以防万一你把它们弄错了
  • 我无法将 sc_inout_if 绑定到寄存器输出端口
  • 如果您复制并粘贴您收到的完整/准确的错误消息,这可能会有所帮助。
  • 当我运行程序时,我从 systemc SystemC 2.3.2-Accellera 获得了这个 --- 2021 年 5 月 22 日 13:45:11 版权所有 (c) 1996-2017,所有贡献者,保留所有权利警告: (W506) 非法字符:简单实例替换为 simple_instance 在文件中:../../../src/sysc/kernel/sc_object.cpp:247 错误:(E107) 将接口绑定到端口失败:端口 4 上的类型不匹配模块 `simple_instance.data_in_reg' 在文件中:../../../src/sysc/kernel/sc_module.cpp:570'

标签: c++ systemc


【解决方案1】:

我将 sc_port 替换为 sc_in 并将 sc_port 替换为 sc_out 并制作总线到sc_inout,它的工作。 但我有疑问为什么这种方式有效,但通过使用 sc_port 和接口我得到不匹配错误

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多