ID do artigo: 000074881 Tipo de conteúdo: Solução de problemas Última revisão: 14/02/2020

Quais restrições de sincronização devem ser usadas entre fpga_dclk e fpga_data no núcleo do carregador flash paralelo Intel® FPGA IP núcleo?

Ambiente

    Intel® Quartus® Prime Pro Edition
BUILT IN - ARTICLE INTRO SECOND COMPONENT
Descrição

Ao usar o carregador flash paralelo Intel® FPGA IP, as restrições de sincronização para fpga_data e fpga_dclk são descritas no Limitador de sincronização de PFL no Guia do usuário do carregador flash paralelo Intel® FPGA IP Core.  No entanto, as restrições na versão do documento 2019.02.19 e anteriores não estão corretas.

Resolução

Para restringir corretamente o tempo de fpga_data e fpga_dclk, use uma das seguintes restrições de sincronização, dependendo da razão entre o clock de entrada e a saída DCLK.

[ Quando a razão entre o clock de entrada e a saída DCLK = 1 ]
# Criar clock
create_clock -name {pfl_clk} -período de -waveform { 0,000 /2 } [get_ports {pfl_clk}]
# Criar clock gerado
create_generated_clock -name {fpga_dclk} -source [get_ports {pfl_clk}] -master_clock {pfl_clk} -invertida [get_ports {fpga_dclk}]
# Definir atraso de saída
set_output_delay -add_delay -max -clock [get_clocks {fpga_dclk}] restrição de tempo [get_ports {fpga_data*}]
set_output_delay -add_delay -min -clock [get_clocks {fpga_dclk}] [get_ports {fpga_data*}]

[ Quando a relação entre o clock de entrada e a saída DCLK > 1 ]
# Criar clock
create_clock -name {pfl_clk} -período de -waveform { 0,000 /2 } [get_ports {pfl_clk}]
# Criar clock gerado
create_generated_clock -name {} -source [get_ports {pfl_clk}] -divide_by -master_clock {pfl_clk} [get_registers {} ]
create_generated_clock -name {} -source [get_registers {}] -master_clock {} [get_ports {fpga_dclk}]
# Definir atraso de saída
set_output_delay -add_delay -max-clock [get_clocks {}] -reference_pin [get_ports {fpga_dclk}] restrição de tempo de [get_ports {fpga_data*}]
set_output_delay -add_delay -min -clock [get_clocks {}] -reference_pin [get_ports {fpga_dclk}] [get_ports {fpga_data*}]
# Definir caminho de multiciclos
set_multicycle_path -setup -start-from [get_clocks {pfl_clk}] -, para [get_clocks {}] < razão entre o clock de entrada e a saída DCLK>/2
set_multicycle_path -hold -start -, de [get_clocks {pfl_clk}] a [get_clocks {}] -1

 

• Nesses exemplos, os nomes Intel FPGA IP porta do núcleo do PFL são usados.
• O registro DCLK é um registro para dividir pfl_clk. O nome do registro geralmente é "fpga_dclk_reg". Você pode encontrar o registro rastreando o destino de origem fpga_dclk porta usando a ferramenta Visualizador de mapas de tecnologia.
• A Intel recomenda usar a GUI do analisador de tempo para validar os treinamentos.

 

[Exemplo]

• Condição
o pfl_clk = 20ns (50 MHz)
o Relação entre o clock de entrada e a saída DCLK = 2

• Restrições de sincronização

# Criar clock
create_clock -name {pfl_clk} -período 20.000 -waveform { 0,000 10.000 } [get_ports {pfl_clk}]
# Criar clock gerado
create_generated_clock -name {fpga_dclk_gen} -source [get_ports {pfl_clk}] -divide_by 2 -master_clock {pfl_clk} [get_registers {pfl:inst|altparallel_flash_loader:altparallel_flash_loader_component|alt_pfl:\PFL_CFI:pfl_cfi_inst|alt_pfl_cfg3:\CFG3:cfg|alt_pfl_cfg_fpga:alt_pfl_cfg_fpga|fpga_dclk_reg}]
create_generated_clock -name {fpga_dclk_pin} -source [get_registers {pfl_top:pfl_top_inst|altera_parallel_flash_loader:parallel_flash_loader_0|altparallel_flash_loader:altparallel_flash_loader_component|alt_pfl:\PFL_CFI:pfl_cfi_inst|alt_pfl_cfg3:\CFG3:cfg|alt_pfl_cfg_fpga:alt_pfl_cfg_fpga|fpga_dclk_reg}] -master_clock {fpga_dclk_gen} [get_ports {fpga_dclk}]
# Definir atraso de saída
set_output_delay -add_delay -max -clock [get_clocks {fpga_dclk_gen}] -reference_pin [get_ports {fpga_dclk}] 5.500 [get_ports {fpga_data*}]
set_output_delay -add_delay -min -clock [get_clocks {fpga_dclk_gen}] -reference_pin [get_ports {fpga_dclk}] -1.000 [get_ports {fpga_data*}]
# Definir caminho de multiciclos
set_multicycle_path -setup -start -, de [get_clocks {pfl_clk}] -, para [get_clocks {fpga_dclk_pin}] 1
set_multicycle_path -hold -start -, de [get_clocks {pfl_clk}] -, para [get_clocks {fpga_dclk_pin}] 1

Produtos relacionados

Este artigo aplica-se a 4 produtos

Intel® Cyclone®
Intel® Stratix®
Intel® Arria®
Intel® MAX®

1

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 governará e será a controle. Exibir a versão em inglês desta página.