FAST-VIDEO4 BOARD
INTRODUCTION
The Fast-VIDEO4 is the highest performance frame grabber
for analog signals. The board is capable of simultaneously digitizing
four independent UXGA sources without multiplexing and eight with
multiplexing. The data can be processed in real-time using the large
Xilinx FPGA of one to eight million gates or the 440GP PowerPC processor.
The output can either be an optional UXGA display RAMDAC and/or
the PCI-X bus.
click to enlarge
Block Diagram of the Hardware
The Hardware consists of a PCI raw form-factor PCI-X interface board
with the following major functional units as shown on the diagram
below.

click to enlarge
The functional units are:
- UXGA input X4
- Large programmable FPGA
- UXGA output (optional)
- 440GP PowerPC processor (optional)
- PCI-X interface
Click below to
Download DataSheet
IBM 440GP Datasheet
(
241 KB)
IBM
440GP programming Overview (
87 KB)
The major programmable units are the FPGA and the 440GP/PCI-X interface
DMA engine. The FPGA and Software API for the functionality of the
driver are presented below.
Host Software API
API Block Diagrams

click to enlarge
API Structure

click to enlarge
Overview
The API provides configuration and control access to one or more
FAST-UXGA boards. There is no specific limitation to the number
of boards the software can support, though the number of slots in
the computer imposes a practical limit.
The API supports enumeration of the boards, and the creation of
‘configurations’, which determine the settings for all
the boards in the system.
Multiple configurations can be defined, and then later selected
by a single API call. This provides for switching modes as quickly
as the hardware supports, typically one frame time for synchronized
video, two frame times for asynchronous input video.
In addition the API provides for the allocation and management
of shared memory buffers. A single buffer may be shared by many
boards, allowing the DMA engine on each board to place its output
in an image of larger scope then that produced by a single board.
The API provides essentially two interfaces, a vcConfig
interface for passing data to the FAST-UXGA subsystem, and a vcInquire
interface for obtaining non-video- information from
the API.
These two methods have two parameters, a type parameter which defines
the type of data being pointed to by the second parameter, a void
pointer. The void pointer points to types, which are filled in by
the API call, or by the user, to perform the function selected by
the type parameter.
Video data is passed in shared memory buffers allocated by the
API for use by the host and the boards. In order to setup a buffer
in host memory a vcConfig call is made
after the user fills out a vcBuffer_t
with the desired shape of the buffer. Double (or more) buffering
is supported by setting nBuffers in the vcBuffer_t
to larger than one. In that case the user must call vcInquire
(vcInquireImageBufferLocation,...) in
his callback function to determine which buffer was just completed.
You may use a single memory buffer, but the buffer will be updated
by the board(s), at the same time you access it. Multiple boards
and configurations can use a particular shared memory buffer. If
more than one buffer is allocated by a call then the buffers are
used in a circular fashion.
Notifications of image updates may be obtained by registering a
call back function with the API. This is not required however, image
data will be updated in memory as fast as the system allows, and
the frame rate of the sources allow. If multiple buffers (nBuffers
> 1) are used it probably makes sense to provide a callback function
so that you can determine the order of buffer updates.
When the vcInit method is called the number of boards in the system
enumerated. The host application can inquire about how many boards
are detected with the vcInquire API (vcInquire(vcInquireBoards,..)).
The API supports up to 8 configurations, which are delineated by
the ConfigNumber field in the structures
used to define a configuration. A particular configuration number
applies across all the boards. When it is selected (vcConfig(vcConfigSelect,..))
the state of all the boards is updated to use the selected configuration.
Typically a particular portion of a configuration is stored local
to each board in DDR SDRAM, and the select operation just writes
the base address register in all the FPGA's on all the boards.
Combined image data is DMA-ed into host memory by the PLX-9656
on each board. The DMA is a two dimensional DMA, in that a stride,
offset, number of columns, and number of rows is provided in the
hardware for each DMA. This allows images from multiple boards to
be combined in memory into a larger image, by re-using a buffer
number across multiple boards in a configuration.
Click below to Download
DataSheet or Register
to Download Manuals
FastVideo4 UXGA Frame
Grabber(
347 KB)
To
Top of Page
|