UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Explorer
Explorer
14,443 Views
Registered: ‎07-09-2010

signal is connected to multiple drivers

Jump to solution

HI,

       I had a signal bus in my code.Assume that DATA_SIG(7 downto 0).I had 5 state in my state machine.In each state machine i want to drive different data on this bus.

in 1st state machine DATA_SIG <= "00000000"

in 2nd state machine DATA_SIG <= "10000010"

in 3nd state machine DATA_SIG <= "01000001"

in 4nd state machine DATA_SIG <= "00100000"

in 5nd state machine DATA_SIG <= "00010001"

 

.But in synthesizing tstep i am getting this error.Please tell me how to solve this problem?

DATA_SIG<7>.This signal is connected to multiple driver.

DATA_SIG<6>.This signal is connected to multiple driver.

DATA_SIG<5>.This signal is connected to multiple driver.

DATA_SIG<4>.This signal is connected to multiple driver.

DATA_SIG<3>.This signal is connected to multiple driver.

DATA_SIG<2>.This signal is connected to multiple driver.

DATA_SIG<1>.This signal is connected to multiple driver.

DATA_SIG<0>.This signal is connected to multiple driver.

 

Thanks You in Advance,
Mahesh Hegde.
0 Kudos
1 Solution

Accepted Solutions
Scholar joelby
Scholar
11,423 Views
Registered: ‎10-05-2010

Re: signal is connected to multiple drivers

Jump to solution

In one_wire_io.vhd, you are assigning a value to DATA (which is eventually connected to DATA_SIG):

 

    DATA <= DOUT when DDIR='1' else "ZZZZZZZZ";

This is the cause of your problem. You've declared DATA as an inout in every module, and are driving it in two places.

 

The logic in one_wire_io.vhd looks like you're trying to infer a tristate IO buffer. Normally you would connect this to a top level pin - you wouldn't try to use tristate logic internally.

15 Replies
Scholar joelby
Scholar
14,441 Views
Registered: ‎10-05-2010

Re: signal is connected to multiple drivers

Jump to solution

Can you please post the complete code for your module, and any other modules that connect to the DATA_SIG bus? There's no problem with assigning different data to the same register in different states, as long as you're doing it properly.

 

0 Kudos
Teacher rcingham
Teacher
14,439 Views
Registered: ‎09-09-2010

Re: signal is connected to multiple drivers

Jump to solution
If you are coding in VHDL, and each state machine is a different process, then each process is a separate driver, and the synthesis tool is reporting correctly.

Think more about the hardware realization of what you are doing.

------------------------------------------
"If it don't work in simulation, it won't work on the board."
0 Kudos
Explorer
Explorer
14,436 Views
Registered: ‎07-09-2010

Re: signal is connected to multiple drivers

Jump to solution
Hi, I am adding my code in the file.Please see and tell me what is the problem.
Thanks You in Advance,
Mahesh Hegde.
0 Kudos
Explorer
Explorer
14,427 Views
Registered: ‎07-09-2010

Re: signal is connected to multiple drivers

Jump to solution

Hi,

     I added here.

Thanks You in Advance,
Mahesh Hegde.
0 Kudos
Teacher eteam00
Teacher
14,422 Views
Registered: ‎07-21-2009

Re: signal is connected to multiple drivers

Jump to solution

Mahesh,

 

You should provide the DS1WM module code.  DATA_SIG is connected to this module, as well as being assigned in another process in your code.

 

Synchronous reset signals do not need to be in process sensitivity list.  Only the clock -- and async set/reset, if used -- needs to be in the sensitivity list of a clocked process.  This is an excerpt from your posted code:

 

process(CLK,RESET) -- RESET should not be in the sensitivity list, just CLK
begin
if(rising_edge(CLK)) then
    if(RESET = '1') then  -- synchronous reset, not async reset
        adsbar_sig        <= '1';
        enable_sig        <= '1';
        wrenable_sig    <= '1';
        DATA_SIG        <= (others    =>'0');
        ctrl_logic        <= ST_SEND_CMD_REG;     
    else

 

-- Bob Elkind

SIGNATURE:
README for newbies is here: http://forums.xilinx.com/t5/New-Users-Forum/README-first-Help-for-new-users/td-p/219369

Summary:
1. Read the manual or user guide. Have you read the manual? Can you find the manual?
2. Search the forums (and search the web) for similar topics.
3. Do not post the same question on multiple forums.
4. Do not post a new topic or question on someone else's thread, start a new thread!
5. Students: Copying code is not the same as learning to design.
6 "It does not work" is not a question which can be answered. Provide useful details (with webpage, datasheet links, please).
7. You are not charged extra fees for comments in your code.
8. I am not paid for forum posts. If I write a good post, then I have been good for nothing.
0 Kudos
Explorer
Explorer
14,418 Views
Registered: ‎07-09-2010

