Tcl コマンドはモードによって異なり、作成される Tcl スクリプトもモードによって異なります。非プロジェクト モードの場合、ツール オプションの設定、インプリメンテーション コマンドの実行、レポートの生成、デザイン チェックポイントの書き込みなどの Tcl コマンドをそれぞれ実行する必要があります。プロジェクト モードの場合は、合成、インプリメンテーション、およびレポートに対してラッパー コマンドが使用されます。
たとえば、プロジェクト モードの場合、プロジェクトにソースを追加するには、add_files
という Tcl コマンドを使用します。ソースは、プロジェクト ディレクトリ構造内で別のバージョンを保持するためにプロジェクトにコピーしたり、リモートから参照したりできます。非プロジェクト モードの場合、read_verilog
、read_vhdl
、read_xdc
などの read_*
Tcl コマンドを使用して、現在のディレクトリからさまざまなタイプのソースを読み出すことができます。
プロジェクト モードの場合は、launch_runs
コマンドを使用すると、設定済みのストラテジを使用してツールを起動し、標準レポートを生成できます。これにより、インプリメンテーション コマンド、標準レポート、run ストラテジの使用、run ステータスの管理が一括で実行されます。デザイン プロセスの前後にカスタムの Tcl コマンドを実行することもできます。run 結果は、自動的にプロジェクト内に保存されて管理されます。非プロジェクト モードの場合、opt_design
、place_design
、および route_design
などの各コマンドを実行する必要があります。
多くの Tcl コマンドは、レポート コマンドのようにどちらのモードでも使用できますが、プロジェクト モードまたは非プロジェクト モードのいずれかでしか使用できないものもあります。スクリプトを作成する際は、いずれかのモードでしか使用できないコマンドを混合しないように注意してください。たとえば、プロジェクト モードを使用する場合は、非プロジェクト モードでしか使用できない synth_design
のようなコマンドを使用しないようにします。プロジェクト モードで非プロジェクト モード用のコマンドを使用すると、データベースでステータス情報がアップデートされず、レポートが自動的に生成されなくなります。
次の図に、プロジェクト モードと非プロジェクト モードの Tcl コマンドの違いを示します。