pv.aditya Posted November 2, 2012 Report Posted November 2, 2012 The output of my program says this ... What might be the exact problem.. !! I am unable to tracethat particular port. SystemC 2.2.0 --- Sep 25 2012 13:13:03 Copyright © 1996-2006 by all Contributors ALL RIGHTS RESERVED Info: (I804) /IEEE_Std_1666/deprecated: sc_sensitive_pos is deprecated use sc_sensitive << with pos() instead Error: (E112) get interface failed: port is not bound: port 't1.m1.port_3' (sc_in) In file: ../../../../src/sysc/communication/sc_port.cpp:265 Info: (I804) /IEEE_Std_1666/deprecated: You can turn off warnings about IEEE 1666 deprecated features by placing this method call as the first statement in your sc_main() function: sc_report_handler::set_actions("/IEEE_Std_1666/deprecated", SC_DO_NOTHING); Quote
dakupoto Posted November 2, 2012 Report Posted November 2, 2012 The error message is quite explicit. Some input port to some module is not connected to an input channel (sc_signal), as it must be. To find the exact location, you would have to search very carefully through your sc_modules, especially at the locations where the input/output port bindings are done. The 'Info' messages are also very clear. Hope that helps. Quote
afzalmd Posted November 2, 2012 Report Posted November 2, 2012 The output of my program says this ... What might be the exact problem.. !! I am unable to tracethat particular port. SystemC 2.2.0 --- Sep 25 2012 13:13:03 Copyright © 1996-2006 by all Contributors ALL RIGHTS RESERVED Info: (I804) /IEEE_Std_1666/deprecated: sc_sensitive_pos is deprecated use sc_sensitive << with pos() instead As it is clear from the info message, you have to use sc_sensitive<<a.pos(); . sc_sensitive_pos is supported in previous versions. Error: (E112) get interface failed: port is not bound: port 't1.m1.port_3' (sc_in)In file: ../../../../src/sysc/communication/sc_port.cpp:265 All systemC ports should be binded. SystemC does not support floating ports. Either you can bind that port another port or with a dummy signal. In this case port 3 in m1 module is not bounded. Info: (I804) /IEEE_Std_1666/deprecated: You can turn off warnings about IEEE 1666 deprecated features by placing this method call as the first statement in your sc_main() function: sc_report_handler::set_actions("/IEEE_Std_1666/deprecated", SC_DO_NOTHING); Quote
David Black Posted November 2, 2012 Report Posted November 2, 2012 Turning off warnings for core features that have been deprecated is probably asking for trouble. maehne 1 Quote
apfitch Posted November 2, 2012 Report Posted November 2, 2012 Hi PV, in the message Error: (E112) get interface failed: port is not bound: port 't1.m1.port_3' (sc_in) In file: ../../../../src/sysc/communication/sc_port.cpp:265 the path t1.m1.port_3 tells you exactly which port is not bound. t1 and m1 are names you created. port_3 is the default name for the 4th port you declared in the module that is instanced as m1, regards Alan Quote
maehne Posted November 2, 2012 Report Posted November 2, 2012 Hello, please follow Alan's and David's advice. t1.m1.port_3 tells you exactly which port is not bound. t1 and m1 are names you created. port_3 is the default name for the 4th port you declared in the module that is instanced as m1, I would like to add that it is good practice to set the port name to be equal to the name of the port instance variable in your module. This can be easily achieved by passing it in form of a string to the port's instance constructor in the member initialization list of the module's constructor, e.g.: SC_MODULE(my_module) { sc_core::sc_in<double> in1, in2; sc_core::sc_out<int> out; SC_CTOR(my_module) : in1("in1"), in2("in2"), out("out") {} // ... }; Once you do it systematically, the SystemC error messages during elaboration and simulation will become much clearer, as they will use real variable names, which you can easily locate in your source code. Regards, Torsten sumit_tuwien 1 Quote
pv.aditya Posted November 4, 2012 Author Report Posted November 4, 2012 Thanks to all for your valuable feedback. Am trying to trace my signals to port binding. Will get back soon. Quote
Tanja Posted November 8, 2012 Report Posted November 8, 2012 Hi, SC_THREAD(process_thread) ; sensitive << bsp ; dont_initialize(); bsp is a global variable of type sc_dt::sc_bit; The build output is (2nd line): error C2678: binary '<<' : no operator found which takes a left-hand operand of type 'sc_core::sc_sensitive' (or there is no acceptable conversion) Help please. Quote
apfitch Posted November 8, 2012 Report Posted November 8, 2012 You can't be sensitive to a plain C++ variable, you have to be sensitive to a channel that implements default_event(). Did you mean sc_signal<bool> bsp; By the way, sc_bit is deprecated, just use bool, Alan Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.