# System configuration file example

The following example describes a system configuration where four boards reside in a single chassis. The boards are configured in the following way:

Board | Description | Drives | Primary timing reference | Fallback timing reference
--- | --- | --- | --- | ---
A | Primary clock master | A_CLOCK | NETREF | Local digital trunk 2
B | Secondary clock master | B_CLOCK | A_CLOCK | Local digital trunk 3
C | Clock slave | Nothing | A_CLOCK | B_CLOCK
D | Clock slave | NETREF based on local digital trunk 4 | A_CLOCK | B_CLOCK

Clock fallback is enabled on all boards. Board A, defined as the primary clock master, drives A_CLOCK. All other boards on the system connected to the CT bus use A_CLOCK as their primary timing reference. Board A derives its own timing reference from the NETREF signal driven by board D, based on a signal from one of board D's digital trunks (trunk 4).

In addition, board A is configured to use timing signals received on one of its own digital trunks (trunk 2) as its fallback timing reference. If NETREF fails, board A continues to drive A_CLOCK based on its fallback timing reference.

Board B is set up as a backup, or secondary clock master, driving the CT bus clock not driven by the primary clock master. Board B normally receives its timing reference from A_CLOCK, which is driven by board A. This means that board B acts as a clock slave to board A. If A_CLOCK fails, board B continues driving B_CLOCK, but now uses the timing signals received from one of its digital trunks (trunk 3). All other slave boards fall back to B_CLOCK, and board B serves as the clock master. The primary master also falls back to B_CLOCK, and is now a slave to the secondary master. The system continues in this configuration until an application intervenes.

This configuration assigns the following clocking priorities:

Timing priority | Clocking configuration
--- | ---
First | Board A (primary master) drives A_CLOCK using its primary timing reference (board D, digital trunk 4, using NETREF). Slaves synchronize to A_CLOCK.
Second | Board A (primary master) drives A_CLOCK using its fallback timing reference (board A, digital trunk 2). Slaves synchronize to A_CLOCK.
Third | Board B (secondary master) drives B_CLOCK using its fallback timing reference (board B, digital trunk 3). Slaves synchronize to B_CLOCK.

The following illustration shows the sample board clocking configuration:

## Board keywords

If clocking is set up for the system through board keywords, clock configuration keywords can be set as follows for each board:

Board | Role | Clocking keyword settings
--- | --- | ---
A | Primary clock master | Clocking.HBus.ClockMode = MASTER_A Clocking.HBus.ClockSource = NETREF Clocking.HBus.AutoFallBack = YES Clocking.HBus.FallBackClockSource = NETWORK Clocking.HBus.FallBackNetwork = 2
B | Secondary clock master | Clocking.HBus.ClockMode = MASTER_B Clocking.HBus.ClockSource = A_CLOCK Clocking.HBus.AutoFallBack = YES Clocking.HBus.FallBackClockSource = NETWORK Clocking.HBus.FallBackNetwork = 3
C | Clock slave | Clocking.HBus.ClockMode = SLAVE Clocking.HBus.ClockSource = A_CLOCK Clocking.HBus.AutoFallBack = YES Clocking.HBus.FallBackClockSource = B_CLOCK
D | Slave driving NETREF | Clocking.HBus.ClockMode = SLAVE Clocking.HBus.ClockSource = A_CLOCK Clocking.HBus.AutoFallBack = YES Clocking.HBus.FallBackClockSource = B_CLOCK Clocking.HBus.NetRefSource = NETWORK Clocking.HBus.NetRefSourceNetwork = 4 Clocking.HBus.NetRefSpeed = 8K