AR# 46915

Zynq-7000 デバッグ - ZC702 ボードでの EMIO を介した TRACE ポートの設定

説明

このサンプル デザインでは、 XILINX HW_FMC-105-DEBUG ボードへの接続に ZC702 ボードの FMC1 コネクタが使用されます。 

TRACE ポートは、EMIO を介して FMC-105 上の Mictor コネクタに配線されます。

インプリメンテーションの詳細

デザイン タイプ: PS および FPGA
ソフトウェア タイプ: スタンドアロン
PS 機能: TRACE
PL コア: ---
ボード/ツール: ZC702
ソフトウェア ツール/バージョン: EDK 14.7

その他の詳細:
シングル コア CPU @ 720MHz、FCLK (EMIOTRACECLK ) @ 200MHz、TRACECLK_pin @ 100MHz

提供されているファイル
アーカイブされた XPS プロジェクト
ps7_init.tcl

注記: Vivado IP インテグレーターを使用して作成したデザインも添付されています。

このアンサーでは次の作業を行います。

  • ZC702 をターゲットとする新しい Vivado プロジェクトを作成します。
  • .tcl を実行してブロック デザインを作成します。
  • 制約ファイルを追加します。
  • 出力を生成します。
  • HDL ラッパー (添付のラッパーは (Xilinx Answer 60066) の回避策を含めたもの) を追加し、ビットストリームを生成します。

ソリューション

デザインでは、FCLK_CLK0 が EMIO ポートの EMIOTRACECLK に供給され、FCLK_CLK0 が 2 で分周されたクロックが外部ポート TRACECLK_pin に供給されます。  

これは、ARM で 2 つのクロック TRACECLKIN および TRACECLK (TRACECLK = TRACECLKIN/2) が個別に定義されているからです。 

TRACECLKIN は CoreSight コンポーネントへの入力クロック、TRACECLK は Lauterbach デバッガーに供給される出力クロックです。 

EMIO では、EMIOTRACECLK ポートは実際には TRACECLKIN です。PL でこのクロックの 2 分周バージョンを生成して、TRACECLK_pin に供給する必要があります。

DBG_CLK_CTRL レジスタの trace のソース クロックとして EMIO TRACECLK が必ず選択されるようにしてください。0xF8000164 のビット 6 は 1 に設定する必要があります。

詳細手順

  1. プラットフォーム ケーブル USB を J2 に接続します。
  2. SW10 を 10 に設定します。
  3. iMPACT を使用し、添付デザインで生成された system.bit を使用して PL をプログラムします。
  4. XMD を実行します。
  5. arm hw を接続します。
  6. ps7_init.tcl を実行します。
  7. ps7_init を呼び出します。
 
Vivado プロジェクトを設定する手順:


  1. ZC702 ボードをターゲットにしている空の Vivado プロジェクトを作成します。
  2. Vivado Tcl コンソールで「cd {<full directory of ipi_design_20141.tcl >}」と入力します。
  3. Vivado Tcl コンソールで「source ipi_design_20141.tcl」と入力します。
  4. ブロック デザインを作成したら、その出力ファイルを生成します。
  5. 出力ファイルを生成したら、添付されている zynq_design_wrapper.v を追加します (これは (Xilinx Answer 60066) の回避策です)。
  6. 制約ファイル、pjtag_constr.xdc および trace_constr.xdc を Vivado プロジェクトに追加します。
  7. ビットストリームを生成します。 
  8. ビットストリームを生成したら、インプリメントしたデザインを開きます。
  9. [File] メニューで、[Export Hardware for SDK] をクリックして、すべてのオプションをチェックします。
  10. SDK を起動したら、fsbl および bsp を作成します。
  11. ps7_init.c in fsbl を開き、「EMIT_MASKWRITE(0XF8803004, 0xFFFFFFFFU ,0x80000000U),」の各行にコメントを入れます。
  12. ps7_init.c を保存し、fsbl をもう 1 度コンパイルします。
  13. hello world アプリケーションを作成します。
  14. fsbl の生成された ELF ファイルを使って BOOT.bin を生成し、ビットストリームを使用して hello world を実行します。

注記 1 :
ps7_init 実行前に PL がプログラムされている場合は、手順 11 および 12 は不要です。

これは、(Xilinx Answer 60755) で説明されている fsbl TPIU の問題が原因です。

注記 2
: デザインにはいくつか問題がありましたが、それぞれ回避策があります ((Xilinx Answer 60901)(Xilinx Answer 60755)(Xilinx Answer 60066))。


注記 3 : Zynq-7 Processing Wizard 5.5 (2014.4) では TRACE_CLK_OUT 信号が TPUI インターフェイスからの出力になります。

この TPUI の TRACE_CLK_OUT 出力信号はクロック出力のユーザー選択可能なソースにできます。  

この TRACE_CLOCK_OUT クロックは TRACE_X ポート インターフェイスに使用できます。

結果

これで、TRACE ポートは機能します。

添付ファイル

関連添付ファイル

タイトル サイズ ファイルタイプ
zc702_etm_147.zip 2 MB ZIP
zc702_etm_2014_1.zip 54 KB ZIP

アンサー レコード リファレンス

マスター アンサー レコード

Answer Number アンサータイトル 問題の発生したバージョン 修正バージョン
50863 Zynq-7000 SoC - デバッグ N/A N/A

関連アンサー レコード

Answer Number アンサータイトル 問題の発生したバージョン 修正バージョン
60901 2014.1 IPI、Zynq - EMIO トレース出力に別のデータ幅を選択する方法 N/A N/A
60755 Zynq-7000 SoC – 2014.1 でEMIO TPIU をイネーブルにするとブートされない N/A N/A
AR# 46915
日付 11/13/2017
ステータス アクティブ
種類 一般
デバイス
ツール
Boards & Kits