Return to previous page Advance to next page

Creating PROM Formatter Programming Files


The following section describes how to generate PROM files using the PROM Formatter in the File Generation mode of iMPACT.

General PROM File Information

This section provides general background information on PROMs and PROM files. For instructions on using PROM Formatter, go to "PROM Formatter Operations".

PROMs

There are two types of PROMs supported in iMPACT: Xilinx Serial PROMS and 3rd-party parallel PROMs. Xilinx Serial PROMs are designed to work with Xilinx FPGAs in a master-serial daisy-chain. Parallel PROMs are most commonly used in conjuction with CPLDs or microprocessors to program FPGAs in a daisy chain where the first device is in Slave Parallel Mode. Multiple data streams are only allowed in Parallel PROM mode.

PROM Formatter Files

Input Files

You can input one or more BIT files into the PROM Formatter. A BIT file contains configuration information for a single FPGA device.

Output Files

The PROM Formatter generates the following files as outputs:

If the data in the PROM Formatter is going to be split into multiple PROMs, there will be a PROM file corresponding to each PROM.

The following is a sample PRM file.

PROM /design/fpga1/fpga100.prm map: Fri Feb 21 11:00:50 1998  
Format       Mcs86 
Size         32K 
PROM start   0000:0000 
PROM end     0000:7fff 
          Addr1        Addr2 File(s) 

        0000:0000 0000:7fff /design/fpga1/fpga1.bit

Bit Swapping in PROM Files

The PROM Formatter produces a PROM file in which the bits within a byte are swapped compared to the bits in the input BIT file. Bit swapping (also called "bit mirroring") reverses the bits within each byte, as shown in the following figure.


Figure 5-12 Bit Swapping

In a bitstream contained in a BIT file, the Least Significant Bit (LSB) is always on the left side of a byte. But when a PROM programmer or a microprocessor reads a data byte, it identifies the LSB on the right side of the byte. In order for the PROM programmer or microprocessor to read the bitstream correctly, the bits in each byte must first be swapped so they are read in the correct order.

The bits are automatically swapped for all of the PROM formats: MCS, EXO, and TEK. For a HEX file output, bit swapping is on by default, but it can be turned off by deselecting a Swap Bits option that is available only for HEX file format.

In the XACTstep 6.0 release, all formats were swapped except for the HEX format. If you turn off HEX file bit swapping, you can generate a HEX file that is compatible with a HEX file produced by the XACT 6.0 PROM Formatter.

Implementing Your Applications

You can use the PROM Formatter to generate a PROM file containing data to configure a single FPGA device, or a PROM file to configure one or more groups of FPGA devices. You can also store multiple data streams in the same PROM file and use these data streams to reconfigure a device or daisy chain for different applications.

The following table summarizes the various ways of structuring a PROM file.
Table 5-1 Configuration Data Stream Combinations
Number of Applications
Number of FPGA Devices to Configure
Number of Data Streams and BIT Files
Single Application
Single device
One data stream with a single BIT file
Daisy chain of devices
One data stream with multiple BIT files
Multiple daisy chains of devices1
Multiple data streams with multiple BIT files in each data stream. Each data stream includes configuration data for a different daisy chain of devices.
Multiple Applications (Reprogramming)

Single device
Multiple data streams with a single BIT file in each data stream
Daisy chain of devices
Multiple data streams with multiple BIT files in each data stream. Each data stream programs the group of devices for a different application
1
This type of application can be implemented with a byte-wide PROM only. Each data stream will use a different start-up address in the PROM file.

Single Application PROM Files

There are three different types of configuration data streams.

To implement an application for a single device, use a data stream containing a single BIT file.

To implement an application for a group of FPGA devices connected together in a daisy chain, use a single data stream containing multiple BIT files; that is, one BIT file for each device in the daisy chain.

To implement an application for several groups of daisy chained devices, you must build one data stream per daisy chain. This type of implementation is valid for byte-wide PROMs, which can be set for different start-up addresses, or for creating a bitstream for microprocessor download.

Multiple Application PROM Files

The Xilinx SRAM FPGA technology enables you to design multiple applications for a single device or a daisy chain of devices. Each data stream in the PROM description area represents a different configuration or application for the same device or daisy chain of devices.

To implement several applications for a single device, build a PROM file made of several data streams, with each data stream containing a single BIT file. To implement several applications for a group of daisy chained devices, use several data streams containing multiple BIT files. Each data stream programs the group of devices for a different application.

Note The number of BIT files within each data stream must be the same.

Configuration Setups

For information on setups for configuring FPGA devices and daisy chains for a single application, refer to The Programmable Logic Data Book.

XILINX PROM Part Names

The part name for a Xilinx serial configuration PROM indicates the PROM's size and type. The fields in the part name are described in the following figure.

Figure 5-13 PROM Device Names

PROM Formatter Operations

The following section will explain the properties on the wizard screens for PROM files. After setting the properties, you will be prompted to add devices to the configuration chain or chains. As the final step in the wizard, you will be asked if you wish to generate the System ACE file. If you click "No", you can always generate the file later by using the Operations Menu.

Serial PROM Settings

Select Serial PROM

There are two fields that make up this selection. The first, which defaults to the value of 17V, is the PROM family. PROMs in each of the Xilinx 1700 families are one-time programmable. The flash-based in-system re-programmable PROMs are called the 18V family. Once a family is selected, the drop-down list for the individual PROMs enable you to select the exact PROM you are using. The primary reason for selecting a PROM size is that you wish iMPACT to automatically perform a capacity check. If that is desired, select a size, and click the Add button.

Auto Select PROM

If you wish iMPACT to automatically choose the correct size PROM for you, turn on this checkbox (off by default).

