- Joined
- Sep 10, 2013
- Messages
- 7,944
- Helped
- 1,823
- Reputation
- 3,656
- Reaction score
- 1,808
- Trophy points
- 1,393
- Location
- USA
- Activity points
- 60,209
Your problem is here:
Number of Slices 4386 out of 4656 94%
You need additional slices for routing, and ISE cannot find a way to route your logic with only this 6% remaining slices. By the way, you are using a XC3S500E (which has 4656 Slices), not a 100E.
You need to use less slices. Better way to accomplish this is removing some register, using less pipelines, using less distributed memory (maybe using additional BRAM instead distributed RAM?), or having a better use of your flip-flops (using enable when possible, using flip-flop reset instead zero attribution).
No, the number of occupied slices isn't necessarily the issue. I regularly see 90%+ slice utilization. A more telling number is the LUT % (~61%) and the register % utilization (~50%). When par runs it won't pack slices with both FF and LUTs occupied if there is space to spread things out.
- - - Updated - - -
Just dawned on my that the OP should check if the design has a unusually large number of control sets (i.e. clock/reset/enable groups) If there are a large number of them par can't pack registers with different control sets into the same slice. If this is the case one option might be to enable XST's reduce control sets in the advanced tab (though I'm not sure if this is something available for a Spartan 3E part). Basically this XST option converts resets/enables into LUT instead of using the dedicated pins.