Forum Discussion
Altera_Forum
Honored Contributor
12 years ago --- Quote Start --- Goal: try to instantiate DDR3 with the DIMM in the Stratix IV E kit (DDR3 with NIOS using Avalon-MM).Goal: try to harness already existing DDR3 Stratix IV E kit work for a new project.The kit comes with Micron MT18JSF25672AY-1G1D. Overall: what do I do to instantiate a wide address DIMM + NIOS system?Overall: how do I duplicate the DDR3 BTS? I cannot figure out answers to the questions below based on this example. part 1 Consider a DIMM like the MT18JSF2567AY-1G1D (72 databits, 2 ranks, 18 total DRAMs). Example, UniPHY DDR3 chooses 14 row and 10 column address bits. With 2 ranks and 3 bank bits, seems like the total# of address bits is 29 (is this right?). I try to bring this memory into Qsys, get errors. Error: System.cpu_to_sdram.m0: sdram.avl (0x0..0x7fffffff) is outside the master's address range (0x0..0x7ffffff). The error seems to say the address space is outside the master’s range, which at 0x7ffffff is 27 bits. The master is either NIOS or TSE DMA. Why is the master’s range only 27 bits, when Avalon-MM allows 32 bit addressing? Is there a limit on the number of bits of mapping address per device on an Avalon-MM network? Instantiating wide address DDR3 DIMM, part 2 (see ddr3_attempt_2.qsys). This is another error I get when trying to bring in the DDR3 DIMM. In this case, the address map for the DDR3 memory does not get assigned. Error: System.nios2: integer value too large to represent while executing"format "0x%08x" $NUMBER " invoked from within"return [ format "0x%08x" $NUMBER ]" (procedure "proc_num2hex" line 2) invoked from within"proc_num2hex $slave_info_array(start) " invoked from within"lappend slaves_start_address "[ proc_num2hex $slave_info_array(start) ]"" ("foreach" body line 3) invoked from within"foreach slave_info $address_map_dec { array set slave_info_array $slave_info lappend slaves_start_address "[ proc_num2hex $slave_info_..." (procedure "proc_get_address_map_slaves_start_address" line 5) invoked from within"proc_get_address_map_slaves_start_address $slave_map_param " invoked from within"lsort -ascii [ proc_get_address_map_slaves_start_address $slave_map_param " invoked from within"set slave_address [ lsort -ascii [ proc_get_address_map_slaves_start_address $slave_map_param ]]" (procedure "proc_get_lowest_start_address" line 2) invoked from within"proc_get_lowest_start_address instSlaveMapParam " invoked from within"proc_num2hex [ proc_get_lowest_start_address instSlaveMapParam ] " invoked from within"set inst_master_paddr_base [ proc_num2hex [ proc_get_lowest_start_address instSlaveMapParam ] ]" (procedure "sub_validate_check_module" line 14) invoked from within"sub_validate_check_module" (procedure "validate" line 4) invoked from within"validate" --- Quote End --- Hi,Did your question have resolved.I am encountered the same problem,and let me referred it.