PCI Pamette is a generic PCI card based on reconfigurable logic.
The hardware is built around SRAM based FPGAs from
Xilinx Corporation. These
components can be infinitely reprogrammed in circuit. Programming
time is measured in tens of milliseconds. The reconfigurable nature
of the board makes it useful for an extremely broad class of
applications.
PCI Interface
The board uses a
XC4010E-2 to interface directly to a PCI bus. This FPGA is
programmed with a proprietry HP
PCI interface. The board is primarily intended to be used as a 5V
33MHz 32-bit PCI target and initiator. However 5V 33MHz 64-bit PCI
is supported and the board has been operated successfully as both a
32-bit and a 64-bit target and initiator.
Since the PCI interface is fully reconfigurable it is even
possible to passively spy and record other traffic that passes on
the bus. The board can also generate traffic and measure
performance.
The User Matrix
Behind the interface device is a 2x2 matrix of PQ208 footprints
which, in the basic version, are populated with XC4010E-3 devices.
Versions populated with XC4020E and XC4028EX are also available as
are boards with the user area unpopulated. The user matrix can be
programmed from the host system via the interface device. Devices in
the user matrix can be programmed individually or in parallel with
other user matrix devices. The matrix connects to some SRAM, DRAM
modules and IEEE P1386 daughter board connectors (CMC/PMC).
SRAM
Two independent SRAM banks are provided, each is 64k x 16-bits.
These offer small fast scratchpad memory using 12ns SRAMs.
DRAM Modules
DRAM modules provide large amounts of local storage which can be
read/written at in excess of 100 MB/s to provide bulk storage
independent of the host memory system.
The board has 4 angled 72-pin SIMM connectors. The data
conections are shared, there are two address inputs each going to
two SIMMs, this allows the SIMMs to be operated in an interleaved
manner. All the logic controlling the SIMMs is in FPGAs so it should
be possible to use any kind of 5V 72-pin SIMM. The data connection
supports memories up to 36 bit wide. There are 12 address lines
supporting up to x 16M modules. To meet the dimension limits of a
single PCI slot the DRAM modules used should be 1 inch or less in
depth. Deeper modules may be used provided the next slot is empty or
contains a short PCI card.
IEEE P1386 Common Mezzanine Card (CMC)
The board provides a daughter card facility conformant with the
IEEE P1386 Common Mezzanine Card standard. Short single width
mezzanine cards are supported. Jn1 through Jn4 are present.
With appropriate FPGA programming the mezzanine card may use PCI
protocols (IEEE P1386.1) 32 or 64 bit wide with 64 extra uncommitted
I/Os, or a custom protocol may be developed using only the P1386
layer. Thus the mezzanine card allows electrical adaptation for
external connections through the development of simple low-cost
adapter cards using a custom protocol as well as the direct
connection of standard commercially available PMC cards.
The PCI Pamette software kit includes the latest PCI Pamette
firmware in the form of a Xilinx RBT file as well as applications to
update the on board firmware EPROM. See the
PCI Pamette FAQ for details of the update procedure.
Support software for PCI Pamette consists of drivers, runtime
support and CAD software.
Drivers
PCI Pamette drivers allows the board to be mapped to a user
application's address space and provide support for pinning and
translation of memory and fielding of interrupts. Supported systems
include Tru64 UNIX on Alpha and Windows NT on x86.
Drivers maybe downloaded as part of the PCI Pamette software kits
from our download page. Both the Unix
and the Windows NT kits contain the sources of the drivers.
PamRT
The PamRT C language runtime library allows user written
applications to control the board and communicate with user
developed circuits that have been downloaded into the board. It
supports download and readback of user circuits, setting clocks and
other functions.
PamRT is distributed from our
download page in source form and as precompiled libraries for
the supported platforms.
PamDC
PamDC is a C++ library that can be used to produce Xilinx
XNF format netlists suitable for compilation by Xilinx' back-end
place and route tools. PamDC is distributed from our
download page as a pre-compiled library
for linking against programs compiled with DEC CXX on Tru64 UNIX, or
Microsoft Visual C++ V4.0 on x86. Documentation is also found on our
download page as Postscript or PDF, or
here, in PDF format.
Note: PCI Pamette does not require the use of PamDC.
PCI Pamette may be programmed with any commercial system that can be
targeted to Xilinx 4000E family FPGA. Conversely PamDC is not
limited solely to use with PCI Pamette; it can produce XNF for most
Xilinx 4000 or 3000 series devices.
PCI Pamette Software Summary Matrix
|
Platforms |
Distributed as |
Language |
Required? |
Drivers |
Tru64 UNIX (Alpha)
Windows NT (x86 and Alpha) |
Binary
and
Source |
C |
Required |
PamRT |
Tru64 UNIX (Alpha)
Windows NT (x86 and Alpha) |
Binary
and
Source |
C |
Required |
PamDC |
C++ for Tru64 UNIX
Microsoft Visual
C++ V4.0 |
Binary
only |
C++ |
Optional |
Support for other platforms
Key runtime software (Drivers and PamRT) is distributed in source
form and ports to other platforms are possible. |