简体   繁体   English

错误:(E107)绑定接口到端口失败:模块“simple_instance.data_in_reg”的端口4上的类型不匹配

[英]Error: (E107) bind interface to port failed: type mismatch on port 4 of module `simple_instance.data_in_reg'

i want to read bus in register_out and write to bus in register_in but i get type mismatch error on port4 of register_in我想在 register_out 中读取总线并在 register_in 中写入总线,但是我在 register_in 的端口 4 上出现类型不匹配错误

Register.hpp file注册.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 head file 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);
   }
 };

i replace sc_port<sc_signal_in_if> to sc_in and sc_port<sc_signal_write_if> to sc_out and make bus to sc_inout and it's work.我将sc_port<sc_signal_in_if>替换为sc_in并将sc_port<sc_signal_write_if>替换为sc_out并制作总线到sc_inout并且它的工作。 but i have question why this way work but by using sc_port and interface i got mismatch error但我有疑问为什么这种方式有效但是通过使用 sc_port 和接口我得到了不匹配错误

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM