Restringir a saída de origem sincronizada com o centro

author-image

Por

Em uma interface de saída síncrona de origem, o FPGA o clock do dispositivo de destino. Em uma interface síncrona de origem alinhada ao centro, a transição do clock ocorre no meio da janela válida de dados. A Figura 1 mostra uma interface de saída de origem síncrona de amostra.

Figura 1. interface de saída síncrona de origem.

Use as seguintes etapas para restringir uma interface de saída de origem sincronizada pelo centro:

  1. Crie clocks básicos e gerados
  2. Adicionar restrições de atraso de saída
  3. Adicione exceções de caminhos falsos para excluir caminhos inválidos da análise de sincronização e relatórios

Para obter mais detalhes sobre qualquer uma dessas etapas, ou os cálculos e restrições descritos abaixo, consulte AN 433:Restrição e análise de interfaces síncronas de origem (PDF) .

Relógios

É necessário um clock base na porta de entrada do FPGA.
Os clocks gerados são necessários em todas as saídas de loop bloqueado por fase (PLL). Uma saída de código-fonte sincronizada com taxa de dados dupla muda o clock de saída em 90 graus, em comparação com o clock de dados.
É necessário um clock gerado na porta do clock de saída do FPGA. O clock gerado é a referência de clock para valores de atraso de saída para o barramento de dados.

Restrições de atraso de saída

Você pode usar uma especificação de distorção máxima para calcular os valores de atraso de saída. A especificação de distorção máxima indica a variação de tempo permitida para que bits individuais de um barramento de dados saiam do FPGA.

O valor do atraso máximo de saída é(intervalo da unidade / 2) - valor máximo de distorção.

O valor do atraso mínimo de saída é o valor máximo de distorção - (intervalo de 1,5 * unidade).

Exceções de caminho falso

Neste exemplo alinhado ao centro, os dados são transferidos em transições de fontes de ascensão e queda e de clock de destino. Use exceções de caminho falsos para reduzir as transições de clock de queda e queda, porque os dados não são transferidos em transições de clock de borda oposta.

Arquivo SDC de amostra


# Create a base clock on the input port of the FPGA, with a 10 ns period
create_clock -name input_clock -period 10 [get_ports clk_in]

# Create generated clocks on the PLL outputs
# Output clk[0] drives the data register
# Output clk[1] drives the output clock port with a 90 degree shift
create_generated_clock -name data_clock -source [get_pins pll|inclk[0]] \
[get_pins pll|clk[0]]
create_generated_clock -name clock_clock -phase 90 -source [get_pins pll|inclk[0] \
[get_pins pll|clk[1]]

# Create the generated clock on the output clock port of the FPGA
create_generated_clock -name output_clock -source [get_pins pll|clk[1]] \
[get_ports clk_out]

# Add maximum and minimum output delay constraints
# assuming a skew requirement of +/- 250ps
# Use the equations for the output delay values listed above
set_output_delay -max -clock output_clock [expr { (5 / 2) - 0.250 }] \
[get_ports data_out*]
set_output_delay -max -clock output_clock -clock_fall \
[expr { (5 / 2) - 0.250 }] [get_ports data_out*] -add
set_output_delay -min -clock output_clock [expr { (0.250 - (1.5 * 5) }] \
[get_ports data_out*]
set_output_delay -min -clock output_clock -clock_fall \
[expr { (0.250 - ( 1.5 * 5 ) }] [get_ports data_out*] -add

# Add false path exceptions for cross-clock transfers
set_false_path -setup -end -rise_from [get_clocks data_clock] \
-fall_to [get_clocks output_clock]
set_false_path -setup -end -fall_from [get_clocks data_clock] \
-rise_to [get_clocks output_clock]
set_false_path -hold -end -rise_from [get_clocks data_clock] \
-fall_to [get_clocks output_clock]
set_false_path -hold -end -fall_from [get_clocks data_clock] \
-rise_to [get_clocks output_clock]

 

O conteúdo desta página é uma combinação de tradução humana e por computador do conteúdo original em inglês. Este conteúdo é fornecido para sua conveniência e apenas para informação geral, e não deve ser considerado completo ou exato. Se houver alguma contradição entre a versão em inglês desta página e a tradução, a versão em inglês prevalecerá e será a determinante. Exibir a versão em inglês desta página.