source: PlatformSupport/CustomPeripherals/pcores/w3_clock_controller_axi_v4_00_a/hdl/verilog/picoblaze_src/clk_config_defaults.psm

Last change on this file was 4326, checked in by murphpo, 9 years ago

Comment-only update to picoblaze assembly

File size: 7.0 KB
Line 
1;***************************************************************************************
2;RF ref clk buffer (AD9512):
3;   CLK1: Input from on-board 80MHz oscillator
4;   CLK2: Input from clock module
5;   OUT0: LVPECL output to clock module
6;   OUT1: Unused LVPECL output (not terminated)
7;   OUT2: Unused LVPECL output (not terminated)
8;   OUT3: LVCMOS outputs to RFA/RFB MAX2829 (p: RFB, n: RFA)
9;   OUT4: LVDS output to FMC slot
10;
11;   All configs not listed below are handled post-boot by MicroBlaze application
12;
13;   No Clock Module:
14;       Do nothing - all config handled post-boot by MicroBlaze application
15;
16;   CM-MMCX Configs:
17;       A/B/C: Do nothing
18;
19;   CM-PLL Configs:
20;       A: Select CLK1 input (on-board osc), enable OUT0 (output to clock module) as 10MHz full-scale LVPECL
21;       B/C: Do nothing
22;
23;   Relevant registers:
24;       45: Selects clock input: 00 for off-board, 01 for on-board
25;       4A: 33 sets divider on OUT0 (output to clk mod) to 8, 50% duty cycle
26;       4B: 00 enables divider on OUT0 (output to clk mod)
27;       3D: 08 configures LVPECL output OUT0 (output to clk mod) for max drive
28;       5A: Trigger device update from SPI registers (self-clearing)
29;***************************************************************************************
30TABLE TBL_CFG_NOCM_RFREF_ADDR#,     [FF]
31TABLE TBL_CFG_NOCM_RFREF_DATA#,     [FF]
32
33TABLE TBL_CFG_CMMMCX_A_RFREF_ADDR#, [FF]
34TABLE TBL_CFG_CMMMCX_A_RFREF_DATA#, [FF]
35
36TABLE TBL_CFG_CMMMCX_B_RFREF_ADDR#, [FF]
37TABLE TBL_CFG_CMMMCX_B_RFREF_DATA#, [FF]
38
39TABLE TBL_CFG_CMMMCX_C_RFREF_ADDR#, [FF]
40TABLE TBL_CFG_CMMMCX_C_RFREF_DATA#, [FF]
41
42TABLE TBL_CFG_CMPLL_A_RFREF_ADDR#,  [45, 4A, 4B, 3D, 5A, FF]
43TABLE TBL_CFG_CMPLL_A_RFREF_DATA#,  [01, 33, 00, 08, 01, FF]
44
45TABLE TBL_CFG_CMPLL_B_RFREF_ADDR#,  [FF]
46TABLE TBL_CFG_CMPLL_B_RFREF_DATA#,  [FF]
47
48TABLE TBL_CFG_CMPLL_C_RFREF_ADDR#,  [FF]
49TABLE TBL_CFG_CMPLL_C_RFREF_DATA#,  [FF]
50
51;***************************************************************************************
52;Samp clk buffer (AD9512):
53;   CLK1: Input from on-board 80MHz oscillator
54;   CLK2: Input from clock module
55;   OUT0: LVPECL output to RFB AD9963
56;   OUT1: LVPECL output to clock module
57;   OUT2: LVPECL output to RFA AD9963
58;   OUT3: LVDS output to FPGA
59;   OUT4: LVDS output to FMC slot
60;
61;   All configs not listed below are handled post-boot by MicroBlaze application
62;
63;   No Clock Module:
64;       -Select CLK1
65;       -Enable OUT3 as 80MHz LVDS
66;
67;   CM-MMCX Configs:
68;       A: Same as No Clock Module
69;
70;       B/C:    -Select CLK2
71;               -Enable OUT3 as 80MHz LVDS
72;
73;   CM-PLL Configs:
74;       A/B/C:  -Select CLK2 (input from clock module)
75;               -Enable OUT3 (output to FPGA) as 80MHz LVDS
76;
77;   Relevant registers:
78;       45: Selects clock input: 00 for off-board, 01 for on-board
79;       51: 80 bypasses OUT3 divider (output to FPGA)
80;       5A: Trigger device update from SPI registers (self-clearing)
81;***************************************************************************************/
82TABLE TBL_CFG_NOCM_SAMP_ADDR#,      [45, 51, 5A, FF]
83TABLE TBL_CFG_NOCM_SAMP_DATA#,      [01, 80, 01, FF]
84
85TABLE TBL_CFG_CMMMCX_A_SAMP_ADDR#,  [45, 51, 5A, FF]
86TABLE TBL_CFG_CMMMCX_A_SAMP_DATA#,  [01, 80, 01, FF]
87
88TABLE TBL_CFG_CMMMCX_B_SAMP_ADDR#,  [45, 51, 5A, FF]
89TABLE TBL_CFG_CMMMCX_B_SAMP_DATA#,  [00, 80, 01, FF]
90
91TABLE TBL_CFG_CMMMCX_C_SAMP_ADDR#,  [45, 51, 5A, FF]
92TABLE TBL_CFG_CMMMCX_C_SAMP_DATA#,  [00, 80, 01, FF]
93
94TABLE TBL_CFG_CMPLL_A_SAMP_ADDR#,   [45, 51, 5A, FF]
95TABLE TBL_CFG_CMPLL_A_SAMP_DATA#,   [00, 80, 01, FF]
96
97TABLE TBL_CFG_CMPLL_B_SAMP_ADDR#,   [45, 51, 5A, FF]
98TABLE TBL_CFG_CMPLL_B_SAMP_DATA#,   [00, 80, 01, FF]
99
100TABLE TBL_CFG_CMPLL_C_SAMP_ADDR#,   [45, 51, 5A, FF]
101TABLE TBL_CFG_CMPLL_C_SAMP_DATA#,   [00, 80, 01, FF]
102
103;***************************************************************************************
104;CM-PLL Buffer/PLL (AD9511):
105;   CLK1: Input from off-board reference, bypasses PLL
106;   CLK2: Input from on-board 80MHz VCXO
107;   OUT0/1/2: Unused LVPECL outputs (unterminated)
108;   OUT3: LVDS output to clock module header RFCLKBUF pins (rf ref clk buf CLK2 input)
109;   OUT4: LVDS output to clock module header SAMPCLKBUF pins (samp clk buf CLK2 input)
110;
111;   All configs not listed below are handled post-boot by MicroBlaze application
112;
113;   No Clock Module:
114;       Toggle reset, power down PLL core and all outputs
115;       This handles the case of the CM-PLL being mounted but its switches being set to 00
116;       It's better to do SPI writes to open pins (i.e. no CM) than let the PLL run free
117;
118;   CM-MMCX Configs:
119;       Do nothing - no PLL
120;
121;   CM-PLL Configs:
122;       Common:
123;           -Toggle reset
124;           -Disable OUT0/1/2 (unused)
125;           -Enable OUT4 as 80MHz max-drive LVDS
126;
127;       A:  -Configure PLL for 10MHz reference (see below)
128;           -Disable OUT3 (output to RF ref clk buf)
129;
130;       B:  -Configure PLL for 10MHz reference (see below)
131;           -Enable OUT3 (output to RF ref clk buf)
132;
133;       C:  -Configure PLL for 80MHz reference (see below)
134;           -Enable OUT3 (output to RF ref clk buf)
135;
136;   Relevant registers:
137;       00: 30 resets, 10 un-resets
138;       04: A counter b[5:0]
139;       05: B counter b[12:8]
140;       06: B counter b[7:0]
141;       0B: R counter b[13:8]
142;       0C: R counter b[7:0]
143;       07: 00 disables loss-of-reference state machine
144;       08: 47 enables charge pump, sets STATUS=lock_det, sets positive PFD polarity
145;       09: 70 sets max charge pump current
146;       0A: 08 for normal operation, 10MHz ref; 040 for normal operation, 80MHz ref)
147;           b[1:0]: PLL powerdown (00 or 10=normal operation, 01 or 11=powe down)
148;           b[4:2]: Prescaler mode (see datasheet for full list)
149;               000: FD, div by 1
150;               010: DM, (P/P+1)=2/3
151;       3D/3E/3F: 03 powers down LVPECL outputs OUT0/1/2
152;       40/41: 01 disables OUT3/4, 02 enables LVDS output OUT3/4
153;       51/53: 80 disables divider (W3 board wants 80MHz inputs from clk module)
154;       45: 02 selects CLK2 (VCXO clk src), powers down CLK1 input, powers up all other I/O
155;       5A: Trigger device update from SPI registers (self-clearing)
156;
157;   Common reference frequency configs:
158;       10MHz:
159;           PFD freq: 10MHz
160;           R divider: 1
161;           N divider: 8 (implies DM mode, prescaler mode (2/3), A=2, B=3)
162;
163;       80MHz:
164;           PFD freq: 80MHz
165;           R divider: 1
166;           N divider: 1 (implies FD mode, prescaler mode div 1, B=1 (bypassed))
167;
168;       See AD9511 datasheet Table 16 for PLL settings for other valid divider settings
169;
170;***************************************************************************************/
171
172TABLE TBL_CFG_NOCM_PLL_ADDR#,       [00, 00, 0A, 3D, 3E, 3F, 40, 41, FF]
173TABLE TBL_CFG_NOCM_PLL_DATA#,       [30, 10, 11, 03, 03, 03, 01, 01, FF]
174
175TABLE TBL_CFG_CMPLL_A_PLL_ADDR#,    [00, 00, 04, 05, 06, 0B, 0C, 07, 08, 09, 0A, 3D, 3E, 3F, 40, 41, 51, 53, 45, 5A, FF]
176TABLE TBL_CFG_CMPLL_A_PLL_DATA#,    [30, 10, 02, 00, 03, 00, 01, 00, 47, 70, 08, 03, 03, 03, 01, 02, 80, 80, 02, 01, FF]
177
178TABLE TBL_CFG_CMPLL_B_PLL_ADDR#,    [00, 00, 04, 05, 06, 0B, 0C, 07, 08, 09, 0A, 3D, 3E, 3F, 40, 41, 51, 53, 45, 5A, FF]
179TABLE TBL_CFG_CMPLL_B_PLL_DATA#,    [30, 10, 02, 00, 03, 00, 01, 00, 47, 70, 08, 03, 03, 03, 02, 02, 80, 80, 02, 01, FF]
180
181TABLE TBL_CFG_CMPLL_C_PLL_ADDR#,    [00, 00, 04, 05, 06, 0B, 0C, 07, 08, 09, 0A, 3D, 3E, 3F, 40, 41, 51, 53, 45, 5A, FF]
182TABLE TBL_CFG_CMPLL_C_PLL_DATA#,    [30, 10, 02, 00, 03, 00, 01, 00, 47, 70, 40, 03, 03, 03, 02, 02, 80, 80, 02, 01, FF]
Note: See TracBrowser for help on using the repository browser.