Difference between revisions of "How to interface with two 16-bit Flash parts working as a single 32-bit Flash in EDK 12.1 using XPS MCH EMC"

From steamWiki
Jump to: navigation, search
Line 29: Line 29:
 
## Flash_A_pin, O, [9:29]
 
## Flash_A_pin, O, [9:29]
 
## Flash_Rdy_pin, I
 
## Flash_Rdy_pin, I
# Create the following connections between the 3 Cores we just created.
+
# Create the following connections between the 3 Cores & External Ports we just created.
 
## Connect Flash_Mem/Mem_A to Flash_A_Bus_Split/Sig
 
## Connect Flash_Mem/Mem_A to Flash_A_Bus_Split/Sig
## Connect  
+
## Connect Flash_Mem/Mem_RPN to External Ports/Flash_RPN_pin
 +
## Connect Flash_Mem/Mem_CEN to External Ports/Flash_CEN_pin
 +
## Connect Flash_Mem/Mem_OEN to External Ports/Flash_OEN_pin
 +
## Connect Flash_Mem/Mem_WEN to External Ports/Flash_WEN_pin
 +
## Connect Flash_Mem/Mem_DQ to External Ports/Flash_DQ_pin
 +
## Connect Flash_Rdy/GPIO_IO_I to External Ports/Flash_Rdy_pin
 +
## Connect Flash_A_Bus_Split/Out1 to External Ports/Flash_A_pin
 
[[Category:VHDL]]
 
[[Category:VHDL]]
 
[[Category:Microblaze]]
 
[[Category:Microblaze]]
 
[[Category:EDK]]
 
[[Category:EDK]]

Revision as of 10:09, 18 June 2010

This guide will explain how to setup an EDK 12.1 project to interface with two 16-bit Atmel (AT49BV322D, AT49BV322DT, AT49BV322A, AT49BV322AT) Flash Memory parts organized in parallel acting as a single 32-bit Flash Memory using the Xilinx XPS_MCH_EMC IP Core.

Tweaking of the XPS_MCH_EMC Properties is necessary because this Flash Configuration is addressed like a 16-bit Flash but data is read & written like a 32-bit Flash. By default, the XPS_MCH_EMC is not setup to handle this situation.

Though this guide has been written from experimentation with EDK 12.1, the procedures should be extremely similar to for earlier version of EDK.



  1. Create a standard EDK project.
  2. Add an XPS_MCH_EMC Core. In this case, I have named it Flash_Mem.
    1. Open the Properties sheet, navigate to the User tab and ensure that the Common properties match those shown below.
      Xps mch emc-prop-user-common.png
    2. Now ensure that the Bank 0 properties match those shown below.
      Xps mch emc-prop-user-bank0.png
    3. Leave all other Properties as they are. Most are ignored.
  3. Add a UTIL_BUS_SPLIT Core. In this case I have named it Flash_A_Bus_Split. Ensure that the properties match those shown below.
    Util bus split-prop-user-all.png
  4. Add an XPS_GPIO Core. In this case I have called it Flash_Rdy.
    1. Open the Properties sheet, navigate to the User tab and ensure that the Common properties match those shown below.
      Xps gpio-prop-user-common.png
    2. Now ensure that the Channel 1 properties match those shown below.
      Xps gpio-prop-user-channel1.png
  5. Create the following External Ports
    1. Flash_RPN_pin, O
    2. Flash_CEN_pin, O
    3. Flash_OEN_pin, O
    4. Flash_WEN_pin, O
    5. Flash_DQ_pin, IO, [0:31]
    6. Flash_A_pin, O, [9:29]
    7. Flash_Rdy_pin, I
  6. Create the following connections between the 3 Cores & External Ports we just created.
    1. Connect Flash_Mem/Mem_A to Flash_A_Bus_Split/Sig
    2. Connect Flash_Mem/Mem_RPN to External Ports/Flash_RPN_pin
    3. Connect Flash_Mem/Mem_CEN to External Ports/Flash_CEN_pin
    4. Connect Flash_Mem/Mem_OEN to External Ports/Flash_OEN_pin
    5. Connect Flash_Mem/Mem_WEN to External Ports/Flash_WEN_pin
    6. Connect Flash_Mem/Mem_DQ to External Ports/Flash_DQ_pin
    7. Connect Flash_Rdy/GPIO_IO_I to External Ports/Flash_Rdy_pin
    8. Connect Flash_A_Bus_Split/Out1 to External Ports/Flash_A_pin