Press Room  |  Get Java Here  | 
Submit this Search
Find JSRs
Submit this Search


Apply for the JCP
Program Member Logo
Apply for the JCP Program Member Logo

Ad Banner
 
 
 
 

Java Community Process
JSR-000002 Boundary-Scan API

Boundary Scan Example

Electronic systems designers incorporate devices that support IEEE Standard 1149.1, like Xilinx' XC9500 family of Complex Programmable Logic Devices (CPLDs), in their applications to enhance overall system testability and configurability. This page provides an example boundary-scan (IEEE Standard 1149.1) application that lets you program, test, and debug boundary-scan chains comprised of XC9500 CPLDs using a prototype of the Java API for Boundary-Scan.

Example

The example application lets you use boundary-scan to program, test, and debug any number of XC9500 devices connected in a serial daisy chain. This is called a boundary-scan chain. The process involves these steps, which are described in more detail below:

  1. Download and install JTAGprogrammer software and documentation.
  2. Download and unzip the Example Files, which consist of:
    • Hardware Interface DLL
    • Translation program
    • Boundary-Scan application
  3. Install the Hardware Interface DLL.
  4. Create Xilinx bit (xbt) files with the JTAGprogrammer software.
  5. Translate the Xilinx bit (xbt) files with the Translation program.
  6. Pass the translated files to the Boundary-Scan application.
The Boundary-scan application uses the Java API for Boundary-Scan prototype implementation (the source files are listed below) to process the boundary-scan data in accordance with IEEE Std 1149.1, and uses the hardware interface DLL to send the boundary-scan data to the devices in the daisy chain.

Download and Install JTAGprogrammer Software

The example requires data files produced by the JTAGprogrammer software and documentation for Windows 95/NT by Xilinx. Follow the link to get the download. You must download and install this software before you can run the example. Since a hardware interface implementation is not currently available for other platforms, this example will only work on PC's.

Download and Unzip Example Files

You can download all of the files you need for the example here: jsproto.zip. The following text describes the files in the download and how to run the example.

Install Hardware Interface DLL

After unzipping the download file and installing the JTAGprogrammer software, you should install the javascanifcls.dll file in your <windows>/system directory. This DLL provides the interface to the Xilinx parallel port-connected download cable, and presumes the installation of the parallel port driver included with the JTAGprogrammer software.

Create XBT Files

Run the JTAGprogrammer software to create the xbt files. Follow the flow in the documentation that comes with JTAGprogrammer for generating SVF files to program a XC9500 device. A side effect of this flow is the creation of an xbt file.

Translate XBT Files

The xbt2data.class executable provided in the zip file translates the Xilinx xbt files created by the JTAGprogrammer software into simple format files. Limited compression is applied to these simple format files, and so these files are suitable for prototyping only. Each xbt file must be translated separately.

To run the translation application for each xbt file, type the following at the command line:

xvt2data <xbtFileName> <dataFileName>

Pass Translated Files to Application

The boundary-scan application allows a user to erase and program any number of Xilinx XC9500 CPLDs in a boundary-scan chain. In addition, several other boundary-scan operations are exercised, including testing for chain continuity and reading manufacturer's specified device IDs (IDCODEs) from the devices.

Here is the xc9500cls.java source code. To run the application, type the following at the command line keeping everything on one line.


Note: dataFile1 through dataFileN and arranged in order of the device positions in the boundary-scan chain from system test data input (TDI) pin to system test data output (TDO) pin.