Posts Issued on June 18, 2021

デザインのボード間移植

posted by sakurai on June 18, 2021 #424

ArtyボードからUltra96ボードへ

RTLにはボード依存性はありませんが、トップモジュールやIPにはボード依存性があるため、その移植が必要となります。まずトップ配線(ブロック間配線)は、Export Block Designにより、配線情報がTCLにより得られるので、それを入力したいところです。しかし、ボード依存性があるようで、新ボードを設定した上で旧ボードのTCLを読み込むとエラーになってしまいます。そのため、

  • 旧ボードの環境でデザインを構築しておき、新規ボードに変換する

方法により、デザインのボード間移植を実施しました。

新規プロジェクトの生成

最初に旧ボードでプロジェクトを生成します。この段階で必要なものはVerilogソースが全て含まれているsrcディレクトリ、ブロックデザインのTCL、新ボードのXDCのひな形です。

  1. Vivadoの下にプロジェクトフォルダを作成します。その下に、Verilogソースが全て含まれているsrcディレクトリ、ブロックデザインのtcl及び、xdcを配置します。
  2. Vivadoを起動し、Create Project⇒Next⇒RTLプロジェクトを選択し、Verilogソースフォルダを選択します。
  3. 次にconstraintファイルとしてxdcを設定します。
  4. Boardsとして旧ボードを選択します。
  5. FinishによりProjectが生成されます。
  6. IP Integrator⇒Create Block Designを実行します。
  7. BLOCK DESIGN⇒Sources⇒Design sourcesのトップデザインであるdesin_1に対してラッパを生成します。
  8. design_1を選択して右クリックでCreate HDL wrapperを実行するとダイアログが現れます。
  9. Let Vivado ...を選択してOKをクリックします。
  10. オレンジの階層だったものが、design_1_wapperというグリーンの階層が生成されます。
  11. それを右クリックし、Set as topにより、トップ階層とします。
  12. 最下段のTCL Console内で、source C:/Users/<ユーザ名>/Vivado/<プロジェクト名>/design_1.tclを実行します。
  13. ブロックが配置され、ブロック間に配線されます。Diagramを右クリックしてExpand Allし、Regenerate Layoutをクリックします。
  14. タイトルコメントのText sizeを64、Box fill colorを204,255,255とします。

新ボードへ移行

  1. ボードが旧ボードになっているので、PROJECT MANAGER⇒Settingsでダイアログを立ち上げ、Project Settings⇒General⇒Project device:によりボードを新ボードに変更します。
  2. BLOCK DESIGNに、IPのアップグレードを促す指示が出るため、個数をクリックします。Show IP Statusをクリックします。
  3. 最下段のUpgrade SelectedをクリックしIPのアップグレードを実施します。
  4. IPによっては結線が外れていることがあるため、良く見直して、外れていれば接続しなおします。

注意点

coeファイルは相対ディレクトリで記録されますが、tclスクリプトからうまく参照できないようなので、全て絶対ディレクトリ(例:e:\file.coe)として参照できるようにしました。


左矢前のブログ 次のブログ右矢