
The PLL looks like this

On the left hand side are Sky HS logic blocks, they include a programmable clock scaler (a 4 bit down counter set by the COUNT_* pins), a reset logic that looks for clock stability and after detecting 16 good clocks asserts RESET_OUT_N, and a phase detector that compares the output of the clock scaler with a reference clock and drives the charge pump.
On the right are the analog blocks. Along the bottom is a variable frequency oscillator (VCO), 5 stages, Top left is the charge pump that drives the VCTRL output voltage into the oscillator. The 4 large square boxes to the right are capacitors charged from VCTRL through a long poly resistor that snakes the width of the block. The 2 small square boxes to the right are a smaller capacitor also on VCTRL.. The other 2 caps are decoupling caps for the charge pump.
The resulting block is intended to be a drop in to Sky TT projects, Its interface is very simple, inputs are:
Outputs are:
This is a 1x1 TT tile with the PLL laid along the bottom, the tile connects RESET_N to the TT rst_n and COUNT to ui_in[3:0]. ui_in[7:4] are connected to a down counter from the TT clk, the output is used to drive REFCLK (unless ui_in[7:4]==0 in which case REFCLK is driven directly from the TT clk.
The output CLK is connected to uo_out[0] a 4 bit counter driven from CLK is connected to uo_out[5:2] finally RESET_OUT_N is connected to uo_out[1]. It is expected that at many frequencies the upper bits of the counter and the output clock wont make it to the TT pins.
Drive ui_in with 8'n0000_0001 (2 times freq), Set the TT clock to 25MHz. Assert reset, uo_out[1] should go low, clear reset, uo_out[1] should high. If we get this far the PLL is making a good clock. You can now look at the uo_out pins on a scope to check the freq.
a scope to look at the output signals
| # | Input | Output | Bidirectional |
|---|---|---|---|
| 0 | count_0 pll divider | raw clock out | |
| 1 | count_1 | reset out | |
| 2 | count_2 | clk/2 out | |
| 3 | count_3 | clk/4 out | |
| 4 | pre_0 reference divider | clk/8 out | |
| 5 | pre_1 | clk/16 out | |
| 6 | pre_2 | ||
| 7 | pre_3 |