FPGA, SoC, And CPLD Boards And Kits
FPGA Evaluation and Development Kits
5921 Discussions

Understanding address map in EMIF

Mahdi
New Contributor I
755 Views

Hi,

 

I am trying to read/write from/to an external memory model during the simulation using EMIF. 

 

I have some questions regarding the address map in EMIF. 

 

Based on this configuration, what should be the address width? I guess it should be 29 bits, right?

 

Mahdi_0-1661540080005.png

 

But, why the amm_address is 26 bits here?

Also, I can't understand why mem_a is 17 bits. 

 

The other problem is that I don't know how to generate certain addresses if I want to read or write from/to memory. What is the meaning of each bit of this 26-bit amm_address?

 

Here is the Controller configuration:

 

Mahdi_1-1661540261614.png

 

Thank,

 

-- Mahdi

0 Kudos
1 Solution
AdzimZM_Intel
Employee
717 Views

For the address ordering that you used:

CS-CID-Row-Bank-Column-BG

 

The CS is available only when there is multiple rank.

The CID is for 3D stacked interface. No CID bit in this configuration.

Row address width = 15.

Column address width = 10.***

Bank address width = 2.

Bank group width = 2.

 

***(Lower 3 bits has been set to 0 because Avalon bus is 8x wider than EMIF bus in Quarter rate. Therefore it's removed when mapping to Avalon address)

 

The ordering will be as below:

 

Row[14..0]          = amm_address[25..11]

Bank[1..0]           = amm_address[10..9]

Column[9..3]      = amm_address[8..2]

BG[1..0]               = amm_address[1..0]

 

 

 

View solution in original post

0 Kudos
5 Replies
AdzimZM_Intel
Employee
725 Views

Hi Mahdi,


Thank you for submitting your question in Intel Community.

I'm Adzim, application engineer will assist you in this thread.


In my opinion, you need to refer to memory datasheet for the truth table of the memory commands.


Cheers,

Adzim


0 Kudos
Mahdi
New Contributor I
704 Views

Hi Adzim,

 

Thanks for your reply. I am not using the actual memory system. I am using the memory IP core that is generated in EMIF design example, and I do not know its specifications. 

 

- Mahdi

 

0 Kudos
AdzimZM_Intel
Employee
718 Views

For the address ordering that you used:

CS-CID-Row-Bank-Column-BG

 

The CS is available only when there is multiple rank.

The CID is for 3D stacked interface. No CID bit in this configuration.

Row address width = 15.

Column address width = 10.***

Bank address width = 2.

Bank group width = 2.

 

***(Lower 3 bits has been set to 0 because Avalon bus is 8x wider than EMIF bus in Quarter rate. Therefore it's removed when mapping to Avalon address)

 

The ordering will be as below:

 

Row[14..0]          = amm_address[25..11]

Bank[1..0]           = amm_address[10..9]

Column[9..3]      = amm_address[8..2]

BG[1..0]               = amm_address[1..0]

 

 

 

0 Kudos
Mahdi
New Contributor I
704 Views

Oh, I see. I did not know this fact. Thank you so much for your explanation.

 

- Mahdi

0 Kudos
AdzimZM_Intel
Employee
679 Views

I’m glad that your question has been addressed, I now transition this thread to community support. If you have a new question, feel free to open a new thread to get the support from Intel experts. Otherwise, the community users will continue to help you on this thread. Thank you.


0 Kudos
Reply