Wenn Sie den Intel® FPGA IP für den Parallel-Flash-Loader verwenden, werden die Timing-Beschränkungen für fpga_data und fpga_dclk im Benutzerhandbuch "Beschränkungen von PFL-Timing" im Parallel-Flash-Loader Intel® FPGA IP Core beschrieben. Die Einschränkungen in Dokumentversion 2019.02.19 und früher sind jedoch nicht korrekt.
Um das Timing von fpga_data und fpga_dclk korrekt einzuschränken, verwenden Sie je nach Verhältnis zwischen Eingangstakt und DCLK-Ausgabe eine der folgenden Timing-Einschränkungen.
[ Wenn das Verhältnis zwischen Eingangs-Takt und DCLK-Ausgabe = 1 ]
Anzahl create clock (Uhr erstellen)
create_clock -name {pfl_clk} -period -waveform { 0.000 /2 } [get_ports {pfl_clk}]
Anzahl generierte Taktfrequenz erstellen
create_generated_clock -name {fpga_dclk} -source [get_ports {pfl_clk}] -master_clock {pfl_clk} -invert [get_ports {fpga_dclk}]
Anzahl festgelegte Ausgabeverzögerung
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}] [get_ports {fpga_data*}]
[ Wenn das Verhältnis zwischen Eingangstakt und DCLK-Ausgabe > 1 ]
Anzahl create clock (Uhr erstellen)
create_clock -name {pfl_clk} -period -waveform { 0.000 /2 } [get_ports {pfl_clk}]
Anzahl generierte Taktfrequenz erstellen
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}]
Anzahl festgelegte Ausgabeverzögerung
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*}]
Anzahl Multizyklenpfad festlegen
set_multicycle_path -setup -start -from [get_clocks {pfl_clk}] -to [get_clocks {}] < Ratio zwischen Eingangs-Takt und DCLK-Ausgabe>/2
set_multicycle_path -hold -start -from [get_clocks {pfl_clk}] -to [get_clocks {}] -1
• In diesen Beispielen werden PFL-Intel FPGA IP Port-Namen des Kerns verwendet.
• Das DCLK-Register ist ein Register zur Aufteilung pfl_clk. Der Registername lautet in der Regel "fpga_dclk_reg". Sie können das Register finden, indem Sie das Quellziel vom fpga_dclk Port aus mit dem Technology Map Viewer-Tool verfolgen.
• Intel empfiehlt, zur Validierung der Constratrains die Timing Analyzer GUI zu verwenden.
[Beispiel]
• Zustand
o pfl_clk Zeitraum = 20 nm (50 MHz)
o Verhältnis zwischen Eingangstakt und DCLK-Ausgabe = 2
• Zeiteinschränkungen
Anzahl create clock (Uhr erstellen)
create_clock -name {pfl_clk} -period 20.000 -waveform { 0.000 10.000 } [get_ports {pfl_clk}]
Anzahl generierte Taktfrequenz erstellen
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}]
Anzahl festgelegte Ausgabeverzögerung
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*}]
Anzahl Multizyklenpfad festlegen
set_multicycle_path -setup -start -from [get_clocks {pfl_clk}] -to [get_clocks {fpga_dclk_pin}] 1
set_multicycle_path -hold -start -from [get_clocks {pfl_clk}] -to [get_clocks {fpga_dclk_pin}] 1