スクリプト例 - 2022.1 日本語

Vivado Design Suite ユーザー ガイド: IP を使用した設計 (UG896)

Document ID
UG896
Release Date
2022-05-19
Version
2022.1 日本語

IP サンプル デザインのインプリメンテーション

IP サンプル デザインのインプリメンテーションを実行するプロジェクトを作成します。

# Create a project
create_project <name> <dir> -part <part>
# Create an IP customization and a DCP 
# This will also generate all the output products
create_ip ...
create_ip_run [get_ips <ip>.xci]
launch_runs <ip>_synth_1
wait_on_run <ip>_synth_1
# Open the example design for the IP
# This will use the IP DCP generated
open_example_project -force -dir <project_location> -in_process [get_ips <ip>]
launch_runs synth_1
wait_on_run synth_1
launch_runs impl_1
wait_on_run impl_1 -to write_bitstream
open_run impl_1 
# produce some reports
report_timing_summary ...
report_utilization ... 

非プロジェクト合成

非プロジェクト フローのデザインを合成およびインプリメントする場合、1 つの IP には OOC DCP が生成され、別の IP はユーザー ロジックと共に合成されます。

IP XCI ファイルを読み込む際に、OOC DCP を含むすべての出力ファイルが使用されるので、それらを生成する必要はありません。

IP の出力ファイルが生成されていない場合は、出力ファイルを生成するか、または出力ファイルを生成する synth_ip コマンドを使用して DCP を作成する必要があります。

IP に対してグローバル合成を使用するように選択した場合は (IP の合成オプションを参照)、チェックポイント サポートをオフにして出力ファイルを生成する必要があります。次の Tcl スクリプトは、このためのテンプレートとして使用できます。

#create an in memory project to provide the part to use for IP creation and for
#running synthesis
set_part <part>
# read in sources 
read_verilog top.v
# Read in an existing IP customization
# or create an IP from scratch
# create_ip ... or read_ip ip1.xci
# Generate a DCP for the IP
# will generate output products if needed
synth_ip [get_ips ip1]
# Read in an existing IP customization
# or create an IP from scratch
# create_ip ... or read_ip ip2.xci
# Set IP to use global synthesis (no DCP generated)
set_property generate_synth_checkpoint false [get_files ip2.xci]
# Need to generate output products for IP 
generate_target all [get_ips ip2]
# synthesis the complete design
synth_design -top top 
# run implementation
opt_design 
place_design 
route_design 
# write the bitstream
write_bitstream -file top 

IP サンプル デザインのシミュレーション

IP サンプル デザインのシミュレーションを実行するためのプロジェクトを作成します。

#create the project
create_project <name> <dir> -part <part> 
# create IP and a synthesis run
create_ip ...
create_ip_run [get_ips <ip_name>] 
#launch runs
launch_runs <ip>_synth_1
wait_on_run <ip>_synth_1
#open the example project
open_example_project -force -dir <project_location> -in_process [get_ips <ip>]
#launch simulation
<launch_simulation> | <target_simulator>

IP の合成およびシミュレーション

IP にサンプル デザインが含まれず、テストベンチが含まれる場合は、IP のみをシミュレーションできます。

#create the project
create_project <name> <dir> -part <part>
# create_ip ... or add_files ip.xci 
# create an IP design run 
create_ip_run [get_ips <ip_name>] 
#launch IP synthesis run 
launch_run <ip>_synth_1
wait_on_run <ip>_synth_1 
# Setting up simulation test bench
set_property top <tb> [current_fileset -simset] 
# Launch simulation
<launch_simulation> | <target_simulator>