21
Rev NR
3.4
Programmable Oscillator / Programmable Clocks
Four On-Board Programmable Oscillators provide each channel with a unique programmable clock source. In order
to program the oscillator, it is necessary to calculate and program values for different clock frequencies. General
Standards has developed routines to calculate the necessary values for a given setup and program the clock
generator. These routines are written in C, but may be ported for user specific applications. Contact GSC for help in
porting these routines.
The default clock configuration at power-up for the programmable clock on all channels is 20MHz.
See Appendix A for more detailed information concerning programming the on-board clock frequencies.
3.5
Clock Setup
Figure 3-1 shows the relationship of the various clock sources on the SIO4BX2 board. These clock sources can be
most simply viewed in three sections: On-Board Programmable Clocks, IO Connector Clocks, and USC Clocks.
The Programmable Clocks consist of a one on-board programmable PLL (with postdivider) per channel. This allows
each channel to have a unique programmable clock (ProgClk).
The IO Connector Clocks consist of a Receive Clock (RxC), a Transmit Clock (TxC), and a bidirectional Auxillary
Clock (AuxC) for each channel. RxC is always an input and may be used as a clock source for either TxC or the
USC Clocks. The Auxiliary clock may be set as an input (RxAuxC) or output (TxAuxC).
TxC is always an output. It may be generated from ProgClk, inverted ProgClk, RxC, RxAuxC , either of the USC
clocks (USC_TxC or USC_RxC), or forced hi or low (for software control). The TxC Source is controlled by bits
D8-D6 of the Pin Source Register.
The USC Clocks (USC RxC and USC TxC) are bidirectional signals. Even though the names of these clocks seem
to imply a receive clock and a transmit clock, both clocks are fully programmable and identical in function – either
clock may be used for transmit or receive. The USC clocks may be sourced from either the USC or the FPGA (via
the Pin Source register). The user must be careful to ensure that both the USC and Pin Source Register are setup to
agree. If a USC clock is set as an output in the USC, it should be programmed as an input in the Pin Source register.
Likewise, if a USC clock source is driven from the Pin Source register, the user should program the pin as an input to
the USC.