c = 1048575 = (2^20-1) = 0xFFFFF P1[17:0] == 128 * a + floor( 128 * b / c ) - 512 == 0x80 * a + floor( 0x80 * b / 0xFFFFF ) - 0x200 P2[19:0] == 128 * b - c * floor( 128 * b / c ) == 0x80 * b - 0xFFFFF * floor( 0x80 * b / 0xFFFFF ) P3[19:0] == 1048575 == 0xFFFFF Given that C is a constant 104857510 or 0xFFFFF, the expression "floor( 0x80 * b / 0xFFFFF )" equates to b * 0.000816 which can be obtained by shifting b right once and grab the top 2 nibbles of the 5 nibble 'b' word. r26_VCOa P3[15:8] = 0xFF, r27_VCOa P3[7:0] = 0xFF, r28_VCOa 0b000000:P1[17:16] = 0 R42 = 0; R43 = 1; R47 = 0; R48 = 0; R49 = 0;
Crystal=25, Desired clock0 Span: 7,000,000 b(lo) - 7,125,000 b(hi) == VCOa Span: 700(lo) - 725(hi) | |||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
a | d | clock0 (lo max[0]) | clock0 (hi max[c]) | b(lo edge) 7,000,000 | b(inc step) 7,125,000 | Resolution in Hz | r29_VCOa P1[15:8] | r30_VCOa P1[7:0] | r31_VCOa P3[19:16]:P2[19:16] | r32_VCOa P2[15:8] | r33_VCOa P2[7:0] | r44 | r45 | r46 | |||||||||||||||||||
28 | 100 | 7,000,000.00 | 7,250,000.00 | 0 | 0.23841858 | $0C | $00 | $F:$0 | $00 | $00 | $00 | $30 | $00 | ||||||||||||||||||||
3FFFF.C000000000step | $0C | $40 | $F:$0 | $00 | $00 |