FPGARelated.com
Forums

Plateform FLASH PROM configuration using a Microblaze.

Started by Claude Sylvain March 11, 2006
Hello all,

In a project, I use a Spartan-3 XC3S400 FPGA from Xilinx.

The design use a Microblaze CPU instantiated in the FPGA.

I use the Digilent Spartan-3 starter kit for prototyping.  Note that the 
original XC3S200 FPGA has been removed, and replaced by a XC3S400 FPGA.

I want to erase/program the platform FLASH PROM installed in this board (the 
XCF02S IC) with a new FPGA configuration file, using the Microblaze CPU.

Xilinx application note xapp544 is a good starting point for doing this stuff. 
But, there are some information that is missing to be able to achieve this 
task.  These informations are:

    a) How long it take to program a PROM row (after the program row command 
has been sent to the PROM) ?

    b) What is the format a FPGA configuration file (.bit, .mcs, .hex), and 
associated programmation algorithm to get the PROM programmed correctly ?


I was searching for more than 1 week about this information without finding 
anything.
Is it possible that this information is confidential and can not be published ?


Claude Sylvain
Electro-Technica inc.





"Claude Sylvain" <claudesylvain@sympatico.ca> wrote in message 
news:NhsQf.5254$xM2.414382@news20.bellglobal.com...
> Hello all, > > In a project, I use a Spartan-3 XC3S400 FPGA from Xilinx. > > The design use a Microblaze CPU instantiated in the FPGA. > > I use the Digilent Spartan-3 starter kit for prototyping. Note that the > original XC3S200 FPGA has been removed, and replaced by a XC3S400 FPGA. > > I want to erase/program the platform FLASH PROM installed in this board > (the XCF02S IC) with a new FPGA configuration file, using the Microblaze > CPU. > > Xilinx application note xapp544 is a good starting point for doing this > stuff. But, there are some information that is missing to be able to > achieve this task. These informations are: > > a) How long it take to program a PROM row (after the program row > command has been sent to the PROM) ? > > b) What is the format a FPGA configuration file (.bit, .mcs, .hex), and > associated programmation algorithm to get the PROM programmed correctly ? > > > I was searching for more than 1 week about this information without > finding anything. > Is it possible that this information is confidential and can not be > published ? > > > Claude Sylvain > Electro-Technica inc. > > >
Have you already seen XAPP482? It explains how to store configuration file and software application into platform flash. Marco
"Claude Sylvain" <claudesylvain@sympatico.ca> schrieb im Newsbeitrag 
news:NhsQf.5254$xM2.414382@news20.bellglobal.com...
> Hello all, > > In a project, I use a Spartan-3 XC3S400 FPGA from Xilinx. > > The design use a Microblaze CPU instantiated in the FPGA. > > I use the Digilent Spartan-3 starter kit for prototyping. Note that the > original XC3S200 FPGA has been removed, and replaced by a XC3S400 FPGA. > > I want to erase/program the platform FLASH PROM installed in this board > (the XCF02S IC) with a new FPGA configuration file, using the Microblaze > CPU. > > Xilinx application note xapp544 is a good starting point for doing this > stuff. But, there are some information that is missing to be able to > achieve this task. These informations are: > > a) How long it take to program a PROM row (after the program row > command has been sent to the PROM) ? > > b) What is the format a FPGA configuration file (.bit, .mcs, .hex), and > associated programmation algorithm to get the PROM programmed correctly ? > > > I was searching for more than 1 week about this information without > finding anything. > Is it possible that this information is confidential and can not be > published ? > > > Claude Sylvain > Electro-Technica inc. >
you are partially right :( the full programming specs of platform flash are confidential and have never been made available. however all the required info can be obtained by looking at BSDL files and SVF files. So I have sucesfully created custom programming software that can program platform flash directly from .BIT files Antti
Yes, I seen it.

Unfortunatly, it do not include the information I want.
The way the information is stored inside the configuration file, so I can build 
my own program to read and program the PROM.


Claude Sylvain
Electro-Technica inc.



"Marco T." <marc@blabla.com> wrote in message news:duu1gb$bfh$1@nnrp.ngi.it...
> > "Claude Sylvain" <claudesylvain@sympatico.ca> wrote in message > news:NhsQf.5254$xM2.414382@news20.bellglobal.com... >> Hello all, >> >> In a project, I use a Spartan-3 XC3S400 FPGA from Xilinx. >> >> The design use a Microblaze CPU instantiated in the FPGA. >> >> I use the Digilent Spartan-3 starter kit for prototyping. Note that the >> original XC3S200 FPGA has been removed, and replaced by a XC3S400 FPGA. >> >> I want to erase/program the platform FLASH PROM installed in this board (the >> XCF02S IC) with a new FPGA configuration file, using the Microblaze CPU. >> >> Xilinx application note xapp544 is a good starting point for doing this >> stuff. But, there are some information that is missing to be able to achieve >> this task. These informations are: >> >> a) How long it take to program a PROM row (after the program row command >> has been sent to the PROM) ? >> >> b) What is the format a FPGA configuration file (.bit, .mcs, .hex), and >> associated programmation algorithm to get the PROM programmed correctly ? >> >> >> I was searching for more than 1 week about this information without finding >> anything. >> Is it possible that this information is confidential and can not be >> published ? >> >> >> Claude Sylvain >> Electro-Technica inc. >> >> >> > > Have you already seen XAPP482? > It explains how to store configuration file and software application into > platform flash. > > Marco >
I already found the BSDL description of the XCF02S PROM 
(http://www.xilinx.com/xlnx/xil_sw_updates_display.jsp?BV_UseBVCookie=yes&update=bsdl&software=PROMs).

But, I was not knowing anything about SVF files.  That was the missing chain !

Based on what I read in xapp503 
(http://www.xilinx.com/bvdocs/appnotes/xapp503.pdf), the steps I will have to 
do are:

    a) Convert the .bit configuration file to an .svf file, using iMPACT.

    b) Build a custom program to read, interpret and program the .svf file into 
