R
Platform Flash XL High-Density Configuration and Storage Device
X-Ref Target - Figure 41
Start
erase_command
( blockToErase )
{
Write 20h(2)
writeToFlash (blockToErase, 0x20) ;
/*see note (2) */
writeToFlash (blockToErase, 0xD0) ;
/* Memory enters read status state after
the Erase Command */
Write Block
Address & D0h
do {
Read Status
Register(2)
status_register=readFlash (blockToErase) ;
/* see note (2) */
/* E or G must be toggled*/
NO
SR7 = 1
YES
}
while (status_register.SR7== 0) ;
NO
YES
NO
NO
VPP Invalid
Error(1)
if (status_register.SR3==1) /*VPP invalid error */
error_handler ( ) ;
SR3 = 0
YES
if ( (status_register.SR4==1) && (status_register.SR5==1) )
/* command sequence error */
Command
SR4, SR5 = 1
NO
Sequence Error(1)
error_handler ( ) ;
if ( (status_register.SR5==1) )
/* erase error */
SR5 = 0
YES
Erase Error(1)
error_handler ( ) ;
Erase to Protected
Block Error(1)
if (status_register.SR1==1) /*program to protect block error */
error_handler ( ) ;
SR1 = 0
YES
End
}
DS617_35_101608
Notes:
1. If an error is found, the Status Register must be cleared before further Program/Erase operations.
2. Any address within the bank can equally be used.
3. To read the memory in Asynchronous mode, the CR15 Configuration Register bit must be written to 1.
Figure 41: Block Erase Flowchart and Pseudocode
DS617 (v3.0.1) January 07, 2010
www.xilinx.com
Product Specification
73