UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Visitor igortf
Visitor
2,761 Views
Registered: ‎07-29-2017

MicroBlaze KC705 2GB

Jump to solution

Hello,

 

I have some doubts about the Microblaze Cache configuration. I want to use a 2GB memory with a MIG 7 Series memory part MT8KTF25664HZ-1G6. But, the UG940 document talks that I need have space from Instruction and Data Cache in the range. And the difference between the high and base address must be a power of 2. Considering the attach picture, how can I configure the addres (red rectangle) to keep (and work) the 2Gb set in MIG (green rectangle)?

 

Thanks in advance,

Igor

Sem título.png
0 Kudos
1 Solution

Accepted Solutions
Voyager
Voyager
4,791 Views
Registered: ‎02-01-2013

Re: MicroBlaze KC705 2GB

Jump to solution

@igortf: You can only have 2-GB of addressable memory.  The only other, larger option is 4 GB, and that would take up the entire addressable space--which is not practical.  There's nothing stopping you from using a memory that's larger than 2 GB, but you can only access 2 GB of it; the memory above (or below*) the addressable 2GB is unreachable.

 

You must place an addressed block at an address that is a multiple of its size.  0x4000_0000 is a multiple of 1GB, not of 2 GB.  In a 32-bit address space, you can only place a 2-GB block at 0x0000_0000 or at 0x8000_0000.  See the referenced link above--they placed their memory at the latter address.

 

-Joe G.

 

* Depends on how you strap the unused, high-address bit(s).

4 Replies
Voyager
Voyager
2,631 Views
Registered: ‎02-01-2013

Re: MicroBlaze KC705 2GB

Jump to solution

Igor,

 

Not to pick a nit, but the rule is "the size of the cacheable segment of memory...[must be] a power of 2", not "the difference between the high and base address must be a power of 2".  The 'difference' between address location 0 and address location 1 is 1, but the size of address range [0:1] is 2 locations.

 

That said, the size of the segment between 0x8000_0000 and 0xFFFF_FFFF is 2 GB, which IS a power of 2 (2^31). 

 

Also see: KC705-DDR-size-extention

 

-Joe G.

 

0 Kudos
Visitor igortf
Visitor
2,586 Views
Registered: ‎07-29-2017

Re: MicroBlaze KC705 2GB

Jump to solution

@jg_bds But when I try set the base address to 0x4000_0000 and the high to 0xFFFF_FFFF (3Gb), I get an error. So, I can't put my 2Gb memory and 1Gb more, for cache, inside the cacheable segment.

 

Thank you for support,

Igor  

0 Kudos
Voyager
Voyager
4,792 Views
Registered: ‎02-01-2013

Re: MicroBlaze KC705 2GB

Jump to solution

@igortf: You can only have 2-GB of addressable memory.  The only other, larger option is 4 GB, and that would take up the entire addressable space--which is not practical.  There's nothing stopping you from using a memory that's larger than 2 GB, but you can only access 2 GB of it; the memory above (or below*) the addressable 2GB is unreachable.

 

You must place an addressed block at an address that is a multiple of its size.  0x4000_0000 is a multiple of 1GB, not of 2 GB.  In a 32-bit address space, you can only place a 2-GB block at 0x0000_0000 or at 0x8000_0000.  See the referenced link above--they placed their memory at the latter address.

 

-Joe G.

 

* Depends on how you strap the unused, high-address bit(s).

Visitor igortf
Visitor
2,569 Views
Registered: ‎07-29-2017

Re: MicroBlaze KC705 2GB

Jump to solution

@jg_bds 

Thank you. This help me a lot.

 

Igor

0 Kudos