As J_expoler2 said just be careful with your 3-state buffers they are only in your I/Os so sometimes your synthesizer does not infer them in your I/Os by default.
What synthesis tool are you using? In Leonardo you can (although I thing is a default)
'set bubble_tristate TRUE'
and I thing Synplify does it by default
no idea about XST or others.
You can also fix it in your RTL moving all your bi-directional tri-stated signals to the TOP level.
Regards,
Maestor