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:
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 |