From: shane on
hi can anyone tell me how can i use opb emc for controlling more than two memory banks. opb emc can be used for 8 memory banks each bank can have different data width. one memory bank already being used is external memory SRAM with 32 data width. but i want to add flash memory to EMC with a data width of 8. is there any tutorial of how i can add a memory bank via EMC?

it would be really great help if some one can answer this thank you in advance
From: Duane Clark on
shane wrote:
> hi can anyone tell me how can i use opb emc for controlling more than
> two memory banks. opb emc can be used for 8 memory banks each bank
> can have different data width. one memory bank already being used is
> external memory SRAM with 32 data width. but i want to add flash
> memory to EMC with a data width of 8. is there any tutorial of how i
> can add a memory bank via EMC?

I would suggest that you not attempt to add it as a separate bank on an
existing opb emc. Instead, put in a separate opb emc instance just for
the flash. Here are settings I use for one particular flash, from the
system.mhs file:

# TE28F640-J3, flash mem
BEGIN opb_emc
PARAMETER INSTANCE = my_flash
PARAMETER HW_VER = 2.00.a
PARAMETER C_NUM_BANKS_MEM = 1
PARAMETER C_OPB_CLK_PERIOD_PS = 10000
PARAMETER C_MEM0_BASEADDR = 0x94000000
PARAMETER C_MEM0_HIGHADDR = 0x94FFFFFF
PARAMETER C_MEM0_WIDTH = 32
PARAMETER C_INCLUDE_DATAWIDTH_MATCHING_0 = 0
PARAMETER C_TCEDV_PS_MEM_0 = 120000
PARAMETER C_TAVDV_PS_MEM_0 = 120000
PARAMETER C_THZCE_PS_MEM_0 = 35000
PARAMETER C_THZOE_PS_MEM_0 = 15000
PARAMETER C_TWC_PS_MEM_0 = 120000
PARAMETER C_TWP_PS_MEM_0 = 70000
BUS_INTERFACE SOPB = opb_bus
PORT Mem_A = flash_a
PORT Mem_DQ = flash_dq
PORT Mem_CEN = flash_cs_l
PORT Mem_OEN = flash_oe_l
PORT Mem_WEN = flash_we_l
PORT Mem_RPN = flash_rst_l
END
From: shane on
hi

Thanks for replying

iam using microblaze for first time so please bear with my questions

iam using data width for flash device as 8 but does opb emc support data width matching for flash devices?

if it does support, updating the settings of system.mhs file takes care of it or do i need to change any other settings

wat values should i use for these parameters C_THZCE_PS_MEM_0, C_TWP_PS_MEM_0 ,C_TCEDV_PS_MEM_0, C_TAVDV_PS_MEM_0, C_TWC_PS_MEM_0
From: Duane Clark on
shane wrote:
> hi
>
> Thanks for replying
>
> iam using microblaze for first time so please bear with my questions
>
> iam using data width for flash device as 8 but does opb emc support
> data width matching for flash devices?

There is a section in the opb_emc document entitled "Data-Width Matching
for Flash Memories".

>
> if it does support, updating the settings of system.mhs file takes
> care of it or do i need to change any other settings

If you are using the GUI tools, them I don't know whether changes made
in the system.mhs file will get overwritten. I don't use the GUI, so I
make all changes by editing that file, and that is the only place
changes need to be made.

>
> wat values should i use for these parameters C_THZCE_PS_MEM_0,
> C_TWP_PS_MEM_0 ,C_TCEDV_PS_MEM_0, C_TAVDV_PS_MEM_0, C_TWC_PS_MEM_0

You need to look at the data sheet for the flash you are using, and
compare that to the definitions in the opb_emc data sheet. The values I
gave as an example are only good for that particular flash.
 | 
Pages: 1
Prev: Microblaze data cache question
Next: Xilinx Legal