ID de l'article: 000074881 Type de contenu: Dépannage Dernière révision: 14/02/2020

Quelles contraintes de synchronisation doivent être utilisées entre les fpga_dclk et les fpga_data dans le cœur du chargeur flash parallèle Intel® FPGA IP cœur ?

Environnement

    Intel® Quartus® Prime Pro Edition
BUILT IN - ARTICLE INTRO SECOND COMPONENT
Descriptif

Lors de l’utilisation du Intel® FPGA IP de chargement flash parallèle, les contraintes de synchronisation pour les fpga_data et les fpga_dclk sont décrites dans le Guide de l’utilisateur de Limiter la synchronisation PFL dans le chargeur flash parallèle Intel® FPGA IP guide de l’utilisateurdu cœur .  Cependant, les contraintes de la version 2019.02.19 du document et des versions antérieures ne sont pas correctes.

Résolution

Pour limiter correctement la synchronisation des fpga_data et des fpga_dclk, utilisez l’une des contraintes de synchronisation suivantes en fonction du rapport entre l’horloge d’entrée et la sortie DCLK.

[ Quand le rapport entre l’horloge d’entrée et la sortie DCLK = 1 ]
# Créer de l’horloge
create_clock -nom {pfl_clk} -période de -forme d’ondes { 0,000 /2 } [get_ports {pfl_clk}]
# Créer l’horloge générée
create_generated_clock -nom {fpga_dclk} -source [get_ports {pfl_clk}] -master_clock {pfl_clk} -invert [get_ports {fpga_dclk}]
# Définir le délai de sortie
set_output_delay -add_delay -max-clock [get_clocks {fpga_dclk}] [get_ports {fpga_data*}]
set_output_delay -add_delay -min -clock [get_clocks {fpga_dclk}] < Retenir la contrainte de temps> [get_ports {fpga_data*}]

[ Quand le rapport entre l’horloge d’entrée et la sortie DCLK > 1 ]
# Créer de l’horloge
create_clock -nom {pfl_clk} -période de -forme d’ondes { 0,000 /2 } [get_ports {pfl_clk}]
# Créer l’horloge générée
create_generated_clock -nom {} -source [get_ports {pfl_clk}] -divide_by -master_clock {pfl_clk} [get_registers {} ]
create_generated_clock -nom {} -source [get_registers {}] -master_clock {} [get_ports {fpga_dclk}]
# Définir le délai de sortie
set_output_delay -add_delay -max-clock [get_clocks {}] -reference_pin [get_ports {fpga_dclk}] [get_ports {fpga_data*}]
set_output_delay -add_delay -min -clock [get_clocks {}] -reference_pin [get_ports {fpga_dclk}] [get_ports {fpga_data*}]
# Définir le chemin d’accès multicycle
set_multicycle_path -setup -start -from [get_clocks {pfl_clk}] -à [get_clocks {}] < Ratio < entre l’horloge d’entrée et la sortie DCLK>/2
set_multicycle_path -hold -start -de [get_clocks {pfl_clk}] à [get_clocks {}] -1

 

• Dans ces exemples, les noms de ports PFL Intel FPGA IP cœur sont utilisés.
• Le registre DCLK est un registre qui divise les pfl_clk. Le nom du registre est généralement « fpga_dclk_reg ». Vous pouvez trouver le registre en traçant la destination source à partir de fpga_dclk port à l’aide de l’outil Technology Map Viewer.
• Intel recommande d’utiliser la GUI Timing Analyzer pour valider les constratrains.

 

[Exemple]

• État
o période pfl_clk = 20 ns (50 MHz)
rapport entre l’horloge d’entrée et la sortie DCLK = 2

• Contraintes de synchronisation

# Créer de l’horloge
create_clock -nom {pfl_clk} -période 20.000 -waveform { 0.000 10.000 } [get_ports {pfl_clk}]
# Créer l’horloge générée
create_generated_clock -nom {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 -nom {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}]
# Définir le délai de sortie
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*}]
# Définir le chemin d’accès multicycle
set_multicycle_path -setup-start -from [get_clocks {pfl_clk}] -à [get_clocks {fpga_dclk_pin}] 1
set_multicycle_path -hold-start -de [get_clocks {pfl_clk}] à [get_clocks {fpga_dclk_pin}] 1

Produits associés

Cet article concerne 4 produits

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

1

Le contenu de cette page est une combinaison de traduction humaine et informatique du contenu original en anglais. Ce contenu vous est fourni pour votre commodité et à titre informatif seulement et ne saurait être totalement exact ou complet. En cas de contradiction entre la version anglaise de cette page et la traduction, c'est la version anglaise qui prévaut. Afficher la version anglaise de cette page.