このグループの最初の制約は、デザイン全体に対するシステム クロック入力への制約です。PERIOD 制約の値は、生成時に設定したオプションにより異なります。
create_clock -name clk -period 125.0 [get_ports clk]
この次に、ICAP ポートの非同期出力信号を無視するための制約が続きます。
set_false_path -from [get_pins {example_support_wrapper/example_support/example_cfg/cfg_icape3/CLK}] -to [get_pins {example_support_wrapper/example_support/sem_controller/inst/controller/controller_synchro_icap_prerror/sync_a/D}]
set_false_path -from [get_pins {example_support_wrapper/example_support/example_cfg/cfg_icape3/CLK}] -to [get_pins {example_support_wrapper/example_support/sem_controller/inst/controller/controller_synchro_icap_prdone/sync_a/D}]
set_false_path -from [get_pins {example_support_wrapper/example_support/example_cfg/cfg_icape3/CLK}] -to [get_pins {example_support_wrapper/example_support/sem_controller/inst/controller/controller_synchro_icap_avail/sync_a/D}]
このグループの 2 番目の制約は UART ヘルパー ブロックに関するもので、インターフェイスに I/O タイミング制約を適用します。I/O タイミング制約は 1 クロック周期に設定します。
set_input_delay -clock clk -max -125.0 [get_ports uart_rx]
set_input_delay -clock clk -min 250.0 [get_ports uart_rx]
set_output_delay -clock clk -125.0 [get_ports uart_tx] -max
set_output_delay -clock clk 0 [get_ports uart_tx] -min
このグループの 3 番目の制約は SPI フラッシュ マスター ヘルパー ブロックに対するものです。これらの制約は、エラー分類機能を有効にしてこのヘルパー ブロックを生成した場合のみ存在します。これらの制約は、インターフェイスに I/O タイミング制約を適用します。SPI バス タイミング バジェットの解析では実際のタイミングを使用する必要があるため、I/O タイミングは非常に重要です。ただしインプリメントした FPGA の I/O タイミングに対するハード要件はありません。これらの要件は選択したデバイスおよびスピード グレードにより異なります。
このため、I/O タイミング制約は暫定的に PERIOD 制約の 2 倍に設定します。IOB フリップフロップを使用する制約を追加すると、制約の値が示すよりも I/O タイミングが大幅に改善します。SPI バス タイミング バジェットの解析では、制約の値ではなくタイミング レポートから取得した実際のタイミングを使用します。
set_input_delay -clock clk -max -125.0 [get_ports spi_q]
set_input_delay -clock clk -min 250.0 [get_ports spi_q]
set_output_delay -clock clk -125.0 [get_ports spi_c] -max
set_output_delay -clock clk 0 [get_ports spi_c] -min
set_output_delay -clock clk -125.0 [get_ports spi_d] -max
set_output_delay -clock clk 0 [get_ports spi_d] -min
set_output_delay -clock clk -125.0 [get_ports spi_s_n] -max
set_output_delay -clock clk 0 [get_ports spi_s_n] -min
set_property IOB TRUE [get_cells example_support_wrapper/example_support/example_spi/example_spi_byte/spi_c_ofd]
set_property IOB TRUE [get_cells example_support_wrapper/example_support/example_spi/example_spi_byte/spi_d_ofd]
set_property IOB TRUE [get_cells example_support_wrapper/example_support/example_spi/example_spi_byte/spi_q_ifd]
set_property IOB TRUE [get_cells example_support_wrapper/example_support/example_spi/spi_s_ofd]