Appendix D _________________________________________________ RVP900 Developer's Notes
VAISALA______________________________________________________________________ 397
- PCI Board Firmware—The code that runs within the Field
Programmable Gate Array (FPGA) chips on the PCI cards. The FPGA
code is fundamental to the overall software model, that is, all of the
hard real-time functions of the RVP8 are implemented at the chip
level on one or more PCI cards. This allows the remainder of the
RVP8 to run under standard (non real-time) Linux, because no Linux
process ever needs to respond to events with critically short latency.
As long as there is enough average CPU time during any 500 ms
interval, all of the jobs get done with no loss of data.
- Linux Kernel Module—This module is insmod at system boot time,
provides all of the low-level PCI support for the RVP8 hardware
(RVP8/Rx receiver card, RVP8/Tx transmitter card, I/O-62 card, etc.)
It also provides the FIFO interfaces to the IRIS DSP driver and other
services that can only be implemented at the kernel level.
- PCI Card Driver Library—The library, along with the kernel
module, constitute the low-level board support package for the RVP8.
Most of the hardware details remain hidden below this layer. The
library is also responsible for handling FPGA firmware upgrades to
the PCI boards with each release.
- Softplane Driver Library—This layer completes the hardware
abstraction and provides soft configuration support for most of the
electrical I/O. The softplane.conf file makes the association between
logical control signals and physical I/O pins.
- RVP8/Main Threads—This collection of Linux threads is the
foundation and support core of the RVP8, but they do not run any of
the actual (I,Q) data processing algorithms. They handle all of the
RVP8 configuration, setup and plotting commands, run the burst
pulse analysis and AFC loop, define the system triggers and timing,
and install transmit waveforms and receiver FIR filter coefficients.
The Timeseries API is implemented in these threads, as is the opcode
command interpreter (see Chapter 7, Host Computer Commands, on
page 255).