Sign In

Don't have a Xilinx account yet?

  • Choose to receive important news and product information
  • Gain access to special content
  • Personalize your web experience on Xilinx.com

Create Account

Username

Password

Forgot your password?
XClose Panel
Xilinx Home
Reply
Regular Visitor
tablekursi
Posts: 41
Registered: ‎09-20-2011
0

multisource error

In my design I got the multisource error, i.e multisource in unit <abc> on signal <xyz>

 what does it mean.and how to rectify it

 

Expert Contributor
hgleamon1
Posts: 874
Registered: ‎11-14-2011
0

Re: multisource error

It sounds like you are trying to drive a single signal from multiple places, either from multiple processes or you are not correctly multiplexing these multiple signals to the single signal that you get the error for.

 

Perhaps you could post the code that deals with the offending signal and we could be of more accurate help?

 

Regards,

 

Howard

 

----------
"That which we must learn to do, we learn by doing." - Aristotle
Regular Visitor
tablekursi
Posts: 41
Registered: ‎09-20-2011
0

Re: multisource error

the code is too big and it is having various modules.

 

Expert Contributor
hgleamon1
Posts: 874
Registered: ‎11-14-2011
0

Re: multisource error

May be you can copy and paste the exact error message that you get, then?

 

If you get to synthesis, what does the XST report state for the whole design and submodules?

 

Regards,

 

Howard

 

----------
"That which we must learn to do, we learn by doing." - Aristotle
Regular Visitor
tablekursi
Posts: 41
Registered: ‎09-20-2011
0

Re: multisource error

Xst:528 - Multi-source in Unit <x_input_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <x_output_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <x_input_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <x_output_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <y_input_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <y_output_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <y_input_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <y_output_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <p_input_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <p_output_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <x_input_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <x_output_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <x_input_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <x_output_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <y_input_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <y_output_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <y_input_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <y_output_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <p_input_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <p_output_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <x_input_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <x_output_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <x_input_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <x_output_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <y_input_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <y_output_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <y_input_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <y_output_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <p_input_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <p_output_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <x_input_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <x_output_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <x_input_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <x_output_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <y_input_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <y_output_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <y_input_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <y_output_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <p_input_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <p_output_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <x_input_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <x_output_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <x_input_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <x_output_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <y_input_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <y_output_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <y_input_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <y_output_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <p_input_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <p_output_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <x_input_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <x_output_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <x_input_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <x_output_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <y_input_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <y_output_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <y_input_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <y_output_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <p_input_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <p_output_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <x_input_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <x_output_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <x_input_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <x_output_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <y_input_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <y_output_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <y_input_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <y_output_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <p_input_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <p_output_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <x_input_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <x_output_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <x_input_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <x_output_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <y_input_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <y_output_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <y_input_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <y_output_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <p_input_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <p_output_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <x_input_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <x_output_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <x_input_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <x_output_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <y_input_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <y_output_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <y_input_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <y_output_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <p_input_ctrl> on signal <toggle>
ERROR:Xst:528 - Multi-source in Unit <p_output_ctrl> on signal <toggle>

Expert Contributor
eteam00
Posts: 7,505
Registered: ‎07-21-2009
0

Re: multisource error

the code is too big and it is having various modules.

 

Well, then, you will have to find the coding problem yourself.  Suggest you search for all instances of the signal "toggle".

 

-- 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.
Regular Visitor
tablekursi
Posts: 41
Registered: ‎09-20-2011
0

Re: multisource error

A one of the module is attached here

module x_input_ctrl(clk, reset, si, request, fifo_ready, ri, fifo_write, dest);
input clk, reset, si, fifo_ready;
input [2:0] dest;
output ri;
output fifo_write;
output [7:0] request;
reg ri;
reg [7:0] request;
reg [1:0] cur_state;
reg [1:0] next_state;
reg toggle;
reg prepare;
reg [7:0] output_dest;

parameter X = 8'b10101001, YP = 8'b10100110, YN = 8'b10011010, PE = 8'b01101010, NO = 8'b10101010, PENDING = 8'b00000000;
parameter STATE0 = 2'b00, STATE1 = 2'b01, STATE2 = 2'b10, STATE3 = 2'b11;

assign fifo_write = ri & si;

always @(dest)
begin
if (dest == 3'b001 || dest == 3'b010)
output_dest = X;
else if (dest == 3'b011)
output_dest = YP;
else if (dest == 3'b100)
output_dest = YN;
else if (dest == 3'b101)
output_dest = PE;
else
output_dest = NO;
end // always @ (dest)

always @(posedge fifo_ready)
toggle = ~toggle;

//output FSM
//state memory block
always @(posedge clk)
if (reset) begin
cur_state <= STATE0;
toggle <= NO;
end
else
cur_state <= next_state;

always @(clk, next_state, reset)
if (reset)
prepare = 1;
else if (clk == 0 && next_state == STATE1)
prepare = 0;
else
prepare = 1;

//next state logic
always @(si, fifo_ready, reset, cur_state)
case (cur_state)
STATE0: if (si) next_state = STATE1;
else next_state = STATE0;
STATE1: if (!fifo_ready) next_state = STATE2;
else next_state = STATE1;
STATE2: if (si && fifo_ready) next_state = STATE1;
else if (si && !fifo_ready) next_state = STATE3;
else if (!si && fifo_ready) next_state = STATE0;
else next_state = STATE2;
STATE3: if (fifo_ready) next_state = STATE1;
else next_state = STATE3;
endcase // case(cur_state)

//output logic block
always @(cur_state, toggle, prepare)
case (cur_state)
STATE0:
if (prepare == 0) begin
ri = 1'b1; request = PENDING;
end
else begin
ri = 1'b1; request = NO;
end
STATE1: begin
ri = 1'b0; request = output_dest;
end
STATE2:
if (fifo_ready) begin
ri = 1'b1; request = PENDING;
end
else begin
ri = 1'b1;
end
STATE3:
if (fifo_ready) begin
ri = 1'b0; request = PENDING;
end
else begin
ri = 1'b0;
end
endcase // case(cur_state)
endmodule 

Expert Contributor
hgleamon1
Posts: 874
Registered: ‎11-14-2011

Re: multisource error

I am no Verilog expert (help me out here someone!) but:

 

always @(posedge fifo_ready)
toggle = ~toggle;

//output FSM
//state memory block
always @(posedge clk)
if (reset) begin
cur_state <= STATE0;
toggle <= NO;

 

I feel fairly certain that you are assigning toggle in two different processes. This is not good and, if I am right, is undoubtedly the cause of your problem.

 

Your previous post also suggests that you are repeating this type of assignment in several different modules.

 

Regards,

 

Howard

 

----------
"That which we must learn to do, we learn by doing." - Aristotle
Regular Visitor
tablekursi
Posts: 41
Registered: ‎09-20-2011
0

Re: multisource error

Thanks, I resolve the issue 

Regular Visitor
tablekursi
Posts: 41
Registered: ‎09-20-2011
0

Re: multisource error

How to store the  image in xilinx fpga is it possible to store in the rom or flash memory of given fpga or external memory is required.