Quartus joins two RAMs?
In my design I deliberately designed two dual-port RAMs of single M9K block each, using them through both ports A and B in parallel.
I spent several days debugging the application I am designing failing in very strange way. Simulation and data captured from live system does not help to find the problem.
I started to dig into the deeps of Quartus reports (mostly out of desperation), and found that in fitter's RAM summary tab the location for both RAMs is the same (M9K_X15_Y19_N0) and that "Resource utilization per entity" list shows that one RAM is having 1 M9K assigned to it, and second does not!
Does it mean that Quartus "optimized" the design compacting two explicit memories into one physical memory?
This is technically fairly possible because I only use halves of these RAMs. However I can not understand how it can be done from interfacing point of view because I use ALL interfaces of both RAMs - are they time shared when combined?
How can I tell Quartus NOT to do it and leave separate M9K memories alone as they are designed?