dc_shell loop
1) Yes. Its' the capacity limit of Design Compiler.
If the size of memory array is too large, then DC may have problem.
-------------------------------------------------------------------------------------
2) The way of Memory implementation depends on its size, because it impacts the core area a lot.
In this case, the RTL code of this memory should only act as a "simulation" model. It is only the "behavior" model.
There should have other models, such as .db, .lib, .lef, or .plib, which used for implementation. And you do not have to synthesize this one !