Nios® V/II Embedded Design Suite (EDS)
Support for Embedded Development Tools, Processors (SoCs and Nios® V/II processor), Embedded Development Suites (EDSs), Boot and Configuration, Operating Systems, C and C++
12600 Discussions

256MByte boundary not supported ?

Altera_Forum
Honored Contributor II
1,223 Views

Has anyone created a nios2 system with more than 256MByte instruction address range ? 

 

If for example a sdram controller for 256MByte is part of the instruction master of a nios2 cpu then the sopc won't generate the system. 

even if you have 128MByte CFI and 128MByte SDRAM you won't be able to add any other sopc module to generate a sopc system. 

 

i thought that this is bug in the past but with Q60SP1 N60 this is also the fact. 

if this is correct and there is no workaroung then it would be impossible to create a nios2 system that has an instruction address range of 256MByte or more. 

 

Well Nios2 for embedded application, but you never know ... 

 

can uClinux handle more than 256MByte SDRAM ? 

 

Regards 

 

Michael Schmitt
0 Kudos
3 Replies
Altera_Forum
Honored Contributor II
409 Views

Take a look at this (http://forum.niosforum.com/forum/index.php?showtopic=2919&hl=256mb) post. It still applies now. 

 

It's definitely not a bug, it's a feature. :-) 

 

Cheers, 

 

- slacker
0 Kudos
Altera_Forum
Honored Contributor II
409 Views

The reason for this limitation is due to the width of the immediate address that can be stored in an instruction word. The largest immediate value is 26 bits wide so that gets you 64MegaWords (32 bit instructions) of address span which equates to 256MB. This only affects the instruction master so if you just need a lot of data storage and can put code elsewhere then you will not hit the 256MB barrier. 

 

Note this is an address span and not simply a memory size thing. For example if you put two 16MB SDRAMs used to store code in your system and space them apart by a 256MB address span you'll run into this as well.
0 Kudos
Altera_Forum
Honored Contributor II
409 Views

Thanks for that explanaition. i thought that it had to do with some addressing limitations but i must have overseen this when reading the altera online documents this morning again. 

 

as this is a limitation by the opcodes i guess that this will be forever. 

 

i thought of using uclinux and spent a lot of sdram but i cannot garantee that the memory will only be used for data.  

and as i have to attach an epcs controler as well as the jtag stuff the instruction space for the system is less than 256mbyte. as i can not tell the sdram controller to implement 3 chip selects of 64mb (to have 192mb) i can only choose betwen 128 and 256mbyte but that is not implementable with epcs 

 

so the design is limited to 128mbyte sdram (for instruction and data) with one sdram controller 

 

that is a lot of memory but i thought of what would be possible in the future. 640k was enough for DOS and 640MByte is not much nowadays for quartus :-) 

 

again thanks for your comments. 

 

regards 

 

michael schmitt
0 Kudos
Reply