i'm working with SoCrates board.In my project i use the HPS and two custom IP Cores(for example core1 and core2) core2 have avalon slave(for configuration by hps) and avalon slave(for receiving data from core1) core1 have avalon slave (for configuration by hps) and avalon master(for transmitting data to sdram and core2) i connect av_master(core1) to sdram and core2, and now i have error because sdram use address (0x00000000 - 0xffffffff) and core2 slave (0x00000000 - 0x0000003f) but in SoCrates board there is only 1Gb memory and therefore the sdram address must be in the range 0 to 0x3fffffff. how can i solve this problem?
You are getting an eror because the addresses overlap.
the slaves will determine whether the data is for them the range you are entering is the avalon master's memory map of all its slaves, and it is how the slaves will determine whether the data comming across the bus is for them or not, therefor the memory ranges must not overlap from the perspective of the avalon master.
If you change the sdram address to 0x0000 0040 - 0xffff ffff then it should not have an error - with the bottom end inaccessible because core2 uses it.
or really because its only 1GiB it should go from 0x40 to 0x4000003f which will give it an offset from the avalon master's perspective but will have access to the entire 1GiB range of the sdram (anything past 1GiB would be troublesome if accessed, after all.) alternatively you can set the sdram ot be 0x0 - 0x3fff ffff and core 2 to be from 0x4000 0000 - 0x4000 003f and that would work as well.