whack
Member level 5
I'm still using Xilinx ISE (just found out it's discontinued).
Here's a scenario I have in VHDL:
Entity PinDriver with the following two outputs:
OutPinA
OutPinB
Architecture looks like this:
{process with some FSM that does things with OutPinA}
OutPinB <= '0'; -- active low
XST gives the following error:
ERROR:Xst:528 - Multi-source in Unit <PinDriver> on signal <OutPinB>; this signal is connected to multiple drivers.
Obviously there's only one driver for OutPinB... That identifier is used in the design only once and does not appear anywhere else. This looks like an obvious problem in software.
I'm thinking XST is having trouble synthesizing the FSM, but it does not drive the pin in question, does not appear in FSM. If I comment out the FSM the entity will synthesize correctly, nevertheless it doesn't change the fact that it's giving a completely wrong and unrelated error, a bug basically.
Original design had more pins, and it was saying that a pin has multiple drivers. I would remove that pin from the design, then it would complain about the next pin (which again had just one statement and single driver).
Anybody else encounter this before?
- - - Updated - - -
Bug confirmed.
I found the problem in my FSM, but it was on another pin. The synthesizer was having a problem after which the parser was grabbing the next thing it sees and throwing that in the error, which results in an error message that makes no sense.
Here's a scenario I have in VHDL:
Entity PinDriver with the following two outputs:
OutPinA
OutPinB
Architecture looks like this:
{process with some FSM that does things with OutPinA}
OutPinB <= '0'; -- active low
XST gives the following error:
ERROR:Xst:528 - Multi-source in Unit <PinDriver> on signal <OutPinB>; this signal is connected to multiple drivers.
Obviously there's only one driver for OutPinB... That identifier is used in the design only once and does not appear anywhere else. This looks like an obvious problem in software.
I'm thinking XST is having trouble synthesizing the FSM, but it does not drive the pin in question, does not appear in FSM. If I comment out the FSM the entity will synthesize correctly, nevertheless it doesn't change the fact that it's giving a completely wrong and unrelated error, a bug basically.
Original design had more pins, and it was saying that a pin has multiple drivers. I would remove that pin from the design, then it would complain about the next pin (which again had just one statement and single driver).
Anybody else encounter this before?
- - - Updated - - -
Bug confirmed.
I found the problem in my FSM, but it was on another pin. The synthesizer was having a problem after which the parser was grabbing the next thing it sees and throwing that in the error, which results in an error message that makes no sense.