GR-TMTC-0002 Data Sheet and User`s Manual

Transcription

GR-TMTC-0002 Data Sheet and User`s Manual
CCSDS Telemetry and Telecommand
CCSDS TM / TC and SpaceWire FPGA
Data Sheet and User’s Manual
GAISLER
Features
Description
• CCSDS/ECSS compatible Telemetry Encoder
and Telecommand Decoder
• Telemetry encoder implements in hardware
part of protocol sub-layer, synchronization &
channel coding sub-layer, and part of physical
layer
• Telemetry input via multiple SpaceWire links
• Reed-Solomon and Convolutional encoding
• Telecommand decoder implements in
hardware synchronization & channel coding
sub-layer, and part of physical layer
• Software telecommands via SpaceWire link
• Hardware telecommands via parallel port
• At least 2 Mbit/s downlink & 100 kbit/s uplink
The telemetry encoder and telecommand decoder
are implemented in an Actel RTAX FPGA. The
lower layers of the encoder and decoder are
implemented in hardware with the higher layers
externally in software. Support is provided for
additional hardware encoded telemetry and
hardware decoded command outputs and pulses.
Specification
• RTAX2000S-CQ352
• Total Ionizing Dose Up to 300 krad (Si)
• Single-Event Latch-Up Immunity (SEL) to
LETTH > 104 MeV-cm2/mg
• Immune to Single-Event Upsets (SEU) to
LETTH > 37 MeV-cm2/mg
Data Link Protocol Sub-Layer
Configuration
4k
Memory
AHB
Slave
SpaceWire
(Science)
GRSPW
RMAP
AHB
Master
All Frames Recept.
VC Demux
MC Demux
VC Reception
2k FIFO
Telemetry Encoder
VC3
AHB
Slave
VC
Generate
AMBA
AHB
Master
VC4
AHB
Slave
VC
Generate
AMBA
AHB
Master
VC5
AHB
Slave
VC
Generate
AMBA
AHB
Master
Idle
Frame
Sync Marker
AMBA
AHB
Master
All Frames Generation
Coding Sub-Layer
VC
Generate
AHB
Slave
Master Channel Generation
AMBA
Virtual Channel Frame Service
AMBA
(Science)
GRSPW
RMAP
AHB
Master
VC0
VC1
VC2
DMA
Physical Layer
NRZ-L/M
16k Buffer
Memory
AHB
Slave
Configuration
Pseudo Randomizer
AMBA
AHB
Master
Data Link Protocol Sub-Layer
Convolutional
Descriptor
Memory
AHB
Slave
SpaceWire
Path Recovery
CLCW
AMBA
APB
Slave
Virtual Channel Multiplexer
Interrupt
Hardware
Commands
Interrupt
Controller
Telecommand
CLTU
Telecommand Decoder
VC Pkt Extraction
HW Cmd
AMBA
AHB
Slave
Packet Extraction
(LEON3)
GRSPW
RMAP
AHB
Master
AMBA
SpaceWire
NRZ-L/M
FIFO
BCH Decoder
DMA
Physical Layer
Start sequence search
AMBA
AHB
Master
Coding Sub-Layer
Pseudo-Derandomizer
Memory
Controller
AHB
Slave
Reed-Solomon
SRAM
MRAM
Telemetry
CADU
VC6
VC7
TMTC FPGA
Applications
The telemetry encoder and telecommand decoder can be used in systems where CCSDS/ECSS
compatible communication services are required. The software implementation of the higher layers
of the telemetry encoder and the telecommand decoder allows for implementation flexibility and
accommodation of future standard enhancements. The hardware encoded telemetry and decoded
command outputs do not require software and can be used for critical operations.
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
2
CCSDS TM / TC and SpaceWire FPGA
Table of contents
1
Introduction.............................................................................................................................. 8
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.9
2
Architecture............................................................................................................................ 15
2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
2.9
3
Specification .......................................................................................................................................... 15
Interfaces ............................................................................................................................................... 16
Clock and reset ...................................................................................................................................... 16
Performance........................................................................................................................................... 16
IP cores .................................................................................................................................................. 17
Interrupts ............................................................................................................................................... 17
Memory map ......................................................................................................................................... 17
Signals ................................................................................................................................................... 19
Abbreviations and acronyms ................................................................................................................. 21
Conventions ........................................................................................................................... 24
3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8
3.9
3.10
3.11
3.12
4
Overview ................................................................................................................................................. 8
Hierarchy ................................................................................................................................................. 8
Telemetry encoder ................................................................................................................................... 9
1.3.1
Telemetry encoder specification ............................................................................................... 9
1.3.2
Virtual Channels 0, 1 and 2..................................................................................................... 10
1.3.3
Virtual Channels 3, 4, 5 and 6................................................................................................. 10
1.3.4
Virtual Channel 7 .................................................................................................................... 10
Telecommand decoder........................................................................................................................... 11
1.4.1
Telecommand decoder specification ....................................................................................... 11
1.4.2
Software Virtual Channel........................................................................................................ 11
1.4.3
Hardware Virtual Channel ...................................................................................................... 12
Memory Interface .................................................................................................................................. 12
SpaceWire Link Interfaces .................................................................................................................... 12
On-chip Memory ................................................................................................................................... 13
Interrupt Controller................................................................................................................................ 13
Signal overview..................................................................................................................................... 14
Consultative Committee for Space Data Systems ................................................................................. 24
Galois Field ........................................................................................................................................... 24
Telemetry Transfer Frame format.......................................................................................................... 25
Reed-Solomon encoder data format ...................................................................................................... 26
Attached Synchronization Marker......................................................................................................... 26
Telecommand Transfer Frame format ................................................................................................... 27
Command Link Control Word............................................................................................................... 27
Space Packet.......................................................................................................................................... 28
Asynchronous bit serial data format...................................................................................................... 28
SpaceWire Remote Memory Access Protocol (RMAP)........................................................................ 28
Command Link Control Word interface (CLCW) ................................................................................ 29
Waveform formats ................................................................................................................................. 29
Telemetry Encoder ................................................................................................................. 30
4.1
4.2
Overview ............................................................................................................................................... 30
Layers .................................................................................................................................................... 31
4.2.1
Introduction............................................................................................................................. 31
4.2.2
Data Link Protocol Sub-layer ................................................................................................. 31
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
4.3
4.4
4.5
4.6
4.7
4.8
4.9
4.10
5
5.4
4.2.3
Synchronization and Channel Coding Sub-Layer................................................................... 31
4.2.4
Physical Layer......................................................................................................................... 31
Data Link Protocol Sub-Layer .............................................................................................................. 31
4.3.1
Physical Channel..................................................................................................................... 31
4.3.2
Virtual Channel Frame Service ............................................................................................... 32
4.3.3
Virtual Channel Generation - Virtual Channels 3, 4, 5 and 6 ................................................. 32
4.3.4
Virtual Channel Generation - Idle Frames - Virtual Channel 7 .............................................. 32
4.3.5
Virtual Channel Multiplexing ................................................................................................. 33
4.3.6
Master Channel Generation .................................................................................................... 33
4.3.7
Master Channel Frame Service ............................................................................................... 33
4.3.8
Master Channel Multiplexing ................................................................................................. 34
4.3.9
All Frame Generation ............................................................................................................. 34
Synchronization and Channel Coding Sub-Layer ................................................................................. 34
4.4.1
Attached Synchronization Marker .......................................................................................... 34
4.4.2
Reed-Solomon Encoder .......................................................................................................... 34
4.4.3
Pseudo-Randomiser ................................................................................................................ 36
4.4.4
Convolutional Encoder ........................................................................................................... 36
Physical Layer ....................................................................................................................................... 36
4.5.1
Non-Return-to-Zero Level encoder ........................................................................................ 36
4.5.2
Clock Divider.......................................................................................................................... 37
Connectivity .......................................................................................................................................... 38
Operation ............................................................................................................................................... 39
4.7.1
Introduction............................................................................................................................. 39
4.7.2
Descriptor setup ...................................................................................................................... 39
4.7.3
Starting transmissions ............................................................................................................. 40
4.7.4
Descriptor handling after transmission ................................................................................... 40
4.7.5
Auto start................................................................................................................................. 41
Registers ................................................................................................................................................ 42
Signal definitions and reset values ........................................................................................................ 48
Timing ................................................................................................................................................... 48
Overview ............................................................................................................................................... 49
Interrupts ............................................................................................................................................... 49
Registers ................................................................................................................................................ 49
5.3.1
Status Register (R) .................................................................................................................. 50
5.3.2
Control Register (R/W)........................................................................................................... 50
AHB I/O area......................................................................................................................................... 50
Telemetry Encoder - Virtual Channel Generation.................................................................. 52
6.1
6.2
6.3
6.4
7
CCSDS TM / TC and SpaceWire FPGA
Telemetry Encoder - Virtual Channel Generation function input interface ........................... 49
5.1
5.2
5.3
6
3
Overview ............................................................................................................................................... 52
Registers ................................................................................................................................................ 52
Signal definitions and reset values ........................................................................................................ 52
Timing ................................................................................................................................................... 52
Telemetry Encoder - Descriptor............................................................................................. 53
7.1
7.2
7.3
7.4
Overview ............................................................................................................................................... 53
Operation ............................................................................................................................................... 53
7.2.1
Introduction............................................................................................................................. 53
7.2.2
Descriptor definition ............................................................................................................... 53
Registers ................................................................................................................................................ 54
Signal definitions and reset values ........................................................................................................ 54
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
7.5
8
8.2
8.3
8.4
8.5
8.6
8.7
8.8
8.9
8.10
8.11
Timing ................................................................................................................................................... 54
Overview ............................................................................................................................................... 55
8.1.1
Concept ................................................................................................................................... 55
8.1.2
Functions and options ............................................................................................................. 56
Data formats .......................................................................................................................................... 56
8.2.1
Reference documents .............................................................................................................. 56
8.2.2
Waveforms .............................................................................................................................. 57
Coding Layer (CL) ................................................................................................................................ 57
8.3.1
Synchronisation and selection of input channel...................................................................... 57
8.3.2
Codeblock decoding................................................................................................................ 58
8.3.3
De-Randomiser ....................................................................................................................... 58
8.3.4
Non-Return-to-Zero – Mark ................................................................................................... 58
8.3.5
Design specifics ...................................................................................................................... 58
8.3.6
Direct Memory Access (DMA) .............................................................................................. 59
Transmission.......................................................................................................................................... 59
8.4.1
Data formatting ....................................................................................................................... 62
8.4.2
CLTU Decoder State Diagram ................................................................................................ 62
8.4.3
Nominal................................................................................................................................... 62
8.4.4
CASE 1 ................................................................................................................................... 63
8.4.5
CASE 2 ................................................................................................................................... 63
8.4.6
Abandoned .............................................................................................................................. 63
Relationship between buffers and FIFOs .............................................................................................. 64
8.5.1
Buffer full................................................................................................................................ 64
8.5.2
Buffer full interrupt................................................................................................................. 65
Command Link Control Word interface (CLCW)................................................................................. 66
Configuration Interface (AMBA AHB slave) ....................................................................................... 66
Interrupts ............................................................................................................................................... 67
Registers ................................................................................................................................................ 68
8.9.1
Interrupt registers .................................................................................................................... 74
Signal definitions and reset values ........................................................................................................ 76
Timing ................................................................................................................................................... 76
Telecommand Decoder - Hardware Commands .................................................................... 77
9.1
9.2
9.3
9.4
9.5
10
CCSDS TM / TC and SpaceWire FPGA
Telecommand Decoder - Software Commands ..................................................................... 55
8.1
9
4
Overview ............................................................................................................................................... 77
9.1.1
Concept ................................................................................................................................... 77
Operation ............................................................................................................................................... 77
9.2.1
All Frames Reception ............................................................................................................. 77
9.2.2
Master Channel Demultiplexing ............................................................................................. 78
9.2.3
Virtual Channel Demultiplexing ............................................................................................. 78
9.2.4
Virtual Channel Reception ...................................................................................................... 78
9.2.5
Virtual Channel Packet Extraction.......................................................................................... 79
9.2.6
Path Recovery ......................................................................................................................... 79
9.2.7
Packet Extraction .................................................................................................................... 79
9.2.8
Application Layer ................................................................................................................... 80
Telecommand Transfer Frame format - Hardware Commands............................................................. 81
Signal definitions and reset values ........................................................................................................ 82
Timing ................................................................................................................................................... 82
SpaceWire Interface with RMAP target................................................................................. 83
10.1
Overview ............................................................................................................................................... 83
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
10.2
10.3
10.4
10.5
10.6
11
11.3
11.4
11.5
11.6
13.3
Overview ............................................................................................................................................. 104
Operation ............................................................................................................................................. 104
Registers .............................................................................................................................................. 106
Overview ............................................................................................................................................. 107
Operation ............................................................................................................................................. 107
13.2.1 Errors..................................................................................................................................... 107
13.2.2 Correctable errors.................................................................................................................. 107
13.2.3 Interrupts ............................................................................................................................... 107
Registers .............................................................................................................................................. 107
Serial Debug Interface ......................................................................................................... 109
14.1
14.2
14.3
14.4
14.5
15
Overview ............................................................................................................................................... 93
Operation ............................................................................................................................................... 93
11.2.1 Access errors ........................................................................................................................... 94
11.2.2 Using bus ready signalling...................................................................................................... 95
PROM/SRAM/IO waveforms ............................................................................................................... 95
Registers .............................................................................................................................................. 101
Signal definitions and reset values ...................................................................................................... 102
Timing ................................................................................................................................................. 103
Status Registers .................................................................................................................... 107
13.1
13.2
14
Operation ............................................................................................................................................... 83
10.2.1 Overview................................................................................................................................. 83
10.2.2 Protocol support ...................................................................................................................... 83
Link interface ........................................................................................................................................ 84
10.3.1 Link interface FSM ................................................................................................................. 84
10.3.2 Transmitter .............................................................................................................................. 84
10.3.3 Receiver .................................................................................................................................. 85
RMAP.................................................................................................................................................... 86
10.4.1 Fundamentals of the protocol.................................................................................................. 86
10.4.2 Implementation ....................................................................................................................... 86
10.4.3 Write commands ..................................................................................................................... 87
10.4.4 Read commands ...................................................................................................................... 87
10.4.5 RMW commands .................................................................................................................... 88
10.4.6 Control .................................................................................................................................... 88
Signal definitions and reset values ........................................................................................................ 91
Timing ................................................................................................................................................... 92
On-chip Memory with EDAC Protection ............................................................................ 104
12.1
12.2
12.3
13
CCSDS TM / TC and SpaceWire FPGA
Fault Tolerant PROM/SRAM Memory Interface .................................................................. 93
11.1
11.2
12
5
Overview ............................................................................................................................................. 109
Operation ............................................................................................................................................. 109
14.2.1 Transmission protocol........................................................................................................... 109
14.2.2 Baud rate generation ............................................................................................................. 110
Registers .............................................................................................................................................. 110
Signal definitions and reset values ...................................................................................................... 111
Timing ................................................................................................................................................. 111
Interrupt Controller .............................................................................................................. 112
15.1
15.2
Overview ............................................................................................................................................. 112
Operation ............................................................................................................................................. 112
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
15.3
15.4
15.5
16
18.3
18.4
19.3
Overview ............................................................................................................................................. 119
Operation ............................................................................................................................................. 119
18.2.1 Arbitration............................................................................................................................. 119
18.2.2 Decoding ............................................................................................................................... 119
18.2.3 Plug&play information ......................................................................................................... 119
Registers .............................................................................................................................................. 120
Debug print-out ................................................................................................................................... 120
Overview ............................................................................................................................................. 122
Operation ............................................................................................................................................. 122
19.2.1 Decoding ............................................................................................................................... 122
19.2.2 Plug&play information ......................................................................................................... 122
Debug print-out ................................................................................................................................... 122
Electrical description ........................................................................................................... 124
20.1
20.2
20.3
20.4
20.5
20.6
21
Overview ............................................................................................................................................. 118
Signal definitions and reset values ...................................................................................................... 118
Timing ................................................................................................................................................. 118
AMBA AHB/APB bridge with plug&play support............................................................. 122
19.1
19.2
20
Overview ............................................................................................................................................. 117
Signal definitions and reset values ...................................................................................................... 117
Timing ................................................................................................................................................. 117
AMBA AHB controller with plug&play support ................................................................ 119
18.1
18.2
19
15.2.1 Interrupt prioritization........................................................................................................... 112
15.2.2 Extended interrupts ............................................................................................................... 113
15.2.3 Processor status monitoring .................................................................................................. 113
15.2.4 Irq broadcasting .................................................................................................................... 113
Registers .............................................................................................................................................. 114
15.3.1 Interrupt level register........................................................................................................... 114
15.3.2 Interrupt pending register...................................................................................................... 114
15.3.3 Interrupt force register (NCPU = 0)...................................................................................... 115
15.3.4 Interrupt clear register........................................................................................................... 115
15.3.5 Multiprocessor status register ............................................................................................... 115
15.3.6 Processor interrupt mask register.......................................................................................... 115
15.3.7 Broadcast register (NCPU > 0) ............................................................................................. 116
15.3.8 Processor interrupt force register (NCPU > 0) ..................................................................... 116
15.3.9 Extended interrupt acknowledge register.............................................................................. 116
Signal definitions and reset values ...................................................................................................... 116
Timing ................................................................................................................................................. 116
Reset generation................................................................................................................... 118
17.1
17.2
17.3
18
CCSDS TM / TC and SpaceWire FPGA
Clock generation .................................................................................................................. 117
16.1
16.2
16.3
17
6
Absolute maximum ratings ................................................................................................................. 124
Operating conditions ........................................................................................................................... 124
Input voltages, leakage currents and capacitances .............................................................................. 124
Output voltages, leakage currents and capacitances ........................................................................... 124
Clock Input voltages, leakage currents and capacitances.................................................................... 124
Power supplies..................................................................................................................................... 124
Mechanical description ........................................................................................................ 125
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
21.1
21.2
21.3
21.4
21.5
21.6
21.7
21.8
21.9
7
CCSDS TM / TC and SpaceWire FPGA
Package................................................................................................................................................ 125
Pin assignment..................................................................................................................................... 125
RTAX2000S specific pins - CQ352 package ...................................................................................... 132
RTAX2000S specific pins - CG624 package ...................................................................................... 133
Package figure ..................................................................................................................................... 134
Mechanical drawing ............................................................................................................................ 134
Weight.................................................................................................................................................. 134
Package materials ................................................................................................................................ 134
Thermal characteristics........................................................................................................................ 134
22
Reference documents ........................................................................................................... 135
23
Ordering information ........................................................................................................... 136
24
Change record ...................................................................................................................... 137
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
8
1
Introduction
1.1
Overview
CCSDS TM / TC and SpaceWire FPGA
The CCSDS/ECSS Telemetry Encoder and Telecommand Decoder can be used in systems where
CCSDS/ECSS compatible communication services are required. The Telemetry and Telecommand
concept is based on implementing the associated protocols partly in hardware and partly in software.
The lower layers, such as physical layer and the channel coding sub-layer, are implemented in hardware, whereas high levels such as data link - protocol sub-layer are implemented in software.
1.2
Hierarchy
Figure 1 shows a simple block diagram of the device. Note that all cores with AHB master interfaces
also have APB slave interfaces for configuration and status monitoring, although not shown in the
block diagram. The following sub-sections briefly describe the functionality of the blocks.
Data Link Protocol Sub-Layer
Configuration
4k
Memory
AHB
Slave
AMBA
AHB
Master
16k Buffer
Memory
AHB
Slave
SpaceWire
(Science)
GRSPW
RMAP
AHB
Master
All Frames Recept.
MC Demux
Data Link Protocol Sub-Layer
Configuration
VC0
VC1
VC2
DMA
2k FIFO
Telemetry Encoder
Virtual Channel Frame Service
AMBA
AHB
Master
VC4
AHB
Slave
VC
Generate
AMBA
AHB
Master
VC5
AHB
Slave
VC
Generate
AMBA
AHB
Master
VC6
Idle
Frame
Physical Layer
NRZ-L/M
VC
Generate
Pseudo Randomizer
AHB
Slave
Convolutional
VC3
Sync Marker
AMBA
AHB
Master
All Frames Generation
VC
Generate
Master Channel Generation
AHB
Slave
Virtual Channel Multiplexer
AMBA
Coding Sub-Layer
AMBA
(Science)
GRSPW
RMAP
AHB
Master
VC Demux
CLCW
AMBA
APB
Slave
Descriptor
Memory
AHB
Slave
SpaceWire
VC Reception
Interrupt
Controller
VC Pkt Extraction
Interrupt
Hardware
Commands
Path Recovery
HW Cmd
Telecommand
CLTU
Telecommand Decoder
Packet Extraction
(LEON3)
GRSPW
RMAP
AHB
Master
AMBA
SpaceWire
AMBA
AHB
Slave
NRZ-L/M
FIFO
Physical Layer
Start sequence search
DMA
BCH Decoder
AMBA
AHB
Master
Pseudo-Derandomizer
Memory
Controller
AHB
Slave
Coding Sub-Layer
Reed-Solomon
SRAM
MRAM
Telemetry
CADU
VC7
TMTC FPGA
Figure 1. Block diagram
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
1.3
9
CCSDS TM / TC and SpaceWire FPGA
Telemetry encoder
The CCSDS Telemetry Encoder implements part of the Data Link Layer, covering the Protocol Sublayer and the Synchronization and Coding Sub-layer and part of the Physical Layer of the packet
telemetry encoder protocol.
The Telemetry Encoder comprises several encoders and modulators implementing the Consultative
Committee for Space Data Systems (CCSDS) recommendations, European Cooperation on Space
Standardization (ECSS) and the European Space Agency (ESA) Procedures, Standards and Specifications (PSS) for telemetry and channel coding.
The Telemetry Encoder implements seven Virtual Channels accessible via SpaceWire links. Three of
the Virtual Channels accept partial Telemetry Frames from software implementing higher protocol
layers such as Virtual Channel Generation function. The other four Virtual Channels accept CCSDS
Space Packet data [CCSDS-133.0] as input via the SpaceWire RMAP protocol. An eighth Virtual
Channel is implemented for Idle Frames only.
1.3.1
Telemetry encoder specification
This Data Link - Protocol Sub-layer [CCSDS-132.0] functionality is not implemented in hardware:
•
Packet Processing
•
Virtual Channel Frame Service (DMA functionality only) (see also Virtual Channel 3, 4, 5 and 6)
•
Master Channel Frame Service (only single Spacecraft Identifier supported)
•
Master Channel Multiplexing (only single Spacecraft Identifier supported)
This Data Link - Protocol Sub-layer [CCSDS-132.0] functionality is implemented in hardware:
•
Virtual Channel Generation (for Virtual Channels 3, 4, 5 and 6)
•
Virtual Channel Generation (for Idle Frame generation only, e.g. Virtual Channel 7)
•
Virtual Channel Multiplexing (for all frames)
•
Master Channel Generation (for all frames)
•
All Frame Generation (for all frames)
•
Multiplexing of four CLCW sources, of which two external via asynchronous bit serial interfaces
This Synchronization and Channel Coding Sub-Layer [CCSDS-131.0] functionality is implemented
in hardware:
•
Attached Synchronization Marker
•
Reed-Solomon coding
•
Pseudo-Randomiser
•
Convolutional coding
This Physical Layer [ECSS-50-05A] functionality is implemented in hardware:
•
Non-Return-to-Zero Mark/Level modulation (NRZ-M/L)
The Telemetry Encoder fixed configuration is as follows:
•
fixed transfer frame format, version 00b, Packet Telemetry
•
fixed transfer frame length of 1115 octets
•
common Master Channel Frame Counter for all Virtual Channels
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
10
CCSDS TM / TC and SpaceWire FPGA
•
fixed nominal Attached Synchronization Marker usage
•
fixed 2 kByte telemetry transmit FIFO
•
fixed 4 kByte on-chip EDAC protected RAM memory per Virtual Channel 3, 4, 5 and 6
The Telemetry Encoder programmability is as follows:
•
telemetry Spacecraft Identifier
•
telemetry OCF/CLCW enable
•
telemetry No RF Available and No Bit Lock bits in CLCW overwriting from input pins
•
telemetry Frame Error Control Field (FECF/CRC) enable
•
telemetry Reed-Solomon enable (E=16 coding, interleave depth 5, 160 check symbols)
•
telemetry Pseudo Randomization enable
•
telemetry Convolutional Encoder enable and rate
•
telemetry NRZ-L/ NRZ-M modulation
•
telemetry transfer rate
The Telemetry Encoder does not implement the following:
•
no Advanced Orbiting Systems (AOS) support (also no Insert Zone (AOS) and no Frame Header
Error Control (FHEC))
•
no Transfer Frame Secondary Header (also no Extended Virtual Channel Frame Counter)
•
no Turbo Encoding
•
no Split-Phase Level modulation
•
no Sub-carrier modulation
1.3.2
Virtual Channels 0, 1 and 2
Virtual Channels 0, 1 and 2 are implemented by means of software support from an external processor
via SpaceWire RMAP commands. The input is a partial Transfer Frame. See section 4 for details.
1.3.3
Virtual Channels 3, 4, 5 and 6
Virtual Channels 3, 4, 5 and 6 are implemented in hardware without any software support being
required. Data are input via SpaceWire RMAP commands. See sections 5 and 10 for details.
The following Data Link - Protocol Sub-layer [CCSDS-132.0] functionality is implemented:
•
Virtual Channel Generation
•
Transfer Frame Primary Header insertion
•
Transfer Frame Data Field insertion
•
First Header Pointer (FHP) handling and insertion
•
Buffering of two complete Transfer Frames per Virtual Channel
•
CCSDS Space Packet [CCSDS-133.0] data input (or user-defined data-blocks).
1.3.4
Virtual Channel 7
Idle Frames are generated on a separate Virtual Channel, using identifier 7. See section 4.3.4.
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
1.4
11
CCSDS TM / TC and SpaceWire FPGA
Telecommand decoder
The CCSDS Telecommand Decoder implements part of the Data Link Layer, covering the Protocol
Sub-layer and the Synchronization and Coding Sub-layer and part of the Physical Layer of the packet
telecommand decoder protocol.
The Telecommand Decoder supports decoding of higher protocol layers in software, being accessible
via a SpaceWire link. It also supports decoding in hardware for bit-parallel output with pulse generation, for which CLCW is produced to on-chip Telemetry Encoder.
1.4.1
Telecommand decoder specification
The following Data Link - Synchronization and Channel Coding Sub-Layer [CCSDS-231.0] functionality is implemented in hardware:
•
Pseudo-De-randomization
•
BCH codeblock decoding
•
Start Sequence Search
The following Physical Layer functionality [ECSS-50-05A] is implemented in hardware:
•
Non-Return-to-Zero Mark/Level de-modulation (NRZ-M/L)
The telecommand decoder fixed configuration is as follows:
•
fixed telecommand decoder support for CCSDS/ECSS functionality, not ESA PSS
The telecommand decoder provide the following pin programmability:
•
telecommand (hardware commands) Spacecraft Identifier (10 pins)
•
telecommand (hardware commands) Virtual Channel Identifier (6 pins)
•
telecommand Pseudo De-randomization enable
•
telecommand NRZ-L / NRZ-M modulation selection
•
telecommand RF available indicator polarity selection
•
telecommand active signal (bit lock) polarity selection
•
telecommand bit clock active edge selection
The Telecommand Decoder has multiple separate serial input streams from transponders etc., comprising serial data, clock, channel active indicator (bit lock) and RF carrier available. The input
streams are possible to individually disable or enable. The input stream is auto-adaptable.
1.4.2
Software Virtual Channel
The interface between the Telecommand Decoder hardware and software is a SpaceWire link with
RMAP protocol. The CLCW produced by the software is input to the Telemetry Encoder via the Telecommand Decoder CLCW Registers (CLCWRn), see section 8.9 for details, using the SpaceWire link
with RMAP protocol, with the same information being output on an asynchronous bit serial output
suitable for cross-strapping.
The higher protocol levels are implemented in software. These software telecommands are stored in
external memory and can be accessed via a SpaceWire interfaces. The software implementation of the
higher layers of the telecommand decoder allows for implementation flexibility and accommodation
of future standard enhancements. See sections 8 and 10 for details.
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
12
1.4.3
CCSDS TM / TC and SpaceWire FPGA
Hardware Virtual Channel
A separate Virtual Channel for hardware commands is implemented in hardware, without the need of
software support. The hardware commands control an external bit-parallel output port, setting or
clearing bits individually, or generating pulses. The hardware commands are carried inside the Transfer Frame Data Field, and the Transfer Frame includes the Frame Error Control Field (FECF/CRC).
This Application Layer functionality is implemented in hardware:
•
Hardware command decoding and execution:
•
Individually controlled parallel outputs
•
Static logical 0 or 1, or pulsed output
•
Command controlled pulse length
This Space Packet Protocol layer [CCSDS-133.0] functionality is implemented in hardware:
•
Packet Extraction
•
Path Recovery
This Data Link - Protocol Sub-Layer [CCSDS-232.0] functionality is implemented in hardware:
•
Virtual Channel Packet Extraction
•
Virtual Channel Reception:
•
Support for Command Link Control Word (CLCW)
•
Virtual Channel Demultiplexing
•
Master Channel Demultiplexing
•
All Frames Reception:
•
Frame Delimiting and Fill Removal Procedure; and
•
Frame Validation Check Procedure, in this order.
The CLCW is automatically transferred to the on-chip Telemetry Encoder, with the same information
being output on an asynchronous bit serial output suitable for cross-strapping.
The hardware telecommands are implemented entirely in hardware and do not require any software
and can therefore be used for critical operations. See section 9 for details.
1.5
Memory Interface
The memory interface support external volatile and non-volatile memory (e.g. MRAM), supporting
32-bit data and 8-bit EDAC check sum, with multiple chip select signals.
1.6
SpaceWire Link Interfaces
The SpaceWire links provide an interface between the on-chip bus and a SpaceWire network. They
implement the SpaceWire standard [ECSS-E-ST-50-12C] with the protocol identification extension
[ECSS-E-ST-50-11C]. The Memory Access Protocol (RMAP) command handler implements the
ECSS standard [ECSS-E-ST-50-11C].
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
1.7
13
CCSDS TM / TC and SpaceWire FPGA
On-chip Memory
16 kByte of on-chip volatile memory is provided for temporary storage of two telemetry transfer
frames for each of the Telemetry Virtual Channels 3 through 6, together with a dedicated hard coded
descriptor memory containing two descriptors for each channel. Additional general purpose 4 kByte
of on-chip volatile memory is provided and can for example be used for telemetry or telecommand
descriptor. All memory is protected by EDAC. Neither automatic scrubbing nor error counter are
implemented.
1.8
Interrupt Controller
The Interrupt Controller is used to prioritize and propagate interrupt requests from internal devices to
a single interrupt output.
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
1.9
14
CCSDS TM / TC and SpaceWire FPGA
Signal overview
The signal overview of the telemetry encoder and telecommand decoder is shown in figure 2.
clk
resetn
Clock & Reset &
Interrupt
dsurx
Debug UART
transclk
clcwin[0:1]
Telemetry
Encoder
tcscid[0:9]
tcvcid[0:5]
tcrfpos
irq
dsutx
caduclk[0:3]
caduout[0:3]
clcwout[0:1]
Telecommand
Decoder
tcgpio[0:31]
tchigh
tcrise
tcpseudo
tcmark
tcrfa[0:3]
tcactive[0:3]
tcclk[0:3]
tcdata[0:3]
spw_clk
spw_rxd[]
spw_rxdn[]
spw_rxs[]
spw_rxsn[]
data[31:0]
cb[7:0]
SpaceWire Links
Memory Interface
spw_txd[]
spw_txdn[]
spw_txs[]
spw_txsn[]
address[27:0]
ramsn[7:0]
ramoen[7:0]
ramben[3:0]
rwen[3:0]
romsn[7:0]
oen
writen
Figure 2. Signal overview
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
2
Architecture
2.1
Specification
15
CCSDS TM / TC and SpaceWire FPGA
The Telemetry and Telecommand FPGA specification comprises the following elements.
CCSDS compliant Telemetry encoder:
•
Input:
•
7 Virtual Channels
•
Input access via SpaceWire link
•
CCSDS Space Packet data (or any custom data block)
•
CLCW
•
Input via SpaceWire link
•
CLCW internally from hardware commands
•
CLCW externally from two dedicated asynchronous bit serial inputs
•
Output:
•
CADU / encoded CADU
•
NRZ-L / NRZ-M encoding
•
Pseudo-Randomization
•
Reed-Solomon and/or Convolutional encoding
•
Bit synchronous output: clock and data
CCSDS compliant Telecommand decoder (software commands):
•
Layers in hardware:
•
Coding layer
•
Input:
•
Auto adaptable bit rate
•
Bit synchronous input: clock, qualifier and data
•
Output:
•
Output access via SpaceWire link
•
CLTU (Telecommand Transfer Frame and Filler Data)
•
CLCW internally connected to Telemetry encoder
•
CLCW on dedicated asynchronous bit serial output
CCSDS compliant Telecommand decoder (hardware commands):
•
Layers in hardware:
•
Coding layer
•
Transfer layer (BD frames only)
•
Space Packet Protocol
•
CLCW internally connected to Telemetry encoder
•
Input:
•
Auto adaptable bit rate
•
Bit synchronous input: clock, qualifier and data
•
Telecommand Frame with Space Packet
•
Output:
•
Bit-parallel output with pulse generation
•
CLCW on dedicated asynchronous bit serial output
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
2.2
16
CCSDS TM / TC and SpaceWire FPGA
Interfaces
The following interfaces are provided:
•
Telemetry
•
Telemetry transmitter clock input
•
CLCW externally from two dedicated asynchronous bit serial inputs
•
Physical layer output:
•
Two sets of bit synchronous output: clock and data
•
One set of bit synchronous output: clock and data for EGSE
•
One set of Manchester encoded data output for EGSE
(Manchester as per IEEE 803.2 when GRTM physical layer register bit SF=0)
(Manchester as per G.E. Thomas when GRTM physical layer register bit SF=1)
•
Telecommand
•
Physical layer input:
•
Four sets of bit synchronous input: data, qualifier (bit lock), clock and RF status
•
Hardware commands:
•
Bit-parallel output
•
CLCW on dedicated asynchronous bit serial output (hardware commands)
•
CLCW on dedicated asynchronous bit serial output (software commands)
•
2.3
System level
•
Memory interface (SRAM and PROM chip selects, read and write strobes, 32-bit data, 8bit checksum, at least 21 bit address)
•
Interrupt output
•
System clock and reset
•
SpaceWire link with RMAP support for software telemetry and telecommand
•
SpaceWire link with RMAP support for hardware telemetry (VC3 - VC4)
•
SpaceWire link with RMAP support for hardware telemetry (VC5 - VC6)
•
SpaceWire transmitter clock input
Clock and reset
The system clock is taken directly from a separate external input.
The telemetry transmitter clock is derived from a separate external input.
The SpaceWire transmitter clock is derived from a separate external input.
The device is reset with a single external reset input that need not be synchronous with the system
clock input.
2.4
Performance
Telemetry downlink rate is programmable up to at least 2 Mbit/s, based on a 8 MHz input clock.
Telecommand uplink rate up to at least 100 kbit/s is supported.
SpaceWire links rate up to at least 10 Mbit/s is supported, based on a 10 MHz input clock.
System clock frequency up to at least 20 MHz is supported, based on a 20 MHz input clock.
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
2.5
17
CCSDS TM / TC and SpaceWire FPGA
IP cores
The architecture is based on cores from the GRLIB IP library. The vendor and device identifiers for
each core can be extracted from the plug & play information. The used IP cores are listed in table 1.
Table 1. Used IP cores
2.6
Core
Function
Vendor
Device
AHBCTRL
AHB Arbiter & Decoder
0x01
-
APBCTRL
AHB/APB Bridge
0x01
0x006
AHBUART
Serial/AHB debug interface
0x01
0x007
FTSRCTRL
PROM/SRAM/IO Memory Interface
0x01
0x051
FTAHBRAM
On-chip SRAM with EDAC
0x01
0x050
AHBSTAT
AHB failing address register
0x01
0x052
IRQMP
Interrupt controller
0x01
0x00D
GRSPW
SpaceWire link with RMAP
0x01
0x01F
GRTC
CCSDS TC Decoder
0x01
0x031
GRTM
CCSDS TM Encoder
0x01
0x030
GRTM_PAHB
CCSDS TM Encoder Virtual Channel Generation Input
0x01
0x088
GRTM_VC
CCSDS TM Encoder Virtual Channel Generation
0x01
0x085
GRTM_DESC
CCSDS TM Encoder Descriptors
0x01
0x084
GRTC HW
CCSDS TC Decoder - Hardware Commands
-
-
Interrupts
See the description of the individual cores for how and when the interrupts are raised.
Table 2. Interrupt assignment
Core
2.7
Interrupt
Comment
AHBSTAT
4
AHB failing address register
GRTM_PAHB
7-8, 9-10, 11-12, 13-14 CCSDS TM Encoder Virtual Channel Generation Input (VC3-6)
GRTC
5
CCSDS TC Decoder
GRTM
6
CCSDS TM Encoder
Memory map
The internal architecture is based on three sets of AMBA AHB and AMBA ABP buses. The three sets
are separated from each other. See figure 1 for details.
The memory map shown in tables 3, 5 and 7 is based on the AMBA AHB address space. Access to
addresses outside the ranges will return an AHB error response. The detailed register layout is defined
in the description of each individual core.
The control registers of most on-chip peripherals are accessible via the AHB/APB bridge, which is
mapped at address 0x80000000. The memory map shown in tables 4, 6 and 8 is based on the AMBA
AHB address space.
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
18
CCSDS TM / TC and SpaceWire FPGA
Table 3. AMBA AHB address range - primary bus
Core
Address range
Area
FTSRCTRL
0x00000000 - 0x20000000
PROM area
0x40000000 - 0x60000000
SRAM area
APBCTRL
0x80000000 - 0x80100000
APB bridge
FTAHBRAM
0xA0000000 - 0xB0000000
On-chip RAM, 4 kByte
FTAHBRAM
0xB0000000 - 0xC0000000
On-chip RAM, 16 kByte
GRTM_DESC
0xC0000000 - 0xD0000000
CCSDS TM Encoder Descriptors (VC3 - VC6)
GRTC
0xFFF00000 - 0xFFF10000
CCSDS TC Decoder
AHB plug&play
0xFFFFF000 - 0xFFFFFFFF
Plug & Play
Table 4. APB address range - primary bus
Core
Address range
Comment
IRQMP
0x80000000 - 0x80010000
Interrupt controller
FTSRCTRL
0x80010000 - 0x80020000
Memory controller
AHBSTAT
0x80020000 - 0x80030000
AHB failing address register
FTAHBRAM
0x80030000 - 0x80040000
On-chip RAM, 4 kByte
FTAHBRAM
0x80040000 - 0x80050000
On-chip RAM, 16 kByte
AHBUART
0x80050000 - 0x80060000
Serial/AHB debug interface
GRTM
0x80060000 - 0x80070000
CCSDS TM Encoder
APB plug&play
0x800FF000 - 0x80100000
Plug & Play
Table 5. AMBA AHB address range - secondary bus
Core
Address range
Area
GRTM_PAHB
0xFFF70000 - 0xFFF80000
CCSDS TM Encoder VC Generation Input VC3
GRTM_PAHB
0xFFF80000 - 0xFFF90000
CCSDS TM Encoder VC Generation Input VC4
AHB plug&play
0xFFFFF000 - 0xFFFFFFFF
Plug & Play
Table 6. APB address range - secondary bus
Core
Address range
Comment
GRTM_PAHB
0x80070000 - 0x80080000
CCSDS TM Encoder VC Generation Input VC3
GRTM_PAHB
0x80080000 - 0x80090000
CCSDS TM Encoder VC Generation Input VC4
APB plug&play
0x800FF000 - 0x80100000
Plug & Play
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
19
CCSDS TM / TC and SpaceWire FPGA
Table 7. AMBA AHB address range - third bus
Core
Address range
Area
GRTM_PAHB
0xFFF90000 - 0xFFFA0000
CCSDS TM Encoder VC Generation Input VC5
GRTM_PAHB
0xFFFA0000 - 0xFFFB0000
CCSDS TM Encoder VC Generation Input VC6
AHB plug&play
0xFFFFF000 - 0xFFFFFFFF
Plug & Play
Table 8. APB address range - third bus
2.8
Core
Address range
Comment
GRTM_PAHB
0x80090000 - 0x800A0000
CCSDS TM Encoder VC Generation Input VC5
GRTM_PAHB
0x800A0000 - 0x800B0000
CCSDS TM Encoder VC Generation Input VC6
APB plug&play
0x800FF000 - 0x80100000
Plug & Play
Signals
The functional signals are shown in table 9. Note that index 0 is MSB for TM/TC signals.
Table 9. External signals
Name
Usage
Direction
Polarity
Reset
clk
System and telemetry transmitter clock
In
Rising
-
resetn
System reset
In
Low
-
irq
System interrupt
Out
High
Low
dsutx
Debug UART transmit data
Out
Low
-
dsurx
Debug UART receive data
In
Low
-
transclk
Telemetry transmitter clock
In
High
-
caduclk[0:2]
Telemetry CADU serial bit clock output
Out
-
Low
caduout[0:2]
Telemetry CADU serial bit data output
Out
-
Low
caduclk[3]
Telemetry CADU serial bit clock output
Out
-
Low
caduout[3]
Telemetry CADU serial bit data output, Manchester coded
Out
-
Low
tcscid[0:9]
Telecommand Spacecraft identifier
In
-
-
tcvcid[0:5]
Telecommand (hardware command) Virtual Channel identifier
In
-
-
tcrfpos
Telecommand RF Available positive level selection
In
High
-
tchigh
Telecommand input active (bit lock) positive level selection
In
High
-
tcrise
Telecommand serial bit clock rising edge selection
In
High
-
tcpseudo
Telecommand Pseudo-Derandomiser decoder enable
In
High
-
tcmark
Telecommand NRZ-M de-modulation enable
In
High
-
tcrfa[0:3]
Telecommand CLTU RF available indicator
In
-
-
tcactive[0:3]
Telecommand CLTU input active indicator (bit lock)
In
-
-
tcclk[0:3]
Telecommand CLTU serial bit clock input
In
-
-
tcdata[0:3]
Telecommand CLTU serial bit data input
In
-
-
tcgpio[0:31]
Telecommand (hardware command) parallel output
Out
High
Low
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
20
CCSDS TM / TC and SpaceWire FPGA
Table 9. External signals
Name
Usage
Direction
Polarity
Reset
clcwin[0:1]
Telemetry CLCW asynchronous bit serial inputs
In
-
-
clcwout[0:1]
Telecommand CLCW asynchronous bit serial outputs
Out
-
High
spw_clk
Transmitter default run-state clock
In
Rising
-
spw_rxd[0:2]
Data input, positive
In
High
-
spw_rxdn[0:2]
Data input, negative {spare}
In, LVDS
Low
-
spw_rxs[0:2]
Strobe input, positive
In
High
-
spw_rxsn[0:2]
Strobe input, negative {spare}
In, LVDS
Low
-
spw_txd[0:2]
Data output, positive
Out
High
Low
spw_txdn[0:2]
Data output, negative {spare}
Out, LVDS
Low
Low
spw_txs[0:2]
Strobe output, positive
Out
High
Low
spw_txsn[0:2]
Strobe output, negative {spare}
Out, LVDS
Low
Low
address[27:0]
Memory word address
Out
High
-
data[31:0]
Memory data bus
BiDir
High
Tristate
cb[7:0]
Memory checkbits
BiDir
High
Tristate
ramsn[7:0]
SRAM chip selects
Out
Low
High
ramoen[7:0]
SRAM output enable
Out
Low
High
ramben[3:0]
SRAM read/write byte enable
Out
Low
High
rwen[3:0]
SRAM write enable strobe
Out
Low
High
romsn[7:0]
PROM chip select
Out
Low
High
oen
PROM output enable
Out
Low
High
writen
PROM write strobe
Out
Low
High
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
2.9
21
CCSDS TM / TC and SpaceWire FPGA
Abbreviations and acronyms
AHB
AMBA Advanced High-Speed Bus
AHBCTRL
AMBA AHB Controller with plug&play support (IP core)
AMBA
Advanced Microcontroller Bus Architecture
AOS
Advanced Orbiting Systems
APB
AMBA Advanced Peripheral Bus
APBCTRL
AMBA AHB/APB Bridge with plug&play support (IP core)
ARM
Advanced RISC Machine
ASIC
Application Specific Integrated Circuit
ASM
Attached Synchronization Marker
BCH
Bose Chaudhuri Hocquenghem
CADU
Channel Access Data Unit
CCSDS
Consultative Committee for Space Data Systems
CLCW
Command Link Control Word
CLTU
Command Link Transfer Unit
CMOS
Complementary Metal-Oxide Semiconductor
COP-1
Communications Operation Procedure-1
CQFP
Ceramic Quad Flat Package
CRC
Cyclic Redundancy Code
DMA
Direct Memory Access
ECSS
European Cooperation on Space Standardization
EDAC
Error Detection And Correction
EGSE
Electrical Ground Support Equipment
EM
Engineering Model
ESA
European Space Agency
FARM
Frame Acceptance and Reporting Mechanism
FECF
Frame Error Control Field
FHEC
Frame Header Error Control
FHP
First Header Pointer
FIFO
First In First Out
FM
Flight Model
FPGA
Field Programmable Gate Array
FSH
Frame Secondary Header
FTAHBRAM
On-chip SRAM with EDAC and AHB interface (IP core)
FTMCTRL
Memory Controller with EDAC (IP core)
FTSRCTRL
Fault Tolerant 32-bit PROM/SRAM/IO Controller (IP core)
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
22
CCSDS TM / TC and SpaceWire FPGA
GF
Galois Field
GPIO
General Purpose Input Output
GRLIB
Aeroflex Gaisler VHDL IP Core Library
GRSPW
SpaceWire codec with AHB host Interface and RMAP support (IP core)
GRTC
Telecommand Decoder
GRTM
Telemetry Encoder
HDL
Hardware Description Language
ID
Identifier
I/O
Input/Output
IP
Intellectual Property
IRQMP
Interrupt Controller (IP core)
JTAG
Joint Test Action Group
kbit/s
Thousand bits per second
kbps
Thousand bits per second
kByte
1024 bytes
LET
Linear Energy Transfer
LFSR
Linear Feedback Shift Register
LSB
Least Significant Bit/Byte
LVTTL
Low Voltage Transistor Transistor Logic
Mbit/s
Million bits per second
Mbps
Million bits per second
MByte
1048576 bytes
MC
Master Channel
MC_OCF
Master Channel associated Operation Control Field
MHz
Million Hertz
MRAM
Magneto-resistive Random Access Memory
MSB
Most Significant Bit/Byte
NRZ-L
Non Return to Zero - Level encoding
NRZ-M
Non Return to Zero - Mark encoding
OCF
Operational Control Field
PROM
Programmable Ready Only Memory
PSR
Pseudo Randomiser
PSS
Procedures, Standards and Specifications
RF
Radio Frequency
RISC
Reduced Instruction Set Computing
RMAP
Remote Memory Access Protocol
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
23
RS
Reed-Solomon
SCID
Spacecraft Identifier
SEL
Single Event Latch-up
SEU
Single Event Upsets
SRAM
Static Random Access Memory
TBD
To Be Defined
TC
Telecommand
TM
Telemetry
UART
Universal Asynchronous Receiver Transmitter
VC
Virtual Channel
VHDL
VHSIC Hardware Description Language
VHSIC
Very High Speed Integrated Circuit
XOR
Exclusive-or
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
CCSDS TM / TC and SpaceWire FPGA
December 2009, Version 1.5
GAISLER
24
3
Conventions
3.1
Consultative Committee for Space Data Systems
CCSDS TM / TC and SpaceWire FPGA
Convention according to the Consultative Committee for Space Data Systems (CCSDS) recommendations, applying to all relevant structures:
•
The most significant bit of an array is located to the left, carrying index number zero, and is
transmitted first.
•
An octet comprises eight bits.
General convention, applying to signals and interfaces:
•
Signal names are in mixed case.
•
An upper case '_N' suffix in the name indicates that the signal is active low.
CCSDS n-bit field
most significant
least significant
0
1 to n-2
n-1
Table 10. CCSDS n-bit field definition
3.2
Galois Field
Convention according to the Consultative Committee for Space Data Systems (CCSDS) recommendations, applying to all Galois Field GF(28) symbols:
•
A Galois Field GF(28) symbol comprises eight bits.
•
The least significant bit of a symbol is located to the left, carrying index number zero, and is
transmitted first.
Galois Field GF(28) symbol
least significant
most significant
0
1 to 6
7
GR-TMTC-0002
December 2009, Version 1.5
Table 11. Galois Field GF(28) symbol definition
Copyright Aeroflex Gaisler AB
GAISLER
3.3
25
CCSDS TM / TC and SpaceWire FPGA
Telemetry Transfer Frame format
The Telemetry Transfer Frame specified in [CCSDS-132.0] and [ECSS-50-03A] is composed of a Primary Header, a Secondary Header, a Data Field and a Trailer with the following structures.
Transfer Frame
Transfer Frame Data Field
Transfer Frame Trailer
Primary
Transfer Frame Header
Secondary (optional)
ket | Packet | Pa
OCF / FECF (optional)
6 octets
variable
variable
0 / 2 /4 / 6 octets
up to 2048 octets
Table 12. Telemetry Transfer Frame format
Transfer Frame Primary Header
Frame Identification
Version
VC
S/C
Id
OCF
Id
Master Channel Virtual Channel
Frame
Frame
Count
Flag
Frame
Data
Count
Field
Status
2 bits
0:1
10 bits
2:11
3 bits
1 bit
12:14
15
2 octets
8 bits
8 bits
16 bits
1 octet
1 octet
2 octets
Table 13. Telemetry Transfer Frame Primary Header format
Frame Data Field Status
Secondary Header Flag
Sync Flag
Packet Order Flag
Segment Length Id
First Header Pointer
1 bit
1 bit
1 bit
2 bits
11 bits
0
1
2
3:4
5:15
2 octets
Table 14. Part of Telemetry Transfer Frame Primary Header format
Transfer Frame Secondary Header (optional)
Secondary Header Identification
Secondary Header Data Field
Secondary Header Version
Secondary Header Length
2 bits
0:1
6 bits
2:7
Custom data
1 octet
up to 63 octets
Table 15. Telemetry Transfer Frame Secondary Header format
Transfer Frame Trailer (optional)
Operational Control Field (optional)
Frame Error Control Field (optional)
0 / 4 octets
0 / 2 octets
Table 16. Telemetry Transfer Frame Trailer format
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
3.4
26
CCSDS TM / TC and SpaceWire FPGA
Reed-Solomon encoder data format
The applicable standards [CCSDS-131.0] and [ECSS-50-01A] specify a Reed-Solomon E=16 (255,
223) code resulting in the frame lengths and codeblock sizes listed in table 17.
Interleave depth
Attached Synchronization Marker
1
4 octets
Transfer Frame
Reed-Solomon Check Symbols
223 octets
32 octets
2
446 octets
64 octets
3
669 octets
96 octets
4
892 octets
128 octets
5
1115 octets
160 octets
8
1784 octets
256 octets
Table 17. Reed-Solomon E=16 codeblocks with Attached Synchronisation Marker
The applicable standards [CCSDS-131.0] also specifies a Reed-Solomon E=8 (255, 239) code resulting in the frame lengths and codeblock sizes listed in table 18.
Interleave depth
Attached Synchronization Marker
Transfer Frame
Reed-Solomon Check Symbols
1
4 octets
239 octets
16 octets
2
478 octets
32 octets
3
717 octets
48 octets
4
956 octets
64 octets
5
1195 octets
80 octets
8
1912 octets
128 octets
Table 18. Reed-Solomon E=8 codeblocks with Attached Synchronisation Marker
3.5
Attached Synchronization Marker
The Attached Synchronization Marker pattern depends on the encoding scheme in use, as specified in
[CCSDS-131.0] and [ECSS-50-01A] as shown in table 19.
Mode
Hexadecimal stream (left to right)
Nominal
1ACFFC1Dh
Table 19. Attached Synchronization Marker hexadecimal pattern
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
3.6
27
CCSDS TM / TC and SpaceWire FPGA
Telecommand Transfer Frame format
The Telecommand Transfer Frame specified in [CCSDS-232.0] and [ECSS-50-04A] is composed of a
Primary Header, a Data Field and a trailer with the following structures.
Transfer Frame
Transfer Frame Primary
Header
Segment Header (optional)
Transfer Frame Data Field
ket | Packet | Pa
Frame Error Control Field
FECF (optional)
5 octets
variable
variable
2 octets
up to 1024 octets
Table 20. Telecommand Transfer Frame format
Transfer Frame Primary Header
Version
Bypass
Control
Reserved
S/C
Virtual
Frame
Frame
Flag
Command
Spare
Id
Channel
Length
Sequence
Flag
Id
Number
2 bits
1 bit
1 bit
2 bits
10 bits
6 bits
10 bits
8 bits
0:1
3
4
5
6:15
16:21
22:31
32:39
2 octets
2 octets
1 octet1
Table 21. Telecommand Transfer Frame Primary Header format
Segment Header (optional)
Sequence Flags
Multiplexer Access Point (MAP) Id
2 bits
6 bits
40:41
42:47
1 octet
Table 22. Transfer Frame Secondary Header format
3.7
Command Link Control Word
The Command Link Control Word (CLCW) can be transmitted as part of the Operation Control Field
(OCF) in a Transfer Frame Trailer. The CLCW is specified in [CCSDS-232.0] and [ECSS-50-04A]
and is listed in table 23.
Command Link Control Word
Control Word Type
Version Number
Status Field
COP in Effect
Virtual Channel Identifier
Reserved Spare
0
1:2
3:5
6:7
8:13
14:15
1 bit
2 bits
3 bits
2 bits
6 bits
2 bits
No RF Available
No Bit Lock
Lock Out
Wait
Retransmit FARM B Reserved
Counter
Spare
Report Value
16
17
18
19
20
21:22
23
1 bit
1 bit
1 bit
1 bit
1 bit
2 bits
1 bit
24:31
Table 23. Command Link Control Word
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
3.8
28
CCSDS TM / TC and SpaceWire FPGA
Space Packet
The Space Packet defined in the CCSDS [CCSDS-133.0] recommendation and is listed in table 24.
Space Packet
Primary Header
Packet Packet Identification
Version Type Secondary
Application
Number
Header Flag
Process Id
Packet Data Field
Packet Sequence Control
Packet
Secondary
User
Packet
Sequence
Flags
Sequence
Count
Data
Header
Data
Error
Length
(optional)
Field
Control
(optional)
variable
variable
variable
0:2
3
4
5:15
16:17
18:31
32:47
3 bits
1 bit
1 bit
11 bits
2 bits
14 bits
16 bits
Table 24. CCSDS Space Packet format
3.9
Asynchronous bit serial data format
The asynchronous bit serial interface complies to the data format defined in [EIA232]. It also complies to the data format and waveform shown in table 25 and figure 3. The interface is independent of
the transmitted data contents. Positive logic is considered for the data bits. The number of stop bits
can optionally be either one or two. The parity bit can be optionally included.
Asynchronous
bit serial format
start
D0
first
lsb
General data format
i = {0, n}
D1
D2
D3
D4
D5
D6
D7
parity stop
msb
stop
last
8*i+7 8*i+6 8*i+5 8*i+4 8*i+3 8*i+2 8*i+1 8*i
last
first
Table 25. Asynchronous bit serial data format
3.10
SpaceWire Remote Memory Access Protocol (RMAP)
A general definition of RMAP commands is specified in [RMAP].
For Telemetry Virtual Channels 3 through 6, a complete CCSDS Space Packet [CCSDS-133.0] is carried inside an RMAP write command [RMAP], which in turn is carried inside a SpaceWire packet
[SPW], as shown in the table 26.
SpaceWire
Packet
RMAP
Write
Command
Destination
Address
Target
SpaceWire
Address
Target
Logical
Address
Cargo
Protocol
Identifier
Instruction
Key
Reply
Address
Initiator
Logical
Address
Transaction
Identifier
Extended
Address
EOP
Address
Data
Length
Header
CRC
CCSDS
Space
Packet
Data
Data
CRC
EOP
1 byte
token
CCSDS
Space
Packet
optional,
variable
1 byte
1 byte
1 byte
1 byte
optional,
variable
1 byte
2 bytes
1 byte
4 bytes
3 bytes
1 byte
variable
Table 26. CCSDS Space Packet, inside RMAP write command, inside SpaceWire packet
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
3.11
29
CCSDS TM / TC and SpaceWire FPGA
Command Link Control Word interface (CLCW)
Table 27. CLCW transmission protocol
3.12
Byte
Number
CLCW
register bits
CLCW contents
First
[31:24]
Control Word Type
CLCW
Version Number
Second
[23:16]
Virtual Channel ID
Reserved Field
Third
[15:8]
No RF Available
No Bit Lock
Fourth
[7:0]
Report Value
Fifth
N/A
[RS232 Break Command]
Status
Field
COP In Effect
Lock
Out
Wait
Retransmit
Farm B
Counter
Report
Type
Waveform formats
The design receives and generates the waveform formats shown in the following figures.
Start
bit
Data
Stop
bits
Start LSB
MSB Stop
Start LSB
MSB Stop Stop
Start
bit
Parity Stop
bits
Data
Start LSB
Start LSB
MSB
P
Stop
MSB
P
Stop Stop
Break
Start
Stop
Figure 3. Asynchronous bit serial protocol / waveform
Delimiter
Clock
Data
0
MSB
1
2
3
4
5
6
7
n-8 n-7 n-6 n-5 n-4 n-3 n-2 n-1
LSB
Figure 4. Telecommand input protocol / waveform
1
0
0
1
1
Data:
Clock
Manchester
Figure 5. Manchester encoded waveform (IEEE 802.3) (when GRTM physical layer register bit SF=0)
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
30
4
Telemetry Encoder
4.1
Overview
CCSDS TM / TC and SpaceWire FPGA
The CCSDS/ECSS/PSS Telemetry Encoder implements part of the Data Link Layer, covering the
Protocol Sub-layer and the Frame Synchronization and Coding Sub-layer and part of the Physical
Layer of the packet telemetry encoder protocol. The operation of the Telemetry Encoder is highly programmable by means of control registers. The Telemetry Encoder comprises several encoders and
modulators implementing the Consultative Committee for Space Data Systems (CCSDS) recommendations, European Cooperation on Space Standardization (ECSS) and the European Space Agency
(ESA) Procedures, Standards and Specifications (PSS) for telemetry and channel coding.
The encoder comprises the following:
•
Packet Telemetry Encoder (TM)
•
Reed-Solomon Encoder
•
Pseudo-Randomiser (PSR)
•
Non-Return-to-Zero Level / Mark encoder (NRZ-L/NRZ-M)
•
Convolutional Encoder (CE)
•
Clock Divider (CD)
Virtual Channel
Generation
AMBA
AHB
Master
DMA
FIFO
Master Channel
Generation
Idle Frame
Generation
OCF
Master Channel Mux
AMBA
APB
Slave
All Frame Generation
Coding Sub-Layer
AMBA APB
Virtual Channel & Master Channel
Frame Services
Attached Sync Mark
System clock domain
Reed-Solomon
Pseudo-Randomiser
NRZ-L
Convolutional
-
GRTM
Octet clock domain
Transponder
clock domain
Clock
Divider
Physical Layer
AMBA AHB
Virtual Channel Mux
Data Link Protocol Sub-Layer
Note that the SpaceWire input interface is described separately. The SpaceWire interfaces and corresponding Virtual Channel Generation function and buffer memories are not shown in the block diagram below, as is the case for the CLCW multiplexing function.
Telemetry output
Figure 6. Block diagram
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
4.2
31
CCSDS TM / TC and SpaceWire FPGA
Layers
4.2.1
Introduction
The relationship between Packet Telemetry standard and the Open Systems Interconnection (OSI) reference model is such that the OSI Data Link Layer corresponds to two separate layer, namely the Data
Link Protocol Sub-layer and Synchronization and Channel Coding Sub-Layer.
4.2.2
Data Link Protocol Sub-layer
The following functionality is not implemented in the core:
•
Packet Processing
•
Virtual Channel Frame Service (DMA functionality only) (see also Virtual Channel 3, 4, 5 and 6)
•
Master Channel Frame Service (only single Spacecraft Identifier supported)
•
Master Channel Multiplexing (only single Spacecraft Identifier supported)
The following functionality is implemented in the core:
•
Virtual Channel Generation (for Virtual Channels 3, 4, 5 and 6)
•
Virtual Channel Generation (for Idle Frame generation only, e.g. Virtual Channel 7)
•
Master Channel Generation (for all frames)
•
All Frame Generation (for all frames)
4.2.3
Synchronization and Channel Coding Sub-Layer
The following functionality is implemented in the core:
•
Attached Synchronization Marker
•
Reed-Solomon coding
•
Pseudo-Randomiser
•
Convolutional coding
4.2.4
Physical Layer
The following functionality is implemented in the core:
•
4.3
Non-Return-to-Zero Level / Mark modulation
Data Link Protocol Sub-Layer
4.3.1
Physical Channel
The configuration of a Physical Channel covers the following parameters:
•
Transfer Frame Length is fixed to 1115 octets
•
Transfer Frame Version Number is fixed to 0, i.e. Packet Telemetry
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
32
4.3.2
CCSDS TM / TC and SpaceWire FPGA
Virtual Channel Frame Service
The Virtual Channel Frame Service is implemented by means of a DMA interface, providing the user
with a means for inserting Transfer Frames into the Telemetry Encoder. Transfer Frames are automatically fetched from memory, for which the user configures a descriptor table with descriptors that
point to each individual Transfer Frame. For each individual Transfer Frame the descriptor also provides means for bypassing functions in the Telemetry Encoder. This includes the following:
•
Virtual Channel Counter generation can be enabled in the Virtual Channel Generation function
(this function is normally only used for Idle Frame generation but can be used for the Virtual
Channel Frame Service when sharing a Virtual Channel, e.g. Virtual Channel 7)
•
Master Channel Counter generation can be bypassed in the Master Channel Generation function
•
Operational Control Field (OCF) generation can be bypassed in the Master Channel Generation
function
•
Frame Error Control Field (FECF) generation can be bypassed in the All Frame Generation function
Note that the above features can only be bypassed for each Transfer Frame, the overall enabling of the
features is done for the corresponding functions in the Telemetry Encoder, as described in the subsequent sections. The detailed operation of the DMA interface is described in section 4.7.
4.3.3
Virtual Channel Generation - Virtual Channels 3, 4, 5 and 6
There is a Virtual Channel Generation function for each of Virtual Channels 3, 4, 5 and 6. The channels have each an on-chip memory buffer to store two complete Transfer Frames (see section 12).
Each Virtual Channel Generation function receives data from the SpaceWire interface that are stored
in the on-chip memory buffer that is EDAC protected (see section 5).
The function supports:
•
Transfer Frame Primary Header insertion
•
Transfer Frame Data Field insertion (with support for different lengths due to OCF and FECF)
•
First Header Pointer (FHP) handling and insertion
The function keeps track of the number of octets received and the packet boundaries in order to calculated the First Header Pointer (FHP). The data are stored in pre-allocated slots in the buffer memory
comprising complete Transfer Frames. The module fully supports the FHP generation and does not
require any alignment of the packets with the Transfer Frame Data Field boundary. The buffer memory space allocated to each Virtual Channel is treated as a circular buffer. The function communicates
with the Virtual Channel Frame Service by means of the on-chip buffer memory.
The data input format can be CCSDS Space Packet [CCSDS-133.0] or any user-defined data-block
(see section 5).
The Virtual Channel Generation function for Virtual Channels 3, 4, 5 and 6 is enabled through the
GRTM DMA External VC Control register. The transfer is done automatically via the Virtual Channel
Frame Service (i.e. DMA function).
4.3.4
Virtual Channel Generation - Idle Frames - Virtual Channel 7
The Virtual Channel Generation function is used to generate the Virtual Channel Counter for Idle
Frames as described here below.
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
33
4.3.5
CCSDS TM / TC and SpaceWire FPGA
Virtual Channel Multiplexing
The Virtual Channel Multiplexing Function is used to multiplex Transfer Frames of different Virtual
Channels of a Master Channel. Virtual Channel Multiplexing in the core is performed between three
sources: Transfer Frames provided through the Virtual Channel Frame Service (Virtual Channel 0, 1
and 2) (50% bandwidth), Virtual Channel Generation function (Virtual Channels 3, 4, 5 and 6) (50%
bandwidth) and Idle Frames (Virtual Channel 7). Note that multiplexing between different Virtual
Channels is assumed to be done as part of the Virtual Channel Frame Service outside the core, i.e. in
software for Virtual Channels 0, 1 and 2, and in hardware for Virtual Channels 3, 4, 5 and 6.
The Virtual Channel Frame Service (Virtual Channels 0, 1 and 2) user interface is described above.
The Idle Frame generation is described hereafter.
Bandwidth allocation between VC3, VC4, VC5 and VC6 is done in hardware and is equal between
these channels, see section 7.2.1. Bandwidth allocation between the two groups VC0-VC2 and VC3VC6 is equal, i.e. 50% each. Bandwidth allocation to VC7 is only done when no other VC has anything to send. If one VC has not data to send, then the next one can send.
Idle Frame generation can be enabled and disabled by means of a register. The Spacecraft ID to be
used for Idle Frames is programmable by means of a register. The Virtual Channel ID to be used for
Idle Frames is programmable by means of a register, e.g. Virtual Channel 7.
Master Channel Counter generation for Idle Frames can be enabled and disabled by means of a register. Note that it is also possible to generate the Master Channel Counter field as part of the Master
Channel Generation function described in the next section. When Master Channel Counter generation
is enabled for Idle Frames, then the generation in the Master Channel Generation function is
bypassed.
4.3.6
Master Channel Generation
The Master Channel Counter is generated for all frames on the master channel.
The Operational Control Field (OCF) is generated from a 32-bit input, via the Command Link Control
Word (CLCW) input of the Telecommand Decoder - Software Commands (see section 8.9) or the
internal Telecommand Decoder - Hardware Commands. This is done for all frames on the master
channel (MC_OCF).
The transmit order repeats every fourth Transfer Frames and is as follows:
•
CLCW from the internal software commands register (Telecommand Decoder CLCW Register 1
(CLCWR1), see section 8.9 for details) is transmitted in Transfer Frames with Transfer Frame
Master Channel Counter value ending with bits 0b00.
•
CLCW from the internal hardware commands is transmitted in Transfer Frames with Transfer
Frame Master Channel Counter value ending with bits 0b01.
•
CLCW from the external asynchronous bit serial interface input clcwin[0] is transmitted in
Transfer Frames with Transfer Frame Master Channel Counter value ending with bits 0b10.
•
CLCW from the external asynchronous bit serial interface input clcwin[1] is transmitted in
Transfer Frames with Transfer Frame Master Channel Counter value ending with bits 0b11.
Note that bit 16 (No RF Available) and 17 (No Bit Lock) of the CLCW and project specific OCF are
taken from information carried on discrete inputs tcrfa[ ] and tcactive[ ].
4.3.7
Master Channel Frame Service
The Master Channel Frame Service is not implemented.
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
34
4.3.8
CCSDS TM / TC and SpaceWire FPGA
Master Channel Multiplexing
The Master Channel Multiplexing Function is not implemented.
4.3.9
All Frame Generation
The All Frame Generation functionality operates on all transfer frames of a Physical Channel.
Frame Error Control Field (FECF) generation can be enabled and disabled by means of registers.
4.4
Synchronization and Channel Coding Sub-Layer
4.4.1
Attached Synchronization Marker
The 32-bit Attached Synchronization Marker is placed in front of each Transfer Frame as per
[CCSDS-131.0] and [ECSS-50-03A].
4.4.2
Reed-Solomon Encoder
The CCSDS recommendation [CCSDS-131.0] and ECSS standard [ECSS-50-03A] specify ReedSolomon codes, one (255, 223) code. The ESA PSS standard [PSS-04-103] only specifies the former
code. Although the definition style differs between the documents, the (255, 223) code is the same in
all three documents. The definition used in this document is based on the PSS standard [PSS-04-103].
The Reed-Solomon encoder is compliant with the coding algorithms in [CCSDS-131.0] and [ECSS50-03A]:
•
there are 8 bits per symbol;
•
there are 255 symbols per codeword;
•
the encoding is systematic:
•
for E=16 or (255, 223), the first 223 symbols transmitted are information symbols, and the last 32
symbols transmitted are check symbols;
•
the E=16 code can correct up to 16 symbol errors per codeword;
•
the field polynomial is
8
6
4
3
2
f esa ( x ) = x + x + x + x + x + x + 1
•
the code generator polynomial for E=8 is
135
g esa ( x ) =
∏
16
i
(x + α ) =
i = 120
∑ gj ⋅ x
j
j=0
for which the highest power of x is transmitted first;
•
the code generator polynomial for E=16 is
143
g esa ( x ) =
∏
32
i
(x + α ) =
i = 112
∑ gj ⋅ x
j
j=0
for which the highest power of x is transmitted first;
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
35
CCSDS TM / TC and SpaceWire FPGA
•
interleaving is supported for depth I = {1 to 8}, where information symbols are encoded as I
codewords with symbol numbers i + j*I belonging to codeword i {where 0 ≤ i < I and 0 ≤ j <
255};
•
shortened codeword lengths are supported;
•
the input and output data from the encoder are in the representation specified by the following
transformation matrix Tesa, where i0 is transferred first
ι0 ι 1 ι2 ι 3 ι4 ι5 ι 6 ι7 = α7 α6 α5 α4 α3 α2 α 1 α0
•
0
1
0
0
0
0
1
1
1
0
0
0
1
1
1
1
1
1
0
0
1
0
1
1
0
1
0
1
1
1
1
1
1
1
1
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
1
1
0
1
0
1
1
1
0
1
1
0
0
1
1
1
1
0
0
1
0
0
0
1
1
1
0
1
1
0
1
1
1
0
0
0
1
0
the following matrix T-1esa specifying the reverse transformation
α7 α 6 α5 α4 α3 α2 α1 α0 = ι0 ι 1 ι2 ι3 ι 4 ι5 ι 6 ι7
•
0
0
1
× 0
0
0
0
0
1
0
0
× 0
1
0
0
1
1
1
0
1
0
1
0
0
1
0
0
0
0
0
0
0
the Reed-Solomon output is non-return-to-zero level encoded.
The Reed-Solomon Encoder encodes a bit stream from preceding encoders and the resulting symbol
stream is output to subsequent encoder and modulators. The encoder generates codeblocks by receiving information symbols from the preceding encoders which are transmitted unmodified while calculating the corresponding check symbols which in turn are transmitted after the information symbols.
The check symbol calculation is disabled during reception and transmission of unmodified data not
related to the encoding. The calculation is independent of any previous codeblock and is perform correctly on the reception of the first information symbol after a reset.
Each information symbol corresponds to an 8 bit symbol. The symbol is fed to a binary network in
which parallel multiplication with the coefficients of a generator polynomial is performed. The products are added to the values contained in the check symbol memory and the sum is then fed back to
the check symbol memory while shifted one step. This addition is performed octet wise per symbol.
This cycle is repeated until all information symbols have been received. The contents of the check
symbol memory are then output from the encoder. The encoder is based on a parallel architecture,
including parallel multiplier and adder.
The interleave depth is chosen during operation by means of a configuration register.
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
4.4.3
36
CCSDS TM / TC and SpaceWire FPGA
Pseudo-Randomiser
The Pseudo-Randomiser (PSR) generates a bit sequence according to [CCSDS-131.0] and [ECSS-5003A] which is xor-ed with the data output of preceding encoders. This function allows the required bit
transition density to be obtained on a channel in order to permit the receiver on ground to maintain bit
synchronization. The polynomial for the Pseudo-Randomiser is h (x) = x8+x7+x5+x3+1 and is implemented as a Fibonacci version (many-to-one implementation) of a Linear Feedback Shift Register
(LFSR). The registers of the LFSR are initialized to all ones between Transfer Frames. The Attached
Synchronization Marker (ASM) is not effected by the encoding.
data in
x8
x7
x6
x5
x4
x3
x2
data out
x1
initialise to all zero
Figure 7. Pseudo-randomiser
4.4.4
Convolutional Encoder
The Convolutional Encoder (CE) implements the basic convolutional encoding scheme. The ESA
PSS standard [PSS-04-103] specifies a basic convolutional code without puncturing. This basic convolutional code is also specified in the CCSDS recommendation [CCSDS-131.0] and ECSS standard
[ECSS-50-03A], which in addition specifies a punctured convolutional code.
The basic convolutional code has a code rate of 1/2, a constraint length of 7, and the connection vectors G1 = 1111001b (171 octal) and G2 = 1011011b (133 octal) with symbol inversion on output path,
where G1 is associated with the first symbol output.
G1
data out G1
1
data in
x6
x5
x4
x3
x2
x1
data out
2
data out G2
G2
Figure 8. Unpuctured convolutional encoder
4.5
Physical Layer
4.5.1
Non-Return-to-Zero Level encoder
The Non-Return-to-Zero Mark encoder (NRZ) encodes differentially a bit stream from preceding
encoders according to [ECSS-50-05A]. The waveform is shown in figure 9. Both data and the
Attached Synchronization Marker (ASM) are affected by the coding. When the encoder is not
enabled, the bit stream is by default non-return-to-zero level encoded.
Symbol:
1
0
0
1
0
1
1
0
NRZ-L
NRZ-M
Figure 9. NRZ-L and NRZ-M waveform
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
37
4.5.2
CCSDS TM / TC and SpaceWire FPGA
Clock Divider
The Clock Divider (CD) provides clock enable signals for the telemetry and channel encoding chain.
The clock enable signals are used for controlling the bit rates of the different encoder and modulators.
The source for the bit rate frequency is the dedicated bit rate clock input. The bit rate clock input can
be divided to a degree 215. The divider can be configured during operation to divide the bit rate clock
frequency from 1/1 to 1/215.
The bit rate frequency is based on the output frequency of the last encoder in a coding chain, except
for the sub-carrier modulator. No actual clock division is performed, since clock enable signals are
used. No clock multiplexing is performed in the core.
The Clock Divider (CD) supports clock rate increases for the following encoders and rates:
•
Convolutional Encoder (CE), 1/2, 2/3, 3/4, 5/6 and 7/8
The resulting symbol rate and telemetry rate are depended on what encoders and modulators are
enabled. The following variables are used in the tables hereafter: f = input bit frequency, n = SYMBOLRATE+1 (GRTM physical layer register field +1), c = convolutional coding rate {1/2, 2/3, 3/4, 5/
6, 7/8) (see CERATE field in GRTM coding sub-layer register).
Table 28. Data rates without sub-carrier modulation
Coding &
Modulation
CE
Telemetry
rate
f/n
(f / n) * c
Convolutional
rate
f/n/m
Split-Phase
rate
-
Sub-carrier
frequency
-
Output symbol
rate
f/n
f/n
Output clock
frequency
f/n
f/n
For n = 1, no output symbol clock is generated, i.e. SYMBOLRATE register field equals 0.
n should be an even number, i.e. SYMBOLRATE register field should be uneven and > 0 to generate an output symbol clock with 50% duty cycle. This also
applies to the Manchester encoded output waveform duty cycle.
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
4.6
38
CCSDS TM / TC and SpaceWire FPGA
Connectivity
The output from the Packet Telemetry encoder can be connected to:
•
Reed-Solomon encoder
•
Pseudo-Randomiser
•
Non-Return-to-Zero encoder
•
Convolutional encoder
The input to the Reed-Solomon encoder can be connected to:
•
Packet Telemetry encoder
The output from the Reed-Solomon encoder can be connected to:
•
Pseudo-Randomiser
•
Non-Return-to-Zero encoder
•
Convolutional encoder
The input to the Pseudo-Randomiser (PSR) can be connected to:
•
Packet Telemetry encoder
•
Reed-Solomon encoder
The output from the Pseudo-Randomiser (PSR) can be connected to:
•
Non-Return-to-Zero encoder
•
Convolutional encoder
The input to the Non-Return-to-Zero encoder (NRZ) can be connected to:
•
Packet Telemetry encoder
•
Reed-Solomon encoder
•
Pseudo-Randomiser
The output from the Non-Return-to-Zero encoder (NRZ) can be connected to:
•
Convolutional encoder
The input to the Convolutional Encoder (CE) can be connected to:
•
Packet Telemetry encoder
•
Reed-Solomon encoder
•
Pseudo-Randomiser
•
Non-Return-to-Zero encoder
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
4.7
39
CCSDS TM / TC and SpaceWire FPGA
Operation
4.7.1
Introduction
The DMA interface provides a means for the user to insert Transfer Frames in the Packet Telemetry
and AOS Encoder. Depending on which functions are enabled in the encoder, the various fields of the
Transfer Frame are overwritten by the encoder. It is also possible to bypass some of these functions
for each Transfer Frame by means of the control bits in the descriptor associated to each Transfer
Frame. The DMA interface allows the implementation of Virtual Channel Frame Service and Master
Channel Frame Service, or a mixture of both, depending on what functions are enabled or bypassed.
4.7.2
Descriptor setup
The transmitter DMA interface is used for transmitting transfer frames on the downlink. The transmission is done using descriptors located in memory.
A single descriptor is shown in table 29 and 30. The number of bytes to be sent is set globally for all
transfer frames in the length field in register DMA length register. The the address field of the descriptor should point to the start of the transfer frame. The address must be word-aligned. If the interrupt
enable (IE) bit is set, an interrupt will be generated when the transfer frame has been sent (this
requires that the transmitter interrupt enable bit in the control register is also set). The interrupt will be
generated regardless of whether the transfer frame was transmitted successfully or not. The wrap
(WR) bit is also a control bit that should be set before transmission and it will be explained later in
this section.
Table 29. GRTM transmit descriptor word 0 (address offset 0x0)
31
16
RESERVED
15
14
13 10
9
8
7
UE
TS
0000
VCE
MCB
FSHB
6
5
OCFB FHECB
4
3
2
1
0
IZB
FECFB
IE
WR
EN
31: 16
RESERVED
15
Underrun Error (UE) - underrun occurred while transmitting frame (status bit only)
14
Time Strobe (TS) - generate a time strobe for this frame
13: 10
RESERVED
9
Virtual Channel Counter Enable (VCE) - enable virtual channel counter generation (using the Idle
Frame virtual channel counter)
8
Master Channel Counter Bypass (MCB) - bypass master channel counter generation (TM only)
7
Frame Secondary Header Bypass (FSHB) - bypass frame secondary header generation (TM only)
6
Operational Control Field Bypass (OCFB) - bypass operational control field generation
5
Frame Error Header Control Bypass (FECHB) - bypass frame error header control generation (AOS)
4
Insert Zone Bypass (IZB) - bypass insert zone generation (AOS)
3
Frame Error Control Field Bypass (FECFB) - bypass frame error control field generation
2
Interrupt Enable (IE) - an interrupt will be generated when the frame from this descriptor has been
sent provided that the transmitter interrupt enable bit in the control register is set. The interrupt is
generated regardless if the frame was transmitted successfully or if it terminated with an error.
1
Wrap (WR) - Set to one to make the descriptor pointer wrap to zero after this descriptor has been
used. If this bit is not set the pointer will increment by 8. The pointer automatically wraps to zero
when the 1 kB boundary of the descriptor table is reached.
0
Enable (EN) - Set to one to enable the descriptor. Should always be set last of all the descriptor
fields.
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
40
CCSDS TM / TC and SpaceWire FPGA
Table 30. GRTM transmit descriptor word 1 (address offset 0x4)
31
2
ADDRESS
1
0
RES
31: 2
Address (ADDRESS) - Pointer to the buffer area from where the packet data will be loaded.
1: 0
RESERVED
To enable a descriptor the enable (EN) bit should be set and after this is done, the descriptor should
not be touched until the enable bit has been cleared by the core.
4.7.3
Starting transmissions
Enabling a descriptor is not enough to start a transmission. A pointer to the memory area holding the
descriptors must first be set in the core. This is done in the transmitter descriptor pointer register. The
address must be aligned to a 1 kByte boundary. Bits 31 to 10 hold the base address of descriptor area
while bits 9 to 3 form a pointer to an individual descriptor.The first descriptor should be located at the
base address and when it has been used by the core, the pointer field is incremented by 8 to point at
the next descriptor. The pointer will automatically wrap back to zero when the next 1 kByte boundary
has been reached (the descriptor at address offset 0x3F8 has been used). The WR bit in the descriptors
can be set to make the pointer wrap back to zero before the 1 kByte boundary.
The pointer field has also been made writable for maximum flexibility but care should be taken when
writing to the descriptor pointer register. It should never be touched when a transmission is active.
The final step to activate the transmission is to set the transmit enable bit in the DMA control register.
This tells the core that there are more active descriptors in the descriptor table. This bit should always
be set when new descriptors are enabled, even if transmissions are already active. The descriptors
must always be enabled before the transmit enable bit is set.
4.7.4
Descriptor handling after transmission
When a transmission of a frame has finished, status is written to the first word in the corresponding
descriptor. The Underrun Error bit is set if the FIFO became empty before the frame was completely
transmitted. The other bits in the first descriptor word are set to zero after transmission while the second word is left untouched. The enable bit should be used as the indicator when a descriptor can be
used again, which is when it has been cleared by the core.
There are multiple bits in the DMA status register that hold transmission status.
The Transmitter Interrupt (TI) bit is set each time a DMA transmission of a transfer frame ended successfully. The Transmitter Error (TE) bit is set each time a DMA transmission of a transfer frame
ended with an underrun error. For either event, an interrupt is generated for transfer frames for which
the Interrupt Enable (IE) was set in the descriptor (Virtual Channels 0 through 2 only). The interrupt is
maskable with the Interrupt Enable (IE) bit in the control register.
The Transmitter AMBA error (TA) bit is set when an AMBA AHB error was encountered either when
reading a descriptor or when reading transfer frame data. Any active transmissions were aborted and
the DMA channel was disabled (affects Virtual Channels 0 through 6). This can be a result of a DMA
access caused by any of Virtual Channels 0 through 6. It is recommended that the Telemetry Encoder
is reset after an AMBA AHB error. The interrupt is maskable with the Interrupt Enable (IE) bit in the
control register.
The Transfer Frame Sent (TFS) bit is set whenever a transfer frame has been sent, independently if it
was sent via the DMA interface or generated by the core. The interrupt is maskable with the Transfer
Frame Interrupt Enable (TFIE) bit in the control register. Any Virtual Channel causes this interrupt.
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
41
CCSDS TM / TC and SpaceWire FPGA
The Transfer Frame Failure (TFF) bit is set whenever a transfer frame has failed for other reasons,
such as when Idle Frame generation is not enabled and no user Transfer Frame is ready for transmission, independently if it was sent via the DMA interface or generated by the core. The interrupt is
maskable with the Transfer Frame Interrupt Enable (TFIE) bit in the control register.
The Transfer Frame Ongoing (TFO) bit is set when DMA transfers are enabled (Virtual Channels 0
through 2 only), and is not cleared until all DMA induced transfer frames have been transmitted after
DMA transfers are disabled.
The External Transmitter Interrupt (XTI) bit is set each time a DMA transmission of a transfer frame
ended successfully (unused here). The External Transmitter Error (XTE) bit is set each time a DMA
transmission of a transfer frame ended with an underrun error (for Virtual Channels 3 through 6 only).
4.7.5
Auto start
The telemetry encoder will automatically start transmitting Idle Telemetry Transfer Frames after an
external reset. The internal DMA service and the external Virtual Channels will be disabled.
The following register bit field will have pre-defined reset values:
GRTM DMA control register:
RST = 0
TXRST = 0
GRTM DMA Length register:
LIMIT-1 = 1114 (Transfer Frame length of 1115 octets)
LENGTH-1 = 1114 (Transfer Frame length of 1115 octets)
GRTM control register:
TE = 1
GRTM physical layer register:
SF = 0
SYMBOLRATE = 0x4 (division by 5)
GRTM coding sub-layer register:
RS = 1, RSDEPTH = 4 (interleave depth 5), and RS8 = 0
PSR = 1
NRZ = 0 (NRZ-L)
CE = 0
GRTM all frames generation register:
FECF = 0
GRTM master frame generation register:
MC = 1
OCF = 1 (MC_OCF service, on all frames)
OW = 1
GRTM idle frame generation register:
IDLE = 1
OCF = 1
VCID = 0x7
SCID = from tcscid[0:9] input
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
4.8
42
CCSDS TM / TC and SpaceWire FPGA
Registers
The core is programmed through registers mapped into APB address space.
Table 31. GRTM registers
APB address offset
Register
0x00
GRTM DMA Control register
0x04
GRTM DMA Status register
0x08
GRTM DMA Length register
0x0C
GRTM DMA Descriptor Pointer register
0x10
GRTM DMA Configuration register
0x14
GRTM DMA Revision register
0x20
GRTM DMA External VC Control & Status register
0x2C
GRTM DMA External VC Descriptor Pointer register
0x80
GRTM Control register
0x84
GRTM Status register (unused)
0x88
GRTM Configuration register
0x90
GRTM Physical Layer register
0x94
GRTM Coding Sub-Layer register
0x98
GRTM Attached Synchronization Marker (unused)
0xA0
GRTM All Frames Generation register
0xA4
GRTM Master Frame Generation register
0xA8
GRTM Idle Frame Generation register
0xC0
GRTM FSH/Insert Zone register 0 (unused)
0xC4
GRTM FSH/Insert Zone register 1 (unused)
0xC8
GRTM FSH/Insert Zone register 2 (unused)
0xCC
GRTM FSH/Insert Zone register 3 (unused)
0xD0
GRTM Operational Control Field register (unused)
Table 32. GRTM DMA control register
31
5
RESERVED
4
3
2
1
0
TFIE
RST
TXRST
IE
EN
31: 5
RESERVED
4
Transfer Frame Interrupt Enable (TFIE) - enable telemetry frame sent (TFS) and failure (TFF) interrupt, and time strobe interrupt
3
Reset (RST) - reset DMA and telemetry transmitter
Note: After setting the RST bit to 1 the complete encoder will be reset, and the TXRST will be automatically set to 1 which disables the telemetry encoder completely. Also the TE bit in the GRTM
control register will be cleared to 0.
2
Reset Transmitter (TXRST) - reset telemetry transmitter
1
Interrupt Enable (IE) - enable DMA interrupts (TI), (TE) and (TA)
0
Enable (EN) - enable DMA transfers (Virtual Channels 0 through 2)
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
43
CCSDS TM / TC and SpaceWire FPGA
Table 33. GRTM DMA status register
31
8
RESERVED
7
6
TXSTA TXRDY
T
5
4
3
2
1
0
TFO
TFS
TFF
TA
TI
TE
31: 8
RESERVED
7
Transmitter Reset Status (TXSTAT) - telemetry transmitter is in reset mode when set (read-only)
6
Transmitter Ready (TXRDY) - telemetry transmitter ready for operation after setting the TE bit in
GRTM control register (read-only)
5
Transfer Frame Ongoing (TFO) - telemetry frames via DMA transfer (Virtual Channels 0 through 2)
are on-going (read-only)
4
Transfer Frame Sent (TFS) - telemetry frame interrupt, cleared by writing a logical 1 (any Virtual
Channel)
3
Transfer Frame Failure (TFF) - telemetry transmitter failure, cleared by writing a logical 1 (any Virtual Channel)
2
Transmitter AMBA Error (TA) - DMA AMBA AHB error, cleared by writing a logical 1 (Virtual
Channels 0 through 6)
1
Transmitter Interrupt (TI) - DMA interrupt, cleared by writing a logical 1 (Virtual Channels 0
through 2)
0
Transmitter Error (TE) - DMA transmitter underrun, cleared by writing a logical 1 (Virtual Channels
0 through 2)
Table 34. GRTM DMA length register
31
27 26
16 15
RESERVED
31: 27
26: 16
LIMIT-1
11 10
0
RESERVED
LENGTH-1
RESERVED
Transfer Limit (LIMIT)- length-1 of data to be fetched by DMA before transfer starts.
Note: LIMIT must be equal to or less than LENGTH.
LIMIT must be equal to or less than FIFOSZ.
LIMIT must be equal to or larger than BLOCKSZ*2 for LENGTH > BLOCKSZ*2.
15: 11
RESERVED
10: 0
Transfer Length (LENGTH) - length-1 of data to be transferred by DMA
Table 35. GRTM DMA descriptor pointer register
31
10
9
3
BASE
31: 10
INDEX
2
0
“000”
Descriptor base (BASE) - base address of descriptor table (Virtual Channels 0 through 2)
9: 3
Descriptor index (INDEX) - index of active descriptor in descriptor table
2: 0
Reserved - fixed to “00”
Table 36. GRTM DMA configuration register (read-only)
31
16 15
FIFOSZ
0
BLOCKSZ
31: 16
FIFO size (FIFOSZ) - size of FIFO memory in number of bytes (read-only)
15: 0
Block size (BLOCKSZ) - size of block in number of bytes (read-only)
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
44
CCSDS TM / TC and SpaceWire FPGA
Table 37. GRTM DMA revision register (read-only)
31
20 19 18 17
RESERVED
FIX EX IN
16
15
TIRQ
8
7
0
REVISION
SUB REVISION
31: 20
RESERVED
19
Fixed Frame Length (FIX) - Frame length fixed
18
External Virtual Channels (EX) - External Virtual Channels supported
17
Internal Virtual Channels (IN) - Internal Virtual Channels supported
16
Time Strobe Interrupt (TIRQ) - Separate time strobe interrupt supported
15: 8
REVISION - Main revision number
0x00: Initial release
7: 0
SUB REVISION - Sub revision number
0x00: Initial release
0x01: Added time interrupt, moved TXRDY bit, added TXSTAT bit, added this revision register
0x02: Added support for internal and external virtual channels
Table 38. GRTM DMA external VC control & status register
31
6
RESERVED
5
4
XTFO
3
RESERVED
2
1
0
XTI
XTE
XEN
31: 6
RESERVED
5
External Transfer Frame Ongoing (XTFO) - telemetry frames via DMA transfer for external VC
(Virtual Channels 3 through 6) are on-going (read-only)
4: 3
RESERVED
2
External Transmitter Interrupt (XTI) - DMA interrupt for external VC, cleared by writing a logical 1
(unused)
1
External Transmitter Error (XTE) - DMA transmitter underrun for external VC (Virtual Channels 3
through 6), cleared by writing a logical 1
0
External Enable (XEN) - enable DMA transfers for external VC (Virtual Channels 3 through 6)(note
that descriptor table is checked continuously till this bit is cleared).
Table 39. GRTM DMA external VC descriptor pointer register
31
10
BASE
9
3
2
INDEX
31: 10
Descriptor base (BASE) - base address of descriptor table (Virtual Channels 3 through 6)
9: 3
Descriptor index (INDEX) - index of active descriptor in descriptor table
2: 0
Reserved - fixed to “00”
0
“000”
Table 40. GRTM control register
31
1
RESERVED
0
TE
31: 1
RESERVED
0:
Transmitter Enable (TE) - enables telemetry transmitter (should be done after the complete configuration of the telemetry transmitter, including the LENGTH field in the GRTM DMA length register)
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
45
CCSDS TM / TC and SpaceWire FPGA
Table 41. GRTM configuration register (read-only)
31
23 22 21 20 19 18 17 16 15 14 13 12 11 10
O
C
F
B
RESERVED
C
I
F
A
O
S
F
H
E
C
I
Z
M
C
G
F
S
H
I
D
L
E
E
V
C
O
C
F
F
E
C
F
A
A
S
M
9
8
RS
6
RS
DEPTH
5
4
3
TE
P
S
R
N CE SP SC
R
Z
2
1
0
31: 23
RESERVED
22
Operational Control Field Bypass (OCFB) - CLCW implemented externally, no OCF register
21
Encryption/Cipher Interface (CIF) - interface between protocol and channel coding sub-layers
20
Advanced Orbiting Systems (AOS) - AOS transfer frame generation implemented
19
Frame Header Error Control (FHEC) - frame header error control implemented, only if AOS also set
18
Insert Zone (IZ) - insert zone implemented, only if AOS also set
17
Master Channel Generation (MCG) - master channel counter generation implemented
16
Frame Secondary Header (FSH) - frame secondary header implemented
15
Idle Frame Generation (IDLE) - idle frame generation implemented
14
Extended VC Cntr (EVC) - extended virtual channel counter implemented (ECSS)
13
Operational Control Field (OCF) - CLCW implemented internally, OCF register
12
Frame Error Control Field (FECF) - transfer frame CRC implemented
11
Alternative ASM (AASM) - alternative attached synchronization marker implemented
10: 9
Reed-Solomon (RS) - reed-solomon encoder implemented, “01” E=16, “10” E=8, “11” E=16 & 8
8: 6
Reed-Solomon Depth (RSDEPTH) - reed-solomon interleave depth -1 implemented
5
Turbo Encoder (TE) - turbo encoder implemented (reserved)
4
Pseudo-Randomiser (PSR) - pseudo-Randomiser implemented
3
Non-Return-to-Zero (NRZ) - non-return-to-zero - mark encoding implemented
2
Convolutional Encoding (CE) - convolutional encoding implemented
1
Split-Phase Level (SP) - split-phase level modulation implemented
0
Sub Carrier (SC) - sub carrier modulation implemented
Table 42. GRTM physical layer register
31
30
16
SF
SYMBOLRATE
31
15
14
SCF
0
SUBRATE
Symbol Fall (SF) - symbol clock has a falling edge at start of symbol bit
30: 16
Symbol Rate (SYMBOLRATE) - symbol rate division factor - 1
15
Sub Carrier Fall (SCF) -sub carrier output start with a falling edge for logical 1
14: 0
Sub Carrier Rate (SUBRATE) - sub carrier division factor - 1
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
46
CCSDS TM / TC and SpaceWire FPGA
Table 43. GRTM coding sub-layer register
31
20 19 18 17 16 15 14
RESERVED
31: 20
C
I
F
CSEL
12 11 10
A RS RSDEPTH
A
S
M
8
7
R RESERVED P
S
S
8
R
6
5
4
N CE
R
Z
2
CE
RATE
1
0
SP SC
RESERVED
19
Encryption/Cipher Interface (CIF) - enable external encryption/cipher interface between sub-layers
18: 17
Clock Selection (CSEL) - selection of external telemetry clock source (application specific)
16
Alternative ASM (AASM) - alternative attached synchronization marker enable. When enabled the
value from the GRTM Attached Synchronization Marker register is used, else the standardized ASM
value 0x1ACFFC1D is used
15
Reed-Solomon (RS) - reed-solomon encoder enable
14: 12
Reed-Solomon Depth (RSDEPTH) - reed-solomon interleave depth -1
11
Reed-Solomon Rate (RS8) - ‘0’ E=16, ‘1’ E=8
10: 8
RESERVED
7
Pseudo-Randomiser (PSR) - pseudo-Randomiser enable
6
Non-Return-to-Zero (NRZ) - non-return-to-zero - mark encoding enable
5
Convolutional Encoding (CE) - convolutional encoding enable
4: 2
Convolutional Encoding Rate (CERATE):
“00-”
rate 1/2, no puncturing
“01-”
rate 1/2, punctured
“100”
rate 2/3, punctured
“101”
rate 3/4, punctured
“110”
rate 5/6, punctured
“111”
rate 7/8, punctured
1
Split-Phase Level (SP) - split-phase level modulation enable
0
Sub Carrier (SC) - sub carrier modulation enable
Table 44. GRTM attached synchronization marker register
31
0
ASM
31: 0
Attached Synchronization Marker (ASM) - pattern for alternative ASM, (bit 31 MSB sent first, bit 0
LSB sent last) (The reset value is the standardized alternative ASM value 0x352EF853.)
Table 45. GRTM all frames generation register
31
22 21
RESERVED
31: 22
17 16 15 14 13 12 11
FSH / IZ LENGTH
IZ
F
E
C
F
F
H
E
C
VER
0
RESERVED
RESERVED
21: 17
Frame Secondary Header (TM) / Insert Zone (AOS) (FSH / IZ LENGTH) - length in bytes
16
Insert Zone (IZ) - insert zone enabled, only with AOS
15
Frame Error Control Field (FECF) - transfer frame CRC enabled
14
Frame Header Error Control (FHEC) - frame header error control enabled, only with AOS
13: 12
Version (VER) - Transfer Frame Version - “00” Packet Telemetry, “01” AOS
11: 0
RESERVED
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
47
CCSDS TM / TC and SpaceWire FPGA
Table 46. GRTM master frame generation register
31
4
RESERVED
3
2
1
0
MC
FSH
OCF
OW
31: 4
RESERVED
3
Master Channel (MC) - enable master channel counter generation (TM only)
2
Frame Secondary Header (FSH) - enable MC_FSH for master channel (TM only)
1
Operation Control Field (OCF) - enable MC_OCF for master channel
0
Over Write OCF (OW) - overwrite OCF bits 16 and 17 when set
Table 47. GRTM idle frame generation register
31
22 21 20 19 18 17 16 15
RESERVED
ID
LE
O
C
F
E
V
C
F
S
H
V MC
C
C
10
9
0
VCID
31: 22
RESERVED
21
Idle Frames (IDLE) - enable idle frame generation
SCID
20
Operation Control Field (OCF) - enable OCF for idle frames
19
Extended Virtual Channel Counter (EVC) - enable extended virtual channel counter generation for
idle frames (TM only, ECSS)
18
Frame Secondary Header (FSH) - enable FSH for idle frames (TM only)
17
Virtual Channel Counter Cycle (VCC) - enable virtual channel counter cycle generation for idle
frames (AOS only)
16
Master Channel (MC) - enable separate master channel counter generation for idle frames (TM only)
15: 10
Virtual Channel Identifier (VCID) - virtual channel identifier for idle frames
9: 0
Spacecraft Identifier (SCID) - spacecraft identifier for idle frames
Table 48. GRTM FSH / IZ register 0, MSB
31
0
DATA
31: 0
FSH / Insert Zone Data (DATA) - data (bit 31 MSB sent first)
Note: Writing to this register prevents the new FSH/Insert Zone data value to be transferred.
Table 49. GRTM FSH / IZ register 1
31
0
DATA
31: 0
FSH / Insert Zone Data (DATA) - data
Table 50. GRTM FSH / IZ register 2
31
0
DATA
31: 0
FSH / Insert Zone Data (DATA) - data
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
48
CCSDS TM / TC and SpaceWire FPGA
Table 51. GRTM FSH / IZ register 3, LSB
31
0
DATA
31: 0
FSH / Insert Zone Data (DATA) - data (bit 0 LSB sent last)
Note: Writing to this registers enables the new FSH/Insert Zone data value to be transferred.
Table 52. GRTM OCF register
31
0
CLCW
31: 0
4.9
Operational Control Field (OCF) - CLCW data (bit 31 MSB, bit 0 LSB)
Signal definitions and reset values
The signals and their reset values are described in table 53.
Table 53. Signal definitions and reset values
4.10
Signal name
Type
Function
Active
Reset value
transclk
Input
Telemetry transmitter clock
Rising
-
tcrfa[ ]
Input, async
RF Available
-
-
tcactive[ ]
Input, async
Bit Lock
-
-
caduout[ ]
Output
Serial bit data, output at caduclk edge (selectable)
-
-
caduclk[ ]
Output
Serial bit data clock
Rising
Logical 0
clcwin[ ]
Input
CLCW data input
-
-
Timing
The timing waveforms and timing parameters are shown in figure 10 and are defined in table 54.
transclk
caduout[ ], caduclk[ ]
tGRTM0
tcrfa[ ], tcactive[ ]
tGRTM1
tGRTM0
tGRTM2
Figure 10. Timing waveforms
Table 54. Timing parameters
Name
Parameter
Reference edge
Min
Max
Unit
tGRTM0
clock to output delay
rising transclk edge
0
40
ns
tGRTM1
input to clock hold
rising transclk edge
-
-
ns
tGRTM2
input to clock setup
rising transclk edge
-
-
ns
tGRTM3
transclk clock period
-
125
125
ns
Note: The inputs are re-synchronized inside the core. The signals do not have to meet any setup or hold requirements. Static
signals should not change between resets.
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
49
CCSDS TM / TC and SpaceWire FPGA
5
Telemetry Encoder - Virtual Channel Generation function input interface
5.1
Overview
The Telemetry Encoder Virtual Channel Generation function input interface implements an interfaces
towards the automatic Virtual Channel Generation function of the Telemetry Encoder (also called
external Virtual Channels). Space Packets or any other user-defined data block can be input.
Data is transferred to the Virtual Channel Generation function by writing to the AMBA AHB slave
interface, located in the AHB I/O area. Writing is only possible when the packet valid delimiter is
asserted, else the access results in an AMBA access error. It is possible to transfer one, two or four
bytes at a time, following the AMBA big-endian convention regarding send order. The last written
data can be read back via the AMBA AHB slave interface. Data are output as octets to the Virtual
Channel Generation function.
In the case the data from a previous write access has not been fully transferred over the interface, a
new write access will result in an AMBA retry response. The progress of the interface can be monitored via the AMBA APB slave interface. An interrupt is generated when the data from the last write
access has been transferred. An interrupt is also generated when the ready for input packet indicator is
asserted.
The core incorporates status and monitoring functions accessible via the AMBA APB slave interface.
This includes:
5.2
•
Busy and ready signalling from Virtual Channel Generation function
•
Interrupts on ready for new word, or ready for new packet (size 518 octets)
Interrupts
Two interrupts are implemented by the interface:
5.3
Index:
Name:
Description:
0
NOT BUSY
Ready for a new data (word, half-word or byte)
1
READY
Ready for new packet
Registers
The core is programmed through registers mapped into APB address space.
Table 55. GRTM_PAHB registers
APB address offset
Register
16#004#
Status Register
16#008#
Control Register
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
5.3.1
50
CCSDS TM / TC and SpaceWire FPGA
Status Register (R)
Table 56. Status Register
31
1:
0:
2
BUSY
READY
1
0
BUSY
READY
Not ready for new input, busy with octet
Ready for new packet of maximum size
All bits are cleared to 0 at reset.
5.3.2
Control Register (R/W)
Table 57. Control Register
31
10
-
8:
9:
2:
1:
0:
9
8
BUSYEN
READYEN
7
3
-
2
1
0
VALID
RST
EN
BUSYEN Enable not-busy interrupt when 1
READYENEnable ready for packet interrupt when 1
VALID
Packet valid delimiter, packet valid when 1, in-between packets when 0 (read-only)
RST
Reset complete core when 1
EN
Enable interface when 1
All bits are cleared to 0 at reset. Note that RST is read back as 0.
5.4
AHB I/O area
Data to be transferred to the Virtual Channel Generation function is written to the AMBA AHB slave
interface which implements a AHB I/O area. See [GRLIB] for details.
Note that the address is not decoded by the core. Address decoding is only done by the AMBA AHB
controller, for which the I/O area location and size is configured by means of the ioaddr and iomask
VHDL generics. It is possible to transfer one, two or four bytes at a time, following the AMBA bigendian convention regarding send order. The last written data can be read back via the AMBA AHB
slave interface. Data are output as octets on the Virtual Channel Generation interface.
Table 58. AHB I/O area - data word definition
31
24
DATA [31:24]
Copyright Aeroflex Gaisler AB
23
DATA [23:16]
16
15
DATA [15:8]
GR-TMTC-0002
8
7
0
DATA [7:0]
December 2009, Version 1.5
GAISLER
51
CCSDS TM / TC and SpaceWire FPGA
Table 59. AHB I/O area - send order
Transfer size
Address offset
DATA [31:24]
DATA [23:16]
DATA [15:8]
DATA [7:0] Comment
Word
0
first
second
third
last
Halfword
Byte
Four bytes sent
0
first
last
-
-
Two bytes sent
2
-
-
first
last
Two bytes sent
0
first
-
-
-
One byte sent
1
-
first
-
-
One byte sent
2
-
-
first
-
One byte sent
3
-
-
-
first
One byte sent
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
52
6
Telemetry Encoder - Virtual Channel Generation
6.1
Overview
CCSDS TM / TC and SpaceWire FPGA
The CCSDS/ECSS/PSS Telemetry Encoder Virtual Channel Generation function implements:
•
Transfer Frame Primary Header insertion
•
Transfer Frame Data Field insertion (with support for different lengths due to OCF and FECF)
•
First Header Pointer (FHP) handling and insertion
The function keeps track of the number of octets received and the packet boundaries in order to calculated the First Header Pointer (FHP). The data are stored in pre-allocated slots in the buffer memory
comprising complete Transfer Frames. The module fully supports the FHP generation and does not
require any alignment of the packets with the Transfer Frame Data Field boundary.
The data input format can be CCSDS Space Packet [CCSDS-133.0] or any user-defined data-block.
Data is input via a separate Virtual Channel Generation function input interface.
The function communicates with the Telemetry Encoder Virtual Channel Frame Service by means of
a buffer memory space. The buffer memory space allocated to the Virtual Channel is treated as a circular buffer. The buffer memory space is accessed by means of a AMBA AHB master interface.
6.2
Registers
None.
6.3
Signal definitions and reset values
None.
6.4
Timing
None.
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
53
7
Telemetry Encoder - Descriptor
7.1
Overview
CCSDS TM / TC and SpaceWire FPGA
The CCSDS/ECSS/PSS Telemetry Encoder Descriptor implements an automatic descriptor handler
for external Telemetry Virtual Channels implemented in hardware (Telemetry Encoder Virtual Channel Generation function), not requiring software support.
7.2
Operation
7.2.1
Introduction
Warning: software should not read or write the descriptor table. All interaction is performed automatically by hardware.
The bandwidth is allocated equally between the external Telemetry Virtual Channels. Note that the
descriptor table will be continuously checked by the Telemetry Encoder, even when all descriptors
have their Enable (EN) bit cleared. This will go on until the External Enable (XEN) bit in the Telemetry Encoder is cleared by software.
7.2.2
Descriptor definition
A single descriptor is shown in table 60 and 61.
Table 60. Transmit descriptor word 0 (address offset 0x0)
31
16
RESERVED
15
14
13 10
9
8
7
UE
TS
0000
VCE
MCB
FSHB
6
5
OCFB FHECB
4
3
2
1
0
IZB
FECFB
IE
WR
EN
31: 16
RESERVED
15
Underrun Error (UE) - underrun occurred while transmitting frame (status bit only)
14
Time Strobe (TS) - generate a time strobe for this frame (static 0)
13: 10
RESERVED
9
Virtual Channel Counter Enable (VCE) - enable virtual channel counter generation (using the Idle
Frame virtual channel counter) (static 0)
8
Master Channel Counter Bypass (MCB) - bypass master channel counter generation (TM only)
(static 0)
7
Frame Secondary Header Bypass (FSHB) - bypass frame secondary header generation (TM only)
(static 0)
6
Operational Control Field Bypass (OCFB) - bypass operational control field generation (static 0)
5
Frame Error Header Control Bypass (FECHB) - bypass frame error header control generation (AOS)
(static 0)
4
Insert Zone Bypass (IZB) - bypass insert zone generation (AOS) (static 0)
3
Frame Error Control Field Bypass (FECFB) - bypass frame error control field generation (static 0)
2
Interrupt Enable (IE) - an interrupt will be generated when the frame from this descriptor has been
sent provided that the transmitter interrupt enable bit in the control register is set. (static 0)
1
Wrap (WR) - Set to one to make the descriptor pointer wrap to zero after this descriptor has been
used. If this bit is not set the pointer will increment by 8. The pointer automatically wraps to zero
when the 1 kB boundary of the descriptor table is reached. (Set to 1 for last descriptor entry, otherwise static 0).
0
Enable (EN) - Set to one to enable the descriptor. Should always be set last of all the descriptor
fields. (Automatically set an cleared by hardware)
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
54
CCSDS TM / TC and SpaceWire FPGA
Table 61. Transmit descriptor word 1 (address offset 0x4)
31
2
ADDRESS
7.3
1
0
RES
31: 2
Address (ADDRESS) - Pointer to the buffer area from where the packet data will be loaded.
1: 0
RESERVED
Registers
None.
7.4
Signal definitions and reset values
None.
7.5
Timing
None.
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
55
CCSDS TM / TC and SpaceWire FPGA
8
Telecommand Decoder - Software Commands
8.1
Overview
The Telecommand Decoder (GRTC) is compliant with the Packet Telecommand protocol and specification defined by [PSS-04-107] and [PSS-04-151]. The decoder is also compatible with the CCSDS
recommendations stated in [CCSDS-201.0], [CCSDS-202.0], [CCSDS-202.1] and [CCSDS-203.0].
The Telecommand Decoder (GRTC) only implements the Coding Layer (CL).
In the Coding Layer (CL), the telecommand decoder receives bit streams on multiple channel inputs.
The streams are assumed to have been generated in accordance with the Physical Layer specifications.
In the Coding Layer, the decoder searches all input streams simultaneously until a start sequence is
detected. Only one of the channel inputs is selected for further reception. The selected stream is biterror corrected and the resulting corrected information is passed to the user. The corrected information
received in the CL is transfer by means of Direct Memory Access (DMA) to the on-board processor.
The Command Link Control Word (CLCW) and the Frame Analysis Report (FAR) can be read and
written as registers via the AMBA AHB bus. Parts of the two registers are generated by the Coding
Layer (CL). The CLCW is automatically transmitted to the Telemetry Encoder (TM) for transmission
to the ground. Note that most parts of the CLCW and FAR are not produced by the Telecommand
Decoder (GRTC) hardware portion. This is instead done by th software portion of the decoder.
Telecommand input
NRZ-M
Start sequence search
FIFO
Physical Layer
CLCW output
AMBA
AHB
Slave
DMA
BCH Decoder
AMBA AHB
AMBA
AHB
Master
Coding Sub-Layer
Pseudo-Derandomizer
Data Link Protocol Sub-Layer
CLCW1
CLCW2
GRTC
Figure 11. Block diagram
8.1.1
Concept
A telecommand decoder in this concept is mainly implemented by software in the on-board processor.
The supporting hardware in the GRTC core implements the Coding Layer, which includes synchronisation pattern detection, channel selection, codeblock decoding, Direct Memory Access (DMA) capability and buffering of corrected codeblocks. The hardware also provides a register via which the
Command Link Control Word (CLCW) is made available to a Telemetry Encoder. The CLCW is to be
generated by the software.
The GRTC has been split into several clock domains to facilitate higher bit rates and partitioning. The
two resulting sub-cores have been named Telecommand Channel Layer (TCC) and the Telecommand
Interface (TCI). Note that TCI is called AHB2TCI. A complete CCSDS packet telecommand decoder
can be realized at software level according to the latest available standards, staring from the Transfer
Layer.
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
56
CCSDS TM / TC and SpaceWire FPGA
HCLK
TCI2DMA
HRESETn
HRESET
CRESETn
CRESET
AHBOverrunIrq
Rs232Tx
AHBFullIrq
Rs232Tx
AHBCLTUIrq
TCC_Conf[]
Configuration
interface
CLCW1Data
CLCW
interface
CLCW2Data
TCC_RFAvailPos
AHBFARIrq
External
configuration
interface
TCC_SCId[]
AHBBitLockIrq
TCC_BitLockPos
AHBFRAvailIrq
TCC_Pseudo
TCC_Mark
AHBSIn[]
AHB Slave
interface
TCC_PSS
AHBSOut[]
CLCWRFAvailable[]
Physical Layer
interface
CLCWBitLock[]
RxPtr
AHB2TCI
AHBMOut[]
AHB Master
interface
CLReq[]
DMA2AHB
AHBMIn[]
RxFIFO
RxCL
FARReq[]
Coding Layer (CL)
Receiver Frame
Analysis Report (FAR)
interface
Figure 12. Block diagram
8.1.2
Functions and options
The Telecommand Decoder (GRTC) only implements the Coding Layer of the Packet Telecommand
Decoder standard [PSS-04-107]. All other layers are to be implemented in software, e.g. Authentication Unit (AU). The Command Pulse Distribution Unit (CPDU) is not implemented.
The following functions of the GRTC are programmable by means of registers:
•
Pseudo-De-Randomisation
•
Non-Return-to-Zero – Mark decoding
The following functions of the GRTC are pin configurable:
8.2
•
Polarity of RF Available and Bit Lock inputs
•
Edge selection for input channel clock
Data formats
8.2.1
Reference documents
[PSS-04-107]
Packet Telecommand Standard, PSS-04-107, Issue 2, January 1992
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
57
[PSS-04-151]
CCSDS TM / TC and SpaceWire FPGA
Telecommand Decoder Standard, PSS-04-151, Issue 1, September 1993
[CCSDS-201.0] Telecommand – Part 1 – Channel Service, CCSDS 201.0-B-3, June 2000
[CCSDS-202.0] Telecommand – Part 2 – Data Routing Service, CCSDS 202.0-B-3, June 2001
[CCSDS-202.1] Telecommand – Part 2.1 – Command Operation Procedures, CCSDS 202.1-B-2,
June 2001
[CCSDS-203.0] Telecommand – Part 3 – Data Management Service, CCSDS 203.0-B-2, June 2001
8.2.2
Waveforms
Delimiter
Clock
Data
0
1
2
3
4
5
6
7
n-8 n-7 n-6 n-5 n-4 n-3 n-2 n-1
MSB
LSB
Figure 13. Telecommand input protocol
8.3
Coding Layer (CL)
The Coding Layer synchronises the incoming bit stream and provides an error correction capability
for the Command Link Transmission Unit (CLTU). The Coding Layer receives a dirty bit stream
together with control information on whether the physical channel is active or inactive for the multiple input channels.
The bit stream is assumed to be NRZ-L encoded, as the standards specify for the Physical Layer. As
an option, it can also be NRZ-M encoded. There are no assumptions made regarding the periodicity or
continuity of the input clock signal while an input channel is inactive. The most significant bit (Bit 0
according to [PSS-04-107]) is received first.
Searching for the Start Sequence, the Coding Layer finds the beginning of a CLTU and decodes the
subsequent codeblocks. As long as no errors are detected, or errors are detected and corrected, the
Coding Layer passes clean blocks of data to the Transfer Layer which is implemented in software.
When a codeblock with an uncorrectable error is encountered, it is considered as the Tail Sequence, its
contents are discarded and the Coding Layer returns to the Start Sequence search mode.
The Coding Layer also provides status information for the FAR, and it is possible to enable an
optional de-randomiser according to [CCSDS-201.0].
8.3.1
Synchronisation and selection of input channel
Synchronisation is performed by means of bit-by-bit search for a Start Sequence on the channel
inputs. The detection of the Start Sequence is tolerant to a single bit error anywhere in the Start
Sequence pattern. The Coding Layer searches both for the specified pattern as well as the inverted
pattern. When an inverted Start Sequence pattern is detected, the subsequent bit-stream is inverted till
the detection of the Tail Sequence.
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
58
CCSDS TM / TC and SpaceWire FPGA
The detection is accomplished by a simultaneous search on all active channels. The first input channel
where the Start Sequence is found is selected for the CLTU decoding. The selection mechanism is
restarted on any of the following events:
•
The input channel active signal is de-asserted, or
•
a Tail Sequence is detected, or
•
a Codeblock rejection is detected, or
•
an abandoned CLTU is detected, or the clock time-out expires.
As a protection mechanism in case of input failure, a clock time-out is provided for all selection
modes. The clock time-out expires when no edge on the bit clock input of the selected input channel
in decode mode has been detected for a specified period.
When the clock time-out has expired, the input channel in question is ignored (i.e. considered inactive) until its active signal is de-asserted (configurable with gTimeoutMask=1). [Not implemented]
8.3.2
Codeblock decoding
The received Codeblocks are decoded using the standard (63,56) modified BCH code. Any single bit
error in a received Codeblock is corrected. A Codeblock is rejected as a Tail Sequence if more than
one bit error is detected. Information regarding Count of Single Error Corrections and Count of
Accept Codeblocks is provided to the FAR. Information regarding Selected Channel Input is provided
via a register.
8.3.3
De-Randomiser
In order to maintain bit synchronisation with the received telecommand signal, the incoming signal
must have a minimum bit transition density. If a sufficient bit transition density is not ensured for the
channel by other methods, the randomiser is required. Its use is optional otherwise. The presence or
absence of randomisation is fixed for a physical channel and is managed (i.e., its presence or absence
is not signalled but must be known a priori by the spacecraft and ground system). A random sequence
is exclusively OR-ed with the input data to increase the frequency of bit transitions. On the receiving
end, the same random sequence is exclusively OR-ed with the decoded data, restoring the original
data form. At the receiving end, the de-randomisation is applied to the successfully decoded data. The
de-randomiser remains in the “all-ones” state until the Start Sequence has been detected. The pattern
is exclusively OR-ed, bit by bit, to the successfully decoded data (after the Error Control Bits have
been removed). The de-randomiser is reset to the “all-ones” state following a failure of the decoder to
successfully decode a codeblock or other loss of input channel.
8.3.4
Non-Return-to-Zero – Mark
An optional Non-Return-to-Zero – Mark decoder can be enabled by means of a register.
8.3.5
Design specifics
The coding layer is supporting 1 to 8 channel inputs, although PSS requires at least 4.
A codeblock is fixed to 56 information bits (as per CCSDS/ECSS).
The CCSDS/ECSS (1024 octets) or PSS (256 octets) standard maximum frame lengths are supported,
being programmable via bit PSS in the GCR register. The former allows more than 37 codeblocks to
be received.
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
59
CCSDS TM / TC and SpaceWire FPGA
The Frame Analysis Report (FAR) interface supports 8 bit CAC field, as well as the 6 bit CAC field
specified in ESA PSS-04-151- When the PSS bit is cleared to '0', the two most significant bits of the
CAC will spill over into the "LEGAL/ILLEGAL" FRAME QUALIFIER field in the FAR. These bits
will however be all-zero when PSS compatible frame lengths are received or the PSS bit is set to '1'.
The saturation is done at 6 bits when PSS bit is set to '1' and at 8 bits when PSS bit is cleared to '0'.
The Pseudo-Randomiser decoder is included (as per CCSDS/ECSS), its usage being input signal programmable.
The Physical Layer input can be NRZ-L or NRZ-M modulated, allowing for polarity ambiguity. NRZL/M selection is programmable. This is an extension to ECSS: Non-Return to Zero - Mark decoder
added, with its internal state reset to zero when channel is deactivated.
Note: If input clock disappears, it will also affect the codeblock acquired immediately before the
codeblock just being decoded (accepted by ESA PSS-04-151).
In state S1, all active inputs are searched for start sequence, there is no priority search, only round
robin search. The search for the start sequence is sequential over all inputs: maximum input frequency
= system frequency /(gIn+2)
The ESA PSS-04-151 specified CASE-1 and CASE-2 actions are implemented according to aforementioned specification, not leading to aborted frames.
Extended E2 handling is implemented:
•
E2b Channel Deactivation - selected input becomes inactive in S3
•
E2c
•
E2d Channel Deactivation - selected input is timed-out in S3
(design choice being: S3 => S1, abandoned frame)
8.3.6
Channel Deactivation - too many codeblocks received in S3
Direct Memory Access (DMA)
This interface provides Direct Memory Access (DMA) capability between the AMBA bus and the
Coding Layer. The DMA operation is programmed via an AHB slave interface.
The DMA interface is an element in a communication concept that contains several levels of buffering. The first level is performed in the Coding Layer where a complete codeblock is received and kept
until it can be corrected and sent to the next level of the decoding chain. This is done by inserting each
correct information octet of the codeblock in an on-chip local First-In-First-Out (FIFO) memory
which is used for providing improved burst capabilities. The data is then transfered from the FIFO to
a system level ring buffer in the user memory (e.g. SRAM located in on-board processor board) which
is accessed by means of DMA.
The following storage elements can thus be found in this design:
The shift and hold registers in the Coding Layer
The local FIFO (parallel; 32-bit; 4 words deep)
The system ring buffer (SRAM; 32-bit; 1 to 256 kByte deep).
8.4
Transmission
The transmission of data from the Coding Layer to the system buffer is described hereafter.
The serial data is received and shifted in a shift register in the Coding Layer when the reception is
enabled. After correction, the information content of the shift register is put into a hold register.
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
60
CCSDS TM / TC and SpaceWire FPGA
When space is available in the peripheral FIFO, the content of the hold register is transferred to the
FIFO. The FIFO is of 32-bit width and the byte must thus be placed on the next free byte location in
the word.
When the FIFO is filled for 50%, a request is done to transfer the available data towards the system
level buffer.
If the system level ring buffer isn’t full, the data is transported from the FIFO, via the AHB master
interface towards the main processor and stored in e.g. SRAM. If no place is available in the system
level ring buffer, the data is held in the FIFO.
When the GRTC keeps receiving data, the FIFO will fill up and when it reaches 100% of data, and the
hold and shift registers are full, a receiver overrun interrupt will be generated
(IRQ_RX_OVERRUN). All new incoming data is rejected until space is available in the peripheral
FIFO.
When the receiving data stream is stopped (e.g. when a complete data block is received), and some
bytes are still in the peripheral FIFO, then these bytes will be transmitted to the system level ring
buffer automatically. Received bytes in the shift and hold register are always directly transferred to
the peripheral FIFO.
The FIFO is automatically emptied when a CLTU is either ready or has been abandoned. The reason
for the latter can be codeblock error, time out etc. as described in CLTU decoding state diagram.
The operational state machine is shown in figure 14.
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
61
CCSDS TM / TC and SpaceWire FPGA
HARDWARE WRITE
SOFTWARE READ
START
START
INIT
INIT
init rx_w_ptr (lower bits)
init rx_r_ptr and rx_w_ptr (ASR register)
CHECK
fifo 50% full ?
N
Y
WAIT
CHECK
temp1 = rx_w_ptr
temp2 = rx_w_ptr +
#bytes received
temp3 = rx_r_ptr
OVERFLOW
set 'overflow'-flag
temp1 = rx_w_ptr
temp2 = rx_r_ptr
TBD ms
temp1 = temp2 ?
Y
RESET
CHANNEL
N
Y
temp2 >=
temp3 - offset(*)
Y
fifo full (100%) ?
N
N
WRITE
READ
burst of
writes @ temp1
Y
temp1 >=
endaddr
read @ temp2
N
temp2
=
endaddr
INCREMENT
RESET
Y
temp1=temp1+x
temp1= startaddr+ x
N
RESET
INCREMENT
temp2=startaddr+y
temp2=temp2+y
UPDATE
rx_w_ptr = temp1
All data read?
N
Y
x: amount of bytes written.
y: amount of bytes read
(*) offset is hardcoded and set to fifo depth/2. It's not possible to full a
complete 1kbyte block without a software readout (max. rx write bytes
= (1024*(rx_length+1)) - offset) [without SW readout]
Figure 14. Direct Memory Access
Legend:
rx_w_ptr
Write pointer
rx_r_ptr
Read pointer
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
62
8.4.1
CCSDS TM / TC and SpaceWire FPGA
Data formatting
When in the decode state, each candidate codeblock is decoded in single error correction mode as
described hereafter.
8.4.2
CLTU Decoder State Diagram
+----------+
+----------+
+----------+
|
|
|
|
|
|
|
S1
| INACTIVE |-----E1---->|
|
|
S2
|<----E4-----|
S3
|
ACTIVE
|-----E3---->|
DECODE
|
|
|<----E2a----|
|<----E2c----|
|
|
|
|
|
|<----------------E2b----------------|
|
|
|<----------------E2d----------------|
|
+----------+
+----------+
|
+----------+
Note that the diagram has been improved with explicit handling of different E2 possibilities listed
below.
State Definition:
S1
Inactive
S2
Search
S3
Decode
Event Definition:
E1
Channel Activation
E2a
Channel Deactivation - all inputs are inactive
E2b Channel Deactivation - selected becomes inactive (CB=0 -> frame abandoned)
E2c
Channel Deactivation - too many codeblocks received (all -> frame abandoned)
E2d Channel Deactivation - selected is timed-out (all -> frame abandoned)
E3
Start Sequence Found
E4
Codeblock Rejection (CB=0 -> frame abandoned)
8.4.3
Nominal
A: When the first “Candidate Codeblock” (i.e. “Candidate Codeblock” 0, which follows Event 3
(E3):START SEQUENCE FOUND) is found to be error free, or if it contained an error which has
been corrected, its information octets are transferred to the remote ring buffer as shown in Table 3.1.
At the same time, a “Start of Candidate Frame” flag is written to bit 0 or 16, indicating the beginning
of a transfer of a block of octets that make up a “Candidate Frame”. There are two cases that are handled differently as described in the next sections.
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
63
Table 62. Data
CCSDS TM / TC and SpaceWire FPGA
format
Bit[31…………24]
Bit[23…………16]
Bit[15….….……8]
Bit[7……....……0]
0x40000000
information octet0
0x01
information octet1
0x00
0x40000004
information octet2
0x00
information octet3
0x00
0x40000008
information octet4
0x00
end of frame
0x02
…
…
0x400000xx
information octet6
0x01
information octet7
0x00
0x400000xx
information octet8
0x00
abandoned frame
0x03
…
Legend: Bit [17:16] or [1:0]:
“00” = continuing octet
“01” = Start of Candidate Frame
“10” = End of Candidate Frame
“11” = Candidate Frame Abandoned
8.4.4
CASE 1
When an Event 4 – (E4): CODEBLOCK REJECTION – occurs for any of the 37 possible “Candidate
Codeblocks” that can follow Codeblock 0 (possibly the tail sequence), the decoder returns to the
SEARCH state (S2), with the following actions:
•
The codeblock is abandoned (erased)
•
No information octets are transferred to the remote ring buffer
•
An “End of Candidate Frame” flag is written, indicating the end of the transfer of a block of
octets that make up a “Candidate Frame”.
8.4.5
CASE 2
When an Event 2 – (E2): CHANNEL DEACTIVATION – occurs which affects any of the 37 possible
“Candidate Codeblocks” that can follow Codeblock 0, the decoder returns to the INACTIVE state
(S1), with the following actions:
•
The codeblock is abandoned (erased)
•
No information octets are transferred to the remote ring buffer
•
An “End of Candidate Frame” flag is written, indicating the end of the transfer of a block of
octets that make up a “Candidate Frame”
8.4.6
Abandoned
•
B: When an Event 4 (E4), or an Event 2 (E2), occurs which affects the first candidate codeblock
0, the CLTU shall be abandoned. No candidate frame octets have been transferred.
•
C: If and when more than 37 Codeblocks have been accepted in one CLTU, the decoder returns
to the SEARCH state (S2). The CLTU is effectively aborted and this is will be reported to the
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
64
CCSDS TM / TC and SpaceWire FPGA
software by writing the “Candidate Frame Abandoned flag” to bit 1 or 17, indicating to the software to erase the “Candidate frame”.
8.5
Relationship between buffers and FIFOs
The conversion from the peripheral data width (8 bit for the coding layer receiver), to 32 bit system
word width, is done in the peripheral FIFO.
All access towards the system ring buffer are 32-bit aligned. When the amount of received bytes is
odd or not 32-bit aligned, the FIFO will keep track of this and automatically solve this problem. For
the reception data path, the 32 bit aligned accesses could result in incomplete words being written to
the ring buffer. This means that some bytes aren’t correct (because not yet received), but this is no
problem due to the fact that the hardware write pointer (rx_w_ptr) always points to the last, correct,
data byte.
The local FIFO ensures that DMA transfer on the AMBA AHB bus can be made by means of 2-word
bursts. If the FIFO is not yet filled and no new data is being received this shall generate a combination
of single accesses to the AMBA AHB bus if the last access was indicating an end of frame or an abandoned frame.
If the last single access is not 32-bit aligned, this shall generate a 32-bit access anyhow, but the
receive-write-pointer shall only be incremented with the correct number of bytes. Also in case the previous access was not 32-bit aligned, then the start address to write to will also not be 32-bit aligned.
Here the previous 32-bit access will be repeated including the bytes that were previously missing, in
order to fill-up the 32-bit remote memory-controller without gaps between the bytes.
The receive-write-pointer shall be incremented according to the number of bytes being written to the
remote memory controller.
8.5.1
Buffer full
The receiving buffer is full when the hardware has filled the complete buffer space while the software
didn’t read it out. Due to hardware implementation and safety, the buffer can’t be filled completely
without interaction of the software side. A space (offset) between the software read pointer (rx_r_ptr)
and the hardware write pointer (rx_w_ptr) is used as safety buffer. When the write pointer (rx_w_ptr)
would enter this region (due to a write request from the receiver), a buffer full signal is generated and
all hardware writes to the buffer are suppressed. The offset is currently hard coded to 8 bytes.
Warning: If the software wants to receive a complete 1kbyte block (when RXLEN = 0), then it must
read out at least 8 bytes of data from the buffer. In this case, the hardware can write the 1024 bytes
without being stopped by the rx buffer full signal.
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
65
CCSDS TM / TC and SpaceWire FPGA
rx_w_ptr (HW)
OFFSET =
8 bytes
rx_r_ptr (SW)
0x0018
0x001C
rx buffer full condition
Figure 15. Buffer full situation
8.5.2
Buffer full interrupt
The buffer full interrupt is given when the difference between the hardware write pointer (rx_w_ptr)
and the software read pointer (rx_r_ptr) is less than 1/8 of the buffer size. The way it works is the
same as with the buffer full situation, only is the interrupt active when the security zone is entered.
The buffer full interrupt is active for 1 system clock cycle. When the software reads out data from the
buffer, the security zone shifts together with the read pointer (rx_r_ptr) pointer. Each time the hardware write pointer (rx_w_ptr) enters the security zone, a single interrupt is given.
rx buffer full IRQ is given
when the hardware
pointer enters the
security zone
rx_w_ptr (HW)
OFFSET =
256 bytes
rx_r_ptr (SW)
0x0018
0x001C
rx buffer full IRQ condition
Figure 16. Buffer full interrupt (buffers size is 2kbyte in this example)
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
8.6
66
CCSDS TM / TC and SpaceWire FPGA
Command Link Control Word interface (CLCW)
The Command Link Control Word (CLCW) is inserted in the Telemetry Transfer Frame by the Telemetry Encoder (TM) when the Operation Control Field (OPCF) is present. The CLCW is created by the
software part of the telecommand decoder. The telecommand decoder hardware provides two registers for this purpose which can be accessed via the AMBA AHB bus.
Note that bit 16 (No RF Available) and 17 (No Bit Lock) of the CLCW are not possible to write by
software. The information carried in these bits is based on discrete inputs.
The CLCW Register 1 (CLCWR1) is internally connected to the Telemetry Encoder.
The CLCW Register 2 (CLCWR2) is connected to the external clcwout[0] signal. One PacketAsynchronous interfaces (PA) are used for the transmission of the CLCW from the telecommand decoder.
The protocol is fixed to 115200 baud, 1 start bit, 8 data bits, 1 stop, with a BREAK command for message delimiting (sending 13 bits of logical zero). The CLCWs are automatically transferred over the
PA interface after reset, on each write access to the CLCW register and on each change of the bit 16
(No RF Available) and 17 (No Bit Lock).
Table 63. CLCW
8.7
transmission protocol
Byte
Number
CLCWR
register bits
CLCW contents
First
[31:24]
Control Word Type
CLCW
Version
Number
Second
[23:16]
Virtual Channel
Identifier
Reserved Field
Third
[15:8]
No RF
Available
No Bit
Lock
Fourth
[7:0]
Report Value
Fifth
N/A
[RS232 Break Command]
Status
Field
Lock
Out
COP In Effect
Wait
Retransmit
Farm B
Counter
Report
Type
Configuration Interface (AMBA AHB slave)
The AMBA AHB slave interface supports 32 bit wide data input and output. Since each access is a
word access, the two least significant address bits are assumed always to be zero, address bits 23:0 are
decoded. Note that address bits 31:24 are not decoded and should thus be handled by the AHB arbiter/
decoder. The address input of the AHB slave interfaces is thus incompletely decoded. Misaligned
addressing is not supported. For read accesses, unmapped bits are always driven to zero.
The AMBA AHB slave interface has been reduced in function to support only what is required for the
TC. The following AMBA AHB features are constrained:
•
Only supports HSIZE=WORD, HRESP_ERROR generated otherwise
•
Only supports HMASTLOCK='0', HRESP_ERROR generated otherwise
•
Only support HBURST=SINGLE or INCR, HRESP_ERROR generated otherwise
•
No HPROT decoding
•
No HSPLIT generated
•
HRETRY is generated if a register is inaccessible due to an ongoing reset.
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
67
CCSDS TM / TC and SpaceWire FPGA
•
HRESP_ERROR is generated for unmapped addresses, and for write accesses to register without
any writeable bits
•
Only big-endianness is supported.
During a channel reset the RRP and RWP registers are temporary unavailable. The duration of this
reset-inactivity is 8 HCLK clock periods and the AHB-slave generates a HRETRY response during
this period if an access is made to these registers.
If the channel reset is initiated by or during a burst-access the reset will execute correctly but a part of
the burst could be answered with a HRETRY response. It is therefore not recommended to initiate
write bursts to the register.
GRTC has interrupt outputs, that are asserted for at least two clock periods on the occurrence of one of
the following events:
8.8
•
‘CLTU stored’ (generated when CLTU has been stored towards the AMBA bus, also issued for
abandoned CLTUs)
•
‘Receive buffer full’ (generated when the buffer has less than 1/8 free) (note that this interrupt is
issued on a static state of the buffer, and can thus be re-issued immediately after the corresponding register has been read out by software, it should be masked in the interrupt controller to avoid
an immediate second interrupt).
•
‘Receiver overrun’ (generated when received data is dropped due to a reception overrun)
•
‘CLTU ready’ (note that this interrupt is also issued for abandoned CLTUs)
•
FAR interrupt ‘Status Survey Data’
•
CLCW interrupt ‘Bit Lock’
•
CLCW interrupt ‘RF Available’
Interrupts
The core generates the interrupts defined in table 64.
Table 64. Interrupts
Interrupt offset
Interrupt name
Description
1:st
RFA
RF Available changed
2:nd
BLO
Bit Lock changed
3:rd
FAR
FAR available
4:th
CR
CLTU ready/aborted
5:th
RBF
Output buffer full
6:th
OV
Input data overrun
7:th
CS
CLTU stored
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
8.9
68
CCSDS TM / TC and SpaceWire FPGA
Registers
The core is programmed through registers mapped into AHB I/O address space.
Table 65. GRTC registers
AHB address offset
Register
0x00
Global Reset Register (GRR)
0x04
Global Control Register (GCR)
0x08
Physical Interface Mask Register (PMR)
0x0C
Spacecraft Identifier Register (SIR)
0x10
Frame Acceptance Report Register (FAR)
0x14
CLCW Register 1 (CLCWR1) (internal)
0x18
CLCW Register 2 (CLCWR2) (external)
0x1C
Physical Interface Register (PHIR)
0x20
Control Register (COR)
0x24
Status Register (STR)
0x28
Address Space Register (ASR)
0x2C
Receive Read Pointer Register (RRP)
0x30
Receive Write Pointer Register (RWP)
0x60
Pending Interrupt Masked Status Register (PIMSR)
0x64
Pending Interrupt Masked Register (PIMR)
0x68
Pending Interrupt Status Register (PISR)
0x6C
Pending Interrupt Register (PIR)
0x70
Interrupt Mask Register (IMR)
0x74
Pending Interrupt Clear Register (PICR)
Table 66. Global Reset Register (GRR)
31
24 23
1
SEB
31: 24
23: 1
0
RESERVED
0
SRST
SEB (Security Byte):
Write:
‘0x55’= the write will have effect (the register will be updated).
Any other value= the write will have no effect on the register.
Read:
All zero.
RESERVED
Write:
Don’t care.
Read:
All zero.
System reset (SRST): [1]
Write:
‘1’= initiate reset,‘0’= do nothing
Read:
‘1’= unsuccessful reset, ‘0’= successful reset
Note: The Coding Layer is not reset.
Power-up default: 0x00000000
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
69
CCSDS TM / TC and SpaceWire FPGA
Table 67. Global Control Register (GCR)
31
24 23
13
SEB
31: 24
23: 13
RESERVED
12
11
10
PSS
NRZM
PSR
9
0
RESERVED
SEB (Security Byte):
Write:
‘0x55’= the write will have effect (the register will be updated).
Any other value= the write will have no effect on the register.
Read:
All zero.
RESERVED
Write:
Don’t care.
Read:
All zero.
12
PSS (ESA/PSS enable) [11]
11
NRZM (Non-Return-to-Zero Mark Decoder enable)
10
PSR (Pseudo-De-Randomiser enable)
9: 0
RESERVED
Write/Read:
Write/Read:
Write/Read:
‘0’= disable, ‘1’= enable [read-only]
‘0’= disable, ‘1’= enable [read-only]
‘0’= disable, ‘1’= enable [read-only]
Write:
Don’t care.
Read:
All zero.
Power-up default: 0x00001000, The default value depends on the tcmark and tcpseudo inputs.
Table 68. Physical Interface Mask Register (PMR)
31
8
RESERVED
31: 8
7: 0
7
0
MASK
RESERVED
Write:
Don’t care.
Read:
All zero.
MASK
Write:
Mask TC input when set, bit 0 correponds to TC input 0 [Not implemented]
Read:
Current mask
Power-up default: 0x00000000
Table 69. Spacecraft Identifier Register (SIR) [7]
31
10
RESERVED
31: 10
9: 0
9
0
SCID
RESERVED
Write:
Don’t care.
Read:
All zero.
SCID (Spacecraft Identifier)
Write:
Don’t care.
Read:
Bit[9]=MSB, Bit[0]=LSB
Power-up default: Depends on SCID input configuration.
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
70
CCSDS TM / TC and SpaceWire FPGA
Table 70. Frame Acceptance Report Register (FAR) [7]
31
30
SSD
25 24
19 18
RESERVED
31
CAC
16 15
CSEC
14 13
RESERVED
11 10
0
SCI
RESERVED
SSD (Status of Survey Data) (see [PSS-04-151])
30: 25
Write:
Don’t care.
Read:
Automatically cleared to 0 when any other field is updated by the coding layer.
Automatically set to 1 upon a read.
RESERVED
24: 19
Write:
Don’t care.
Read:
All zero.
CAC (Count of Accept Codeblocks) (see [PSS-04-151])
18: 16
Write:
Don’t care.
Read:
Information obtained from coding layer. [2]
CSEC (Count of Single Error Corrections) (see [PSS-04-151])
15: 14
Write:
Don’t care.
Read:
Information obtained from coding layer.
RESERVED
13: 11
Write:
Don’t care.
Read:
All zero.
SCI (Selected Channel Input) (see [PSS-04-151])
10: 0
Write:
Don’t care.
Read:
Information obtained from coding layer.
RESERVED
Write:
Don’t care.
Read:
All zero.
Power-up default: 0x00003800
Table 71. CLCW Register (CLCWRx) (see [PSS-04-107])
31
CWTY
30 29 28 26 25 24 23
VNUM
STAF
CIE
18 17
VCI
16
15
RESERVED NRFA
31
CWTY (Control Word Type)
30: 29
VNUM (CLCW Version Number)
28: 26
STAF (Status Fields)
25: 24
CIE (COP In Effect)
23: 18
VCI (Virtual Channel Identifier)
17: 16
Reserved (PSS/ECSS requires “00”)
15
NRFA (No RF Available)
14
14
13
12
NBLO
LOUT
WAIT
Write:
Don’t care.
Read:
Based on discrete inputs.
11
RTMI
10
9
8
FBCO RTYPE
7
0
RVAL
NBLO (No Bit Lock)
Write:
Don’t care.
Read:
Based on discrete inputs.
13
LOUT (Lock Out)
12
WAIT (Wait)
11
RTMI (Retransmit)
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
71
CCSDS TM / TC and SpaceWire FPGA
10: 9
Table 71. CLCW Register (CLCWRx) (see [PSS-04-107])
FBCO (FARM-B Counter)
8
RTYPE (Report Type)
7: 0
RVAL (Report Value)
Power-up default: 0x00000000
Table 72. Physical Interface Register (PHIR) [7]
31
16 15
RESERVED
31: 16
15: 8
8
7
0
RFA
BLO
RESERVED
Write:
Don’t care.
Read:
All zero.
RFA (RF Available) [3]
Only implemented inputs are taken into account. All other bits are zero.
Write:
Don’t care.
Read:
7: 0
BLO (Bit Lock)
Bit[8] = input 0, Bit[15] = input 7
[3]
Only implemented inputs are taken into account. All other bits are zero.
Write:
Don’t care.
Read:
Bit[0] = input 0, Bit[7] = input 7
Power-up default: Depends on inputs.
Table 73. Control Register (COR)
31
24 23
10
SEB
31: 24
23: 10
9
RESERVED
9
CRST
8
1
RESERVED
0
RE
SEB (Security Byte):
Write:
‘0x55’= the write will have effect (the register will be updated).
Any other value= the write will have no effect on the register.
Read:
All zero.
RESERVED
Write:
Don’t care.
Read:
All zero.
CRST (Channel reset) [4]
Write:
‘1’= initiate channel reset,‘0’= do nothing
Read:
‘1’= unsuccessful reset, ‘0’= successful reset
Note: The Coding Layer is not reset.
8: 1
0
RESERVED
Write:
Don’t care.
Read:
All zero.
RE (Receiver Enable)
The input from the Coding Layer receiver is masked when the RE bit is disabled.
Read/Write:
‘0’= disabled, ‘1’= enabled
Power-up default: 0x00000000
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
72
CCSDS TM / TC and SpaceWire FPGA
Table 74. Status Register (STR) [7]
31
11
RESERVED
31: 11
10
10
RBF
9
8
7
RESERVED
RFF
6
5
RESERVED
4
OV
3
1
RESERVED
0
CR
RESERVED
Write:
Don’t care.
Read:
All zero.
RBF (RX BUFFER Full)
Write:
Don’t care.
Read:
‘0’ = Buffer not full,
‘1’= Buffer full (this bit is set if the buffer has less then 1/8 of free space)
9: 8
7
6: 5
4
3: 1
0
RESERVED
Write:
Don’t care.
Read:
All zero.
RFF (RX FIFO Full)
Write:
Don’t care.
Read:
‘0’ = FIFO not full, ‘1’ = FIFO full
RESERVED
Write:
Don’t care.
Read:
All zero.
OV (Overrun) [5]
Write:
Don’t care.
Read:
‘0’= nominal, ‘1’= data lost
RESERVED
Write:
Don’t care.
Read:
All zero.
CR (CLTU Ready) [5]
There is a worst case delay from the CR bit being asserted, until the data has actually been transferred from the receiver FIFO to the ring buffer. This depends on the PCI load etc.
Write:
Don’t care.
Read:
‘1’= new CLTU in ring buffer. ‘0’= no new CLTU in ring buffer.
Power-up default: 0x00000000
Table 75. Address Space Register (ASR) [8]
31
10
BUFST
9
8
RESERVED
7
0
RXLEN
31: 10
BUFST (Buffer Start Address)
22-bit address pointer
This pointer contains the start address of the allocated buffer space for this channel.
Register has to be initialized by software before DMA capability can be enabled.
9: 8
RESERVED
7: 0
Write:
Don’t care.
Read:
All zero.
RXLEN (RX buffer length)
Number of 1kB-blocks reserved for the RX buffer.
(Min. 1kByte = 0x00, Max. 256kByte = 0xFF)
Power-up default: 0x00000000
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
73
CCSDS TM / TC and SpaceWire FPGA
Table 76. Receive Read Pointer Register (RRP) [6] [9][10]
31
24 23
0
RxRd Ptr Upper
31: 24
23: 0
RxRd Ptr Lower
10-bit upper address pointer
Write:
Don’t care.
Read:
This pointer = ASR[31..24].
24-bit lower address pointer.
This pointer contains the current RX read address. This register is to be incremented with the actual
amount of bytes read.
Power-up default: 0x00000000
Table 77. Receive Write Pointer Register (RWP) [6] [9]
31
24 23
0
RxWr Ptr Upper
31: 24
23: 0
RxWr Ptr Lower
10-bit upper address pointer
Write:
Don’t care.
Read:
This pointer = ASR[31..24].
24-bit lower address pointer.
This pointer contains the current RX write address. This register is incremented with the actual
amount of bytes written.
Power-up default: 0x00000000
Legend:
[1]
The global system reset caused by the SRST-bit in the GRR-register results in the following actions:
- Initiated by writing a ‘1”, gives ‘0’ on read-back when the reset was successful.
- No need to write a ‘0’ to remove the reset.
- Unconditionally, means no need to check/disable something in order for this reset-function to correctly execute.
- Could of course lead to data-corruption coming/going from/to the reset core.
- Resets the complete core (all logic, buffers & register values)
- Behaviour is similar to a power-up. {Note that the above actions require that the HRESET signal is fed back
inverted to HRESETn, and the CRESET signal is fed back inverted to CRESETn}
- The Coding Layer is not reset.
[2]
The FAR register supports the CCSDS/ECSS standard frame lengths (1024 octets), requiring an 8 bit CAC field
instead of the 6 bits specified for PSS. The two most significant bits of the CAC will thus spill over into
the "LEGAL/ILLEGAL" FRAME QUALIFIER field, Bit [26:25]. This is only the case when the PSS bit is set to '0'.
[3]
Only inputs 0 through 3 are implemented.
[4]
The channel reset caused by the CRST-bit in the COR-register results in the following actions:
- Initiated by writing a ‘1”, gives ‘0’ on read-back when the reset was successful.
- No need to write a ‘0’ to remove the reset.
- All other bit’s in the COR are neglected (not looked at) when the CRST-bit is set during a write, meaning that
the value of these bits has no impact on the register-value after the reset.
- Unconditionally, means no need to check/disable something in order for this reset-function to correctly execute.
- Could of course lead to data-corruption coming/going from/to the reset channel.
- Resets the complete channel (all logic, buffers & register values)
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
74
CCSDS TM / TC and SpaceWire FPGA
- Except the ASR-register of that channel which remains it’s value.
- All read- and write-pointers are automatically re-initialized and point to the start of the ASR-address.
- All registers of the channel (except the ones described above) get their power-up value.
- This reset shall not cause any spurious interrupts.
{Note that the above actions require that the CRESET signal is fed back inverted to CRESETn}
- The Coding Layer is not reset.
[5]
These bits are sticky bits which means that they remain present until the register is read and
that they are cleared automatically by reading the register.
[6]
The value of the pointers depends on the content of the corresponding Address Space Register (ASR).
During a system reset, a channel reset or a change of the ASR register, the pointers are recalculated
based on the values in the ASR register.
The software has to take care (when programming the ASR register) that the pointers never have to cross a
16MByte boundary (because this would cause an overflow of the 24-bit pointers).
It is not possible to write an out of range value to the RRP register. Such access will be ignored with an HERROR.
[7]
An AMBA AHB ERROR response is generated if a write access is attempted to a register without any writeable bits.
[8]
The channel reset caused by a write to the ASR-register results in the following actions:
- Initiated by writing an updated value into the ASR-register.
- Unconditionally, means no need to check/disable something in order for this reset-function to correctly execute.
- Could of course lead to data-corruption coming/going from/to the reset channel.
- Resets the complete channel (all logic & buffers) but not all register values, only the following:
- COR-register, TE & RE bits get their power-up value, other bits remain their value.
- STR-register, all bits get their power-up value
- Other registers remain their value
- Updates the ASR-register of that channel with the written value
- All read- and write-pointers are automatically re-initialized and point to the start of the ASR-address.
- This reset shall not cause any spurious interrupts
- The Coding Layer is not reset.
[9]
During a channel reset the register is temporarily unavailable and HRETRY response is generated if accessed.
[10] It is not possible to write an out of range value to the RRP register. Such access will be ignored without an error.
[11] The PSS bit usage is only supported if the gPSS generic is set on the TCC module. Fixed to 0.
8.9.1
Interrupt registers
The interrupt registers give complete freedom to the software, by providing means to mask interrupts,
clear interrupts, force interrupts and read interrupt status.
When an interrupt occurs the corresponding bit in the Pending Interrupt Register is set. The normal
sequence to initialize and handle a module interrupt is:
•
Set up the software interrupt-handler to accept an interrupt from the module.
•
Read the Pending Interrupt Register to clear any spurious interrupts.
•
Initialize the Interrupt Mask Register, unmasking each bit that should generate the module interrupt.
•
When an interrupt occurs, read the Pending Interrupt Status Register in the software interrupthandler to determine the causes of the interrupt.
•
Handle the interrupt, taking into account all causes of the interrupt.
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
•
75
CCSDS TM / TC and SpaceWire FPGA
Clear the handled interrupt using Pending Interrupt Clear Register.
Masking interrupts: After reset, all interrupt bits are masked, since the Interrupt Mask Register is zero.
To enable generation of a module interrupt for an interrupt bit, set the corresponding bit in the Interrupt Mask Register.
Clearing interrupts: All bits of the Pending Interrupt Register are cleared when it is read or when the
Pending Interrupt Masked Register is read. Reading the Pending Interrupt Masked Register yields the
contents of the Pending Interrupt Register masked with the contents of the Interrupt Mask Register.
Selected bits can be cleared by writing ones to the bits that shall be cleared to the Pending Interrupt
Clear Register.
Forcing interrupts: When the Pending Interrupt Register is written, the resulting value is the original
contents of the register logically OR-ed with the write data. This means that writing the register can
force (set) an interrupt bit, but never clear it.
Reading interrupt status: Reading the Pending Interrupt Status Register yields the same data as a read
of the Pending Interrupt Register, but without clearing the contents.
Reading interrupt status of unmasked bits: Reading the Pending Interrupt Masked Status Register
yields the contents of the Pending Interrupt Register masked with the contents of the Interrupt Mask
Register, but without clearing the contents.
The interrupt registers comprise the following:
•
Pending Interrupt Masked Status Register
[PIMSR]
R
•
Pending Interrupt Masked Register
[PIMR]
R
•
Pending Interrupt Status Register
[PISR]
R
•
Pending Interrupt Register
[PIR]
R/W
•
Interrupt Mask Register
[IMR]
R/W
•
Pending Interrupt Clear Register
[PICR]
W
Table 78. Interrupt registers
31
7
-
6:
5:
4:
3:
2:
1:
0:
6
5
4
3
2
1
0
CS
OV
RBF
CR
FAR
BLO
RFA
CS
OV
RBF
CR
FAR
BLO
RFA
CLTU stored
Input data overrun
Output buffer full
CLTU ready/aborted
FAR available
Bit Lock changed
RF Available Changed
All bits in all interrupt registers are reset to 0b after reset.
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
8.10
76
CCSDS TM / TC and SpaceWire FPGA
Signal definitions and reset values
The signals and their reset values are described in table 79.
Table 79. Signal definitions and reset values
8.11
Signal name
Type
Function
Active
Reset value
tcscid
Input, static
Spacecraft Identity
-
-
tcrfpos
Input, static
RF Available polarity
-
-
tchigh
Input, static
Bit Lock polarity
-
-
tcrise
Input, static
Rising clock edge
-
-
tcpseudo
Input, static
Pseudo-Derandomiser
-
-
tcmark
Input, static
NRZ-M decoder
-
-
tcrfa[0:7]
Input, async
RF Available for CLCW
-
-
tcactive[0:7]
Input, async
Active
-
-
tcclk[0:7]
Input, async
Bit clock
-
-
tcdata[0:7]
Input, async
Data
-
-
clcwout[0 ]
Output
CLCW output data 2
-
Logical 1
Timing
The timing waveforms and timing parameters are shown in figure 17 and are defined in table 80.
clk
clcwout[ 0]
tGRTC0
tGRTC0
Figure 17. Timing waveforms
Table 80. Timing parameters
Name
Parameter
Reference edge
Min
Max
Unit
tGRTC0
clock to output delay
rising clk edge
0
40
ns
Note: The inputs are re-synchronized internally. The signals do not have to meet any setup or hold
requirements. Static signals should not change between resets.
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
77
9
Telecommand Decoder - Hardware Commands
9.1
Overview
9.1.1
CCSDS TM / TC and SpaceWire FPGA
Concept
The Telecommand Decoder - Hardware Commands provides access to an output port via telecommands.
The decoder implements the following layers:
•
Application Layer:
•
•
•
Hardware command decoding and execution
Space Packet Protocol:
•
Packet Extraction
•
Path Recovery
Data Link - Protocol Sub-Layer:
•
Virtual Channel Packet Extraction
•
Virtual Channel Reception:
•
•
•
Support for Command Link Control Word (CLCW)
•
Virtual Channel Demultiplexing
•
Master Channel Demultiplexing
•
All Frames Reception
Data Link - Synchronization and Channel Coding Sub-Layer:
•
Pseudo-Derandomization
•
BCH codeblock decoding
•
Start Sequence Search
Physical Layer:
•
Non-Return-to-Zero Level/Mark de-modulation (NRZ-L/M)
The Channel Coding Sub-Layer and the Physical Layer are shared with the Telecommand Decoder Software Commands, and are therefore not repeated here.
9.2
Operation
In the Application Layer and the Data Link - Protocol Sub-Layer, the information octets from the
Channel Coding Sub-Layer are decoded as follows.
9.2.1
All Frames Reception
The All Frames Reception function performs two procedures:
•
Frame Delimiting and Fill Removal Procedure; and
•
Frame Validation Check Procedure, in this order.
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
78
CCSDS TM / TC and SpaceWire FPGA
The Frame Delimiting and Fill Removal Procedure is used to reconstitute Transfer Frames from the
data stream provided by the Channel Coding Sub-Layer and to remove any Fill Data transferred from
the Channel Coding Sub-Layer. The Frame Length field is checked to correspond to a fixed value as
listed below. The number of information octets is checked to be a fixed number 21.
The Fill Data is checked to match the 0x55 pattern, or the corresponding pseudo-randomized pattern
when pseudo-derandomization is enabled (pin configurable). Note that it is assumed that the Fill Data
is not pseudo-randomized at the transmitting end.
The Frame Validation Checks procedure performs the following checks:
•
Version Number is checked to be 0
•
Bypass Flag is checked to be 1
•
Control Command Flag is checked to be 0
•
Reserved Spare bits are checked to be 0
•
Spacecraft Identifier is compared with a pin configurable input value
•
Virtual Channel identifier is compared with a pin configurable input value
•
Frame Length field is checked to be a fixed value of 0000010011b (i.e. 20-1)
•
Frame Sequence Number is checked to be a fixed value of 0
•
The Frame Error Control Field is checked to match the recomputed CRC value
9.2.2
Master Channel Demultiplexing
The Master Channel Demultiplexing is performed implicitly during the All Frames Reception procedure described above.
9.2.3
Virtual Channel Demultiplexing
The Virtual Channel Demultiplexing is performed implicitly during the All Frames Reception procedure described above.
9.2.4
Virtual Channel Reception
The Virtual Channel Reception supports Command Link Control Word (CLCW) generation and transfer to the Telemetry Encoder, according to the following field description.
•
Control Word Type field is 0
•
CLCW Version Number field is 0
•
Status Field is 0
•
COP in Effect field is 1
•
Virtual Channel Identification is taken from pin configurable input value
•
Reserved Spare field is 0
•
No RF Available Flag is 0, but is overwritten by the Telemetry Encoder
•
No Bit Lock Flag is 0, but is overwritten by the Telemetry Encoder
•
Lockout Flag is 1
•
Wait Flag is 0
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
79
CCSDS TM / TC and SpaceWire FPGA
•
Retransmit Flag is 0
•
FARM-B Counter is taken from the to least significant bits of a reception counter
•
Reserved Spare field is 0
•
Report Value field is 0
9.2.5
Virtual Channel Packet Extraction
The Virtual Channel Packet Extraction function extracts the Space Packet from the Frame Data Unit
on the Virtual Channel, received from the Virtual Channel Reception function.
No blocking of Space Packets is permitted.
The Packet Version Number is checked to be 000, before delivered to the next function, else the Space
Packet is discarded.
9.2.6
Path Recovery
The Path Recovery function receives and demultiplexes Space Packets received from the underlying
subnetwork. The Path Recovery function receives Space Packets from the underlying subnetwork and
demultiplex, if necessary, the received Space Packets on the basis of the Path Identifier of each Space
Packet.
The Path Identifier is derived directly from the Application Identifier (APID) of the Space Packet,
which is checked to be 00000000000, else the Space Packet is discarded.
Since the application layer uses the Octet String Service, the received Space Packets are delivered to
the user through the Packet Extraction function described hereafter.
9.2.7
Packet Extraction
The Packet Extraction function extracts service data units from Space Packets. The Packet Extraction
function extracts Octet Strings by stripping the Packet Primary Header, and the Packet Error Control
field.
The following checks are performed before the Octet Strings (i.e. User Data Field) is forwarded to the
Application Layer, else it is discarded:
•
Packet Version field is 000b
•
Packet Type is 1b
•
Secondary Header Flagis 0b
•
Application Process Id is 00000000000b
•
Sequence Flagsare 11b
•
Packet Data Length is 0000000000000110b
The Packet Extraction Function does not check the continuity of the Packet Sequence Count, since
Packet Name is used.
The Packet Extraction function verifies the correctness of the Packet Error Control field to match the
recomputed CRC value (calculated over the complete Space Packet), if incorrect the Space Packet is
not forwarded to the Application Layer, being discarded.
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
80
9.2.8
CCSDS TM / TC and SpaceWire FPGA
Application Layer
The Application Layer interprets only Transfer Frames that have successfully passed the Data Link
Layer and Space Packet Protocol checks as described above.
The Application Layer interprets the Octet Strings (i.e. User Data Field) of the Packet Data Field.
The User Data Field consists of 5 octets comprising the hardware command, as defined in the bit
order hereafter (MSB of first octet corresponds to OUTPUT(0), LSB of last octet corresponds to
PULSE(7):
•
OUTPUT(0 to 31) (32 bits in total)
•
PULSE(0 to 7) (8 bits in total)
Before a hardware command is executed, the following is checked that:
•
no hardware command is ongoing
The OUTPUT bits 0 to 31 correspond to the tcgpio[] bits 0 to 31.
The PULSE field has three interpretations: 0 to clear bits, 255 to set bits, 1 to 254 to generate pulses
on bits:
•
When PULSE field is 0, the corresponding bits that are not set in the OUTPUT field are cleared
on the tcgpio outputs (AND function).
•
When PULSE field is 255, the corresponding bits that are set in the OUTPUT field are set on the
tcgpio outputs (OR function).
•
When PULSE field is in the range 1 to 254, the corresponding bits that are set in the OUTPUT
field are set on the tcgpio outputs for a duration of PULSE * 8192 system clock cycles, after
which they are cleared again.
The tcgpio[0:31] outputs are cleared to logical 0 at reset.
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
9.3
81
CCSDS TM / TC and SpaceWire FPGA
Telecommand Transfer Frame format - Hardware Commands
The telecommand Transfer Frame for Hardware Commands has the following structures.
Transfer Frame
Transfer Frame
Primary Header
Transfer Frame Data Field
Frame Error
Control Field
Space Packet
Packet Primary Header
(FECF)
Packet Data Field
User Data Field
Packet Error Control
Hardware Command
0:39
40:87
88:127
128:143
144:159
5 octets
6 octets
5 octets
2 octets
2 octets
20 octets
Table 81. Telecommand Transfer Frame format
Transfer Frame Primary Header
Version
Bypass
Control
Reserved
S/C
Virtual
Frame
Frame
Flag
Command
Spare
Id
Channel
Length
Sequence
Flag
Id
Number
00b
1b
0b
00b
PIN
PIN
0000010011b
00000000b
0:1
2
3
4:5
6:15
16:21
22:31
32:39
2 bits
1 bit
1 bit
2 bits
10 bits
6 bits
10 bits
8 bits
2 octets
2 octets
1 octet
Table 82. Telecommand Transfer Frame Primary Header format
Space Packet
Packet Primary Header
Packet
Packet Identification
Version Type Secondary
Application
Number
Header Flag
Process Id
Packet Data Field
Packet Sequence Control
Sequence
Flags
Packet
Name
Packet
User
Packet
Data
Data
Error
Length
Field
Control
Hardware Command
CRC
88:127
128:143
000b
1b
0b
00000000000b
11b
Don’t care 000616
40:42
43
44
45:55
56:57
58:71
72:87
3 bits
1 bit
1 bit
11 bits
2 bits
14 bits
16 bits
6 octets
40 bits
16 bits
5 octets
2 octets
Table 83. CCSDS Space Packet format
Hardware Command
OUTPUT (0:31)
PULSE (0:7)
88:119
120:127
32 bits
8 bits
4 octets
1 octet
Table 84. Hardware Command format
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
9.4
82
CCSDS TM / TC and SpaceWire FPGA
Signal definitions and reset values
The signals and their reset values are described in table 85.
Table 85. Signal definitions and reset values
9.5
Signal name
Type
Function
Active
Reset value
tcgpio[0:31]
Output
Hardware command output
Logical 1
Logical 0
tcscid[0:9]
Input, static
Telecommand Spacecraft Identifier
-
-
tcvcid[0:5]
Input, static
Telecommand Virtual Channel Identifier
.
.
clcwout[1 ]
Output
CLCW output data
-
Logical 1
Timing
The timing waveforms and timing parameters are shown in figure 18 and are defined in table 86.
clk
tcgpio[ ] , clcwout[1]
tGRTCHW0
tGRTCHW0
Figure 18. Timing waveforms
Table 86. Timing parameters
Name
Parameter
Reference edge
Min
Max
Unit
tGRTCHW0
clock to output delay
rising clk edge
0
40
ns
Note: The inputs are re-synchronized internally. The signals do not have to meet any setup or hold
requirements. Static signals should not change between resets.
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
83
10
SpaceWire Interface with RMAP target
10.1
Overview
CCSDS TM / TC and SpaceWire FPGA
The SpaceWire core provides an interface between the AHB bus and a SpaceWire network. It implements the SpaceWire standard (ECSS-E-50-12A) with the protocol identification extension (ECSS-E50-11).The Remote Memory Access Protocol (RMAP) target implements the ECSS standard (ECSSE-50-11).
TXCLK
D(1:0)
TRANSMITTER
S(1:0)
LINKINTERFACE
FSM
SEND
FSM
TRANSMITTER
FSM
RMAP
TRANSMITTER
TRANSMITTER
DMA ENGINE
AHB
MASTER INTERFACE
RECEIVER
DMA ENGINE
D0
S0
RXCLK RECEIVER0
RXCLK
RECOVERY
RMAP
RECEIVER
RECEIVER
AHB FIFO
RXCLK RECEIVER1
RXCLK
RECOVERY
N-CHAR
FIFO
RECEIVER DATA
PARALLELIZATION
D1
S1
Figure 19. Block diagram
10.2
Operation
10.2.1 Overview
The main sub-blocks of the core are the link-interface, the RMAP target and the AMBA interface. A
block diagram of the internal structure can be found in figure 19.
The link interface consists of the receiver, transmitter and the link interface FSM. They handle communication on the SpaceWire network. The AMBA interface consists of the DMA engines, the AHB
master interface and the APB interface. The link interface provides FIFO interfaces to the DMA
engines. These FIFOs are used to transfer N-Chars between the AMBA and SpaceWire domains during reception and transmission.
The RMAP target handles incoming packets which are determined to be RMAP commands instead of
the receiver DMA engine. The RMAP command is decoded and if it is valid, the operation is performed on the AHB bus. If a reply was requested it is automatically transmitted back to the source by
the RMAP transmitter.
10.2.2 Protocol support
The core only accepts packets with a destination address corresponding to the one set in the node
address register. Packets with address mismatch will be silently discarded. The node address register
is initialized to the default address 254 during reset.
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
84
CCSDS TM / TC and SpaceWire FPGA
RMAP (Protocol ID = 0x01) commands are handled. All RMAP commands are processed, executed
and replied in hardware. All RMAP replies received are still stored to the DMA channel. Figure 20
shows a packet with a normal protocol identifier.
Addr ProtID D0
D1
D2
D3
..
Dn-2 Dn-1 EOP
Figure 20. The SpaceWire packet with protocol ID that is expected by the GRSPW.
10.3
Link interface
The link interface handles the communication on the SpaceWire network and consists of a transmitter,
receiver, a FSM and FIFO interfaces. An overview of the architecture is found in figure 19.
10.3.1 Link interface FSM
The FSM controls the link interface (a more detailed description is found in the SpaceWire standard).
The low-level protocol handling (the signal and character level of the SpaceWire standard) is handled
by the transmitter and receiver while the FSM in the host domain handles the exchange level.
When the link interface is in the connecting- or run-state it is allowed to send FCTs. FCTs are sent
automatically by the link interface when possible. This is done based on the maximum value of 56 for
the outstanding credit counter and the currently free space in the receiver N-Char FIFO. FCTs are sent
as long as the outstanding counter is less than or equal to 48 and there are at least 8 more empty FIFO
entries than the counter value.
N-Chars are sent in the run-state when they are available from the transmitter FIFO and there are
credits available. NULLs are sent when no other character transmission is requested or the FSM is in
a state where no other transmissions are allowed.
The credit counter (incoming credits) is automatically increased when FCTs are received and
decreased when N-Chars are transmitted. Received N-Chars are stored to the receiver N-Char FIFO
for further handling by the DMA interface.
10.3.2 Transmitter
The state of the FSM, credit counters, requests from the time-interface and requests from the DMAinterface are used to decide the next character to be transmitted. The type of character and the character itself (for N-Chars) to be transmitted are presented to the low-level transmitter which is located in
a separate clock-domain. This is done because one usually wants to run the SpaceWire link on a different frequency than the host system clock.
The transmitter logic in the host clock domain decides what character to send next and sets the proper
control signal and presents any needed character to the low-level transmitter as shown in figure 21.
The transmitter sends the requested characters and generates parity and control bits as needed. If no
requests are made from the host domain, NULLs are sent as long as the transmitter is enabled. Most of
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
85
CCSDS TM / TC and SpaceWire FPGA
the signal and character levels of the SpaceWire standard is handled in the transmitter. External LVDS
drivers are needed for the data and strobe signals.
D
S
Transmitter
Transmitter Clock Domain
Send Time-code
Send FCT
Send NChar
Time-code[7:0]
NChar[8:0]
Host Clock Domain
Figure 21. Schematic of the link interface transmitter.
A transmission FSM reads N-Chars for transmission from the transmitter FIFO. It is given packet
lengths from the DMA interface and appends EOPs/EEPs and RMAP CRC values if requested. When
it is finished with a packet the DMA interface is notified and a new packet length value is given.
10.3.3 Receiver
The receiver detects connections from other nodes and receives characters as a bit stream on the data
and strobe signals. It is also located in a separate clock domain which runs on a clock generated from
the received data and strobe signals.
The receiver is activated as soon as the link interface leaves the error reset state. Then after a NULL is
received it can start receiving any characters. It detects parity, escape and credit errors which causes
the link interface to enter the error reset state. Disconnections are handled in the link interface part in
the system clock domain because no receiver clock is available when disconnected.
Received Characters are flagged to the host domain and the data is presented in parallel form. The
interface to the host domain is shown in figure 22. L-Chars are the handled automatically by the host
domain link interface part while all N-Chars are stored in the receiver FIFO for further handling. If
two or more consecutive EOPs/EEPs are received all but the first are discarded.
There are no signals going directly from the transmitter clock domain to the receiver clock domain
and vice versa. All the synchronization is done to the system clock.
D
Receiver
S
Receiver Clock Domain
Got Time-code
Got FCT
Got EOP
Got EEP
Got NChar
Time-code[7:0]
NChar[7:0]
Host Clock Domain
Figure 22. Schematic of the link interface receiver.
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
10.4
86
CCSDS TM / TC and SpaceWire FPGA
RMAP
The Remote Memory Access Protocol (RMAP) is used to implement access to resources in the node
via the SpaceWire Link. Some common operations are reading and writing to memory, registers and
FIFOs. The core has an optional hardware RMAP target which is enabled with a VHDL generic. This
section describes the basics of the RMAP protocol and the target implementation.
10.4.1 Fundamentals of the protocol
RMAP is a protocol which is designed to provide remote access via a SpaceWire network to memory
mapped resources on a SpaceWire node. It has been assigned protocol ID 0x01. It provides three operations write, read and read-modify-write. These operations are posted operations which means that a
source does not wait for an acknowledge or reply. It also implies that any number of operations can be
outstanding at any time and that no timeout mechanism is implemented in the protocol. Time-outs
must be implemented in the user application which sends the commands. Data payloads of up to 16
Mb - 1 is supported in the protocol. A destination can be requested to send replies and to verify data
before executing an operation. A complete description of the protocol is found in the RMAP standard.
10.4.2 Implementation
The core includes a taget for RMAP commands which processes all incoming packets with protocol
ID = 0x01 and type field (bit 7 and 6 of the 3rd byte in the packet) equal to 01b. When such a packet
is detected it is not stored to the DMA channel, instead it is passed to the RMAP receiver.
The core implements all three commands defined in the standard with some restrictions. The implementation is based on draft F of the RMAP standard (the only exception being that error code 12 is
not implemented). Support is only provided for 32-bit big-endian systems. This means that the first
byte received is the msb in a word. The command handler will not receive RMAP packets using the
extended protocol ID which are always dumped to the DMA channel.
The RMAP receiver processes commands. If they are correct and accepted the operation is performed
on the AHB bus and a reply is formatted. If an acknowledge is requested the RMAP transmitter automatically send the reply. RMAP transmissions have priority over DMA channel transmissions.
Packets with a mismatching destination logical address are never passed to the RMAP target. There is
a user accessible destination key register which is compared to destination key field in incoming
packets. If there is a mismatch and a reply has been requested the error code in the reply is set to 3.
Replies are sent if and only if the ack field is set to ‘1’.
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
87
CCSDS TM / TC and SpaceWire FPGA
Detection of all error codes except code 12 is supported. When a failure occurs during a bus access the
error code is set to 1 (General Error). There is predetermined order in which error-codes are set in the
case of multiple errors in the core. It is shown in table 87.
Table 87. The order of error detection in case of multiple errors in the GRSPW. The error detected first has number 1.
Detection Order
Error Code
Error
1
2
Unused RMAP packet type or command code
2
3
Invalid destination key
3
9
Verify buffer overrun
4
11
RMW data length error
5
10
Authorization failure
6*
1
General Error (AHB errors during non-verified writes)
7
5/7
Early EOP / EEP (if early)
8
4
Invalid Data CRC
9
1
General Error (AHB errors during verified writes or RMW)
10
7
EEP
11
6
Cargo Too Large
*The AHB error is not guaranteed to be detected before Early EOP/EEP or Invalid Data CRC. For very long accesses
the AHB error detection might be delayed causing the other two errors to appear first.
Read accesses are performed on the fly, that is they are not stored in a temporary buffer before transmission. This means that the error code 1 will never be seen in a read reply since the header has
already been sent when the data is read. If the AHB error occurs the packet will be truncated and
ended with an EEP.
Errors up to and including Invalid Data CRC (number 8) are checked before verified commands. The
other errors do not prevent verified operations from being performed.
The details of the support for the different commands are now presented. All defined commands
which are received but have an option set which is not supported in this specific implementation will
not be executed and a possible reply is sent with error code 10.
10.4.3 Write commands
The write commands are divided into two subcategories when examining their capabilities: verified
writes and non-verified writes. Verified writes have a length restriction of 4 B and the address must be
aligned to the size. That is 1 B writes can be done to any address, 2 B must be halfword aligned, 3 B
are not allowed and 4 B writes must be word aligned. Since there will always be only one AHB operation performed for each RMAP verified write command the incrementing address bit can be set to
any value.
Non-verified writes have no restrictions when the incrementing bit is set to 1. If it is set to 0 the number of bytes must be a multiple of 4 and the address word aligned. There is no guarantee how many
words will be written when early EOP/EEP is detected for non-verified writes.
10.4.4 Read commands
Read commands are performed on the fly when the reply is sent. Thus if an AHB error occurs the
packet will be truncated and ended with an EEP. There are no restrictions for incrementing reads but
non-incrementing reads have the same alignment restrictions as non-verified writes. Note that the
“Authorization failure” error code will be sent in the reply if a violation was detected even if the
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
88
CCSDS TM / TC and SpaceWire FPGA
length field was zero. Also note that no data is sent in the reply if an error was detected i.e. if the status
field is non-zero.
10.4.5 RMW commands
All read-modify-write sizes are supported except 6 which would have caused 3 B being read and written on the bus. The RMW bus accesses have the same restrictions as the verified writes. As in the verified write case, the incrementing bit can be set to any value since only one AHB bus operation will be
performed for each RMW command. Cargo too large is detected after the bus accesses so this error
will not prevent the operation from being performed. No data is sent in a reply if an error is detected
i.e. the status field is non-zero.
10.4.6 Control
The RMAP command handler mostly runs in the background without any external intervention, but
there are a few control possibilities.
There is an enable bit in the control register of the core which can be used to completely disable the
RMAP command handler. When it is set to ‘0’ no RMAP packets will be handled in hardware, instead
they are all stored to the DMA channel.
There is a possibility that RMAP commands will not be performed in the order they arrive. This can
happen if a read arrives before one or more writes. Since the command handler stores replies in a
buffer with more than one entry several commands can be processed even if no replies are sent. Data
for read replies is read when the reply is sent and thus writes coming after the read might have been
performed already if there was congestion in the transmitter. To avoid this the RMAP buffer disable
bit can be set to force the command handler to only use one buffer which prevents this situation.
The last control option for the command handler is the possibility to set the destination key which is
found in a separate register.
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
89
CCSDS TM / TC and SpaceWire FPGA
Table 88. GRSPW hardware RMAP handling of different packet type and command fields.
Bit 7
Bit 6
Command
Action
Reserved
Verify
data
Command Write / before
/ Response Read
write
Acknow- Increment
ledge
Address
0
0
-
-
-
-
Response
Stored to DMA-channel.
0
1
0
0
0
1
0
0
0
0
Not used
Does nothing. No reply is sent.
0
1
Not used
Does nothing. No reply is sent.
0
1
0
0
1
0
Read single
address
Executed normally. Address has
to be word aligned and data size
a multiple of four. Reply is sent.
If alignment restrictions are violated error code is set to 10.
0
1
0
0
1
1
Read incrementing
address.
Executed normally. No restrictions. Reply is sent.
0
1
0
1
0
0
Not used
Does nothing. No reply is sent.
0
1
0
1
0
1
Not used
Does nothing. No reply is sent.
0
1
0
1
1
0
Not used
Does nothing. Reply is sent with
error code 2.
0
1
0
1
1
1
Read-Modify-Write
incrementing address
Executed normally. If length is
not one of the allowed rmw values nothing is done and error
code is set to 11. If the length
was correct, alignment restrictions are checked next. 1 byte
can be rmw to any address. 2
bytes must be halfword aligned.
3 bytes are not allowed. 4 bytes
must be word aligned. If these
restrictions are violated nothing
is done and error code is set to
10. If an AHB error occurs error
code is set to 1. Reply is sent.
0
1
1
0
0
0
Write, single-address,
do not verify
before writing, no
acknowledge
Executed normally. Address has
to be word aligned and data size
a multiple of four. If alignment is
violated nothing is done. No
reply is sent.
0
1
1
0
0
1
Write, incrementing
address, do
not verify
before writing, no
acknowledge
Executed normally. No restrictions. No reply is sent.
Copyright Aeroflex Gaisler AB
Bit 5
Bit 4
Bit 3
Bit 2
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
90
CCSDS TM / TC and SpaceWire FPGA
Table 88. GRSPW hardware RMAP handling of different packet type and command fields.
Bit 7
Bit 6
Command
Action
Reserved
Verify
data
Command Write / before
/ Response Read
write
Acknow- Increment
ledge
Address
0
1
1
0
1
0
Write, single-address,
do not verify
before writing, send
acknowledge
Executed normally. Address has
to be word aligned and data size
a multiple of four. If alignment is
violated nothing is done and
error code is set to 10. If an AHB
error occurs error code is set to 1.
Reply is sent.
0
1
1
0
1
1
Write, incrementing
address, do
not verify
before writing, send
acknowledge
Executed normally. No restrictions. If AHB error occurs error
code is set to 1. Reply is sent.
0
1
1
1
0
0
Write, single
address, verify before
writing, no
acknowledge
Executed normally. Length must
be 4 or less. Otherwise nothing is
done. Same alignment restrictions apply as for rmw. No reply
is sent.
0
1
1
1
0
1
Write, incrementing
address, verify before
writing, no
acknowledge
Executed normally. Length must
be 4 or less. Otherwise nothing is
done. Same alignment restrictions apply as for rmw. If they
are violated nothing is done. No
reply is sent.
0
1
1
1
1
0
Write, single
address, verify before
writing, send
acknowledge
Executed normally. Length must
be 4 or less. Otherwise nothing is
done and error code is set to 9.
Same alignment restrictions
apply as for rmw. If they are violated nothing is done and error
code is set to 10. If an AHB error
occurs error code is set to 1.
Reply is sent.
0
1
1
1
1
1
Write, incrementing
address, verify before
writing, send
acknowledge
Executed normally. Length must
be 4 or less. Otherwise nothing is
done and error code is set to 9.
Same alignment restrictions
apply as for rmw. If they are violated nothing is done and error
code is set to 10. If an AHB error
occurs error code is set to 1.
Reply is sent.
1
0
-
-
-
-
Unused
Stored to DMA-channel.
1
1
-
-
-
-
Unused
Stored to DMA-channel.
Copyright Aeroflex Gaisler AB
Bit 5
Bit 4
Bit 3
Bit 2
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
10.5
91
CCSDS TM / TC and SpaceWire FPGA
Signal definitions and reset values
The signals and their reset values are described in table 89.
Table 89. Signal definitions and reset values
Signal name
Type
Function
Active
Reset value
spw_clk
Input
Transmitter default run-state clock
Rising edge
-
spw_rxd
Input, LVTTL
Data input, positive
High
-
spw_rxdn
Input, LVDS
Data input, negative {spare}
Low
-
spw_rxs
Input, LVTTL
Strobe input, positive
High
-
spw_rxsn
Input, LVDS
Strobe input, negative {spare}
Low
-
spw_txd
Output, LVTTL
Data output, positive
High
Logical 0
spw_txdn
Output, LVDS
Data output, negative {spare}
Low
Logical 1
spw_txs
Output, LVTTL
Strobe output, positive
High
Logical 0
spw_txsn
Output, LVDS
Strobe output, negative {spare}
Low
Logical 1
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
10.6
92
CCSDS TM / TC and SpaceWire FPGA
Timing
The timing waveforms and timing parameters are shown in figure 23 and are defined in table 90.
tSPW0
spw_clk
spw_txd, spw_txdn
spw_txs, spw_txsn
tSPW1
spw_rxd, spw_rxdn
spw_rxs, spw_rxsn
tSPW2
tSPW4
tSPW1
tSPW3
tSPW4
spw_txd, spw_txdn
spw_txs, spw_txsn
tSPW4
tSPW5
tSPW5
tSPW6
spw_rxd, spw_rxdn
tSPW5
spw_rxs, spw_rxsn
tSPW6
tSPW7
spw_txd, spw_txdn
spw_txs, spw_txsn
Figure 23. Timing waveforms
Table 90. Timing parameters
Name
Parameter
Reference edge
Min
Max
Unit
tSPW0
transmit clock period
-
100
100
ns
tSPW1
clock to output delay
rising spw_clk edge
0
25
ns
tSPW2
input to clock hold
-
-
-
not applicable
tSPW3
input to clock setup
-
-
-
not applicable
tSPW4
output data bit period
-
-
-
tSPW0 -5
tSPW0 +5 ns
clk periods
tSPW5
input data bit period
-
100
100
ns
tSPW6
data & strobe edge separation
-
10
-
ns
tSPW7
data & strobe output skew
-
-
5
ns
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
93
CCSDS TM / TC and SpaceWire FPGA
11
Fault Tolerant PROM/SRAM Memory Interface
11.1
Overview
The fault tolerant 32-bit PROM/SRAM memory interface uses a common 32-bit memory bus to interface PROM, SRAM and I/O devices. In addition it also provides an Error Detection And Correction
Unit (EDAC), correcting one and detecting two errors. Configuration of the memory controller functions is performed through the APB bus interface. Note that control signals for I/O devices, and bus
error and ready are not supported.
A
AHB
SRO.ROMSN
SRO.OEN
SRO.WRITEN
D
CB
A
CS
OE
WE
PROM
CS
OE
WE
SRAM
D
CB
MEMORY
CONTROLLER
SRO.RAMSN
SRO.RAMOEN
SRO.RWEN[3:0]
A
D
CB
SRI.A[27:0]
SRI.D[31:0]
SRO.D[31:0]
CB[7:0]
AHB/APB
APB
Bridge
Figure 24. 32-bit FT PROM/SRAM/IO controller
11.2
Operation
The controller is configured through to decode three address ranges: PROM, SRAM and I/O area. By
default the PROM area is mapped into address range 0x0 - 0x00FFFFFF, the SRAM area is mapped
into address range 0x40000000 - 0x40FFFFFF, and the I/O area is mapped to 0x20000000 0x20FFFFFF.
One chip select is decoded for the I/O area, while SRAM and PROM can have up to 8 chip select signals. The controller generates both a common write-enable signal (WRITEN) as well as four bytewrite enable signals (WREN). If the SRAM uses a common write enable signal the controller can be
configured to perform read-modify-write cycles for byte and half-word write accesses. Number of
waitstates is separately configurable for the three address ranges.
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
94
CCSDS TM / TC and SpaceWire FPGA
The configuration of the EDAC is done through a configuration register accessed from the APB bus.
During nominal operation, the EDAC checksum is generated and checked automatically. Single errors
are corrected without generating any indication of this condition in the bus response. If a multiple
error is detected, a two cycle error response is given on the AHB bus.
When EDAC is enabled, one extra latency cycle is generated during reads and subword writes.
The EDAC function can be enabled for SRAM and PROM area accesses, but not for I/O area
accesses. For the SRAM area, the EDAC functionality is only supported for accessing 32-bit wide
SRAM banks. For the PROM area, the EDAC functionality is supported for accessing 32-bit wide
PROM banks. EDAC enabled 32-bit wide accesses to SRAM and PROM areas generate a read-modify-write access.
The equations below show how the EDAC checkbits are generated:
CB0
CB1
CB2
CB3
CB4
CB5
CB6
=
=
=
=
=
=
=
D0
D0
D0
D0
D2
D8
D0
^
^
^
^
^
^
^
D4
D1
D3
D1
D3
D9
D1
^
^
^
^
^
^
^
D6 ^ D7 ^
D2 ^ D4 ^
D4 ^ D7 ^
D5 ^ D6 ^
D4 ^ D5 ^
D10 ^ D11
D2 ^ D3 ^
D8 ^ D9 ^ D11 ^ D14 ^ D17 ^ D18 ^ D19 ^ D21 ^ D26 ^ D28 ^ D29 ^ D31
D6 ^ D8 ^ D10 ^ D12 ^ D16 ^ D17 ^ D18 ^ D20 ^ D22 ^ D24 ^ D26 ^ D28
D9 ^ D10 ^ D13 ^ D15 ^ D16 ^ D19 ^ D20 ^ D23 ^ D25 ^ D26 ^ D29 ^ D31
D7 ^ D11 ^ D12 ^ D13 ^ D16 ^ D17 ^ D21 ^ D22 ^ D23 ^ D27 ^ D28 ^ D29
D6 ^ D7 ^ D14 ^ D15 ^ D18 ^ D19 ^ D20 ^ D21 ^ D22 ^ D23 ^ D30 ^ D31
^ D12 ^ D13 ^ D14 ^ D15 ^ D24 ^ D25 ^ D26 ^ D27 ^ D28 ^ D29 ^ D30 ^ D31
D4 ^ D5 ^ D6 ^ D7 ^ D24 ^ D25 ^ D26 ^ D27 ^ D28 ^ D29 ^ D30 ^ D31
11.2.1 Access errors
The active low Bus Exception signal (BEXCN) can be used to signal access errors. It is enabled by
setting the BEXCEN bit in MCFG1 and is active for all types of accesses to all areas (PROM, SRAM
and I/O). The BEXCN signal is sampled on the same cycle as read data is sampled. For writes it is
sampled on the last rising edge before writen/rwen is de-asserted (writen and rwen are clocked on the
falling edge). When a bus exception is detected an error response will be generated for the access.
data
lead-out
clk
address
A1
romsn/iosn/ramsn
oen
data
D1
bexcn
Figure 25. Read cycle with BEXCN.
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
95
lead-in
data1
data2
CCSDS TM / TC and SpaceWire FPGA
data3 lead-out
clk
address
A1
romsn/iosn/ramsn
rwen
data
D1
bexcn
Figure 26. Write cycle with BEXCN.
11.2.2 Using bus ready signalling
The Bus Ready (BRDYN) signal can be used to add waitstates to I/O-area accesses, covering the
complete memory area and both read and write accesses. It is enabled by setting the Bus Ready
Enable (BRDYEN) bit in the MCFG1 register. An access will have at least the amount of waitstates
set, but will be further stretched until BRDYN is asserted. Additional waitstates can thus be inserted
after the pre-set number of waitstates by de-asserting the BRDYN signal. BRDYN should be asserted
in the cycle preceding the last one. It is recommended that BRDYN remains asserted until the IOSN
signal is de-asserted, to ensure that the access has been properly completed and avoiding the system to
stall. Read accesses will have the same timing as when EDAC is enabled while write accesses will
have the timing as for single accesses even if bursts are performed.
lead-in
wait
data
data
clk
address
A1
iosn
oen
data
D1
brdyn
first
sample
Figure 27. I/O READ cycle, programmed with 1 wait state, and with an extra data cycle added with BRDYN.
11.3
PROM/SRAM/IO waveforms
The internal and external waveforms of the interface are presented in the figures hereafter.
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
96
data1
lead-out
CCSDS TM / TC and SpaceWire FPGA
data1 lead-out
clk
address
A1
A2
romsn
ramsn
oen
data
cb
haddr
htrans
D1
D2
CB1
CB2
A1
A2
A3
10
10
00
hready
hrdata
D1
D2
Figure 28. PROM/SRAM non-consecutive read cyclecs.
data1
data1
data1
data1
lead-out
clk
address
A1
A3
A2
A4
romsn
ramsn
oen
data
cb
haddr
htrans
A1
D1
D2
D3
D4
CB1
CB2
CB3
CB4
A3
A4
A2
A5
00
11
10
hready
hrdata
D1
D2
D3
D4
Figure 29. 32-bit PROM/SRAM sequential read access with 0 wait-states and EDAC disabled.
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
97
data1
CCSDS TM / TC and SpaceWire FPGA
unused lead-out data1
unused lead-out
clk
address
A1
A2
romsn
ramsn
oen
data
cb
haddr
htrans
D1
D2
CB1
CB2
A1
A2
A3
10
10
00
hready
hrdata
D1
D2
Figure 30. 32-bit PROM/SRAM non-sequential read access with 0 wait-states and EDAC enabled.
data1
data1
data1
data1
unused
lead-out
clk
address
A1
A3
A2
A4
romsn
ramsn
oen
data
cb
haddr
htrans
A1
10
D1
D2
D3
D4
CB1
CB2
CB3
CB4
A3
A2
A5
A4
00
11
hready
hrdata
D1
D2
D3
D4
Figure 31. 32-bit PROM/SRAM sequential read access with 0 wait-states and EDAC enabled..
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
98
lead-in
data1
data2
CCSDS TM / TC and SpaceWire FPGA
lead-out lead-in
data1
data2
lead-out
clk
address
A1
A2
romsn
ramsn
writen
data
cb
haddr
htrans
D1
D2
CB1
CB2
A1
A2
A3
10
10
00
hready
hwdata
D1
D2
Figure 32. 32-bit PROM/SRAM non-sequential write access with 0 wait-states and EDAC disabled.
lead-in
data1
data2
data1
data2
data1
data2 lead-out
clk
address
A2
A1
A3
romsn
ramsn
writen
data
cb
haddr
htrans
A1
D1
D2
D3
CB1
CB2
CB3
A2
10
A3
A4
11
00
hready
hwdata
D1
D2
D3
Figure 33. 32-bit PROM/SRAM sequential write access with 0 wait-states and EDAC disabled.
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
99
CCSDS TM / TC and SpaceWire FPGA
If waitstates are configured, one extra data cycle will be inserted for each waitstate in both read and
write cycles. The timing for write accesses is not affected when EDAC is enabled while one extra
latency cycle is introduced for single access reads and at the beginning of read bursts.
clk
address
A1
romsn
ramsn
writen
oen
data
D1
cb
D1/M1
CM1
CB1
haddr
htrans
A1
A2
10
00
hready
hwdata
M1
Figure 34. 32-bit PROM/SRAM rmw access with 0 wait-states and EDAC disabled.
Read-Modify-Write (RMW) accesses will have an additional waitstate inserted to accommodate
decoding when EDAC is enabled.
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
100
CCSDS TM / TC and SpaceWire FPGA
I/O accesses are similar to PROM and SRAM accesses but a lead-in and lead-out cycle is always
present.
lead-in
data1
data2
data3 lead-out
clk
address
A1
iosn
writen
data
haddr
htrans
D1
A1
A2
10
00
hready
hwdata
D1
Figure 35. I/O write access with 0 wait-states.
lead-in
data
lead-out
clk
address
A1
iosn
oen
data
haddr
htrans
D1
A1
A2
10
00
hready
hrdata
D1
Figure 36. I/O read access with 0 wait-states
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
11.4
101
CCSDS TM / TC and SpaceWire FPGA
Registers
The core is programmed through registers mapped into APB address space.
Table 91. FT
PROM/SRAM/IO controller registers
APB Address offset
Register
0x0
Memory configuration register 1
0x4
Memory configuration register 2
0x8
Memory configuration register 3
Table 92. Memory configuration register 1.
31
27 26 25 24 23
RESERVED
BR BE
20 19 18 17
IOWS
14 13 12 11 10
ROMBSZ
EBSZ RW
9
8
7
RBW
4
3
RESERVED
0
ROMWS
31: 27
RESERVED
26
Bus ready enable (BR) - Enables the bus ready signal (BRDYN) for I/O-area.
25
Bus exception enable (BE) - Enables the bus exception signal (BEXCEN) for PROM, SRAM and I/
O areas
24
RESERVED
23: 20
I/O wait states (IOWS) - Sets the number of waitstates for accesses to the I/O-area.
19: 18
RESERVED
17: 14
ROM bank size (ROMBSZ) - Sets the PROM bank size.
13: 12
EDAC bank size (EBSZ) - [Not implemented]
11
ROM write enable (RW) - Enables writes to the PROM memory area. When disabled, writes to the
PROM area will generate an ERROR response on the AHB bus.
10
RESERVED
9: 8
ROM data bus width (RBW) - Sets the PROM data bus width. “00” = 8-bit, “10” = 32-bit, others
reserved. [Only 32-bit supported]
7: 4
RESERVED
3: 0
ROM waitstates (ROMWS) - Sets the number of waitstates for accesses to the PROM area. Reset to
all-ones.
Table 93. Memory configuration register 2.
31
13 12
RESERVED
9
8
7
RAMBSZ
6
RW
5
4
3
2
RESERVED
31: 13
RESERVED
12: 9
RAM bank size (RAMBSZ) - Sets the number of waitstates for accesses to the RAM area.
8: 7
RESERVED
6
Read-modify-write enable (RW) - Enables read-modify-write cycles for write accesses.
5: 2
RESERVED
1: 0
RAM waitstates (RAMW) - Sets the number of waitstates for accesses to the RAM area.
1
0
RAMW
Table 94. Memory configuration register 3.
31
20 19
RESERVED
31: 20
12 11 10
SEC
9
8
7
WB RB SE PE
6
5
4
3
2
1
0
TCB
RESERVED
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
102
19: 12
11.5
CCSDS TM / TC and SpaceWire FPGA
Table 94. Memory configuration register 3.
Single error counter.(SEC) - This field increments each time a single error is detected until the maximum value that can be stored in the field is reached. Each bit can be reset by writing a one to it.
11
Write bypass (WB) - Enables EDAC write bypass. When enabled the TCB field will be used as
checkbits in all write operations.
10
Read bypass (RB) - Enables EDAC read bypass. When enabled checkbits read from memory in all
read operations will be stored in the TCB field.
9
SRAM EDAC enable (SE) - Enables EDAC for the SRAM area.
8
PROM EDAC enable (PE) - Enables EDAC for the PROM area. Reset value is taken from the input
signal sri.edac.
7: 0
Test checkbits (TCB) - Used as checkbits in write operations when WB is activated and checkbits
from read operations are stored here when RB is activated.
Signal definitions and reset values
The signals and their reset values are described in table 95.
Table 95. Signal definitions and reset values
Signal name
Type
Function
Active
Reset value
address[27:0]
Output
Memory address
High
Undefined
data[31:0]
Input/Output
Memory data
High
Tri-state
cb[7:0]
Input/Output
Check bits
High
Tri-state
ramsn[7:0]
Output
SRAM chip select
Low
Logical 1
ramoen[7:0]
Output
SRAM output enable
Low
Logical 1
rwen[3:0]
Output,
SRAM write byte enable:
Low
Logical 1
Low
Logical 1
Low
Logical 1
rwen[0] corresponds to data[31:24],
rwen[1] corresponds to data[23:16],
rwen[2] corresponds to data[15:8],
rwen[3] corresponds to data[7:0].
Any rwen[ ] signal can be used for cb[ ].
ramben[3:0]
Output
SRAM read/write byte enable:
ramben[0] corresponds to data[31:24],
ramben[1] corresponds to data[23:16],
ramben[2] corresponds to data[15:8],
ramben[3] corresponds to data[7:0].
Any ramben[ ] signal can be used for cb[ ].
oen
Output
Output enable
writen
Output
Write strobe
Low
Logical 1
romsn[7:0]
Output
PROM chip select
Low
Logical 1
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
11.6
103
CCSDS TM / TC and SpaceWire FPGA
Timing
The timing waveforms and timing parameters are shown in figure 37 and are defined in table 96.
clk
tFTSRCTRL0
address[]
tFTSRCTRL1
ramsn[], romsn[]
iosn
tFTSRCTRL1
tFTSRCTRL2
tFTSRCTRL2
rwen[], writen
tFTSRCTRL3, tFTSRCTRL4
data[], cb[]
(output)
tFTSRCTRL5
tFTSRCTRL3
clk
address[]
ramsn[], romsn[]
iosn
tFTSRCTRL6
ramoen[]
ramben[], oen, read
tFTSRCTRL6
tFTSRCTRL7
tFTSRCTRL8
data[], cb[]
(input)
tFTSRCTRL10
tFTSRCTRL9
brdyn, bexcn
Figure 37. Timing waveforms
Table 96. Timing parameters
Name
Parameter
Reference edge
Min
Max
Unit
tFTSRCTRL0
address clock to output delay
rising clk edge
0
25
ns
tFTSRCTRL1
clock to output delay
rising clk edge
0
25
ns
tFTSRCTRL2
clock to output delay
rising clk edge
0
25
ns
tFTSRCTRL3
clock to data output delay
falling clk edge
2
25
ns
tFTSRCTRL4
clock to data non-tri-state delay
rising clk edge
0
25
ns
tFTSRCTRL5
clock to data tri-state delay
rising clk edge
2
25
ns
tFTSRCTRL6
clock to output delay
rising clk edge
0
25
ns
tFTSRCTRL7
data input to clock setup
rising clk edge
7
-
ns
tFTSRCTRL8
data input from clock hold
rising clk edge
1
-
ns
tFTSRCTRL9
input to clock setup
rising clk edge
7
-
ns
tFTSRCTRL10
input from clock hold
rising clk edge
1
-
ns
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
104
CCSDS TM / TC and SpaceWire FPGA
12
On-chip Memory with EDAC Protection
12.1
Overview
The on-chip memory is accessed via an AMBA AHB slave interface. The two separate memories
implements 16 kBytes and 4 kBytes of data. Registers are accessed via an AMB APB interface.
The on-chip memory implements volatile memory that is protected by means of Error Detection And
Correction (EDAC). One error can be corrected and two errors can be detected, which is performed
by using a (32, 7) BCH code. Some of the optional features available are single error counter
(unused), diagnostic reads and writes and autoscrubbing (unused)(automatic correction of single
errors during reads). Configuration is performed via a configuration register.
Figure 38 shows a block diagram of the internals of the memory.
AHB Bus
AHB Slave
Interface
FTAHBRAM
data
Mux
AHB/APB
Bridge
error Configuration Register
Mux
Encoding
Config bits
TCB
cb
APB Bus
Decoding
Mux
data
cb
Syncram
Figure 38. Block diagram
12.2
Operation
The on-chip fault tolerant memory is accessed through an AMBA AHB slave interface.
Run-time configuration is done by writing to a configuration register accessed through an AMBA
APB interface.
The following can be configured during run-time: EDAC can be enabled and disabled. When it is disabled, reads and writes will behave as the standard memory. Read and write diagnostics can be controlled through separate bits. The single error counter can be reset.
If EDAC is disabled (EN bit in configuration register set to 0) write data is passed directly to the
memory area and read data will appear on the AHB bus immediately after it arrives from memory. If
EDAC is enabled write data is passed to an encoder which outputs a 7-bit checksum. The checksum is
stored together with the data in memory and the whole operation is performed without any added
waitstates. This applies to word stores (32-bit). If a byte or halfword store is performed, the whole
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
105
CCSDS TM / TC and SpaceWire FPGA
word to which the byte or halfword belongs must first be read from memory (read - modify - write). A
new checksum is calculated when the new data is placed in the word and both data and checksum are
stored in memory. This is done with 1 - 2 additional waitstates compared to the non EDAC case.
Reads with EDAC disabled are performed with 0 or 1 waitstates while there could also be 2 waitstates
when EDAC is enabled. There is no difference between word and subword reads. Table 97 shows a
summary of the number of waitstates for the different operations with and without EDAC.
Table 97. Summary of the number of waitstates for the different operations for the memory.
Operation
Waitstates with EDAC Disabled
Waitstates with EDAC Enabled
Read
0-1
0-2
Word write
0
0
Subword write
0
1-2
If the pipeline registers are enabled, one extra waitstate should be added to the read and subword write
cases in Table 97.
When EDAC is used, the data is decoded the first cycle after it arrives from the memory and appears
on the bus the next cycle if no uncorrectable error is detected. The decoding is done by comparing the
stored checksum with a new one which is calculated from the stored data. This decoding is also done
during the read phase for a subword write. A so-called syndrome is generated from the comparison
between the checksum and it determines the number of errors that occured. One error is automatically
corrected and this situation is not visible on the bus. Two or more detected errors cannot be corrected
so the operation is aborted and the required two cycle error response is given on the AHB bus (see the
AMBA manual for more details). If no errors are detected data is passed through the decoder unaltered.
As mentioned earlier the memory provides read and write diagnostics when EDAC is enabled. When
write diagnostics are enabled, the calculated checksum is not stored in memory during the write
phase. Instead, the TCB field from the configuration register is used. In the same manner, if read diagnostics are enabled, the stored checksum from memory is stored in the TCB field during a read (and
also during a subword write). This way, the EDAC functionality can be tested during run-time. Note
that checkbits are stored in TCB during reads and subword writes even if a multiple error is detected.
A single error counter (SEC) field is present in the configuration register, and is incremented each
time a single databit error is encountered (reads or subword writes). The number of bits of this counter
is 8. It is accessed through the configuration register. Each counter bit can be reset to zero by writing a
one to it. The counter saturates at the value 28 - 1.
Autoscrubbing is an error handling feature which is enabled and cannot be controlled through the configuration register. If enabled, every single error encountered during a read results in the word being
written back with the error corrected and new checkbits generated. It is not visible externally except
for that it can generate an extra waitstate. This happens if the read is followed by an odd numbered
read in a burst sequence of reads or if a subword write follows. These situations are very rare during
normal operation so the total timing impact is negligible.
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
12.3
106
CCSDS TM / TC and SpaceWire FPGA
Registers
The core is programmed through registers mapped into APB address space.
Table 98. FTAHBRAM registers
APB Address offset
Register
0x0
Configuration Register
Table 99. Configuration Register
31
21
20
RESERVED
13 12
SEC
10
9
8
7
MEMSIZE WB RB EN
6
0
TCB
31
21
RESERVED. Always read as ‘000...0’.
20:
13
Single error counter (SEC): Incremented each time a single error is corrected (includes errors on
checkbits). Each bit can be set to zero by writing a one to it. (unused)
12:
10
Log2 of the current memory size
9
Write Bypass (WB): When set, the TCB field is stored as check bits when a write is performed to the
memory.
8
Read Bypass (RB) : When set during a read or subword write, the check bits loaded from memory
are stored in the TCB field.
7
EDAC Enable (EN): When set, the EDAC is used otherwise it is bypassed during read and write
operations.
6: 0
Test Check Bits (TCB) : Used as checkbits when the WB bit is set during writes and loaded with the
check bits during a read operation when the RB bit is set.
Any unused most significant bits are reserved. Always read as ‘000...0’.
All fields except TCB are initialised at reset. The EDAC is initally disabled (EN = 0), which also applies to diagnostics fiels (RB and WB are zero).
When available, the single error counter (SEC) field is cleared to zero.
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
13
Status Registers
13.1
Overview
107
CCSDS TM / TC and SpaceWire FPGA
The status registers store information about AMBA AHB accesses triggering an error response. There
is a status register and a failing address register capturing the control and address signal values of a
failing AMBA bus transaction, or the occurence of a correctable error being signaled from a fault tolerant core.
13.2
Operation
13.2.1 Errors
The registers monitor AMBA AHB bus transactions and store the current HADDR, HWRITE,
HMASTER and HSIZE internally. The monitoring are always active after startup and reset until an
error response (HRESP = “01”) is detected. When the error is detected, the status and address register
contents are frozen and the New Error (NE) bit is set to one. At the same time an interrupt is generated, as described hereunder.
Note that many of the fault tolerant units containing EDAC signal an un-correctable error as an
AMBA error response, so that it can be detected by the processor as described above.
13.2.2 Correctable errors
Not only error responses on the AHB bus can be detected. Many of the fault tolerant units containing
EDAC have a correctable error signal which is asserted each time a single error is detected. When
such an error is detected, the effect will be the same as for an AHB error response. The only difference
is that the Correctable Error (CE) bit in the status register is set to one when a single error is detected.
When the CE bit is set the interrupt routine can acquire the address containing the single error from
the failing address register and correct it. When it is finished it resets the CE bit and the monitoring
becomes active again. Interrupt handling is described in detail hereunder.
13.2.3 Interrupts
The interrupt is connected to the interrupt controller to inform the processor of the error condition.
The normal procedure is that an interrupt routine handles the error with the aid of the information in
the status registers. When it is finished it resets the NE bit and the monitoring becomes active again.
Interrupts are generated for both AMBA error responses and correctable errors as described above.
13.3
Registers
The core is programmed through registers mapped into APB address space.
Table 100.AHB Status registers
APB address offset
Registers
0x0
AHB Status register
0x4
AHB Failing address register
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
108
CCSDS TM / TC and SpaceWire FPGA
Table 101. AHB Status register
31
10
RESERVED
9
8
CE NE
7
HWRITE
6
3
HMASTER
2
0
HSIZE
31: 10
RESERVED
9
CE: Correctable Error. Set if the detected error was caused by a single error and zero otherwise.
8
NE: New Error. Deasserted at start-up and after reset. Asserted when an error is detected. Reset by
writing a zero to it.
7
The HWRITE signal of the AHB transaction that caused the error.
6: 3
The HMASTER signal of the AHB transaction that caused the error.
2: 0
The HSIZE signal of the AHB transaction that caused the error
Table 102. AHB Failing address register
31
0
AHB FAILING ADDRESS
31: 0
The HADDR signal of the AHB transaction that caused the error.
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
109
14
Serial Debug Interface
14.1
Overview
CCSDS TM / TC and SpaceWire FPGA
The interface consists of a UART connected to the AMBA AHB bus as a master. A simple communication protocol is supported to transmit access parameters and data. Through the communication link,
a read or write transfer can be generated to any address on the AMBA AHB bus.
Baud-rate
generator
RX
Serial port
Controller
8*bitclk
AMBA APB
Receiver shift register
Transmitter shift register
AHB master interface
AHB data/response
TX
AMBA AHB
Figure 39. Block diagram
14.2
Operation
14.2.1 Transmission protocol
The interface supports a simple protocol where commands consist of a control byte, followed by a 32bit address, followed by optional write data. Write access does not return any response, while a read
access only returns the read data. Data is sent on 8-bit basis as shown below.
Start D0
D1
D2
D3
D4
D5
D6
D7 Stop
Figure 40. Data frame
Write Command
Send
11 Length -1
Addr[31:24]
Addr[23:16]
Addr[15:8]
Addr[7:0]
Addr[7:0]
Data[31:24]
Data[23:16]
Data[15:8]
Data[7:0]
Read command
Send
10 Length -1
Addr[31:24]
Addr[23:16]
Addr[15:8]
Receive
Data[31:24]
Data[23:16]
Data[15:8]
Data[7:0]
Figure 41. Commands
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
110
CCSDS TM / TC and SpaceWire FPGA
Block transfers can be performed be setting the length field to n-1, where n denotes the number of
transferred words. For write accesses, the control byte and address is sent once, followed by the number of data words to be written. The address is automatically incremented after each data word. For
read accesses, the control byte and address is sent once and the corresponding number of data words is
returned.
14.2.2 Baud rate generation
The UART contains a 18-bit down-counting scaler to generate the desired baud-rate. The scaler is
clocked by the system clock and generates a UART tick each time it underflows. The scaler is
reloaded with the value of the UART scaler reload register after each underflow. The resulting UART
tick frequency should be 8 times the desired baud-rate.
If not programmed by software, the baud rate will be automatically discovered. This is done by
searching for the shortest period between two falling edges of the received data (corresponding to two
bit periods). When three identical two-bit periods has been found, the corresponding scaler reload
value is latched into the reload register, and the BL bit is set in the UART control register. If the BL bit
is reset by software, the baud rate discovery process is restarted. The baud-rate discovery is also
restarted when a ‘break’ or framing error is detected by the receiver, allowing to change to baudrate
from the external transmitter. For proper baudrate detection, the value 0x55 should be transmitted to
the receiver after reset or after sending break.
The best scaler value for manually programming the baudrate can be calculated as follows:
scaler = (((system_clk*10)/(baudrate*8))-5)/10
14.3
Registers
The core is programmed through registers mapped into APB address space.
Table 103.AHB UART registers
APB address offset
Register
0x4
AHB UART status register
0x8
AHB UART control register
0xC
AHB UART scaler register
31
2
RESERVED
1
0
BL EN
Figure 42. AHB UART control register
0:
1:
Receiver enable (EN) - if set, enables both the transmitter and receiver. Reset value: ‘0’.
Baud rate locked (BL) - is automatically set when the baud rate is locked. Reset value: ‘0’.
31
7
RESERVED
6
FE
5
4
3
2
1
0
OV BR TH TS DR
Figure 43. AHB UART status register
0:
Data ready (DR) - indicates that new data has been received by the AMBA AHB master interface. Read only. Reset
value: ‘0’.
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
111
1:
CCSDS TM / TC and SpaceWire FPGA
Transmitter shift register empty (TS) - indicates that the transmitter shift register is empty. Read only. Reset value:
‘1’
Transmitter hold register empty (TH) - indicates that the transmitter hold register is empty. Read only. Reset value:
‘1’
Break (BR) - indicates that a BREAKE has been received. Reset value: ‘0’
Overflow (OV) - indicates that one or more character have been lost due to receiver overflow. Reset value: ‘0’
Frame error (FE) - indicates that a framing error was detected. Reset value: ‘0’
2:
3:
4:
6:
18 17
31
0
SCALER RELOAD VALUE
RESERVED
Figure 44. AHB UART scaler reload register
17:0
14.4
Baudrate scaler reload value = (((system_clk*10)/(baudrate*8))-5)/10. Reset value: “3FFFF“.
Signal definitions and reset values
The signals and their reset values are described in table 104.
Table 104.Signal definitions and reset values
14.5
Signal name
Type
Function
Active
Reset value
dsutx
Output
UART transmit data line
-
Logical 1
dsurx
Input
UART receive data line
-
-
Timing
The timing waveforms and timing parameters are shown in figure 45 and are defined in table 105.
clk
dsutx
tAHBUART0
dsurx
tAHBUART1
tAHBUART0
tAHBUART2
Figure 45. Timing waveforms
Table 105.Timing parameters
Name
Parameter
Reference edge
Min
Max
Unit
tAHBUART0
clock to output delay
rising clk edge
0
40
ns
tAHBUART1
input to clock hold
rising clk edge
-
-
ns
tAHBUART2
input to clock setup
rising clk edge
-
-
ns
Note: The dsurx input is re-synchronized internally. The signal does not have to meet any setup or
hold requirements.
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
112
15
Interrupt Controller
15.1
Overview
CCSDS TM / TC and SpaceWire FPGA
The interrupts generated on the interrupt bus are all forwarded to the interrupt controller. The interrupt
controller prioritizes, masks and propagates the interrupt with the highest priority to the processor.
15.2
Operation
15.2.1 Interrupt prioritization
The interrupt controller monitors interrupt 1 - 15 of the interrupt bus (APBI.PIRQ[15:1]). When any
of these lines are asserted high, the corresponding bit in the interrupt pending register is set. The pending bits will stay set even if the PIRQ line is de-asserted, until cleared by software or by an interrupt
acknowledge from the processor.
Each interrupt can be assigned to one of two levels (0 or 1) as programmed in the interrupt level register. Level 1 has higher priority than level 0. The interrupts are prioritised within each level, with interrupt 15 having the highest priority and interrupt 1 the lowest. The highest interrupt from level 1 will
be forwarded to the processor. If no unmasked pending interrupt exists on level 1, then the highest
unmasked interrupt from level 0 will be forwarded. PIRQ[31:16] are not used by the IRQMP core.
Interrupts are prioritised at system level, while masking and forwarding of interrupts in done for each
processor separately. Each processor in an multiprocessor system has separate interrupt mask and
force registers. When an interrupt is signalled on the interrupt bus, the interrupt controller will prioritize interrupts, perform interrupt masking for each processor according to the mask in the corresponding mask register and forward the interrupts to the processors.
Priority
select
IRQ
Pending
Priority
encoder
APBI.PIRQ[15:1]
4
15
IRQO[0].IRL[3:0]
IRQ
IRQ
Force[0] mask[0]
Priority
encoder
4
IRQO[n].IRL[3:0]
IRQ
IRQ
Force[n] mask[n]
Figure 46. Interrupt controller block diagram
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
113
CCSDS TM / TC and SpaceWire FPGA
When a processor acknowledges the interrupt, the corresponding pending bit will automatically be
cleared. Interrupt can also be forced by setting a bit in the interrupt force register. In this case, the processor acknowledgement will clear the force bit rather than the pending bit. After reset, the interrupt
mask register is set to all zeros while the remaining control registers are undefined. Note that interrupt
15 cannot be maskable by the LEON3 processor and should be used with care - most operating systems do not safely handle this interrupt.
15.2.2 Extended interrupts
The AHB/APB interrupt consist of 32 signals ([31:0]), while the IRQMP only uses lines 1 - 15 in the
nominal mode. To use the additional 16 interrupt lines (16-31), extended interrupt handling can be
enabled by setting the VHDL generic eirq to a value between 1 - 15. The interrupt lines 16 - 31 will
then also be handled by the interrupt controller, and the interrupt pending and mask registers will be
extended to 32 bits. Since the LEON3 processor only has 15 interrupt levels (1 - 15), the extended
interrupts will generate one of the regular interrupts, indicated by the value of the eirq generic. When
the interrupt is taken and acknowledged by the processor, the regular interrupt (eirq) and the extended
interrupt pending bits are automatically cleared. The extended interrupt acknowledge register will
identify which extended interrupt that was most recently acknowledged. This register can be used by
software to invoke the appropriate interrupt handler for the extended interrupts.
15.2.3 Processor status monitoring
The processor status can be monitored through the Multiprocessor Status Register. The STATUS field
in this register indicates if a processor is halted (‘1’) or running (‘0’). A halted processor can be reset
and restarted by writing a ‘1’ to its status field. After reset, all processors except processor 0 are
halted. When the system is properly initialized, processor 0 can start the remaining processors by
writing to their STATUS bits.
15.2.4 Irq broadcasting
The Broadcast Register is activated when the generic ncpu is > 1. A incoming irq that has its bit set in
the Broadcast Register is propagated to the force register of all CPUs rather than only to the Pending
Register. This can be used to implement a timer that fires to all cpus with that same irq.
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
15.3
114
CCSDS TM / TC and SpaceWire FPGA
Registers
The core is controlled through registers mapped into APB address space. The number of implemented
registers depend on number of processor in the multiprocessor system.
Table 106.Interrupt Controller registers
APB address offset
Register
0x00
Interrupt level register
0x04
Interrupt pending register
0x08
Interrupt force register (NCPU = 0)
0x0C
Interrupt clear register
0x10
Multiprocessor status register
0x14
Broadcast register
0x40
Processor interrupt mask register
0x80
Processor interrupt force register
0xC4
Processor 1 extended interrupt acknowledge register
0xC0 + 4 * n
Processor n extended interrupt acknowledge register
15.3.1 Interrupt level register
31
17
16
1
IL[15:1]
“000..0”
0
0
Figure 47. Interrupt level register
[31:16] Reserved.
[15:1] Interrupt Level n (IL[n]): Interrupt level for interrupt n.
[0]
Reserved.
15.3.2 Interrupt pending register
1
16 15
31
EIP[31:16]
IP[15:1]
0
0
Figure 48. Interrupt pending register
[31:17] Extended Interrupt Pending n (EIP[n]).
[15:1] Interrupt Pending n (IP[n]): Interrupt pending for interrupt n.
[0]
Reserved
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
115
CCSDS TM / TC and SpaceWire FPGA
15.3.3 Interrupt force register (NCPU = 0)
16 15
31
“000...0”
1
0
0
IF[15:1]
Figure 49. Interrupt force register
[31:16] Reserved.
[15:1] Interrupt Force n (IF[n]): Force interrupt nr n.
[0]
Reserved.
15.3.4 Interrupt clear register
16 15
31
“000...0”
1
0
0
IC[15:1]
Figure 50. Interrupt clear register
[31:16] Reserved.
[15:1] Interrupt Clear n (IC[n]): Writing ‘1’ to ICn will clear interrupt n.
[0]
Reserved.
15.3.5 Multiprocessor status register
28
31
NCPU
16 15
20 19
“000...0”
0
STATUS[15:0]
EIRQ
Figure 51. rocessor status register
[31:28] NCPU. Number of CPU’s in the system -1 .
[19:16] EIRQ. Interrupt number (1 - 15) used for extended interrupts. Fixed to 0 if extended interrupts are disabled.
[15:1] Power-down status of CPU [n]: ‘1’ = power-down, ‘0’ = running. Write with ‘1’ to start processor n.
15.3.6 Processor interrupt mask register
16 15
31
1
IM[15:1]
EIM[31:16]
0
0
Figure 52. Processor interrupt mask register
[31:16] Interrupt mask for extended interrupts
[15:1] Interrupt Mask n (IM[n]): If IMn = 0 the interrupt n is masked, otherwise it is enabled.
[0]
Reserved.
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
116
CCSDS TM / TC and SpaceWire FPGA
15.3.7 Broadcast register (NCPU > 0)
16 15
31
0
1
IM[15:1]
“000...0”
0
Figure 53. Processor interrupt mask register
[31:16] Reserved.
[15:1] Broadcast Mask n (BM[n]): If BMn = 1 the interrupt n is broadcasted (written to the Force Register of all CPUs),
otherwise standard semantic applies (Pending Register).
[0]
Reserved.
15.3.8 Processor interrupt force register (NCPU > 0)
17 16 15
31
IFC[15:1]
0
1
0
IF[15:1]
0
Figure 54. Processor interrupt force register
[31:17] Interrupt force clear n (IFC[n]).
[15:1] Interrupt Force n (IF[n]): Force interrupt nr n.
[0]
Reserved.
15.3.9 Extended interrupt acknowledge register
5
31
4
0
EID[4:0]
Figure 55. Extended interrupt acknowledge register
[4:0]
15.4
ID (16 - 31) of the most recent acknowledged extended interrupt
Signal definitions and reset values
The signals and their reset values are described in table 107.
Table 107.Signal definitions and reset values
15.5
Signal name
Type
Function
Active
Reset value
irq
Output
Interrupt
Logical 1
Logical 0
Timing
The timing waveforms and timing parameters are shown in figure 56 and are defined in table 108.
clk
irq
tGRIRQ0
tGRIRQ0
Figure 56. Timing waveforms
Table 108.Timing parameters
Name
Parameter
Reference edge
Min
Max
Unit
tGRIRQ0
clock to output delay
rising clk edge
0
40
ns
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
117
16
Clock generation
16.1
Overview
CCSDS TM / TC and SpaceWire FPGA
The clock generator implements internal clock generation and buffering.
16.2
Signal definitions and reset values
The signals and their reset values are described in table 109.
Table 109.Signal definitions and reset values
16.3
Signal name
Type
Function
Active
Reset value
clk
Input
System clock
Rising edge
-
Timing
The timing waveforms and timing parameters are shown in figure 57 and are defined in table 110.
tCLKGEN0
clk
Figure 57. Timing waveforms
Table 110.Timing parameters
Name
Parameter
Reference edge
Min
Max
Unit
tCLKGEN0
clock period
-
50
50
ns 1)
Note 1:
The minimum clock period, and the resulting maximum clock frequency, is dependent on
the manufacturing lot for the Actel parts and expected radiation levels. The functional
behavior of the part is not guaranteed under radiation.
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
118
17
Reset generation
17.1
Overview
CCSDS TM / TC and SpaceWire FPGA
The reset generator implements input reset signal synchronization with glitch filtering and generates
the internal reset signal. The input reset signal can be asynchronous.
17.2
Signal definitions and reset values
The signals and their reset values are described in table 111.
Table 111.Signal definitions and reset values
17.3
Signal name
Type
Function
Active
resetn
Input
Reset
Low
Reset value
Timing
The timing waveforms and timing parameters are shown in figure 58 and are defined in table 112.
clk
resetn
tRSTGEN0
Figure 58. Timing waveforms
Table 112.Timing parameters
Name
Parameter
Reference edge
Min
Max
Unit
tRSTGEN0
asserted period
-
1000
-
ns
Note: The reset_n input is re-synchronized internally. The signals does not have to meet any setup or
hold requirements.
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
119
CCSDS TM / TC and SpaceWire FPGA
18
AMBA AHB controller with plug&play support
18.1
Overview
The AMBA AHB controller is a combined AHB arbiter, bus multiplexer and slave decoder according
to the AMBA 2.0 standard.
MASTER
MASTER
AHBCTRL
ARBITER/
DECODER
SLAVE
SLAVE
Figure 59. AHB controller block diagram
18.2
Operation
18.2.1 Arbitration
In fixed-priority mode, the bus request priority is equal to the master’s bus index, with index 0 being
the lowest priority. If no master requests the bus, the master with bus index 0 will be granted.
In round-robin mode, priority is rotated one step after each AHB transfer. If no master requests the
bus, the last owner will be granted (bus parking).
During incremental bursts, the AHB master should keep the bus request asserted until the last access
as recommended in the AMBA 2.0 specification, or it might loose bus ownership. For fixed-length
burst, the AHB master will be granted the bus during the full burst, and can release the bus request
immediately after the first access has started.
18.2.2 Decoding
Decoding of AHB slaves is done using the plug&play method explained in the GRLIB User’s Manual. A slave can occupy any binary aligned address space with a size of 1 - 4096 Mbyte. A specific I/
O area is also decoded, where slaves can occupy 256 byte - 1 Mbyte. The default address of the I/O
area is 0xFFF00000. Access to unused addresses will cause an AHB error response.
18.2.3 Plug&play information
The plug&play information is mapped on a read-only address area. By default, the area is mapped on
address 0xFFFFF000 - 0xFFFFFFFF. The master information is placed on the first 2 kbyte of the
block (0xFFFFF000 - 0xFFFFF800), while the slave information is placed on the second 2 kbyte
block. Each unit occupies 32 bytes, which means that the area has place for 64 masters and 64 slaves.
The address for masters is thus 0xFFFFF000 + n*32, and 0xFFFFF800 + n*32 for slaves.
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
120
31
00
Identification Register
CCSDS TM / TC and SpaceWire FPGA
24 23
12 11 10 9
VENDOR ID
DEVICE ID
04
USER-DEFINED
08
USER-DEFINED
0C
USER-DEFINED
00
5 4
VERSION
0
IRQ
BAR0 10
HADDR
ADDR
00
P C
MASK
MASK
TYPE
BAR1 14
ADDR
00
P C
MASK
TYPE
BAR2 18
ADDR
00
P C
MASK
TYPE
BAR3 1C
ADDR
00
P C
MASK
TYPE
Bank Address Registers
31
20 19 18 17 16 15
P = Prefetchable
C = Cacheable
4 3
0
TYPE
0001 = APB I/O space
0010 = AHB Memory space
0011 = AHB I/O space
Figure 60. AHB plug&play information record
18.3
Registers
The core does not implement any registers.
testen
testrst
scanen
testoen
18.4
:
:
:
:
in
in
in
in
std_ulogic
std_ulogic
std_ulogic
std_ulogic
:=
:=
:=
:=
’0’;
’1’;
’0’;
’1’
Debug print-out
If the debug generic is set to 2, the plug&play information of all attached AHB units are printed to the
console during the start of simulation. Reporting starts by scanning the master interface array from 0
to NAHBMST - 1 (defined in the grlib.amba package). It checks each entry in the array for a valid
vendor-id (all nonzero ids are considered valid) and if one is found, it also retrieves the device-id. The
descriptions for these ids are obtained from the GRLIB.DEVICES package, and are then printed on
standard out together with the master number. If the index check is enabled (done with a VHDL
generic), the report module also checks if the hindex number returned in the record matches the array
number of the record currently checked (the array index). If they do not match, the simulation is
aborted and an error message is printed.
This procedure is repeated for slave interfaces found in the slave interface array. It is scanned from 0
to NAHBSLV - 1 and the same information is printed and the same checks are done as for the master
interfaces. In addition, the address range and memory type is checked and printed. The address information includes type, address, mask, cacheable and pre-fetchable fields. From this information, the
report module calculates the start address of the device and the size of the range. The information
finally printed is type, start address, size, cacheability and pre-fetchability. The address ranges currently defined are AHB memory, AHB I/O and APB I/O. APB I/O ranges are ignored by this module.
# vsim -c -quiet leon3mp
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
121
CCSDS TM / TC and SpaceWire FPGA
VSIM 1> run
# LEON3 MP Demonstration design
# GRLIB Version 1.0.7
# Target technology: inferred, memory library: inferred
# ahbctrl: AHB arbiter/multiplexer rev 1
# ahbctrl: Common I/O area disabled
# ahbctrl: Configuration area at 0xfffff000, 4 kbyte
# ahbctrl: mst0: Gaisler Research
Leon3 SPARC V8 Processor
# ahbctrl: mst1: Gaisler Research
AHB Debug UART
# ahbctrl: slv0: European Space Agency
Leon2 Memory Controller
# ahbctrl:
memory at 0x00000000, size 512 Mbyte, cacheable, prefetch
# ahbctrl:
memory at 0x20000000, size 512 Mbyte
# ahbctrl:
memory at 0x40000000, size 1024 Mbyte, cacheable, prefetch
# ahbctrl: slv1: Gaisler Research
AHB/APB Bridge
# ahbctrl:
memory at 0x80000000, size 1 Mbyte
# apbctrl: APB Bridge at 0x80000000 rev 1
# apbctrl: slv0: European Space Agency
Leon2 Memory Controller
# apbctrl:
I/O ports at 0x80000000, size 256 byte
# apbctrl: slv1: Gaisler Research
Generic UART
# apbctrl:
I/O ports at 0x80000100, size 256 byte
# apbctrl: slv2: Gaisler Research
Multi-processor Interrupt Ctrl.
# apbctrl:
I/O ports at 0x80000200, size 256 byte
# apbctrl: slv3: Gaisler Research
Modular Timer Unit
# apbctrl:
I/O ports at 0x80000300, size 256 byte
# apbctrl: slv7: Gaisler Research
AHB Debug UART
# apbctrl:
I/O ports at 0x80000700, size 256 byte
# apbctrl: slv11: Gaisler Research
General Purpose I/O port
# apbctrl:
I/O ports at 0x80000b00, size 256 byte
# grgpio11: 8-bit GPIO Unit rev 0
# gptimer3: GR Timer Unit rev 0, 8-bit scaler, 2 32-bit timers, irq 8
# irqmp: Multi-processor Interrupt Controller rev 3, #cpu 1
# apbuart1: Generic UART rev 1, fifo 4, irq 2
# ahbuart7: AHB Debug UART rev 0
# leon3_0: LEON3 SPARC V8 processor rev 0
# leon3_0: icache 1*8 kbyte, dcache 1*8 kbyte
VSIM 2>
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
122
CCSDS TM / TC and SpaceWire FPGA
19
AMBA AHB/APB bridge with plug&play support
19.1
Overview
The AMBA AHB/APB bridge is a APB bus master according the AMBA 2.0 standard.
AHB/APB Bridge
AHB BUS
APBO[0]
APB SLAVE
AHBSI
APBO[n]
AHB Slave
Interface
AHBSO[n]
APB SLAVE
•••
APBI
Figure 61. AHB/APB bridge block diagram
19.2
Operation
19.2.1 Decoding
Decoding of APB slaves is done using the plug&play method explained in the GRLIB IP Library
User’s Manual. A slave can occupy any binary aligned address space with a size of 256 bytes - 1
Mbyte. Write to unassingned areas will be ignored, while reads from unassigned areas will return an
arbitrary value. AHB error response will never be generated.
19.2.2 Plug&play information
The plug&play information is mapped on a read-only address area at the top 4 kbytes of the bridge
address space. Each plug&play block occupies 8 bytes. If the bridge is mapped on AHB address
0x80000000, the address for the plug&play records is thus 0x800FF000 + n*8.
31
APB Plug&play record
24 23
VENDOR ID
0x00
12 11 10 9
DEVICE ID
ADDR
0x04
31
C/P
20 19
00
5
0
4
VERSION
MASK
16 15
Configuration word
IRQ
TYPE
4 3
BAR
0
Figure 62. APB plug&play information
19.3
Debug print-out
The APB bridge can print-out the plug-play information from the attached during simulation. This is
enabled by setting the debug VHDL generic to 2. Reporting starts by scanning the array from 0 to
NAPBSLV - 1 (defined in the grlib.amba package). It checks each entry in the array for a valid vendor-id (all nonzero ids are considered valid) and if one is found, it also retrieves the device-id. The
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
123
CCSDS TM / TC and SpaceWire FPGA
description for these ids are obtained from the GRLIB.DEVICES package, and is printed on standard
out together with the slave number. If the index check is enabled (done with a VHDL generic), the
report module also checks if the pindex number returned in the record matches the array number of
the record currently checked (the array index). If they do not match, the simulation is aborted and an
error message is printed.
The address range and memory type is also checked and printed. The address information includes
type, address and mask. The address ranges currently defined are AHB memory, AHB I/O and APB I/
O. All APB devices are in the APB I/O range so the type does not have to be checked. From this information, the report module calculates the start address of the device and the size of the range. The
information finally printed is start address and size.
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
20
Electrical description
20.1
Absolute maximum ratings
124
CCSDS TM / TC and SpaceWire FPGA
According to Actel data sheet [RTAX].
20.2
Operating conditions
According to Actel data sheet [RTAX].
20.3
Input voltages, leakage currents and capacitances
According to Actel data sheet [RTAX].
20.4
Output voltages, leakage currents and capacitances
According to Actel data sheet [RTAX].
20.5
Clock Input voltages, leakage currents and capacitances
According to Actel data sheet [RTAX].
20.6
Power supplies
According to Actel data sheet [RTAX].
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
125
21
Mechanical description
21.1
Package
CCSDS TM / TC and SpaceWire FPGA
Implemented in an ACTEL RTAX2000S FPGA in a CQ352 package, as per [RTAX] and [PACK].
21.2
Pin assignment
The pin assignment in table 113 shows the implementation characteristics of each signal according to
the Actel data sheet [RTAX], indicating how each pin has been configured in terms of electrical levels, voltage, slew rate, drive capability and internal pull-up or pull-down in the FPGA device.
Table 113. Pin assignment
Name
I/O
Pin
CQ352
Pin
CG624
Level
Volt.
Slew
Load
Drive [pF]
Pull
Polarity
Note
clk
in
314
C12
LVTTL
3.3
-
-
None Rise
System clock
resetn
in
92
D24
LVTTL
3.3
-
-
None Low
System reset
irq
out
137
J22
LVTTL
3.3
Low
12
dsurx
in
338
E23
LVTTL
3.3
-
-
dsutx
out
337
F23
LVTTL
3.3
Low
12
transclk
in
306
N18
LVTTL
3.3
-
-
35
35
None Low
System interrupt
None Low
DSU data receive
None Low
DSU data transmit
None Rise
Telemetry transmitter clock
caduclk[0]
out
78
M18
LVTTL
3.3
Low
12
35
None Low
Telemetry serial bit clock
caduclk[1]
out
83
L24
LVTTL
3.3
Low
12
35
None Low
Telemetry serial bit clock
caduclk[2]
out
335
W22
LVTTL
3.3
Low
12
35
None Low
Telemetry serial bit clock
caduclk[3]
out
343
P21
LVTTL
3.3
Low
12
35
None Low
Telemetry serial bit clock
caduout[0]
out
79
M19
LVTTL
3.3
Low
12
35
None Low
Telemetry serial bit data
caduout[1]
out
84
K24
LVTTL
3.3
Low
12
35
None Low
Telemetry serial bit data
caduout[2]
out
336
W23
LVTTL
3.3
Low
12
35
None Low
Telemetry serial bit data
caduout[3]
out
342
R19
LVTTL
3.3
Low
12
35
None Low
Telemetry serial bit data, Manchester coded
tcscid[0]
in
4
N/A
LVTTL
3.3
-
-
-
None -
TC Spacecraft Identifier, MSB
tcscid[1]
in
5
N/A
LVTTL
3.3
-
-
-
None -
tcscid[2]
in
6
N/A
LVTTL
3.3
-
-
-
None -
tcscid[3]
in
7
N/A
LVTTL
3.3
-
-
-
None -
tcscid[4]
in
10
N/A
LVTTL
3.3
-
-
-
None -
tcscid[5]
in
12
N/A
LVTTL
3.3
-
-
-
None -
tcscid[6]
in
16
N/A
LVTTL
3.3
-
-
-
None -
tcscid[7]
in
18
N/A
LVTTL
3.3
-
-
-
None -
tcscid[8]
in
22
N/A
LVTTL
3.3
-
-
-
None -
tcscid[9]
in
24
N/A
LVTTL
3.3
-
-
-
None -
TC Spacecraft Identifier, LSB
tcvcid[0]
in
28
N/A
LVTTL
3.3
-
-
-
None -
TC Virtual Channel Identifier, MSB
tcvcid[1]
in
30
N/A
LVTTL
3.3
-
-
-
None -
tcvcid[2]
in
34
N/A
LVTTL
3.3
-
-
-
None -
tcvcid[3]
in
36
N/A
LVTTL
3.3
-
-
-
None -
tcvcid[4]
in
40
N/A
LVTTL
3.3
-
-
-
None -
tcvcid[5]
in
42
N/A
LVTTL
3.3
-
-
-
None -
TC Virtual Channel Identifier, LSB
tcrfpos
in
46
F24
LVTTL
3.3
-
-
-
None High
TC RF available positive
tchigh
in
47
G24
LVTTL
3.3
-
-
-
None High
TC input active positive
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
126
CCSDS TM / TC and SpaceWire FPGA
Table 113. Pin assignment
Name
I/O
Pin
CQ352
Pin
CG624
Level
Volt.
Slew
Load
Drive [pF]
Pull
Polarity
Note
tcrise
in
48
K18
LVTTL
3.3
-
-
-
None High
TC serial bit clock rising
tcpseudo
in
49
L18
LVTTL
3.3
-
-
-
None High
TC Pseudo-derandomiser
tcmark
in
52
H22
LVTTL
3.3
-
-
-
None High
TC NRZ-M de-modulation
tcrfa[0]
in
54
J24
LVTTL
3.3
-
-
-
None -
TC CLTU RF Available
tcrfa[1]
in
60
L20
LVTTL
3.3
-
-
-
None -
tcrfa[2]
in
65
AA23
LVTTL
3.3
-
-
-
None -
tcrfa[3]
in
71
P24
LVTTL
3.3
-
-
-
None -
tcactive[0]
in
53
H24
LVTTL
3.3
-
-
-
None -
tcactive[1]
in
59
L21
LVTTL
3.3
-
-
-
None -
tcactive[2]
in
66
Y23
LVTTL
3.3
-
-
-
None -
tcactive[3]
in
72
N20
LVTTL
3.3
-
-
-
None -
tcclk[0]
in
55
N16
LVTTL
3.3
-
-
-
None -
tcclk[1]
in
61
G25
LVTTL
3.3
-
-
-
None -
tcclk[2]
in
70
V21
LVTTL
3.3
-
-
-
None -
tcclk[4]
in
73
Y22
LVTTL
3.3
-
-
-
None -
tcdata[0]
in
58
L23
LVTTL
3.3
-
-
-
None -
tcdata[1]
in
64
F25
LVTTL
3.3
-
-
-
None -
tcdata[2]
in
67
U21
LVTTL
3.3
-
-
-
None -
tcdata[3]
in
76
Y21
LVTTL
3.3
-
-
-
None -
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
TC CLTU Input Active
TC CLTU Serial Bit Clock
TC CLTU Serial Bit Data
December 2009, Version 1.5
GAISLER
127
CCSDS TM / TC and SpaceWire FPGA
Table 113. Pin assignment
Name
I/O
Pin
CQ352
Pin
CG624
Level
Volt.
Slew
Load
Drive [pF]
Pull
Polarity
tcgpio[0]
out
94
V3
LVTTL
3.3
Low
12
35
None High
tcgpio[1]
out
95
AA3
LVTTL
3.3
Low
12
35
None High
tcgpio[2]
out
98
AA2
LVTTL
3.3
Low
12
35
None High
tcgpio[3]
out
99
W3
LVTTL
3.3
Low
12
35
None High
tcgpio[4]
out
100
V6
LVTTL
3.3
Low
12
35
None High
tcgpio[5]
out
101
AB2
LVTTL
3.3
Low
12
35
None High
tcgpio[6]
out
104
U4
LVTTL
3.3
Low
12
35
None High
tcgpio[7]
out
105
W4
LVTTL
3.3
Low
12
35
None High
tcgpio[8]
out
106
K25
LVTTL
3.3
Low
12
35
None High
tcgpio[9]
out
107
L25
LVTTL
3.3
Low
12
35
None High
tcgpio[10]
out
110
N24
LVTTL
3.3
Low
12
35
None High
tcgpio[11]
out
111
M24
LVTTL
3.3
Low
12
35
None High
tcgpio[12]
out
112
G22
LVTTL
3.3
Low
12
35
None High
tcgpio[13]
out
113
M17
LVTTL
3.3
Low
12
35
None High
tcgpio[14]
out
118
K19
LVTTL
3.3
Low
12
35
None High
tcgpio[15]
out
119
E25
LVTTL
3.3
Low
12
35
None High
tcgpio[16]
out
86
D25
LVTTL
3.3
Low
12
35
None High
tcgpio[17]
out
93
K20
LVTTL
3.3
Low
12
35
None High
tcgpio[18]
out
122
J21
LVTTL
3.3
Low
12
35
None High
tcgpio[19]
out
123
J20
LVTTL
3.3
Low
12
35
None High
tcgpio[20]
out
128
J23
LVTTL
3.3
Low
12
35
None High
tcgpio[21]
out
129
L19
LVTTL
3.3
Low
12
35
None High
tcgpio[22]
out
136
V22
LVTTL
3.3
Low
12
35
None High
tcgpio[23]
out
289
V23
LVTTL
3.3
Low
12
35
None High
tcgpio[24]
out
290
U22
LVTTL
3.3
Low
12
35
None High
tcgpio[25]
out
295
V24
LVTTL
3.3
Low
12
35
None High
tcgpio[26]
out
296
R21
LVTTL
3.3
Low
12
35
None High
tcgpio[27]
out
299
T22
LVTTL
3.3
Low
12
35
None High
tcgpio[28]
out
300
W24
LVTTL
3.3
Low
12
35
None High
tcgpio[29]
out
305
AB24
LVTTL
3.3
Low
12
35
None High
Note
TC Hardware Command, MSB
tcgpio[30]
out
313
M20
LVTTL
3.3
Low
12
35
None High
tcgpio[31]
out
319
N17
LVTTL
3.3
Low
12
35
None High
TC Hardware Command, LSB
CLCW Input to Telemetry
clcwin[0]
in
277
M23
LVTTL
3.3
-
-
-
None Low
clcwin[1]
in
278
N23
LVTTL
3.3
-
-
-
None Low
clcwout[0]
out
281
M25
LVTTL
3.3
Low
12
35
None Low
clcwout[1]
out
282
N25
LVTTL
3.3
Low
12
35
None Low
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
CLCW Output from Telecommand
December 2009, Version 1.5
GAISLER
128
CCSDS TM / TC and SpaceWire FPGA
Table 113. Pin assignment
Name
I/O
Pin
CQ352
Pin
CG624
Level
Volt.
Slew
Load
Drive [pF]
Pull
Polarity
Note
spw_clk
in
320
G14
LVTTL
3.3
-
-
-
None -
SpaceWire clock
spw_rxd[0]
in
N/A
P19
LVDS
2.5
-
-
-
-
High
SpaceWire data - Link 0
spw_rxdn[0]
in
N/A
P20
LVDS
2.5
-
-
-
-
Low
- “-
spw_rxs[0]
in
N/A
P23
LVDS
2.5
-
-
-
-
High
SpaceWire strobe
spw_rxsn[0]
in
N/A
R23
LVDS
2.5
-
-
-
-
Low
- “-
spw_txd[0]
out
N/A
P25
LVDS
2.5
-
-
-
-
High
SpaceWire data
spw_txdn[0]
out
N/A
R25
LVDS
2.5
-
-
-
-
Low
- “-
spw_txs[0]
out
N/A
P22
LVDS
2.5
-
-
-
-
High
SpaceWire strobe
spw_txsn[0]
out
N/A
R22
LVDS
2.5
-
-
-
-
Low
- “-
spw_rxd[1]
in
N/A
R18
LVDS
2.5
-
-
-
-
High
SpaceWire data - Link 1
spw_rxdn[1]
in
N/A
T18
LVDS
2.5
-
-
-
-
Low
- “-
spw_rxs[1]
in
N/A
R24
LVDS
2.5
-
-
-
-
High
SpaceWire strobe
spw_rxsn[1]
in
N/A
T24
LVDS
2.5
-
-
-
-
Low
- “-
spw_txd[1]
out
N/A
T25
LVDS
2.5
-
-
-
-
High
SpaceWire data
spw_txdn[1]
out
N/A
U25
LVDS
2.5
-
-
-
-
Low
- “-
spw_txs[1]
out
N/A
R20
LVDS
2.5
-
-
-
-
High
SpaceWire strobe
spw_txsn[1]
out
N/A
T20
LVDS
2.5
-
-
-
-
Low
spw_rxd[2]
in
N/A
V20
LVCMOS
2.5
-
-
-
None High
- “SpaceWire data - Link 2
spw_rxs[2]
in
N/A
AB25
LVCMOS
2.5
-
-
-
None High
SpaceWire strobe
spw_txd[2]
out
N/A
U20
LVCMOS
2.5
High
24
35
None High
SpaceWire data
spw_txs[2]
out
N/A
AA25
LVCMOS
2.5
High
24
35
None High
SpaceWire strobe
spw_rxd[3]
in
N/A
T19
LVCMOS
2.5
-
-
-
None High
SpaceWire data - Link 3 {spare}
spw_rxs[3]
in
N/A
W25
LVCMOS
2.5
-
-
-
None High
SpaceWire strobe {spare}
spw_txd[3]
out
N/A
U19
LVCMOS
2.5
High
24
35
None High
SpaceWire data {spare}
spw_txs[3]
out
N/A
Y25
LVCMOS
2.5
High
24
35
None High
SpaceWire strobe {spare}
spw_rxd[0]
in
43
N/A
LVTTL
3.3
-
-
-
None High
SpaceWire data - Link 0
spw_rxs[0]
in
41
N/A
LVTTL
3.3
-
-
-
None High
SpaceWire strobe
spw_txd[0]
out
37
N/A
LVTTL
3.3
High
24
35
None High
SpaceWire data
spw_txs[0]
out
35
N/A
LVTTL
3.3
High
24
35
None High
SpaceWire strobe
spw_rxd[1]
in
31
N/A
LVTTL
3.3
-
-
-
None High
SpaceWire data - Link 1
spw_rxs[1]
in
29
N/A
LVTTL
3.3
-
-
-
None High
SpaceWire strobe
spw_txd[1]
out
25
N/A
LVTTL
3.3
High
24
35
None High
SpaceWire data
spw_txs[1]
out
23
N/A
LVTTL
3.3
High
24
35
None High
SpaceWire strobe
spw_rxd[2]
in
19
N/A
LVTTL
3.3
-
-
-
None High
SpaceWire data - Link 2
spw_rxs[2]
in
17
N/A
LVTTL
3.3
-
-
-
None High
SpaceWire strobe
spw_txd[2]
out
13
N/A
LVTTL
3.3
High
24
35
None High
SpaceWire data
spw_txs[2]
out
11
N/A
LVTTL
3.3
High
24
35
None High
SpaceWire strobe
spw_rxd[3]
in
N/A
N/A
LVTTL
3.3
-
-
-
None High
SpaceWire data - Link 3 {spare}
spw_rxs[3]
in
N/A
N/A
LVTTL
3.3
-
-
-
None High
SpaceWire strobe {spare}
spw_txd[3]
out
N/A
N/A
LVTTL
3.3
High
24
35
None High
SpaceWire data {spare}
spw_txs[3]
out
N/A
N/A
LVTTL
3.3
High
24
35
None High
SpaceWire strobe {spare}
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
129
CCSDS TM / TC and SpaceWire FPGA
Table 113. Pin assignment
Name
I/O
Pin
CQ352
Pin
CG624
Level
Volt.
Slew
Load
Drive [pF]
Pull
Polarity
address[0]
out
223
P9
LVTTL
3.3
Low
12
35
None High
address[1]
out
224
N6
LVTTL
3.3
Low
12
35
None High
address[2]
out
225
M6
LVTTL
3.3
Low
12
35
None High
address[3]
out
226
N8
LVTTL
3.3
Low
12
35
None High
address[4]
out
229
N7
LVTTL
3.3
Low
12
35
None High
address[5]
out
230
M4
LVTTL
3.3
Low
12
35
None High
address[6]
out
231
L3
LVTTL
3.3
Low
12
35
None High
address[7]
out
232
M3
LVTTL
3.3
Low
12
35
None High
Note
Address, LSB
address[8]
out
235
N10
LVTTL
3.3
Low
12
35
None High
address[9]
out
236
N9
LVTTL
3.3
Low
12
35
None High
address[10]
out
237
K1
LVTTL
3.3
Low
12
35
None High
address[11]
out
238
L1
LVTTL
3.3
Low
12
35
None High
address[12]
out
241
M5
LVTTL
3.3
Low
12
35
None High
address[13]
out
242
L6
LVTTL
3.3
Low
12
35
None High
address[14]
out
243
L5
LVTTL
3.3
Low
12
35
None High
address[15]
out
244
K2
LVTTL
3.3
Low
12
35
None High
address[16]
out
247
L2
LVTTL
3.3
Low
12
35
None High
address[17]
out
248
K4
LVTTL
3.3
Low
12
35
None High
address[18]
out
249
L4
LVTTL
3.3
Low
12
35
None High
address[19]
out
250
J3
LVTTL
3.3
Low
12
35
None High
address[20]
out
253
J2
LVTTL
3.3
Low
12
35
None High
address[21]
out
254
J1
LVTTL
3.3
Low
12
35
None High
address[22]
out
255
L7
LVTTL
3.3
Low
12
35
None High
address[23]
out
256
M7
LVTTL
3.3
Low
12
35
None High
address[24]
out
259
M9
LVTTL
3.3
Low
12
35
None High
address[25]
out
260
M8
LVTTL
3.3
Low
12
35
None High
address[26]
out
261
F1
LVTTL
3.3
Low
12
35
None High
address[27]
out
262
G1
LVTTL
3.3
Low
12
35
None High
Address, MSB
data[0]
inout
172
H2
LVTTL
3.3
Low
12
35
None High
Data, LSB
data[1]
inout
173
E2
LVTTL
3.3
Low
12
35
None High
data[2]
inout
179
F2
LVTTL
3.3
Low
12
35
None High
data[3]
inout
180
H4
LVTTL
3.3
Low
12
35
None High
data[4]
inout
181
J4
LVTTL
3.3
Low
12
35
None High
data[5]
inout
182
H5
LVTTL
3.3
Low
12
35
None High
data[6]
inout
183
H6
LVTTL
3.3
Low
12
35
None High
data[7]
inout
184
D2
LVTTL
3.3
Low
12
35
None High
data[8]
inout
187
J6
LVTTL
3.3
Low
12
35
None High
data[9]
inout
188
J5
LVTTL
3.3
Low
12
35
None High
data[10]
inout
189
F3
LVTTL
3.3
Low
12
35
None High
data[11]
inout
190
E3
LVTTL
3.3
Low
12
35
None High
data[12]
inout
193
G4
LVTTL
3.3
Low
12
35
None High
data[13]
inout
194
G3
LVTTL
3.3
Low
12
35
None High
data[14]
inout
195
K8
LVTTL
3.3
Low
12
35
None High
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
130
CCSDS TM / TC and SpaceWire FPGA
Table 113. Pin assignment
Name
I/O
Pin
CQ352
Pin
CG624
Level
Volt.
Slew
Load
Drive [pF]
Pull
Polarity
data[15]
inout
196
L8
LVTTL
3.3
Low
12
35
None High
data[16]
inout
199
W2
LVTTL
3.3
Low
12
35
None High
data[17]
inout
200
Y2
LVTTL
3.3
Low
12
35
None High
data[18]
inout
201
R6
LVTTL
3.3
Low
12
35
None High
data[19]
inout
202
T6
LVTTL
3.3
Low
12
35
None High
data[20]
inout
205
T7
LVTTL
3.3
Low
12
35
None High
data[21]
inout
206
U7
LVTTL
3.3
Low
12
35
None High
data[22]
inout
207
V2
LVTTL
3.3
Low
12
35
None High
Note
data[23]
inout
208
R4
LVTTL
3.3
Low
12
35
None High
data[24]
inout
211
T4
LVTTL
3.3
Low
12
35
None High
data[25]
inout
212
R3
LVTTL
3.3
Low
12
35
None High
data[26]
inout
213
R5
LVTTL
3.3
Low
12
35
None High
data[27]
inout
214
AA1
LVTTL
3.3
Low
12
35
None High
data[28]
inout
217
AB1
LVTTL
3.3
Low
12
35
None High
data[29]
inout
218
R8
LVTTL
3.3
Low
12
35
None High
data[30]
inout
219
T8
LVTTL
3.3
Low
12
35
None High
data[31]
inout
220
W1
LVTTL
3.3
Low
12
35
None High
Data, MSB
cb[0]
inout
160
V4
LVTTL
3.3
Low
12
35
None High
Checkbits, LSB
cb[1]
inout
161
Y5
LVTTL
3.3
Low
12
35
None High
cb[2]
inout
164
W5
LVTTL
3.3
Low
12
35
None High
cb[3]
inout
165
U6
LVTTL
3.3
Low
12
35
None High
cb[4]
inout
166
U5
LVTTL
3.3
Low
12
35
None High
cb[5]
inout
167
U3
LVTTL
3.3
Low
12
35
None High
cb[6]
inout
170
T2
LVTTL
3.3
Low
12
35
None High
cb[7]
inout
171
U2
LVTTL
3.3
Low
12
35
None High
Checkbits, MSB
ramsn[0]
out
146
M2
LVTTL
3.3
Low
12
35
None Low
SRAM chip select
ramsn[1]
out
147
P4
LVTTL
3.3
Low
12
35
None Low
ramsn[2]
out
152
P1
LVTTL
3.3
Low
12
35
None Low
ramsn[3]
out
153
P6
LVTTL
3.3
Low
12
35
None Low
ramsn[4]
out
142
P5
LVTTL
3.3
Low
12
35
None Low
ramsn[5]
out
323
G20
LVTTL
3.3
Low
12
35
None Low
ramsn[6]
out
324
F20
LVTTL
3.3
Low
12
35
None Low
ramsn[7]
out
331
F19
LVTTL
3.3
Low
12
35
None Low
ramoen[0]
out
154
P3
LVTTL
3.3
Low
12
35
None Low
ramoen[1]
out
155
N4
LVTTL
3.3
Low
12
35
None Low
ramoen[2]
out
158
U1
LVTTL
3.3
Low
12
35
None Low
ramoen[3]
out
159
T1
LVTTL
3.3
Low
12
35
None Low
ramoen[4]
out
143
R2
LVTTL
3.3
Low
12
35
None Low
ramoen[5]
out
325
E18
LVTTL
3.3
Low
12
35
None Low
ramoen[6]
out
326
F18
LVTTL
3.3
Low
12
35
None Low
ramoen[7]
out
332
G21
LVTTL
3.3
Low
12
35
None Low
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
SRAM output enable
December 2009, Version 1.5
GAISLER
131
CCSDS TM / TC and SpaceWire FPGA
Table 113. Pin assignment
Name
I/O
Pin
CQ352
Pin
CG624
Level
Volt.
Slew
Load
Drive [pF]
Pull
Polarity
rwen[0]
out
272
H3
LVTTL
3.3
Low
12
35
None Low
rwen[1]
out
271
G2
LVTTL
3.3
Low
12
35
None Low
rwen[2]
out
270
E1
LVTTL
3.3
Low
12
35
None Low
rwen[3]
out
269
D1
LVTTL
3.3
Low
12
35
None Low
ramben[0]
out
N/A
Y1
LVTTL
3.3
Low
12
35
None Low
ramben[1]
out
N/A
P2
LVTTL
3.3
Low
12
35
None Low
ramben[2]
out
N/A
K7
LVTTL
3.3
Low
12
35
None Low
ramben[3]
out
N/A
K6
LVTTL
3.3
Low
12
35
None Low
Note
SRAM write strobe 1)
SRAM read/write byte enable1)
romsn[0]
out
288
N2
LVTTL
3.3
Low
12
35
None Low
romsn[1]
out
287
R1
LVTTL
3.3
Low
12
35
None Low
romsn[2]
out
276
U23
LVTTL
3.3
Low
12
35
None Low
{non standard pinout for GR-TMTC-MEZZ}
romsn[3]
out
275
Y24
LVTTL
3.3
Low
12
35
None Low
{non standard pinout for GR-TMTC-MEZZ}
romsn[4]
out
77
U24
LVTTL
3.3
Low
12
35
None Low
romsn[5]
out
82
AA24
LVTTL
3.3
Low
12
35
None Low
romsn[6]
out
85
H20
LVTTL
3.3
Low
12
35
None Low
romsn[7]
out
341
H19
LVTTL
3.3
Low
12
35
None Low
oen
out
283
N1
LVTTL
3.3
Low
12
35
None Low
PROM output enable
writen
out
284
P7
LVTTL
3.3
Low
12
35
None Low
PROM write strobe
Note 1:
PROM chip select
Refer to signal definitions of each memory controller for detailed usage of these signals.
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
21.3
132
CCSDS TM / TC and SpaceWire FPGA
RTAX2000S specific pins - CQ352 package
The Actel RTAX2000S FPGA device has special pins that need to be correctly connected on the
printed circuit board, as shown in table 114. Please refer to the Actel data sheet [RTAX] for details.
Table 114.RTAX2000S special pins - CQ352 package
Name
Pin CQ352
GND
1, 9, 15, 21, 27, 33, 39, 45, 51, 57, 63, 69, 75, 81, 88, 89, 97, 103, Low supply voltage, ground
109, 115, 121, 133, 145, 151, 157, 163, 169, 176, 177, 186, 192,
198, 204, 210, 216, 222, 228, 234, 240, 246, 252, 258, 264, 265,
274, 280, 286, 292, 298, 310, 322, 330, 334, 340, 345, 352
Note
VCCA
3, 14, 32, 56, 74, 87, 102, 114, 150, 162, 175, 191, 209, 233, 251, 1.5 V supply voltage for array
263, 279, 291, 329, 339
VCCDA
2, 44, 90, 91, 116, 117, 130, 131, 132, 148, 149, 174, 178, 221,
266, 268, 293, 294, 307, 308, 309, 327, 328, 346
3.3 V supply voltage for I/O differential amplifier and JTAG
and probe interfaces.
VCCIB0
321, 333, 344
3.3 V supply voltage for I/O
VCCIB1
273, 285, 297
3.3 V supply voltage for I/O
VCCIB2
227, 239, 245, 257
3.3 V supply voltage for I/O
VCCIB3
185, 197, 203, 215
3.3 V supply voltage for I/O
VCCIB4
144, 156, 168
3.3 V supply voltage for I/O
VCCIB5
96, 108, 120
3.3 V supply voltage for I/O
VCCIB6
50, 62, 68, 80
3.3 V supply voltage for I/O
VCCIB7
8, 20, 26, 38
3.3 V supply voltage for I/O
VCCIB7
8, 20, 26, 38
2.5 V supply voltage for I/O
VPUMP
267
Voltage External Pump. In normal operation, using the internal charge pump, should be tied to ground.
TRST
351
JTAG Test Clock. Actel recommends this pin be hardwired
to ground for flight.
TCK
349
JTAG Test Clock. Actel recommends this pin be hardwired
to ground. Must not be left unconnected.
TDI
348
JTAG Test Data Input. Actel recommends this pin be hardwired to VCCDA, or left unconnected.
TDO
347
JTAG Test Data Output. Must be left unconnected.
TMS
350
JTAG Test Mode Select. Actel recommends that this pin be
hardwired to VCCDA, or left unconnected.
PRA
312
Test Probe. The pins’ probe capabilities are disabled to protect programmed design confidentiality. These pins must be
left unconnected.
PRB
311
PRC
135
PRD
134
NC
124, 125, 126, 127, 138, 139, 140, 141, 301, 302, 303, 304, 315, No Connection. Pins are not connected to circuitry within
316, 317, 318
the device. These pins can be driven to any voltage or can be
left floating with no effect on the operation of the device.
CLK*
122, 123, 128, 129, 136, 137, 142, 143
Global clocks. When pins are unused, Actel recommends
they are tied to known state, preferably ground.
HCLK*
299, 300, 305, 306, 313, 314, 319, 320
Hardwired clocks. When pins are unused, it is recommended
that they are tied to ground.
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
21.4
133
CCSDS TM / TC and SpaceWire FPGA
RTAX2000S specific pins - CG624 package
The Actel RTAX2000S FPGA device has special pins that need to be correctly connected on the
printed circuit board, as shown in table 114. Please refer to the Actel data sheet [RTAX] for details.
Table 115.RTAX2000S special pins - CG624 package
Name
Pin CG624
GND
A18, A24, A25, A2, A8, AA10, AA16, AA18, AA21, AA5,
Low supply voltage, ground
AB22, AB4, AC10, AC16, AC23, AC3, AD1, AD2, AD24,
AD25, AE1, AE18, AE24, AE2, AE25, AE8, B1, B2, B25, B24,
C10, C16, C23, C3, D22, D4, E10, E16, E21, E5, E8, H1, H21,
H25, K21, K23, K3, K5, L11, L12, L13, L14, L15, M11, M12,
M13, M14, M15, N11, N12, N13, N14, N15, P11, P12, P13, P14,
P15, R11, R12, R13, R14, R15, T21, T23, T3, T5, V1, V25, V5
Note
VCCA
AB20, F22, F4, J17, J9, K10, K11, K15, K16, L10, L16, R10,
R16, T10, T11, T15, T16, U17, U9, Y4
VCCDA
A12, A14, AA13, AA15, AA20, AA7, AB13, AC11, AD11,
3.3 V supply voltage for I/O differential amplifier and JTAG
AD4, AE12, AE17, B15, C15, C6, D13, E13, E19, F21, G10, G5, and probe interfaces.
N21, N5, W21
VCCIB0
A3, B3, C4, D5, J10, J11, K12
3.3 V supply voltage for I/O
VCCIB1
A23, B23, C22, D21, J15, J16, K14
3.3 V supply voltage for I/O
VCCIB2
C24, C25, D23, E22, K17, L17, M16
3.3 V supply voltage for I/O
VCCIB3
AA22, AB23, AC24, AC25, P16, R17, T17
3.3 V supply voltage for I/O
VCCIB3
AA22, AB23, AC24, AC25, P16, R17, T17
2.5 V supply voltage for I/O
VCCIB4
AB21, AC22, AD23, AE23, T14, U15, U16
3.3 V supply voltage for I/O
VCCIB5
AB5, AC4, AD3, AE3, T12, U10, U11
3.3 V supply voltage for I/O
VCCIB6
AA4, AB3, AC1, AC2, P10, R9,T9
3.3 V supply voltage for I/O
VCCIB7
C1, C2, D3, E4, K9, L9, M10
3.3 V supply voltage for I/O
VPUMP
E20
Voltage External Pump. In normal operation, using the internal charge pump, should be tied to ground.
TRST
E6
JTAG Test Clock. Actel recommends this pin be hardwired
to ground for flight.
TCK
F5
JTAG Test Clock. Actel recommends this pin be hardwired
to ground. Must not be left unconnected.
TDI
C5
JTAG Test Data Input. Actel recommends that this pin be
hardwired to VCCDA, or left unconnected.
1.5 V supply voltage for array
TDO
F6
JTAG Test Data Output. Must be left unconnected.
TMS
D6
JTAG Test Mode Select. Actel recommends this pin be hardwired to VCCDA, or left unconnected.
PRA
F13
Test Probe. The pins’ probe capabilities are disabled to protect programmed design confidentiality. These pins must be
left unconnected.
PRB
A13
PRC
AB12
PRD
AE13
NC
AA12, AA14, E12, E14, F12, F14, H12, H14, J12, J14, U12,
U14, V12, V14, Y12, Y14
No Connection. Pins are not connected to circuitry within
the device. These pins can be driven to any voltage or can be
left floating with no effect on the operation of the device.
CLK*
AC12, AC13, AD12, AD13, W14, W15, W13, Y13
Global clocks. When pins are unused, Actel recommends
they are tied to known state, preferably ground.
CLKH*
B13, B14, C12, C13, G12, G13, G14, G15
Hardwired clocks. When pins are unused, it is recommended
that they are tied to ground.
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
21.5
134
CCSDS TM / TC and SpaceWire FPGA
Package figure
According to Actel data sheet [RTAX].
21.6
Mechanical drawing
According to Actel data sheet [RTAX].
21.7
Weight
According to Actel data sheet [RTAX].
21.8
Package materials
According to Actel data sheet [RTAX].
21.9
Thermal characteristics
According to Actel data sheet [RTAX].
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
22
135
CCSDS TM / TC and SpaceWire FPGA
Reference documents
[GRLIB]
GRLIB IP Library User's Manual, Aeroflex Gaisler
[GRIP]
GRLIB IP Core User's Manual, Aeroflex Gaisler
[TMTC]
Spacecraft Data Handling IP Core User’s Manual, Aeroflex Gaisler
[AMBA]
AMBA Specification, Rev 2.0, ARM IHI 0011A, Issue A, ARM Limited
[CCSDS-131.0]
CCSDS 131.0-B-1 TM Synchronization and Channel Coding
[CCSDS-132.0]
CCSDS 132.0-B-1 TM Space Data Link Protocol
[CCSDS-133.0]
CCSDS 133.0-B-1 Space Packet Protocol
[CCSDS-732.0]
CCSDS 732.0-B-2 AOS Space Data Link Protocol
[ECSS-50-01A]
ECSS-E-50-01A Space engineering - Space data links - Telemetry synchronization and channel coding
[ECSS-50-03A]
ECSS-E-50-03A Space engineering - Space data links - Telemetry
transfer frame protocol
[ECSS-50-05A]
ECSS-E-50-05A Space engineering - Radio frequency and modulation
[PSS-04-103]
ESA PSS-04-103 Telemetry channel coding standard
[PSS-04-105]
ESA PSS-04-105 Radio frequency and modulation standard
[PSS-04-106]
ESA PSS-04-106 Packet telemetry standard
[CCSDS-231.0]
CCSDS 231.0-B-1 TC Synchronization and Channel Coding
[CCSDS-232.0]
CCSDS 232.0-B-1 TC Space Data Link Protocol
[CCSDS-232.1]
CCSDS 232.1-B-1 Communications Operation Procedure-1
[ECSS-50-04A]
ECSS-E-50-04A Space data links – Telecommand protocols, synchronization and channel coding
[PSS-04-151]
ESA PSS-04-151 Telecommand Decoder Standard
[SPW]/[ECSS-50-12C]
ECSS - Space Engineering, SpaceWire - Links, Nodes, Routers and
Networks, ECSS-E-ST-50-12C, 31 July 2008
[RMAPID]/[ECSS-50-11C]
ECSS - Space Engineering, SpaceWire Protocols, ECSS-E-ST-50-11C,
Draft 1.3, July 2008
[RMAP]/[ECSS-50-11C]
ECSS - Space Engineering, SpaceWire Protocols, ECSS-E-ST-50-11C,
Draft 1.3, July 2008
[RTAX]
RTAX-S/SL RadTolerant FPGAs, 5172169-12/5.09, v5.4, May 2009,
Actel Corporation
[PACK]
Package Mechanical Drawings, 5193068-34/2.09, v11.0, February
2009, Actel Corporation
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
23
136
CCSDS TM / TC and SpaceWire FPGA
Ordering information
Ordering information is provided in table 116 and a legend is provided in table 117.
Table 116.Ordering information
Product
Note
GR-TMTC-RTAX
ReedDevice
Solomon
Speed Grade Package Lead
Type
Count
STD -1
EV
E
B
No
STD -1
EV
E
B
RTAX2000S
CQ
352
Application
Table 117.Ordering legend
Designator
Option
Description
Product
GR-TMTC-RTAX
Telemetry Encoder and Telecommand Decoder
Reed-Solomon
Yes / No
Optional Reed-Solomon protected SDRAM memory
Device
RTAX2000S
2,000,000 Equivalent System Gates
Speed Grade
Package Type
Application
RTAX2000SL
2,000,000 Equivalent System Gates - Low-Power Option
STD
Standard Speed
-1
Approximately 15% Faster than Standard
CQ
Ceramic Quad Flat Pack
CG
Ceramic Column Grid Array
LG
Land Grid Array
B
MIL-STD-883 Class B
E
Actel Extended Flow (Actel Space-Level Flow)
EV
Class V Equivalent Flow Processing Consistent with MIL-PRF 38535
Commercial quality AX2000 components can be supplied for prototyping. The footprint corresponds
to either a CQ352 or a CG624 package. The prototyping component is supplied in a FG896 package
and should be used with an FG896-to-CQ352 or an FG896-to-CG624 adapter, respectively. This
allows the use of the same footprint on prototyping and flight boards. The pinout of the prototyping
component (i.e. the FG896 package) can be provided upon request.
Prototyping components can also be supplied in CQ352 and CG624 packages.
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
24
137
CCSDS TM / TC and SpaceWire FPGA
Change record
Change record information is provided in table 118.
Table 118.Change record
Issue
Date
1.5
2009 December 4.7.7, 4.8
1.4
1.3
1.2
1.1
1.0
Sections
Note
Added ongoing and status bits for Virtual Channels 3-6
4.75, 4.8
Difference made between external (power-on) reset and internal
software controlled reset via control registers.
8.9
Telecommand channel reset and enable re-introduced for DMA
only (software commands), but not for Coding Layer. It is thus not
possible to reset or to disable the Coding Layer by software access
to registers (and subsequently the hardware commands cannot be
affected by software).
2009 December 12.1
Amount of on-chip memory corrected
2.4, 4.10, 10.6, 16.3
Fixed clock frequencies clarified
1.7, 12.1, 12.3
On-chip memory error counter and automatic scrubber unused.
2.2, 3.12
Manchester encoding clarified and IEEE 802.3 waveform added
4.7.4, 4.8
Clarified interrupt usage etc. for different Virtual Channels
2009 November 1.4.3, 2.1, 9.1.1, 9.2.1, 9.2.59.2.8, 9.3
Hardware commands carried in CCSDS Space Packets
8.9
Register definition for telecommand decoder clarified
15
Interrupt controller updated
4.10, 9.5, 10.6, 11.6, 14.5,
15.5
Clock to output timing increased to meet high utilization
4.9, 4.10, 8.10, 8.11, 9.4, 9.5
CLCW signal and timing added
1.4.2, 2.1, 8.6
Both CLCW registers are used for software telecommands
10.6
SpaceWire transmit clock period corrected
4.9, 4.10
Telemetry transmit clock period defined
11.1, 11.2, 11.4
8-bit PROM support removed, read-modify-write introduced
21.2
Modified CG624 pinout for prototype board
21.2
Increased drive on SpaceWire transmit signals
2009 November 4.7.4
Introduction of automatic telemetry after reset
1.3, 14.2, 14.3, 2.1, 2.2, 2.8,
3.11, 8.6, 21.2
Introduction of CLCW cross-strapping capability
4.3.5
Bandwidth allocation clarified
4.5.2
Clock division constraints clarified regarding 50% duty cycle of
output clock and Manchester encoded output.
2009 November 2.2, 2.7 2.8, 21.2
Added third SpaceWire interface, introduced three AMBA buses
5.1, 5.3
Virtual Channel input interface: available size set to 518 octets
2.6, 5.3
Added interrupts for Virtual Channel 3-6, and enable bit to register
2.8, 9, 21.2
Added additional hardware telecommands
1.7
Clarified size of on-chip memory and dedicated descriptor memory
4.3.3, 4.3.5, 4.8, 6, 7
Virtual Channel 3-6 interaction with telemetry encoder described
2.5
Added telemetry IP cores to listing
2009 September All
Copyright Aeroflex Gaisler AB
New document
GR-TMTC-0002
December 2009, Version 1.5
GAISLER
138
CCSDS TM / TC and SpaceWire FPGA
Information furnished by Aeroflex Gaisler is believed to be accurate and reliable.
However, no responsibility is assumed by Aeroflex Gaisler for its use, nor for any infringements of patents or
other rights of third parties which may result from its use.
No license is granted by implication or otherwise under any patent or patent rights of Aeroflex Gaisler.
Aeroflex Gaisler AB
tel +46 31 7758650
Kungsgatan 12
fax +46 31 421407
411 19 Göteborg
sales@gaisler.com
Sweden
www.gaisler.com
GAISLER
Copyright © 2009 Aeroflex Gaisler AB.
All information is provided as is. There is no warranty that it is correct or suitable for any purpose, neither
implicit nor explicit.
Copyright Aeroflex Gaisler AB
GR-TMTC-0002
December 2009, Version 1.5