2
\$\begingroup\$

Here are the screen shots from Quartus;

enter image description here

When I want to instantiate the single port RAM, I get option to assign an instance ID and thus read it using the ISMCE (In-System Memory Content Editor). However, this is not so when it comes to the dual port RAM. Why?

| improve this question | | | | |
\$\endgroup\$
4
\$\begingroup\$

Per the In-System Modificationof Memory and Constants.

When you specify that a memory or constant is run-time modifiable, the Quartus II software changes the default implementation. A single-port RAM is converted to a dual-port RAM, and a constant is implemented in registers instead of look-up tables (LUTs). These changes enable run-time modification without changing the functionality of your design.

Essentially in order for ISME to work, it requires one of the two memory ports in order to be able to access the contents of the RAM.

Only single-port memorys can therefore be used with ISME, because if you use a dual-port RAM the second port is already in use by your design and is therefore not available to ISME.

| improve this answer | | | | |
\$\endgroup\$
  • \$\begingroup\$ Then why not create another copy of the RAM that will store the same contents as the main RAM, automatically? \$\endgroup\$ – Quantum0xE7 Feb 13 at 12:22
  • 2
    \$\begingroup\$ @Quantum0xE7 How do you propose that be implemented? The main RAM would still require three ports - two for your design, and one to update the "[an]other copy of the RAM" \$\endgroup\$ – Tom Carpenter Feb 13 at 12:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.