O objetivo deste exemplo de projeto é mostrar a maneira de restrição do TSE_RGMII. Este exemplo de projeto só é aplicável quando o recurso de atraso (deslocamento de 90 graus) de TX_CLK e RX_CLK de PHY externo estiver ligado. Ele pode funcionar em 3 velocidades diferentes, que são de 10 MHz, 100 MHz e 1000 MHz.
A suposição é feita de que o usuário está familiarizado com o núcleo de propriedade intelectual Ethernet de velocidade tripla (IP), ALTDDIO, ALTPLL, timequest e análise de tempo estático e conceito síncrono de taxa de dados dupla (DDR).
Como restrição
- Selecione o método de restrição de interface: método centrado no sistema ou Intel® FPGA método centrado.
- O método diferente requer fórmulas diferentes para calcular o valor de atraso no comando set_input_delay e set_output_delay
- Este exemplo de projeto usa o método centrado no sistema
- Decida se liga ou desliga o recurso de atraso (±90 graus) do PHY externo, pois ele determinará o tipo de alinhamento entre o clock e os dados.
- Shift de 90 graus -> centro alinhado
- Nenhuma borda de > de mudança alinhada
- Este exemplo de projeto é aplicável ao recurso de atraso de TX e RX do PHY externo são apenas ativadas (deslocamento de 90 graus)
- Determine o relacionamento de lançamento e trava desejado.
- Há 4 tipos de relacionamento de lançamento e trava. São as relações Rise-Rise (RR), Rise-Fall (RF), Fall-Rise (FR) e Fall-Fall (FF)
- A especificação RGMII diz que a LSB dos dados [3:0] será enviada primeiro na borda ascendente e a MSB dos dados [7:4] é enviada seguida pela borda em queda
- O design do TSE com interface RGMII capturará os dados na borda ascendente primeiro e depois a borda em queda. Isso implica que o clock precisa ser deslocado +90 graus em vez de -90 graus
- Relação de inicialização e travamento de configuração desejada (seta em vermelho): RR e FF
- Relacionamento de lançamento e trava desejado (Seta em azul): FR e RF
- Restrição da interface RGMII. As Restrições de design de sinopse (SDC) são baseadas no projeto e na aplicação. No entanto, há alguns SDC principais necessários para a interface RGMII.
TX
- create_clock
- o clock que trava os dados dentro do Intel® FPGA antes de transmitir para o PHY externo
- create_generated_clock:
- o relógio com mudança de fase de 90 graus que trava os dados no PHY externo
- set_false_path:
- É uma relação indesejada para não ser analisada na análise de tempo. Neste exemplo de projeto, a relação indesejada para a configuração é RF e FR, enquanto a relação indesejada para a espera é RR e FF
set_false_path -fall_from [data_clock] -rise_to [output_clock] -setup
set_false_path -rise_from [data_clock] -fall_to [output_clock] -setup
set_false_path -rise_from [data_clock] -rise_to [output_clock] -hold
set_false_path -fall_from [data_clock] -fall_to [output_clock] -hold
- set_output_delay
set_output_delay -clock output_clock\
-max [expr $data_delay_max + $tsu - $clk_delay_min] \
[get_ports data_out] \
-add_delay
set_output_delay -clock output_clock\
-max [expr $data_delay_max + $tsu - $clk_delay_min] \
[get_ports data_out] \
-clock_fall \
-add_delay
set_output_delay -clock output_clock \
-min [expr $data_delay_min - $th - $clk_delay_max] \
[get_ports data_out ] \
-add_delay
set_output_delay -clock output_clock \
-min [expr $data_delay_min - $th - $clk_delay_max] \
[get_ports data_out ] \
-clock_fall \
-add_delay
TSE_RGMII RX
- create_clock:
- um clock virtual que trava os dados dentro do PHY externo antes de transmitir para o Intel® FPGA
- criar _clock:
- o relógio com mudança de fase de 90 graus que trava os dados dentro do Intel® FPGA
- set_false_path:
- É uma relação indesejada para não ser analisada na análise de tempo. Neste exemplo de projeto, a relação indesejada para a configuração é RF e FR, enquanto a relação indesejada para a espera é RR e FF
set_false_path -fall_from [data_clock] -rise_to [output_clock] -setup
set_false_path -rise_from [data_clock] -fall_to [output_clock] -setup
set_false_path -rise_from [data_clock] -rise_to [output_clock] -hold
set_false_path -fall_from [data_clock] -fall_to [output_clock] -hold
Como verificar
Há alguns relatórios a ser verificados para verificar se a restrição síncrona de origem está limitada corretamente.
- Relatório do clock
- Verifique a frequência de 3 clocks (125 MHz, 25 MHz e 2,5 MHz) e sua fase
- Clock core TX (Intel® FPGA): 125 MHz, 25 MHz e 2,5 MHz
- RGMII_TX_Clock (PHY externo): 125 MHz +90º, 25 MHz +90º e 2,5 MHz +90º
- RGMII_RX_Clock (Intel® FPGA): 125 MHz +90º, 25 MHz +90º e 2,5 MHz +90º
- RGMII_RX_Virtual_Clock (PHY externo): 125 MHz, 25 MHz e 2,5 MHz
- Relatório de transferência de clock
- Verifique toda a relação na configuração e segure o relacionamento de trava de lançamento da interface RGMII para transferência de clock
- Configuração desejada: RR e FF
- Espera desejada: FR e RF
- Todo o relatório de tempo de E/S
- Verifique se há alguma relação de falha no caminho e trava de lançamento de acordo com a configuração desejada e mantenha a relação de trava de lançamento
- Entrada para registrar-se para configuração e espera
- Inscreva-se na saída para configuração e espera
- Verifique se há alguma relação de falha no caminho e trava de lançamento de acordo com a configuração desejada e mantenha a relação de trava de lançamento
Notas:
- TSE_10_1_RGMII_SDC é o arquivo SDC gerado pelo Megafunction. Ele não cobre a restrição de SDC RGMII. A restrição de SDC RGMII está incluída na SDC RGMII.
- Modificação no arquivo TSE_10_1_RGMII_SDC.sdc:
- Comente o derived_pll_clock (linha 246) pois impedirá que você use o comando create_gererated_clock para o pll em RGMII.sdc
- Mude o nome de FF_TX_CLK e FF_RX_CLK na linha 59 e na linha 60 de acordo com o design
- Há avisos que podem ser ignorados durante a análise de temporização. Consulte o readme.txt encontrado em TSE_RGMII_With_SDC.qar para obter detalhes.
- Baixe o arquivo usado neste exemplo: TSE_RGMII_With_SDC.qar
O uso deste design é regido pelos termos e condições do Contrato de licença de exemplo de projeto Intel®