インテル® Quartus® Primeタイミング・アナライザー・クックブック

ID 683081
日付 7/21/2022
Public

仮想クロックを使用した入力遅延と出力遅延

すべての入力遅延と出力遅延は、仮想クロックを参照する必要があります。 この仮想クロックを使用すると、タイミング・アナライザーでは、derive_clock_uncertainty コマンドを使用して、適切なクロック不確実性の値を導出し、適用することができます。入力と出力の遅延による参照が、仮想クロックではなく、ベースクロックまたはPLLクロックの場合、クロック内およびクロック間の転送クロックの不確実性は、derive_clock_uncertainty によって決定され、I/Oポートに正しく適用されません。また、仮想クロックを使用すると、外部のクロック不確実性を追加で適用することができます。これは、、derive_clock_uncertainty で決定されるクロック不確実性の独立性とは無関係です。

仮想クロックのプロパティーは、入力 (入力遅延) または出力 (出力遅延) ポートのいずれかに使用した元のクロックと同じものでなければいけません。

図 10. チップ間のデザインに仮想クロックを入力/出力ポートとして使用した場合

入力遅延と出力遅延による仮想クロックの参照

#create the input clock
create_clock -name clkA -period 10 [get_ports clkA]
#create the associated virtual input clock
create_clock -name clkA_virt -period 10
#create the output clock
create_clock -name clkB -period 5 [get_ports clkB]
#create the associated virtual input clock
create_clock -name clkB_virt -period 5
#determine internal clock uncertainties
derive_clock_uncertainty
#create the input delay referencing the virtual clock
#specify the maximum external clock delay from the external
#device
set CLKAs_max 0.200
#specify the minimum external clock delay from the external
#device
set CLKAs_min 0.100
#specify the maximum external clock delay to the FPGA
set CLKAd_max 0.200
#specify the minimum external clock delay to the FPGA
set CLKAd_min 0.100
#specify the maximum clock-to-out of the external device
set tCOa_max 0.525
#specify the minimum clock-to-out of the external device
set tCOa_min 0.415
#specify the maximum board delay
set BDa_max 0.180
#specify the minimum board delay
set BDa_min 0.120
#create the input maximum delay for the data input to the
#FPGA that accounts for all delays specified
set_input_delay -clock clkA_virt \
-max [expr $CLKAs_max + $tCOa_max + $BDa_max - $CLKAd_min] \
[get_ports {data_in[*]}]
#create the input minimum delay for the data input to the
#FPGA that accounts for all delays specified
set_input_delay -clock clkA_virt \
-min [expr $CLKAs_min + $tCOa_min + $BDa_min - $CLKAd_max] \
[get_ports {data_in[*]}]
#creating the output delay referencing the virtual clock
#specify the maximum external clock delay to the FPGA
set CLKBs_max 0.100
#specify the minimum external clock delay to the FPGA
set CLKBs_min 0.050
#specify the maximum external clock delay to the external device
set CLKBd_max 0.100
#specify the minimum external clock delay to the external device
set CLKBd_min 0.050
#specify the maximum setup time of the external device
set tSUb 0.500
#specify the hold time of the external device
set tHb 0.400
#specify the maximum board delay
set BDb_max 0.100
#specify the minimum board delay
set BDb_min 0.080
#create the output maximum delay for the data output from the
#FPGA that accounts for all delays specified
set_output_delay -clock clkB_virt \
-max [expr $CLKBs_max + $tSUb + $BDb_max - $CLKBd_min] \
[get_ports {data_out}]
#create the output minimum delay for the data output from the
#FPGA that accounts for all delays specified
set_output_delay -clock clkB_virt \
-min [expr $CLKBs_min - $tHb + $BDb_min - $CLKBd_max] \
[get_ports {data_out}]