the PROM, using the Microblaze CPU.


I don't still know the time it takes to program a PROM row.  Maybe it is in the 
XCS02S BSDL file, and I have missed it.  Nervertless, it can be optained by 
doing iterative test.


Thank you for your help.  That's exactly the information I want.

Claude Sylvain
Electro-Technica inc.




"Antti Lukats" <antti@openchip.org> wrote in message 
news:duu1tq$obg$1@online.de...
> > "Claude Sylvain" <claudesylvain@sympatico.ca> schrieb im Newsbeitrag > news:NhsQf.5254$xM2.414382@news20.bellglobal.com... >> Hello all, >> >> In a project, I use a Spartan-3 XC3S400 FPGA from Xilinx. >> >> The design use a Microblaze CPU instantiated in the FPGA. >> >> I use the Digilent Spartan-3 starter kit for prototyping. Note that the >> original XC3S200 FPGA has been removed, and replaced by a XC3S400 FPGA. >> >> I want to erase/program the platform FLASH PROM installed in this board (the >> XCF02S IC) with a new FPGA configuration file, using the Microblaze CPU. >> >> Xilinx application note xapp544 is a good starting point for doing this >> stuff. But, there are some information that is missing to be able to achieve >> this task. These informations are: >> >> a) How long it take to program a PROM row (after the program row command >> has been sent to the PROM) ? >> >> b) What is the format a FPGA configuration file (.bit, .mcs, .hex), and >> associated programmation algorithm to get the PROM programmed correctly ? >> >> >> I was searching for more than 1 week about this information without finding >> anything. >> Is it possible that this information is confidential and can not be >> published ? >> >> >> Claude Sylvain >> Electro-Technica inc. >> > > you are partially right :( the full programming specs of platform flash are > confidential and have never been made available. > > however all the required info can be obtained by looking at BSDL files and > SVF files. So I have sucesfully created custom programming software that can > program platform flash directly from .BIT files > > Antti > > > > > > >
"Claude Sylvain" <claudesylvain@sympatico.ca> schrieb im Newsbeitrag 
news:5%DQf.5551$xM2.463864@news20.bellglobal.com...
>I already found the BSDL description of the XCF02S PROM >(http://www.xilinx.com/xlnx/xil_sw_updates_display.jsp?BV_UseBVCookie=yes&update=bsdl&software=PROMs). > > But, I was not knowing anything about SVF files. That was the missing > chain ! > > Based on what I read in xapp503 > (http://www.xilinx.com/bvdocs/appnotes/xapp503.pdf), the steps I will have > to do are: > > a) Convert the .bit configuration file to an .svf file, using iMPACT. > > b) Build a custom program to read, interpret and program the .svf file > into the PROM, using the Microblaze CPU. > > > I don't still know the time it takes to program a PROM row. Maybe it is > in the XCS02S BSDL file, and I have missed it. Nervertless, it can be > optained by doing iterative test. > > > Thank you for your help. That's exactly the information I want. > > Claude Sylvain > Electro-Technica inc. >
the timing is in SVF file if you look at it :) converting BIT to SVF makes real LARGE files, you are better to convert to XSVF, or depending your application just look at the SVF and implement the logic from there it isnt so complicated. most of the problems I had were related to special features of the XCF08P (parallel mode options) for XCF02s there should not be much magic required Antti
Claude Sylvain schrieb:

> b) Build a custom program to read, interpret and program the .svf file into > the PROM, using the Microblaze CPU.
There is a GPL licensed SVF player available: https://ssl.keshi.org/projects/logic/trac.fcgi/browser/openwince/current/jtag/README.svf Kolja Sulimma
It can be useful.

