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!

Reply

MicroBlaze KC705 2GB

Accepted Solution Solved
Highlighted
Visitor
Posts: 7
Registered: ‎07-29-2017
Accepted Solution

MicroBlaze KC705 2GB

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

Accepted Solutions
Visitor
Posts: 13
Registered: ‎02-01-2013

Re: MicroBlaze KC705 2GB

@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).

View solution in original post


All Replies
Visitor
Posts: 13
Registered: ‎02-01-2013

Re: MicroBlaze KC705 2GB

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.

 

Visitor
Posts: 7
Registered: ‎07-29-2017

Re: MicroBlaze KC705 2GB

@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  

Visitor
Posts: 13
Registered: ‎02-01-2013

Re: MicroBlaze KC705 2GB

@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
Posts: 7
Registered: ‎07-29-2017

Re: MicroBlaze KC705 2GB

@jg_bds 

Thank you. This help me a lot.

 

Igor