Xilinx Virtex-II PROM Tutorial

CSE 372: Digital Systems Organization and Design Lab

This page contains instructions for using the programmable PROM on the Xilinx Virtex-II FPGA boards. The PROM enables designs to be downloaded to non-volatile storage on the FPGA board, so that a design can be programmed into the FPGA without having to attach a USB cable and download the design each time. The PROM can store up to two designs at a time.

I. Making the PROM file

  1. First, create and test your design, then download it to the FPGA board via the usual method (JTAG) to ensure that the design works as expected on the board.
  2. Start iMPACT by running the "Configure Device (iMPACT)" process from ISE, or from the Windows Start menu. If asked to load a project or create a new project, create a new project. When asked to select an action, choose "Prepare a PROM File."
  3. In the "Prepare PROM Files" dialog, leave the default options set. Enter a PROM File Name and ensure that the Location makes sense. Click Next.
  1. In the "Specify Xilinx PROM Device" window, check the Enable Revisioning box and select 2 revisions. Under Select a PROM, choose xcfp and xcfp32p, then click Add. Click Next, then click Finish on the next window.
  1. You will then be prompted to add a "device." Choose the first .bit file (generated by the "Generate Programming File" process in ISE) that contains the design you want to download to the PROM. Choose No when asked to add another design file to Revision 0. Select the second .bit file when prompted for another device; if you only have one design you want to download to the PROM, just select the same .bit file that you selected for the first revision. Click No when asked to add another design file to Revision 1, then click OK.
  2. Right-click in the main window in iMPACT and choose Generate File. Select No when prompted to compress the file and wait for iMPACT to finish generating it (the mouse cursor will turn to an hourglass and iMPACT will not respond to clicks while it is generating the file).

II. Programming the PROM

  1. Turn on your FPGA board and connect the USB download cable.
  2. Start a new project in iMPACT using File->New. Choose No when asked to save the current project. On the next window, choose to create a new project (.ipf) and click OK, then choose Configure devices using Boundary-Scan (JTAG) and click Finish. iMPACT should scan for and detect your attached board.
  3. The PROM is the first component in the boundary scan chain, labeled "xcf32p." For this component, select the PROM configuration file with the .mcs extension that you just created. Choose Bypass or Cancel when prompted to assign configuration files to the next two components.
  4. Right-click on the xcf32p device in the main window of iMPACT and choose Program. Under Programming Properties, check the Parallel Mode box and ensure that no other boxes are checked.

Under Advanced PROM Programming Properties, make sure PROM is Slave is selected.


Finally, under Revision Properties, check the boxes for Rev0 and Rev1, and also check the Erase box for each one.


Click OK to begin programming the PROM. The programming process will take several minutes. If any errors or interruptions occur during programming, restart the procedure from the beginning of section II.

III. Using the PROM

Component SW9, located on the right side of the FPGA board, is used to load a design from the PROM into the FPGA. Set switch 1 to PROM (up) to indicate that the design should come from the PROM, not from the download cable (JTAG). Then, set switch 2 to select which of the two revisions in the PROM you want to load. Finally, hold down the reset button to the right of the configuration switches until the board resets. Release the switch and the FPGA will be programmed with the design.

Author: Peter Hornyack