Thank you.

Claude Sylvain
Electro-Technica inc.


"Kolja Sulimma" <news@sulimma.de> wrote in message 
news:4413e11b$0$12924$9b4e6d93@newsread4.arcor-online.net...
> Claude Sylvain schrieb: > >> b) Build a custom program to read, interpret and program the .svf file >> into >> the PROM, using the Microblaze CPU. > > There is a GPL licensed SVF player available: > https://ssl.keshi.org/projects/logic/trac.fcgi/browser/openwince/current/jtag/README.svf > > Kolja Sulimma
"Antti Lukats" <antti@openchip.org> wrote in message 
news:duv3bt$f4k$1@online.de...
> "Claude Sylvain" <claudesylvain@sympatico.ca> schrieb im Newsbeitrag > news:5%DQf.5551$xM2.463864@news20.bellglobal.com... >>I already found the BSDL description of the XCF02S PROM >>(http://www.xilinx.com/xlnx/xil_sw_updates_display.jsp?BV_UseBVCookie=yes&update=bsdl&software=PROMs). >> >> But, I was not knowing anything about SVF files. That was the missing chain >> ! >> >> Based on what I read in xapp503 >> (http://www.xilinx.com/bvdocs/appnotes/xapp503.pdf), the steps I will have >> to do are: >> >> a) Convert the .bit configuration file to an .svf file, using iMPACT. >> >> b) Build a custom program to read, interpret and program the .svf file >> into the PROM, using the Microblaze CPU. >> >> >> I don't still know the time it takes to program a PROM row. Maybe it is in >> the XCS02S BSDL file, and I have missed it. Nervertless, it can be optained >> by doing iterative test. >> >> >> Thank you for your help. That's exactly the information I want. >> >> Claude Sylvain >> Electro-Technica inc. >> > > the timing is in SVF file if you look at it :) > converting BIT to SVF makes real LARGE files, > you are better to convert to XSVF, or depending your > application just look at the SVF and implement the logic from there > it isnt so complicated. most of the problems I had were related to > special features of the XCF08P (parallel mode options) for XCF02s > there should not be much magic required > > Antti >
I think that it will need some time to assimilate all the knowledge necessary to make this job done. But, I have no time constraint on this task, so it is not a problem. Thank you again. Claude Sylvain Electro-Technica inc.
"Antti Lukats" <antti@openchip.org> wrote in message 
news:duv3bt$f4k$1@online.de...
> "Claude Sylvain" <claudesylvain@sympatico.ca> schrieb im Newsbeitrag > news:5%DQf.5551$xM2.463864@news20.bellglobal.com... > > the timing is in SVF file if you look at it :) > converting BIT to SVF makes real LARGE files, > you are better to convert to XSVF, or depending your > application just look at the SVF and implement the logic from there > it isnt so complicated. most of the problems I had were related to > special features of the XCF08P (parallel mode options) for XCF02s > there should not be much magic required > > Antti >
Maybe the simpliest way to get the job done is to make a .svf file converter that convert a .svf file (that describe JTAG operation to program a PROM) in term of PROM row content; and use the row programming algorythm included in xapp544 to program each PROM row. This way the file that hold PROM information to program appear exactly the same as a "standard" EPROM file that can be in S-Record or Intel Hex format. This kind of file can be easily uploaded from an host computer to the Microblaze CPU. Claude Sylvain Electro-Technica inc.