Devido a um problema com o circuito de detecção de travamento rígido fracionada plL (fPLL) do dispositivo Arria® 10, o fPLL pode relatar uma condição desbloqueada ao usar o modo de precisão k fracionada.
Quando o fPLL está no modo fracionado, o valor do contador de feedback é uma função de M e K (pll_dsm_fractional_division). A fórmula é "M (inteiro) K/2^32". Os valores legais de K são de 1 a 2^32-1
O "Fator K" é definido como "pll_dsm_fractional_division/2^32",
Quando o fator K é inferior a 0,1 ou superior a 0,9, o circuito de detecção de travamento rígido fPLL não é confiável.
Quando o fator K está entre 0,1 e 0,9, o circuito de detecção de travamento rígido fPLL é confiável.
Exemplo
O exemplo abaixo descreve quando o circuito de detecção Arria 10 fPLL de 10 fPLL é e não é confiável.
refclk (frequência) = 100 MHz
Contador N = 1
Contador M = 40
Contador K (pll_dsm_fractional_division) = 2147483648
Contador L = 4
Saída PLL (frequência) = (refclk (frequência) / N) * ( (M ( K / 2^32) / L )
Neste caso,
Saída PLL (frequência) = 100 * (40 ( 2147483648 / 2^32) / 4 )
= 100 * (40 0,5 ) / 4)
= 100 * (40,5 / 4)
= 100 * 10.125
= 1012,5 MHz
Como o valor fracional é de 0,5 (2147483648 / 2^32, com K = 2147483648) e está entre 0,1 e 0,9, o sinal de bloqueio é confiável.
Quando o valor fracionado é inferior a 0,1 ou superior a 0,9, o sinal de trava fPLL não é confiável. Neste caso, você pode instautar a seguinte lógica de detecção de bloqueio de IP suave
Baixe este arquivo soft_lockppm_det.zip
O arquivo soft_lckppm_det.v é criptografado, mas pode ser usado para síntese, simulação e testes de hardware.
A lista de portas e a descrição do arquivo de circuito de detecção de bloqueio suave estão abaixo
Nome da porta | Entrada/saída | Descrição |
ref_clk | Entrada | Entrada de clock de referência para fpll |
clk_low | Entrada | Clock baixo de fpll, sempre alternância, a frequência pode estar fora do reg pll_locked |
dead_ref_clk | Saída | Indica que a clk de referência não alterna rápido o suficiente e é considerada como morta. O limite padrão é definido pelo parâmetro do módulo PPM_THRESHOLD_FOR_DEAD_CLK |
calibration_done | Entrada | cal_done de fpll. Pode ser considerado como reinicialização secundária |
config_en | Entrada | Porta de configuração habilitada |
config_clk | Entrada | Clock de porta de configuração |
config_data | Entrada | Dados da porta de configuração. Quando config_en alta, os dados são amostrados na borda ascendente do config_clk e deslocados para os limites internos de armazenamento de registros para condições de bloqueio e de clock morto. A largura do registro é definida pelo parâmetro do módulo CLK_LOW_CNT_WIDTH. Portanto, o total de ciclos precisa mudar em todos os dados é de 2* CLK_LOW_CNT_WIDTH ciclos. A operação de deslocamento começa na LSB do registro para condição de bloqueio. Após 2* CLK_LOW_CNT_WIDTH ciclos, o valor config_data se tornará a MSB do registro para dead_lock condição |
Redefinir | Entrada | redefinir a partir de fpll |