Fpga Onboard Unit-3 PDF
Fpga Onboard Unit-3 PDF
Another unique feature of the OBCS is the software-less Paying respect to the risks of the COTS approach, the
implementation of all control and processing functions. OBCS is realized as a highly redundant replicated four-
The complete functionality of the OBCS is modelled in lane computer system. The four identical computer
Handel-C, a C-based design language, and Celoxica’s nodes of the OBCS form a synchronous symmetric
multi computer system synchronously executing in a As shown in the block diagram of the OBCS, an addi-
master/monitor configuration. In principle each single tional component called the command decoder and vot-
node is able to execute all functions and to perform all ing unit (CDV) is connected to the four computing
control tasks of the OBCS. This implies that all nodes nodes. The specific functions of the CDV are essential
must be connected to all instruments and devices of the for the viability of the whole satellite; therefore the
satellite. In addition, direct communications can be per- CDV is implemented by a space qualified radiation hard
formed between the nodes to efficiently exchange con- FPGA device. The reliability of the CDV is assumed to
trol and status information. be sufficiently high, thus no replication is required. The
CDV includes the mass memory, provides an interface
The main advantages of the four node approach are:
to the receiver of the up-link, and is performing the fol-
• extended lifetime of the OBCS in the event of a per- lowing main tasks:
manent error in the node hardware
• (CCSDS) decoding of the uplink data stream
• short outage times (higher availability) in the event
• Forwarding of commands to the node computers
of SEU induced errors
• Voting on the checksums, generated by the node
• redundant computations allow for voting resulting in
computers
higher reliability
• Selecting the master node (based on voting results)
Due to the SEU sensitivity of the SRAM-based FPGA • Enforce reset/recovery or power cycling of a faulty
technology arbitrary errors of the node computer must node
be expected. The FDIR strategy of the OBCS is based • Isolating permanently failing nodes (by power off)
on: • writing new configuration data into the EEPROMS
• Error detection by comparing the checksums gener- of the nodes
ated by the replicated nodes
Replicating the nodes of the OBCS to ensure sufficient
• Error isolation by voting on the checksums and se-
high availability requires that each node is able to ac-
lecting a node which provided the correct checksum
cess the payload instruments and all other devices con-
to drive the output lines
trolled by the OBCS. Sharing of a device interface re-
• Error recovery by enforcing a faulty node to perform
quires either dedicated point-to-point connections or a
the reset/restart procedure and subsequently re-syn-
shared bus system. In the OBCS of the “Flying Laptop”
chronize with the other nodes
the four node computers share the bus lines to connect
Within this straight forward FDIR strategy, error hand- to the peripherals and dedicated connections are used
ling mainly relies on the implementation of the robust between the nodes and the CDV. The block diagram of
restart capability. It must be ensured, that after resetting the OBCS in Fig. 2 shows the shared I/O bus to the
a node, the FPGA can reliably be configured by loading devices, the dedicated connections between the four
a valid configuration into the configuration memory. nodes, the CDV, and the isolating node interfaces.
This task is performed by a dedicated configuration con-
troller (CC) implemented in a separate FPGA and a ra- The redundant nodes in general are receiving the same
diation hard configuration EEPROM. digital inputs and are executing the same functions, thus
producing the same results. The CDV selects by dedic-
ated control lines one of the four nodes to execute in the
FPGA FPGA FPGA FPGA
Onboard Onboard Onboard Onboard master mode. Only the master node is able to drive the
Computer Computer Computer Computer output lines to the devices of the satellite. The CDV per-
1 2 3 4
forms the voting function on checksums generated by
all active nodes. For the checksum information of a
node can not only be received by the CDV but also by
Isolating Buffer Isolating Buffer Isolating Buffer Isolating Buffer
the three other nodes a Byzantine voting scheme may be
implemented as an alternative to the centralized voting
by the CDV.
The block diagram in Fig. 3 shows the Virtex-II Pro 4.2 Configuration Controller
computing device, the dedicated configuration control- In a system-on-chip design based on the Xilinx Virtex-II
ler (CC) and the I/O interface logic. The Virtex-II Pro Pro FPGA, after power-on, first the system itself must
has access to four parallel operating banks of fast SS- be configured by initializing the FPGA. Thus, the initial
RAM for intermediate results and to three banks of system configuration must be performed by dedicated
DDR SDRAM to be used for application data or option- hardware. Further, the straight forward FDIR strategy of
ally as program memory of the PowerPC core. Addi- the OBCS mainly relies on the implementation of a ro-
tional memory devices of the node are three banks of bust restart capability within the nodes. It must be en-
NOR flash for multiple versions of the Virtex-II Pro sured, that after resetting a node the Virtex-II Pro FPGA
configuration, the radiation hard EEPROM for the con- can reliably be configured by loading a valid configura-
figuration of the configuration controller, and a NAND tion into the configuration memory. To realize this vital
flash memory for permanent storage of application data function of the nodes a dedicated configuration control-
and optionally of the PowerPC code. ler (CC) was implemented within in a separate FPGA
(Spartan-II). The configuration of the Spartan-II FPGA
4.1 Node interface is assumed to be fixed and is stored in a radiation hard
The availability and reliability of the redundant OBCS serial EEPROM.
highly depends on the feature to securely isolate a faulty
node so that it cannot obstruct the correct operation of Multiple versions of the configuration file for the Vir-
the rest of the system. As shown in the block diagram all tex-II Pro FPGA can be held in three physically separate
I/O connections are implemented by special isolating NOR-Flash memory banks. This allows for secure in or-
buffer devices that completely disconnect all interface bit reconfiguration of the satellite functions. The CDV
signals from the shared I/O and communication buses if has access to the flash memories via the CC either to
the CDV switches off the power supply of a node. By load new versions of configuration data or to restore a
this, individual nodes can be switched on and off ac- corrupted configuration file. In addition, the configura-
cording to the current mission requirements and also to tion data can be directly streamed from CDV into the
isolate a faulty node containing a permanent hardware configuration memory of the FPGA. Loading the flash
error. memories under control of the CDV ensures that a node
always can be newly configured even if all configura-
In addition to the isolating feature of the bidirectional tion data in the flash memory has been corrupted. This
buffer devices, control inputs allow to enable or disable is true as long as there is no permanent hardware error
the input and output buffers separately. In addition, the in the node and the configuration of the CC in the serial
output enable control signal of the isolating buffer EEPROM is not corrupted.
devices is used to control the output drivers of the nodes
such that on shared bus lines only the selected master After power-on or RESET, first, the CC is configured
node is able to drive the output lines. While after power- from the configuration data in the serial EEPROM.
Then the CC will configure the VIRTEX-II Pro FPGA The communication between the CDV and the CC is
by transferring the configuration file stored in the performed via a serial UART interface by a specific reli-
memory bank Flash 0. The complete configuration of able protocol. Further, the CC directly can notify the
the node from Flash 0 takes only about 200 ms. If the CDV via a number of dedicated status lines, e.g. to sig-
configuration file stored in Flash 0 is corrupted or a dif- nal successful initialization of the Virtex-II Pro FPGA or
ferent configuration has to be loaded, the CDV - by ap- to indicate an over-current or over-temperature condi-
propriate commands - can enforce the configuration tion or to inform the CDV about a self-reset of the node.
from another memory bank or to load the configuration
To flexibly exchange housekeeping data and other con-
file directly in the streaming mode.
trol and status information between the CDV and the
Virtex-II Pro FPGA the Spartan-II FPGA includes a re-
In addition to the CC function for the Virtex-II Pro
gister file. While the Virtex-II Pro can only perform read
FPGA the Spartan-II FPGA is used to implement the
operations, the CDV can use specific commands to per-
command and status interface to the CDV, the logic to
form read and write operations on the register file via
gather and store the housekeeping data of the node, and
the CC. Because neither the CDV nor the CC is in-flight
an independent watch dog function. The block diagram
reconfigurable a fixed set of commands had to be
in Fig. 4 shows the main functions and interfaces of the
defined. But by using the communication mechanism
Spartan-II FPGA.
via the register file, new commands can still be defined
for new versions of the Virtex-II Pro configuration.
These additional commands will be transparently for-
warded by the CDV and written into specific locations
of the register file.
To allow for mutual monitoring of the two FPGAs
(Spartan-II and Virtex-II Pro) within the node, a watch-
dog timer is implemented in each FPGA. The watchdog
outputs of both FPGAs are connected to the reset signal
of the node. In addition, the CDV is informed about the
event of self-reset of a node via a dedicated status sig-
nal. The periodic generation of the signal, which retrig-
gers the external watch-dog timer is based on the com-
bination of internal alive signals generated by all the
controllers within the FPGA. Such an effective watch-
dog implementation ensures that all unexpected node
failures caused by unspecific errors will result in a
watch-dog time out and a subsequent reset and re-ini-
tialization of the faulty node.
The different error detection mechanisms implemented
within the Spartan-II FPGA are working independent of
the general voting mechanism of the CDV. They signi-
ficantly improve the reliability and availability of the
Figure 4: Block diagram of the Spartan-II FPGA OBCS because serious failures during the configuration
of a node are detected immediately and will automatic-
The PicoBlaze Micro-Controller IP core (MC) is used to ally restart the initialization procedure of a node.
flexibly implement the different functions within the
Spartan-II FPGA. The firmware of the PicoBlaze con- 4.3 Main FPGA
troller is stored in the Block RAM of the CC FPGA. To
The Virtex-II Pro FPGA holds the complete ACS,
improve the reliability of the CC the PicoBlaze control-
TM/TC processing, real time image processing of the
ler is duplicated executing in a master/checker
configuration. By sharing all input lines and buses, it is RG, NIR and TIR cameras and generation of scientific
downlink data for the S- and Ka-Band. All these func-
enforced that both MCs receive the same input data. By
tions use a dedicated individual area within the FPGA
comparing the output data of both controllers, each fault
and run strictly in parallel. Thus, no race conditions or
can be detected by a mismatch of any of the output sig-
nals. This straightforward mechanism is completely interrupt latencies exist and allow for the real-time syn-
chronous operation. This is accomplished by a direct
transparent to the firmware and it can be ensured that all
implementation of the algorithms in hardware without
possible SEU errors in the PicoBlaze section of the CC
the need for an operating system using the Handel-C
FPGA will be detected immediately.
compiler.
All four nodes execute the same algorithms in parallel at provides and by eliminating common sub expressions.
a clock cycle precision and in addition to their ACS and Moreover, the compiler can perform a re-timing optim-
scientific output, a hash checksum of the internal state isation in order to allow for higher clock speeds.
variables is permanently presented via dedicated cross
The basic properties of the Handel-C compiler are
strapped lines to each of the other nodes. Every node is
checking the hash codes of the other nodes against its • All ANSI-C Elements are synthesized
own values and presents the result to the other nodes • One source line is executed per clock cycle
and the CDV in order to identify a faulty node. In prin-
• Fixed deterministic timing down to clock cycle res-
ciple, this checking could be performed after every
clock cycle but could also be performed only immedi- olution
ately before the new ACS commands are sent out to the • True parallelism
actuators. • Any bit width for variables
After a reset, the algorithms in a node resynchronise to • External RAM or other H/W included transparently
the current state vector by reading in the state variables • Same code is used for PC simulation and synthesis
of the other nodes which are also exchanged periodic-
ally. After some iterations of the ACS, the node is syn- An additional Platform abstraction layer (PAL) hides
chronised again and signals this to the CDV, after which hardware specific functions from the user's main code
it is again included in the voting process. and is pulled in at link time before synthesis. For each
dedicated hardware platform, a PAL library functions as
In parallel to the ACS, the scientific functions are ex- a wrapper to the hardware specific implementation
ecuted. This is mainly the clocking of the CCD cameras (Platform support layer, PSL) and after synthesis
to read in the pixels and a (pre-)processing of the data. eventually evaluates to nothing. Thus, no extra penalty
This includes the rotation and scaling of the raw images is payed by the insertion of this extra layer. On the hand,
using real-time edge detection and summing of several the user code in then independent from the underlying
images in order to achieve a better S/N ratio. The image hardware and can be compiled directly for different
processing functions make use of pipelined library func- targets including simulation. For the simulation, the
tions that are are part of the Handel-C compiler and design is also fully synthesized but the primitives of the
store intermediate results in the SSRAM. Each of the FPGA are then simulated by a normal C program that
four banks of the SSRAM can be accessed independ- runs under the control of the compiler. In this mode, the
ently of the others at a sustained data rate of 533 synthesized design can be step-by-step examined on a
Mbytes/s. Thus, while one image is being processed, a clock cycle level with full stimulation of external I/O
new image can already be read in from the cameras al- signals.
lowing to use the cameras at their maximum clock
speed. The processed images will either be sent directly The speed gain over a software based implementation is
to the downlink modems or will be stored in the CDV, enormous, typically a speed gain of 40-100 is achieved.
where a mass memory will be located. In order to On the other hand, the FPGA could run at a much
achieve the best possible scientific outcome of the im- slower clock speed in order to save power. The currently
ages, only processing that would have to be performed implemented parts of the ACS include the safe mode
on the ground anyhow before the data can be used will and de-tumble mode that, for safety reasons, only make
be performed. However, due to the high processing use of the magnetometers and magnetic torquers. Each
speed of the node, a real-time classification of the pixels of the algorithms uses roughly 1.1% of the FPGA's gate
could be also performed according to pixel values with equivalences including debug code to feed in simulated
an artificial colouring of detected areas. orbital propagation data for stimulus and performs
20000 iterations per second, which is well beyond the
5 HANDEL-C PROGRAMMING MODEL design cycles of 10/s given the speed of the star tracker
The nodes execute their functions directly in hardware cameras.
without the need for a micro processor or an operating The expected speed of the main ACS algorithm using
system. This is made possible by the use of the Handel- the full set of sensors is in the order of 1000-2000 itera-
C programming language which uses a C-like syntax to tions per second, leaving enough time to perform a cross
describe hardware performing complex algorithms. The checking of the data with the other nodes before the new
Handel-C compiler performs the complete synthesis of actuator commands are sent out to the buses.
the design directly from the C source code without the
need for RTL programming such as VHDL. The advant-
age of this direct conversion is that the compiler can
perform a global optimisation on the structure and typic-
ally shrinks the design by 50% by making use of know-
ledge of the internal primitives that a certain FPGA