Re: signal is connected to multiple drivers

Jump to solution

Hi Bob,

                         That DATA_SIG(7 downto 0) bus value is changing in each state and it's driving it to DS1WM logic.But why it's giving that error when synthesizing code.I am not getting.

Thanks You in Advance,
Mahesh Hegde.
0 Kudos
Scholar joelby
Scholar
14,414 Views
Registered: ‎10-05-2010

Re: signal is connected to multiple drivers

Jump to solution

The problem is in some other part of your code, which you haven't provided. Please provide the other parts of your code.

 

0 Kudos
Teacher eteam00
Teacher
14,413 Views
Registered: ‎07-21-2009

Re: signal is connected to multiple drivers

Jump to solution

You commented out a lot of code.  Did you try to re-synthesise after the changes?

 

Is your testbench code also driving DATA_SIG?

 

Have you searched through all of your code for all instances of DATA_SIG?

 

-- Bob Elkind

SIGNATURE:
README for newbies is here: http://forums.xilinx.com/t5/New-Users-Forum/README-first-Help-for-new-users/td-p/219369

Summary:
1. Read the manual or user guide. Have you read the manual? Can you find the manual?
2. Search the forums (and search the web) for similar topics.
3. Do not post the same question on multiple forums.
4. Do not post a new topic or question on someone else's thread, start a new thread!
5. Students: Copying code is not the same as learning to design.
6 "It does not work" is not a question which can be answered. Provide useful details (with webpage, datasheet links, please).
7. You are not charged extra fees for comments in your code.
8. I am not paid for forum posts. If I write a good post, then I have been good for nothing.
0 Kudos
Explorer
Explorer
14,411 Views
Registered: ‎07-09-2010

Re: signal is connected to multiple drivers

Jump to solution
HI, I tried by changing the code and re-synthesized.Even though that error is coming.DATA_SIG is not connected to test bench.It's is in this provided code and it is going to DS1WM logic.
Thanks You in Advance,
Mahesh Hegde.
0 Kudos
Explorer
Explorer
8,110 Views
Registered: ‎07-09-2010

Re: signal is connected to multiple drivers

Jump to solution

Hi,

      The DATA_SIG is declared in command_signals.vhd.This file is the top file.That is going to ds1wm.vhd.from there this signal is routed to one_wire_io.vhd.I added that code also here.

Thanks You in Advance,
Mahesh Hegde.
0 Kudos
Scholar joelby
Scholar
11,424 Views
Registered: ‎10-05-2010

Re: signal is connected to multiple drivers

Jump to solution

In one_wire_io.vhd, you are assigning a value to DATA (which is eventually connected to DATA_SIG):

 

    DATA <= DOUT when DDIR='1' else "ZZZZZZZZ";

This is the cause of your problem. You've declared DATA as an inout in every module, and are driving it in two places.

 

The logic in one_wire_io.vhd looks like you're trying to infer a tristate IO buffer. Normally you would connect this to a top level pin - you wouldn't try to use tristate logic internally.

Explorer
Explorer
8,103 Views
Registered: ‎07-09-2010

Re: signal is connected to multiple drivers

Jump to solution

Hi joelby,

                  Yes you are right.Well catch.Thanks.Problem solved.

Thanks You in Advance,
Mahesh Hegde.
0 Kudos
Highlighted
Visitor javo0112
Visitor
7,978 Views
Registered: ‎03-13-2012

Re: signal is connected to multiple drivers

Jump to solution

Hi 

 

 

i have a machine state that drives the datta buffer but i was putting a "z" state when there was no data to transmit to the module DS1WM.  so that its wrong , isnt it? 

 

Thank you 

Javier Balam

Tags (1)
0 Kudos
7,973 Views
Registered: ‎03-13-2012

Re: signal is connected to multiple drivers

Jump to solution

Hello Javo,

 

Intially I tried with DS1WM code to read and write of 1-Wire(Transducer).

After that i am not able to communicate with this chip using DS1WM.

So i left that path.(Communicating 1 Wire using DS1WM).

I wrote my own code to communicate with 1-Wire.

So i don't have much knowledge on DS1WM.

Thanking You,
Mahesh Hegde
0 Kudos
Visitor javo0112
Visitor
7,957 Views
Registered: ‎03-13-2012

Re: signal is connected to multiple drivers

Jump to solution

well i think i will try split that bus in two separate bus: one for input and the other for output.

 

if that doesnt work, i will have to make my own interface too .

 

thanks for taking the time to answer me

0 Kudos