仅对英特尔可见 — GUID: zej1616508698887
Ixiasoft
仅对英特尔可见 — GUID: zej1616508698887
Ixiasoft
3.6.4. FGT PMA小数模式
对于给定的数据速率,下拉菜单列出了支持的整数模式参考时钟频率。对于给定的数据速率,如果下拉菜单中未列出所需的参考时钟频率,您可以选择其中一个支持的整数模式参考时钟频率或者使能小数模式。
- 当使能小数模式时,英特尔建议使用141 MHz参考时钟频率来最大化所有OTN/SDI/CPRI速率上的PLL支线的距离。
-
VCO frequency (MHz) = (M + k/2^22) * N * L * refclk frequency (MHz)
当输入小数PLL参考时钟频率时,IP GUI会在System Messages选项卡中显示VCO、M、N、L、k值,如下图所示。
- 对于给定的数据速率,如果您需要在运行时动态配置k计数器,那么您必须使能小数模式。
FGT PMA支持以下PMA模式中的小数模式(fractional mode):
PMA模式 | 小数模式支持 |
---|---|
TX simplex | TX FGT PLL支持TX单工中的小数模式。如要使能此功能,需要在参数编辑器中对PMA mode选择TX simplex选项,然后开启Enable TX FGT PLL fractional mode。TX PLL小数计数器的值会自动计算所选的参考时钟频率。您可以将TX Simplex小数模式置于16个FGT TX PMA中的任何一个上。
注: 在RX单工中,FGT PMA不支持小数模式。
|
Duplex | Duplex PMA模式下的FGT PMA支持小数模式。如要使能duplex PMA模式下的小数模式, 需要在参数编辑器中对PMA mode选择Duplex选项,对Number of PMA lanes最多可选择16,然后开启Enable TX FGT PLL fractional mode选项。
|
Primary PLL configuration | 若要使能包含主PLL配置的小数模式,需要在参数编辑器中对PMA mode选择Duplex选项,对Number of PMA lanes选择2或4,然后开启Enable TX FGT PLL fractional mode和Enable TX FGT PLL cascade mode选项。
|
在小数模式下调整k计数器值
- 当PMA通道的数量为1时,开启Enable TX FGT PLL fractional mode,将PMA参考时钟频率设置成141 MHz,然后调整通道的k计数器值。
- 当PMA通道的数量为2或4时,开启Enable TX FGT PLL fractional mode,开启Enable TX FGT PLL cascade mode,将PMA参考时钟频率设置为141 MHz,然后调整主通道的k计数器值。
- 最大步长:2.5 ppm
- 步长之间的最短持续时间:1 us
- 最大步长:100 ppm
- 步长之间的最短持续时间:未知
每个FGT PMA都有一个包含k计数器的Avalon存储器映射接口寄存器。 k计数器/ 2^22就是反馈计数器的小数值K。 小数值K加上M计数器值就是总反馈计数器的总值,并且决定k计数器中的每个比特代表多少PPM。例如,k计数器中的LSB(最低有效位)代表PPM = (1 / 2^22) / (K+M) × (10^6)。
更改k计数器的步骤:
- 将k计数器更改为新值。
- 脉冲选通比特0 -> 1-> 0以锁定新的k计数器。
每个FGT PMA包含3个PLL;慢速、中速和快速。FGT PMA被组织在四元组(quad)中。k计数器和选通比特Avalon存储器映射接口寄存器地址取决于四元组中的收发器位置和使用了哪个PLL(慢速、中速和快速),如下表所示。
四元组(quad)中的通道位置 | PLL | 小数k计数器寄存器 | 选通寄存器 |
---|---|---|---|
0 | Slow | 0x44000[30:9] | 0x4400C[17] |
Medium | 0x44100[30:9] | 0x4410C[17] | |
Fast | 0x44200[30:9] | 0x4420C[17] | |
1 | Slow | 0x4C000[30:9] | 0x4C00C[17] |
Medium | 0x4C100[30:9] | 0x4C10C[17] | |
Fast | 0x4C200[30:9] | 0x4C20C[17] | |
2 | Slow | 0x54000[30:9] | 0x5r00C[17] |
Medium | 0x54100[30:9] | 0x5410C[17] | |
Fast | 0x54200[30:9] | 0x5420C[17] | |
3 | Slow | 0x5C000[30:9] | 0x5C00C[17] |
Medium | 0x5C100[30:9] | 0x5C10C[17] | |
Fast | 0x5C200[30:9] | 0x5C20C[17] |
; z1577a_u_ux_quad_3__ux3_synth_lc_med_en ; enable ; String ; ; z1577a_u_ux_quad_3__ux3_synth_lc_med_f_out_hz ; 0000000001010110011011010011111010000000 ; Unsigned Binary; ; z1577a_u_ux_quad_3__ux3_synth_lc_med_f_pfd_hz ; 0000000000000000000000000000000000000000 ; Unsigned Binary; ; z1577a_u_ux_quad_3__ux3_synth_lc_med_f_ref_hz ; 0000000000001000110110011110111000100000 ; Unsigned Binary; ; z1577a_u_ux_quad_3__ux3_synth_lc_med_f_rx_postdiv_hz ; 0000000000010001010010010000110010000000 ; Unsigned Binary; ; z1577a_u_ux_quad_3__ux3_synth_lc_med_f_tx_postdiv_hz ; 0000000000000110111010100000010100000000 ; Unsigned Binary; ; z1577a_u_ux_quad_3__ux3_synth_lc_med_f_vco_hz ; 0000001010110011011010011111010000000000 ; Unsigned Binary; ; z1577a_u_ux_quad_3__ux3_synth_lc_med_fractional_en ; enable ; String ; ; z1577a_u_ux_quad_3__ux3_synth_lc_med_k_counter ; 0000111010100111001110 ; Unsigned Binary; ; z1577a_u_ux_quad_3__ux3_synth_lc_med_l_counter ; 001000 ; Unsigned Binary; ; z1577a_u_ux_quad_3__ux3_synth_lc_med_m_counter ; 000100111 ; Unsigned Binary; ; z1577a_u_ux_quad_3__ux3_synth_lc_med_n_counter ; 000001 ; Unsigned Binary; ; z1577a_u_ux_quad_3__ux3_synth_lc_med_powerdown_mode ; false ; String ; ; z1577a_u_ux_quad_3__ux3_synth_lc_med_primary_use ; ux3_synth_lc_med_primary_use_disabled ; String ; ; z1577a_u_ux_quad_3__ux3_synth_lc_med_rx_postdiv_counter ; 00101000 ; Unsigned Binary; ; z1577a_u_ux_quad_3__ux3_synth_lc_med_tx_postdiv_counter ; 01100100 ; Unsigned Binary; ; z1577a_u_ux_quad_3__ux3_synth_lc_med_tx_postdiv_fractional_en ; disable ; String ;