Jump to content
Ammar33

Error: (E115) sc_signal<T> cannot have more than one driver:

Recommended Posts

Hi every one,

 

I got this error in my simulator:

 

Error: (E115) sc_signal<T> cannot have more than one driver:
 signal `NoC.signal_213936' (sc_signal)
 first driver `NoC.Tile[00][00].Router.rxProcess' (sc_method_process)
 second driver `NoC.Tile[00][00].Router.txProcess' (sc_method_process)
In file: ../../../../src/sysc/communication/sc_signal.cpp:137
In process: NoC.Tile[00][00].Router.txProcess @ 0 s
 

 

I know the reason of the error that the same signal is connected to two outports at the same module but in diffrent process. the problem is: as you can see from the signal number I have many signal and I need your help to track this signal and fix the problem please?

 

thanks

 

Ammar

Share this post


Link to post
Share on other sites

Your NOC module has indeed many signals.  Hopefully, they are already organized as arrays, which you can replace by using appropriate sc_vectors, which can take an explicit name (prefix).  As a general recommendation, you should consider to give your channels an explicit name to ease debugging of such errors.

 

A simpler solution is probably to look at the two processes (txProcess, rxProcess) in your Router module.  If the problem would be the duplicate binding of a single signal to multiple output ports, the error should have been reported during elaboration already.  Instead, the error is raised during simulation, where both processes try to write to the same signal, most likely through the same (in)out port. This should be local enough to find manually.

 

hth,
  Philipp

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×