Hi, I am trying to access a flash device from a microblaze processor on a Spartan 3E device. In Xilinx XPS, I instantiated the IP "External Memory Controller" with the following attributes
BEGIN xps_mch_emc PARAMETER INSTANCE = flash_16Mx8b PARAMETER HW_VER = 2.00.a PARAMETER C_NUM_BANKS_MEM = 1 PARAMETER C_NUM_CHANNELS = 0 PARAMETER C_MEM0_WIDTH = 8 PARAMETER C_MAX_MEM_WIDTH = 8 PARAMETER C_INCLUDE_DATAWIDTH_MATCHING_0 = 1 PARAMETER C_TCEDV_PS_MEM_0 = 75000 PARAMETER C_TAVDV_PS_MEM_0 = 75000 PARAMETER C_THZCE_PS_MEM_0 = 25000 PARAMETER C_THZOE_PS_MEM_0 = 120000 PARAMETER C_TWC_PS_MEM_0 = 1200000 PARAMETER C_TWP_PS_MEM_0 = 1200000 PARAMETER C_TLZWE_PS_MEM_0 = 0 PARAMETER C_MCH_PLB_CLK_PERIOD_PS = 62500000 PARAMETER C_MEM0_BASEADDR = 0x80000000 PARAMETER C_MEM0_HIGHADDR = 0x80ffffff BUS_INTERFACE SPLB = mb_plb PORT RdClk = sys_clk_s PORT Mem_A = flash_16Mx8b_Mem_A PORT Mem_DQ = flash_16Mx8b_Mem_DQ PORT Mem_WEN = flash_16Mx8b_Mem_WEN PORT Mem_OEN = flash_16Mx8b_Mem_OEN PORT Mem_CEN = flash_16Mx8b_Mem_CEN END
The flash documentation states that Write cycle should be a minimum of
60 ns so I put 120 ns for C_TWC_PS_MEM_0 just in caseIn the code, I use the following to try to write to the Flash XIo_Out8(FLASHBASEADDR,0x0090); // Request Device ID
I then probed the WE# input pin of the flash with an oscilloscope but I see a low pulse of only 16 ns. I tried changing the parameters but nothing seems to affect the time the WE# signal is held low.
Why doesn't the parameters I set up affect the time the WE# signal is held low? Thanks for any answer Amish