Forum Discussion
Altera_Forum
Honored Contributor
12 years ago --- Quote Start --- You guessed wrong. Quartus is good at deciding how many ram blocks are needed. An array does not infer M9Ks, it infers the altsyncram megafunction block, which can use as many M9Ks as required. The OPs attributes just pass the ramstyle parameter to the altsyncram megafunction, telling it what type of base memory types to use (eg. M9K, MLAB, LUTRAM etc). To OP: Memories can only be infered if the signal assignments and addressing follow the correct template. Have you read the altera coding guidelines? http://www.altera.co.uk/literature/hb/qts/qts_qii51007.pdf --- Quote End --- Well, Altera documents are not very easy to read. And there are only few examples. I try my best to get information out of it, but at the moment I haven't found more on how I should handle my arrays to infer them as Memory Blocks. Any Hints? --- Quote Start --- You havent posted the whole code, just the type and signal declarations. This tells us nothing about your code. It is likely that the code you have written is not suitable for rams. --- Quote End --- Too bad I can't give you the whole code. Kind of secret stuff. But I can tell you something about it: I have three processes which are using the arrays. One process loads the Arrays with data and the other two are reading from them. All three Processes have different clocks. The two reading processes are accessing one of the two arrays at the same time while the other array is loaded with data.