Add button

This button will add the selected PROM to the list of PROMs in the box below the button. For multiple PROMs (also called a PROM daisy-chain), select the next PROM you wish to use and select the add button. This second PROM will start at position 1. iMPACT limits you to a maximum of 32 serial PROMs in a chain.

Parallel PROM Settings

Select Parallel PROM Density

In the drop-down list, there are common PROM densities listed, up to 32 Mbytes. If you wish iMPACT to automatically perform a capacity check, select a size, and click the Add button.

Auto Select PROM

If you wish iMPACT to automatically choose the correctly sized PROM for you, turn on this checkbox (off by default).

Add Button

This button will add the selected PROM to the list of PROMs in the box below the button. For multiple PROMs select the next PROM you wish to use and select the Add button. This second PROM will start at position 1. iMPACT limits you to a maximum of 32 PROMs.

Number of Data Streams (1-64)

For parallel PROMs, it is possible to utilize multiple configurations, or revisions, and store these in the parallel PROM. Typically, this is controlled with a microprocessor or other external logic, and each serial chain is referred to as a "data stream".

Loading Direction

This determines whether the PROM data is placed at sequentially higher addresses (UP), or if they are placed at sequentially lower addresses (DOWN).

Adding Files to PROM Devices

The last stage of the wizard enables you to add the individual FPGA configuration files you wish to be included in the PROM file.

Note The same startup clock restrictions that apply for configuring devices with a cable also apply to adding bitstreams to PROM files. For PROM files, only bitstreams with startup clock settings of CCLK are allowed.

The Add Files wizard sequence will first take you through adding devices in a single Data Stream. If you are using a parallel PROM, and you have more than one data stream, you will then be directed to enter the devices and the starting address for further data streams as shown in Figure 5-14. Follow the sequence until all desired files in all Data Streams have been added.

Figure 5-14 Data Stream Information Dialog Box

Generating PROM Files

To generate PROM files from the main PROM screens, right-click in a blank space in the Chain Description area, or from the Operations menu, select Generate File.

Serial PROM File Generation

The following section gives specific information on generating Serial PROM files.

Serial PROM Formatter Screen

Figure 5-15 shows the Serial PROM Formatter screen for a typical design. The PROM order is from top to bottom, with the PROM on top being the one that will be read from first. Moving your mouse over a device in the chain shows the size of that bitstream. A tally of total utilization is always displayed under each PROM icon.

Figure 5-15 PROM Formatter Screen for a Serial PROM
Adding or Deleting FPGA Devices After The Wizard Has Finished

To add an FPGA device, right-click in a blank portion of the screen or use the Edit menu to select Add Xilinx Device. A dialog box will appear that will enable you to select a bitstream to add to the chain. To delete an FPGA, select the device by clicking on it, and then press the Delete key on the keyboard.

Adding or Deleting Serial PROM Devices After The Wizard Has Finished

To add a PROM, right-click in a blank portion of the screen or use the Edit menu to select Add PROM. A dialog box will appear that will enable you to select a new PROM to add to the serial PROM chain. To delete a PROM, select the device by clicking on it, and then press the Delete key on the keyboard, or use the Edit or right-click menus to select Delete PROM.

Assigning A Different File To A Device

If you wish to change the file that is assigned to a certain device, you can double-click the device and the Assign New Configuration File dialog will appear. This dialog can also be accessed by selecting the device and right-clicking or by using the Edit menu to select Assign Configuration File.

Modifying PROM Sizes

Double-click on the PROM you wish to change, or use the Modify PROM command under the Edit or right-click menus. A dialog will appear that will enable you to select a different PROM.

Parallel PROM File Generation

The following section gives specific information on generating Parallel PROM files.

Parallel PROM Formatter Screen

Figure 5-16 shows the Parallel PROM Formatter screen for a typical design. There are three basic areas of the screen:

The PROM order is from top to bottom, with the PROM on top being the one that will be filled first. Moving your mouse over an active data stream will give size information and the starting address for that data stream. Moving your mouse over a device in the chain shows the size of that bitstream. A tally of total utilization is always displayed under the each PROM icon.

Figure 5-16 PROM Formatter Screen for a Parallel PROM
Viewing Different Data Streams

In the Data Stream table at the top of the screen, notice that each data stream that is not being used is grayed out and cannot be selected. Left-clicking your mouse on an active (lighter colored) data stream will select this stream and display the contents of the chain in the center of the window. You will then be able to modify this stream by the editing methods described below.

Adding or Deleting FPGA Devices After The Wizard Has Finished

To add an FPGA device, right-click in a blank portion of the screen or use the Edit menu to select Add Xilinx Device. A dialog box will appear that will enable you to select a bitstream to add to the chain. To delete an FPGA, select the device by clicking on it, and then press the Delete key on the keyboard.

Adding or Deleting Parallel PROM Devices After The Wizard Has Finished

To add a PROM, right-click in a blank portion of the screen or use the Edit menu to select Add PROM. A dialog box will appear that will enable you to select a new PROM to add to the parallel PROM area of the screen. To delete a PROM, select the device by clicking on it, and then press the Delete key on the keyboard, or use the Edit or right-click menus to select Delete PROM.

Assigning A Different File To A Device

If you wish to change the file that is assigned to a certain device, you can double-click the device and the Assign New Configuration File dialog box will appear. This dialog can also be accessed by selecting the device and right-clicking or by using the Edit menu to select Assign Configuration File.

Modifying PROM Sizes

Double-click the PROM you wish to change, or to select a PROM use the Modify PROM command under the Edit or right-click menus. A dialog will appear that will enable you to select a different PROM size.


Return to previous page Advance to next page