Jump to content

(E112) Port is not bound


AiroldiR

Recommended Posts

Hi,

 

I'm fairly new to systemsC and I've a problem with a port binding that I cannot solve. In fact, I cannot understand why it consider a port as not bound. I checked other threads about binding errors, but I dind't find a solution for my case.

 

the module I created is the following:

 

SC_MODULE (RF) {
    sc_in<sc_uint<32> >    datain;  
    sc_in<sc_uint<4> >      fir_instr;
    sc_in<bool>                  clk;
    sc_in<bool>                  reset;
    sc_out<sc_uint<32> > q;

 

 

and its instance in the main() is as follow:

 

int sc_main (int argc, char* argv[]) {
 

sc_signal<bool>   clock;
  sc_signal<bool>   reset;
  sc_signal<sc_uint<32> > datain1;
  sc_signal<sc_uint<4> >   fir_instr;
  sc_signal<sc_uint<32> > q;

  RF FF("SRF2");

  FF.datain(datain1);
  FF.fir_instr(fir_instr);
  FF.clk(clock);
  FF.reset(reset);
  FF.q(q);

 

 

when I compile the code I get no errors but during the execution I get the following error:

 

Error: (E112) get interface failed: port is not bound: port 'SRF.port_1' (sc_in)

 

my understanding is that it doesn't find the binding for "fir_instr" but I don't understand why. Can somebody help me?

 

Thanks,

 

Roberto



    
 

 

Link to post
Share on other sites
  • 1 year later...

Hello there, 

 

Am facing the same issue. 

 

Info: (I703) tracing timescale unit set: 1 ns (decoder.vcd)
 
Error: (E109) complete binding failed: port not bound: port 'Waveform.port_2' (sc_out)
In file: ../../../../src/sysc/communication/sc_port.cpp:231
 
What does this mean?
 
I have bounded both ports of the driver(concerned) module to the top module (no port is left unbounded ). Is there something else that I need to change?
Link to post
Share on other sites

When you say "both ports"  you imply two ports. The error message says the *third* port in the object labelled "Waveform" is not bound.

Please look for the third port and check it is bound,

 

regards

Alan

 

P.S. The ports are automatically named starting from 0, so port_2 must be the third port.

Link to post
Share on other sites

Hello Alan, 

 

The "driver" module has just two ports. 

 

//File:driver.h
 
#include "systemc.h"
 
SC_MODULE (driver)
{
sc_out<bool> d_enable ;
sc_out<sc_uint<2> > d_select; 
  
 
 
sc_uint<2> pattern;
 
void prc_driver(); 
 
SC_CTOR(driver)
{
SC_THREAD(prc_driver); 
 
}
};
 
 
Still I don't know why the error has popped up this way!
 
Please help me solve this issue. 
 
Thanks in advance. 
Link to post
Share on other sites

In the other thread, Stephan said he successfully compiled and ran your code:

 

http://forums.accellera.org/topic/5446-vcd-file-not-generated/?p=12917

 

So I don't understand why it doesn't compile and run for you.

 

Perhaps there's a problem with the way you are compiling your code. Try deleting all the object files and starting again.

 

regards

Alan

Link to post
Share on other sites

Hello Alan, 

As told by Stephen, he could run the code successfully! But, am not able to understand why it doesn't run for me. 

 

I even tried deleting all the object files, moved the source codes to a new directory and compiled again. But, still am getting the same error. What possibly would be the issue, can you please help me solve this?

 

Thanks in advance. 

Link to post
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...