Let me start by saying, do not write your own X_FF model and do not use
the -GXon switch. Neither is good advice in my opinion and both of
these can get you into far more trouble than help in almost any
situation. Let me first address the initial question: "Can someone tell
me more about the X_FF component from the simprim library? Or is there
any link for the explanation."
Simulation is covered in the Synthesis and Verification Design Guide.
The current version is located at:
http://toolbox.xilinx.com/docsan/xilinx6/books/docs/sim/sim.pdf
If you go to chapter 6 and go to the section "Debugging Timing Problems"
(page 265) it will explain the timing message and how to understand what
it is telling you, how to debug the issue and hopefully solve the
problem. This is also explained in less detail in Answer Record #5255
SIMPRIM, Timing Simulation - What are "$setup" and "$hold" violations,
and how do I fix them? (VHDL, Verilog) (at
www.xilinx.com/techdocs/5255.htm)
If the input is truly an asynchronous input, then you need to design
your circuit to avoid the side-effects of missing timing such as
metastability and once you are satisfied, you can put an ASYNC_REG
attribute on that register. This has the advantage of disabling
X-propogation on that register only so if you have a timing violation
elsewhere, it will still behave appropriately. The global disabling of
X-propogation adds the danger of missing a timing violation in a
synchronous path which can cause a very unpredictable circuit. This too
is covered in more detail in the documents referenced above. Look at
the "Disabling 'X' Propagation" section in the Synth & Verification
Guide which is also referenced from the above section on debugging
timing problems and the link in the Answer record.
I highly suggest you browse through the chapters of this book as it may
explain other things you are seeing in functional and timing simulation
and give more elegant solutions that you may have thought otherwise.
Also the on-line answer records cover many of these topics. Finding the
right answer record is not always easy as there is a lot of information
available there but if you type in the right key words, it generally
comes out in the top few and should not be too hard to find. You should
not need anything near 60 minutes to find this information and if that
is the case, then something is wrong. If you have suggestions on
improving how this data is presented, let me know and I can be sure to
pass that on to the appropriate people.
-- Brian