PAVE Framework (PLD API for VxWorks Embedded Systems)
DS084 (v1.0) September 17, 2001 www.xilinx.com 3
Product Specification 1-800-255-7778
R
PAVE API Description
The PAVE API is a software based methodology for config-
uring Xilinx FPGAs using SelectMAP or IEEE 1149 JTAG. It
provides the facilities for a user written C++ application for
writing to, reading from, and programming the FPGA. The
API consist of several C++ classes that form an object
model (Table 1). The hardware requirements for its use are
a 32-bit Configuration Register (Figure 3 and Table 2) and a
VxWorks compatible Board Support Package (BSP). The
PAVE API abstracts the underlying VxWorks hardware plat-
form through the use of a BSP and the PAVE object model.
This allows the developer to use the same C++ code for
PAVE across many different hardware platforms.
The PA VE API uses its methods to construct a
classSignal-
Buffer
objec t whic h is the n seq uence d to th e har dware via
the methods of the
classRegister
and
classPlatform
objects (Figure 4).
Table 1:
PAVE API Classes (see the PAVE User Guide for complete listing)
API Class Object Description
classRegister Provides functionality to read from and write to the control registers of the upgradable device.
This class abstracts the details of the masking and shifting operations that normally accompany
read, write, and modify operations on a register.
classStateMachine Abstracts the functionality of a finite state machine. This object is contained in the classJTAG-
Component object and is used to setup the TAP controller state machine for JTAG configuration
mode. The classStateMachine object is very generic and can also be used to facilitate the imple-
mentation of very complex real-time state machines in embedded applications.
classSignalBuffer Encapsulates the functionality required to setup and sequence a set of control signals to hard-
ware registers via software control. This class also contains a number of utility methods that allow
the developer to generate arbitrary test vectors that can be used in device test benches.
classPlatform Facilitates porting efforts by forming a thin abstraction layer between the platform specific code
and the application code.
Figure 3:
PAVE API Configuration Register
Requirement (refer to Table 2)
Microprocessor
Bus
DS084_03_062001
32-bit Configuration
Register
SelectMAP or JTAG on FPGA
Table 2:
32-Bit Configuration Register
Name Star t Bit N bits
JTAG_BUFF_OE 0 1
JTAG_TCK 1 1
JTAG_TMS 2 1
JTAG_TDI 3 1
JTAG_TDO 4 1
SMAP_BUFF_OE 5 1
SMAP_CCLK 6 1
SMAP_RW 7 1
SMAP_CS 8 1
SMAP_PROG 9 1
SMAP_INIT 10 1
SMAP_DONE 11 1
SMAP_BUSY 12 1
SMAP_D[7:0]* 13 8
MODE_M[2:0]* 21 3
MODE_HSWAP_EN 24 1
Reserved 25 7
* Start bit is 0