Do you mean "why delay statement is ignored by Synthesis"?
A fix delay cannot be synthesised. Why? Because it is impossible. How do you construct that has, say, 10ns delay? The delay of a cell depends alot on process variation, voltage and temperature.
The solution is to have a state machine, or a hand-shake protocol to synchronise the events.
Re: what delay statement won't be ignored for synthesis ? an
A delay statement cannot be used for synthesis because it uses gate/propogation delay to create the time delay and the number of gates can get large.
It will simulate fine though.
Re: what delay statement won't be ignored for synthesis ? an
Hi
to get certain dealy, I saw some people who instanciate buffer cells from standard cell library of the the target technology and use the delay of these buffers to get their required delay.
Disadvantage of this method is that you will need to re-calculate your delays if you change the technology.
So it will affect code portability and maintability.
Another way is to assure that all your dealys are multiples of clock cycle and just use FFs to get your sequentail delay
Re: what delay statement won't be ignored for synthesis ? an
Few points here:
1. Actually, the delay of a 1 cm long wire is different from one technology to the other.
2. If delays are hard-coded in the RTL, its a wrong coding practice because delays could change. Such delays if specified in RTL will be only effective in simulations. Synthesis ignore it.
3. In case you still want to add delays... then you have to instantiate the delay cells rather than hard-coding as u have done. These will be synthesized.