Altera_Forum
Honored Contributor
16 years agoNIOS memory usage
Hello,
I have been analysing the memory usage of my project and would like to override some of the memory block types used by the NIOS because they are inefficient in terms of use. (I'm fairly tight on memory). More specifically, there are a few blocks which are using M9Ks which I would like to convert to MLAB. The memory types specified by the code are set to "Auto" as reported in the fitter RAM summary report. I have tried to do this by making a parameter assignment in the assignment editor but it appears to be ignored. I haven't seen a message in the compilation report to the effect that the assignment I have made is being ignored, but it does not have an effect i.e. the memory block is still assigned to an M9K. For example, this is one of the memory blocks in question: ChannelApp:NIOS|sgdma_to_lan:the_sgdma_to_lan|sgdma_to_lan_status_token_fifo:the_sgdma_to_lan_status_token_fifo|scfifo:sgdma_to_lan_status_token_fifo_status_token_fifo|scfifo_ic31:auto_generated|a_dpfifo_li31:dpfifo|altsyncram_lqd1:FIFOram|ALTSYNCRAM AUTO Simple Dual Port Dual Clocks 2 24 2 24 yes no yes yes 48 2 24 2 24 48 1 0 0 None M9K_X60_Y1_N0 I basically copied the full path and name of the altsyncram as displayed, copied it into the assignment editor and assigned a parameter "RAM_BLOCK_TYPE" and assigned the value "MLAB" (without the quotes). I have used this very same technique on some of my own memory blocks in my logic and it appears to work fine. So, why does it appear to be ignored? Is it because the fitter is using some form of pre-compiled logic for the NIOS core or something like that?