手順 4: ECO 変更を加える - 2022.1 日本語

Vivado Design Suite チュートリアル: インプリメンテーション (UG986)

Document ID
UG986
Release Date
2022-05-24
Version
2022.1 日本語
  1. Flow Navigator で Project Manager をクリックします。
  2. [Design Runs] ウィンドウで impl_1 を右クリックし、Open Run Directory をクリックします。
  3. run ディレクトリがファイル ブラウザーで開きます。run ディレクトリには、ECO フローに使用する配線済みチェックポイント (top_routed.dcp) が含まれています。
    ヒント: プロジェクトベースのデザインでは、Vivado Design Suite により、中間インプリメンテーション結果がデザイン チェックポイントとしてインプリメンテーション run ディレクトリに保存されます。インプリメンテーションを再実行すると、前の結果は削除されます。変更したチェックポイントを保持するには、配線チェックポイントを新しいディレクトリに保存します。


  4. C:/Vivado_Tutorial/project_ECO_lab プロジェクト ディレクトリに ECO というディレクトリを作成し、インプリメンテーション run ディレクトリから top_routed.dcp ファイルを作成したディレクトリにコピーします。
  5. メイン メニューから File > Checkpoint > Open をクリックします。

    [Open Checkpoint] ダイアログ ボックスが開きます。

  6. C:/Vivado_Tutorial/project_ECO_lab/ECO に移動し、top_routed.dcp チェックポイントを選択します。

    現在のプロジェクトを閉じるかどうか尋ねるメッセージが表示されます。

  7. Yes をクリックします。
  8. メイン メニューから Layout > ECO をクリックします。

    [ECO] レイアウトが選択されます。左側に ECO Navigator が表示されます。ここから、ネットリスト コマンド、run ステップ、レポートおよび解析ツール、変更保存およびプログラミング ファイル生成コマンドにアクセスできます。

    レイアウトの中央に表示されている [Scratch Pad] ウィンドウには、ネットリストの変更記録と、セル、ピン、ポート、およびネットの配置配線ステータスが表示されます。

    注記: ECO は、デザイン チェックポイントにのみ使用できます。[ECO] レイアウトは、Vivado IDE でデザイン チェックポイントを開いた後にのみ使用可能になります。


    ECO フローの機能を学ぶため、乗算器の機能を count[3:0] の 2 乗から 2 倍に変更します。

  9. [Tcl Console] ウィンドウに次のコマンドを入力します。
    mark_objects -color blue [get_cells my_mult_0]
    ヒント: 異なる色でオブジェクトをマークまたはハイライトして、ECO 変更に含まれるオブジェクトを見つけやすくできます。


  10. [Schematic] ウィンドウで乗算器を拡大表示し、in2[3:0] ピンを選択します。

    または、[Tcl Console] ウィンドウに次のコマンドを入力します。

    select_objects [get_pins my_mult_0/in2[*]]
  11. Vivado ECO Navigator の [Edit] の下にある Disconnect Net をクリックします。回路図でピンからネットへの接続が解除されます。

    [Tcl Console] ウィンドウに、ECO Navigator で実行した disconnect_net コマンドが表示されます。これは、ECO 変更を後で再実行する場合に便利です。ECO コマンドを含む Tcl スクリプトを作成して、元のチェックポイントに適用できます。



    [Scratch Pad] ウィンドウに、接続を解除した 4 つのネット divClk_reg[28:25] と乗算器入力ピン my_mult_0/in2[3:0] が表示されます。[Scratch Pad] ウィンドウで次の点に注目してください。

    • [Scratch Pad] ウィンドウで、divClk_reg[28:25] ネットの [Con] (接続) 列にチェック マークが表示されており、これらがほかの乗算器入力に接続されていることが示されています。
    • my_mult_0/in2[3:0] ピンには接続されているネットがないので、チェック マークは表示されていません。
    • [PnR] (配置配線) 列にはどれにもチェック マークは表示されておらず、変更がデバイスにインプリメントされていないことを示しています。

  12. [Scratch Pad] ウィンドウで my_mult_0/in2[3]my_mult_0/in2[2]my_mult_0/in2[0] ピンを選択します。
  13. Vivado ECO Navigator の [Edit] の下にある Connect Net をクリックします。

    [Connect Net] ダイアログ ボックスが開きます。



  14. [Connect Net] ダイアログ ボックスで、[GROUND] セクションから <const0> を選択します。

  15. OK をクリックします。

    [Scratch Pad] ウィンドウに <const0> が追加されます。

  16. <const0> 信号を非展開にします。

    [Scratch Pad] ウィンドウで、接続した 3 つのピンの [Con] 列にチェック マークが表示されます。



  17. [Scratch Pad] ウィンドウで my_mult_0/in2[1] ピンを選択します。
  18. Connect Net をクリックします。

    [Connect Net] ダイアログ ボックスが開きます。

  19. [Connect Net] ダイアログ ボックスで、[POWER] セクションから <const1> を選択します。

  20. OK をクリックします。

    [Scratch Pad] ウィンドウに <const1> が追加されます。

  21. <const1> 信号を非展開にします。

    [Scratch Pad] ウィンドウで、接続したピンの [Con] 列にチェック マークが表示されます。



  22. [Scratch Pad] ウィンドウで my_mult_0/in2 ピンを選択します。

    開いている [Schematic] ウィンドウで選択したピンがハイライトされ、アップデートされた接続が表示されます。

    注記: [Schematic] ウィンドウで [Autofit Selection] がイネーブルになっていることを確認し、パス全体が表示されるようにします。


    LED の count 信号を見ると、4 ビットのみを使用しています。上位 4 ビットは 0 でパディングされます。

    ここで、ECO フローを使用して、LED 7 のカウンター ビット 24 を観察します。まず、count_out_reg[3] を駆動するロジックを解析します。

  23. [Tcl Console] ウィンドウに次のコマンドを入力します。
    select_objects [get_cells count_out[3]_i_1]

    これにより、LED 3 を駆動する count_out_reg[3] レジスタを駆動する LUT3 を特定できます。入力は次のとおりです。

    • ピン I0 は mul_out_pre_reg[3]
    • ピン I1 は count_out_pre_reg[3]
    • ピン I2 は tog_state_reg
  24. Cell Properties タブをクリックしてセル プロパティを表示し、Truth Table タブをクリックします。
  25. Edit LUT Equation をクリックして LUT3 の論理式を表示します。LUT の論理式は次のとおりです。

    O= I1 & !I2 + I0 & I2

  26. Cancel をクリックしてウィンドウを閉じます。

  27. [Tcl Console] ウィンドウに次のコマンドを入力します。
    select_objects [get_cells count_out[7]_i_1]


    これにより、KCU105 ボード上の LED 7 を駆動する count_out_reg[7] レジスタを駆動する LUT2 が選択されます。入力は、I0 ピンの tog_state_reg と I1 ピンの mul_out_pre_reg[7] のみです。LUT2 を 3 入力 LUT に置き換え、カウンター レジスタ divClk_reg[24] の出力を追加の入力ピンに接続する必要があります。

  28. Vivado ECO Navigator で [Edit] の下の Create Cell をクリックします。

    [Create Cell] ダイアログ ボックスが開きます。

    1. [Cell name] フィールドに「ECO_LUT3」と入力します。
    2. [Search] フィールドに「LUT3」と入力します。
    3. [Cell type] として LUT3 を選択し、セル count_out[3]_i_1 の論理式 O=I1 & !I2 + I0 & I2 を [LUT Equation] にコピーします。
    4. OK をクリックします。

      [Scratch Pad] ウィンドウおよび [Schematic] ウィンドウに ECO_LUT3 が追加されます。

    5. [Scratch Pad] ウィンドウで新しく追加した ECO_LUT3 セルを右クリックし、Mark をクリックして赤を選択します。
      注記: ECO_LUT3 セルをマークすると、見つけやすくなります。


      LUT の論理式をセル count_out[3]_i_1 からコピーしたので、ネットも同じ順で次のように接続する必要があります。

      • ネット mul_out_pre[7] をピン I0 に接続
      • ネット divClk_reg_n_0_[24] をピン I1 に接続
      • ネット tog_stateECO_LUT3 のピン I2 に接続
  29. [Schematic] ウィンドウで tog_state_reg レジスタで駆動される tog_state ネットを選択します。または、[Tcl Console] ウィンドウで次のコマンドを実行してネットを選択することもできます。
    select_objects [get_nets tog_state]
  30. 次の操作を実行して新しく追加した ECO_LUT3 セルの I2 ピンを接続します。
    1. [Scratch Pad] ウィンドウで Ctrl キーを押しながら I2 ピンを選択します。これにより、既に選択されている tog_state ネットに加えて I2 ピンが選択されます。
    2. Connect Net をクリックします。


  31. [Schematic] ウィンドウで mul_out_pre[7] ネットを選択します。

    または、[Tcl Console] ウィンドウで次のコマンドを実行してネットを選択することもできます。

    select_objects [get_nets mul_out_pre[7]]
  32. 次の操作を実行して新しく追加した ECO_LUT3 セルの I0 ピンを接続します。
    1. [Scratch Pad] ウィンドウで CTRL キーを押しながら I0 ピンを選択します。これにより、既に選択されている mul_out_pre[7] ネットに加えて I0 ピンが選択されます。
    2. Connect Net をクリックします。
      注記: オブジェクトの中に DONT_TOUCH とマークされるものがあることを示すメッセージが表示されたら、Unset Property and Continue をクリックします。
  33. [Schematic] ウィンドウで divClk_reg_n_0_[24] ネットを選択します。

    または、[Tcl Console] ウィンドウで次のコマンドを実行してネットを選択することもできます。

    select_objects [get_nets divClk_reg_n_0_[24]]
  34. 次の操作を実行して新しく追加した ECO_LUT3 セルの I1 ピンを接続します。
    1. [Scratch Pad] ウィンドウで CTRL キーを押しながら I1 ピンを選択します。これにより、既に選択されている divClk_reg_n_0_[24] ネットに加えて I1 ピンが選択されます。
    2. Connect Net をクリックします。

      次に、新しく作成した LUT3 にインプリメントされるアップデートされたロジック ファンクションを count_out_reg[7]D 入力に接続する必要があります。まず、D 入力に接続されている LUT2 を削除します。

  35. [Schematic] ウィンドウ LUT2 count_out[7]_i_1 を選択します。
    または、[Tcl Console] ウィンドウで次のコマンドを実行して選択することもできます。
    select_objects [get_cell count_out[7]_i_1]
  36. メイン ツールバーの [Delete] ボタン をクリックして選択したセルを削除します。
  37. [Schematic] ウィンドウで count_out_reg[7] レジスタの D 入力に接続されているネットを選択します。
    または、[Tcl Console] ウィンドウで次のコマンドを実行してネットを選択することもできます。
    select_objects [get_nets count_out[7]_i_1_n_0]
  38. 次の操作を実行して新しく追加した ECO_LUT3 セルの O ピンを接続します。
    1. [Scratch Pad] ウィンドウで CTRL キーを押しながら O ピンを選択します。
    2. Connect Net をクリックします。


    ECO 変更が終了しました。