cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
9,425 Views
Registered: ‎03-02-2009

Programing PROM with FPGA

I'm programing XCF08P PROM by using FPGA. However, after that FPGA cannot get data from PROM(altough PROM is completely programed). On the other hand, when prom is programed by JTAG with "mcs" file, FPGA gets data. Lack of which command can cause this problem?

Thanks

0 Kudos
Reply
5 Replies
Xilinx Employee
Xilinx Employee
9,411 Views
Registered: ‎07-25-2008

Hi there,

 

How do you program the PROM?

Are you playing back a SVF file (this would be the preferred way)?

Could you post your flow?

 

Cheers!

0 Kudos
Reply
Observer
Observer
9,385 Views
Registered: ‎08-17-2007

This could be a problem of missing pgm. options (Advanced PROM Programming Properties) in ISE 10.1. This is resolved in 10.1 ISE Service Pack 3, for further information http://www.xilinx.com/support/answers/30445.htm.

Regards,
Martin
0 Kudos
Reply
Observer
Observer
9,384 Views
Registered: ‎08-17-2007

A bug in the web page, sorry for that:
http://www.xilinx.com/support/answers/30445.htm

0 Kudos
Reply
Xilinx Employee
Xilinx Employee
9,031 Views
Registered: ‎08-07-2007

are u using the following application note?

http://www.xilinx.com/support/documentation/application_notes/xapp975.pdf

 

------------------------------------------------------------------------------
Don't forget to reply, give kudo and accept as solution
------------------------------------------------------------------------------
0 Kudos
Reply
9,003 Views
Registered: ‎03-02-2009

First of all sorry for late reply to subject.

Borisq, yes I'm using all information in that pdf and thanks.

Moreover, I'm using algorithms in xapp972.pdf and some different modified algirithims obtained by tracing jtag programer by logic analyzer.

However all algorithms are almost same, they just differ with a few commands. Here I give one of them which created by using xapp972.pdf below.

 *************

//Loading device with 'IDCODE' instruction.

SIR 16 TDI (00fe) SMASK (ffff);

SDR 32 TDI (00000000) SMASK (ffffffff) TDO (f5059093) MASK (0fffffff) ;

STATE RESET;

//Loading device with 'ISPEN' instruction.

SIR 16 TDI (00e8) SMASK (ffff) ;

SDR 8 TDI (03) SMASK (ff) ;
 

// Loading device with 'XSC_DATA_BTC' instruction.

SIR 16 TDI (00f2) SMASK (ffff);

SDR 32 TDI (fffffba4) ;

// Loading device with a 'ISC_PROGRAM' instruction.

SIR 16 TDI (00ea) SMASK (ffff);

RUNTEST 120 TCK;

// XAPP972: Begin Program Data Blocks Sequence

// XAPP972: First 256-bit page program sequence requires start address,

// XAPP972: but page address automatically increments for pages which

follow.

// Loading device with a 'ISC_DATA_SHIFT' instruction.

SIR 16 TDI (00ed) SMASK (ffff);

SDR 256 TDI (256-bits of data…) SMASK (256-bits of mask data…) ;

// Loading device with a 'ISC_ADDRESS_SHIFT' instruction.

SIR 16 TDI (00eb) SMASK (ffff);

SDR 24 TDI (000000) SMASK (ffffff) ;

// Loading device with a 'ISC_PROGRAM' instruction.

SIR 16 TDI (00ea) SMASK (ffff);

RUNTEST 1000 TCK;

// Loading device with a 'ISC_DATA_SHIFT' instruction.

SIR 16 TDI (00ed) SMASK (ffff);

SDR 256 TDI (256-bits of data…) SMASK (256-bits of mask data…) ;

// Loading device with a 'ISC_PROGRAM' instruction.

SIR 16 TDI (00ea) SMASK (ffff);

RUNTEST 1000 TCK;

// XAPP972: …continue ISC_DATA_SHIFT/ISC_PROGRAM sequence

// XAPP972: until all data pages are programmed …

//

// Loading device with a 'XSC_DATA_SUCR' instruction.

SIR 16 TDI (000e) SMASK (ffff);

SDR 16 TDI (fffc) SMASK (ffff) ;

// Loading device with a 'ISC_PROGRAM' instruction.

SIR 16 TDI (00ea) SMASK (ffff);

RUNTEST 60 TCK;

// Loading device with a 'XSC_DATA_CCB' instruction.

SIR 16 TDI (000c) SMASK (ffff);

SDR 16 TDI (fff9) SMASK (ffff) ;

// Loading device with a 'ISC_PROGRAM' instruction.

SIR 16 TDI (00ea) SMASK (ffff);

RUNTEST 60 TCK;

// Loading device with 'XSC_DATA_DONE' instruction.

SIR 16 TDI (0009) SMASK (ffff);

SDR 8 TDI (c0) ;

// Loading device with a 'ISC_PROGRAM' instruction.

SIR 16 TDI (00ea) SMASK (ffff);

RUNTEST 60 TCK;

// Check Device status.

SIR 16 TDI (00e3) SMASK (ffff);

SDR 8 TDI (00) SMASK (ff) TDO (36) MASK (7f) ;

// Loading devices with 'ISC_DISABLE' instruction.

SIR 16 TDI (00f0) SMASK (ffff);

RUNTEST 50 TCK;

// Loading devices with 'BYPASS' instruction.

SIR 16 TDI (ffff) SMASK (ffff);

SDR 1 TDI (00) SMASK (01) ;

************

Moreover, I can write all pages that i want, I just cannot read back when i program prom with fpga or pattern generator and when jtag programmed data flows normally. I think that I ignore one or more command but i cannot find which.

Thanks for your help.

 
Message Edited by huseyin.yalcin on 03-23-2009 02:12 AM
0 Kudos
Reply