cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Observer
Observer
9,956 Views
Registered: ‎12-20-2007

WARNING:Xst:1291

I got the following warning during synthesis:

 

WARNING:Xst:1291 - FF/Latch <XXX_reg> is unconnected in block <uut_HDECODE>.

 

The online help says :

 

When this warning occurs, a register or latch in your design has been created, but the output is never connected or the signals or logic it drives have been trimmed. Check the XST log for messages such as the following to find signals that have been trimmed out of the design:

"WARNING:Xst:646 - Signal <my_sig> is assigned but never used." 

 

But I don't have such a warning, and I have examined my codes very carefully to make sure this register is assigned and used. This signal is used to assgin values to other signals. My design will not work without it. How can I solve this problem? My ISE version is 8.1.02i.

 

This signal is simply a pulse. The codes are like:

 

always @ (posedge CLK) begin

   if (rst) XXX_reg <=1'b0;

   else begin

       case (addr)

            5: XXX_reg <=1'b1;

           10: XXX_reg <=1'b0;

       endcase

  end      

end

 

assign XXX = XXX_reg;

 

Thanks.

 

 

0 Kudos
Reply
7 Replies
Historian
Historian
9,939 Views
Registered: ‎02-25-2008

So exactly which signal is it complaining about? XXX or XXX_reg?

 

-a

----------------------------Yes, I do this for a living.
0 Kudos
Reply
Observer
Observer
9,934 Views
Registered: ‎12-20-2007

It complains about XXX_reg.
0 Kudos
Reply
Historian
Historian
9,915 Views
Registered: ‎02-25-2008

Sounds like the tools absorbed XXX_reg into XXX, which makes sense, since the assignment XXX = XXX_reg is redundant. 

 

Why did you code it that way?

 

-a

----------------------------Yes, I do this for a living.
0 Kudos
Reply
Observer
Observer
9,908 Views
Registered: ‎04-11-2008

XST does not know what value to assign to xxx_reg when addr is a different value than 5 or 10.  So a latch is created to hold the previous value of xxx_reg.  Assign a default value before the case statement, or assign the default value at the end of the case statement (just before "endcase").

-Dave Pollum

 

0 Kudos
Reply
Observer
Observer
9,883 Views
Registered: ‎12-20-2007

XXX is a output pin. I have other similar signal pairs. But they are synthesized all right.
0 Kudos
Reply
Observer
Observer
9,882 Views
Registered: ‎12-20-2007

Thanks for you replay. I added the default value, but the warning is still there.
0 Kudos
Reply
Historian
Historian
9,875 Views
Registered: ‎02-25-2008


dpollum238 wrote:

XST does not know what value to assign to xxx_reg when addr is a different value than 5 or 10.  So a latch is created to hold the previous value of xxx_reg.  Assign a default value before the case statement, or assign the default value at the end of the case statement (just before "endcase").

-Dave Pollum

 


He described a synchronous process, so no default case is required.

 

-a

----------------------------Yes, I do this for a living.
0 Kudos
Reply