R
Platform Flash XL High-Density Configuration and Storage Device
Buffer_Enhanced_Factory_Program_Command
(start_address, DataFlow[]) {
SETUP PHASE
Start
Write 80h to
Address WA1
writeToFlash (start_address, 0x80) ;
writeToFlash (start_address, 0xD0) ;
Write D0h to
Address WA1
do {
Read Status
Register
do {
status_register = readFlash (start_address);
NO
SR7 = 0
YES
if (status_register.SR4==1) { /*error*/
if (status_register.SR3==1) error_handler ( ) ;/*VPP error */
if (status_register.SR1==1) error_handler ( ) ;/* Locked Block */
NO
}
PROGRAM AND
VERIFY PHASE
Initialize count
X = 0
SR4 = 1
while (status_register.SR7==1)
x=0; /* initialize count */
do {
Write PDX
Address WA1
Read Status Register
SR3 and SR1for errors
writeToFlash (start_address, DataFlow[x]);
Increment Count
X = X + 1
Exit
x++;
NO
X = 32
YES
}while (x<32)
do {
Read Status
Register
status_register = readFlash (start_address);
}while (status_register.SR0==1)
NO
NO
SR0 = 0
YES
Last data?
} while (not last data)
YES
Write FFFFhto
Address = NOT WA1
writeToFlash (another_block_address, FFFFh)
EXIT PHASE
Read Status
Register
do {
status_register = readFlash (start_address)
NO
SR7 = 1
YES
}while (status_register.SR7==0)
full_status_register_check();
Full Status Register
Check
End
}
DS617_39_101608
Notes:
1. To read the memory in Asynchronous mode, the CR15 Configuration Register bit must be written to 1.
Figure 45: Buffer Enhanced Factory Program Flowchart and Pseudocode
DS617 (v3.0.1) January 07, 2010
www.xilinx.com
Product Specification
77