I have a very basic question regarding the whole synthesis process.
We say that before mapping the whole process goes technology independent (library), only during mapping it is technology dependent.
My question is then why do we have to source the libraries before the elaboration step which comes before the mapping stage.
We can source it after the elaboration step also.
interesting question. I will try to keep it short and simple. In other words, could you elaborate without the libraries ? Maybe...
Cells can also be instantiated. In fact, macros (memories, PLL, etc.) can only be instantiated. If those cells were missing then you would get linking errors and all sorts of other side effects. Would it be possible to have a mode of operation where RTL with only inferable cells is read in and no libraries are required? Sure. However, most practical designs will have macros, etc. and will later be mapped to a library anyhow so most tools choose to enforce this requirement early on in the flow to avoid issue later on. Why did you want to do that ?
hope this helps,
In reply to grasshopper:
Thanks for the reply, so a more basic question on that which i would like to raise is that leave behind the macros and other cells which are to be instatntiated, let us take an example of the actual logic which needs to be synthesized.
In that case also do we still require the libraries before the elaboration step. If still the answer is yes, Can you please elaborate the side effects thing which you have mentioned in your answer ?