Programmable Devices
CPLDs, FPGAs, SoC FPGAs, Configuration, and Transceivers
21602 Discussions

M9K Memory Block Requiring Registered Read Address

Altera_Forum
Honored Contributor II
1,887 Views

Hi, 

 

I was wondering why does the M9K block requires the read address bus to be registered but all the other pins can be driven from asynchronous logic? 

 

Regards
0 Kudos
4 Replies
Altera_Forum
Honored Contributor II
795 Views

I'm not aware of a family that uses the M9K blocks that can be controlled from asynchronous logic. All the input signals are registered: address, data, wren, rden (if used). You can choose not to register the output. 

 

What device family and IP are you looking at? 

 

Looking at the 1-port & 2-port RAMs, there are grayed out options (perhaps) suggesting the data and other signals need not be registered. However, they're grayed out for a reason. 

 

Cheers, 

Alex
0 Kudos
Altera_Forum
Honored Contributor II
795 Views

I am using a Cyclone IV with an implied RAM VHDL entity. I know that all the inputs a registered from the IP library, but you do not need to do that for the implied entity.

0 Kudos
Altera_Forum
Honored Contributor II
795 Views

You can infer RAM in your code, that's fine. However, Quartus will only put it into a M9K block if it can find suitable registers in your code to match the structure of the M9K block. If there aren't registers in your code that Quartus can use as the input registers (i.e. without any other dependency on them) it won't use the block and will use registers to create the RAM. 

 

So, if you use asynchronous control signals Quartus won't put your inferred RAM into an M9K block. That's just the way Altera have chosen to implement the M9K. 

 

Cheers, 

Alex
0 Kudos
Altera_Forum
Honored Contributor II
795 Views

 

--- Quote Start ---  

I am using a Cyclone IV with an implied RAM VHDL entity. I know that all the inputs a registered from the IP library, but you do not need to do that for the implied entity. 

--- Quote End ---  

 

 

If you infer (not imply) an asynchronous ram in Altera - it will make it out of registers. and if it's the size of an M9K - make sure you've got a kettle on standby to make lots of tea/coffee while you wait for it to compile.
0 Kudos
Reply