上記の問題を、
GPIO_BUTTON [1]
入力信号そのものにデバッグ プローブを接続して、トラブルシュートすることはできません。GPIO_BUTTON [1]
入力信号は、FPGA ファブリックからは直接アクセスでき PAD 信号なのです。代わりに、GPIO_BUTTON
[1]
入力信号の入力バッファーの出力に接続されている GPIO_BUTTON_IBUF
信号の Low から High への遷移 (立ち上がりエッジ) でトリガーする必要があります。前に説明したように、グリッチは、GPIO_BUTTONS_IBUF_1
信号に Low から High への遷移が複数あるときに現れますが、これは断続的に発生します。グリッチの検出にはボタンを数回押す必要があるため、Vivado のロジック解析ツールを繰り返しトリガー実行モードに設定します。このモードに設定しておくと、ボタンを繰り返し押す操作と、波形ビューアーでイベントを確認する作業が簡単になります。
- hw_ila_1 の [Settings] タブで、次のように設定します。
- [Trigger mode]: BASIC_ONLY
- [Capture mode]: BASIC
- [Window data depth]: 1024
- [Trigger position in window]: 512
- [Trigger Setup] ウィンドウで [+] 記号を押して、GPIO_BUTTONS_IBUF_1 プローブを追加します。次の図のように、[Value] で [RX] を選択して、値を変更します。
注意:ほかの演習では、GPIO_BUTTONS_IBUF が違ったように表示されていたり、button_in4_in のように別の名前が付いている可能性があります。2 つの個々のビットとして表示される場合もありますし、1 つのバスに 2 ビットが一緒になっている場合もあります。このバスのビット 1 を使用して、トリガー コンディションを設定するようにしてください。2 ビット バスの場合は、Compare Value ダイアログ ボックスの Value フィールドを [RX] に設定します。
- 次の図のように ILA デバッグ コアに Enable Auto Re-trigger を選択します。
注意:別の演習では、ILA のプロパティ ウィンドウが少し異なっている可能性があります。Auto Retrigger モードに設定した後、[Run Trigger] または [Run Trigger Immediate] コマンドを実行すると、Auto Retrigger モードをディスエーブルにするまで、ILA コアで次の操作が繰り返し実行されます。
- トリガーの準備。
- トリガーの待機。
- 波形のアップロードおよび表示。
- KC705 ボード上で、
GPIO_BUTTONS_IBUF_1
信号に複数の遷移が見られるまで、[Sine Wave Sequencer] ボタンを押します (10 回以上押す必要がある場合があります)。これは、入力で起きるグリッチの可視化です。グリッチの例は次の 2 つの図に示されています。注意:グリッチを表示するには、前の 2 つの手順を何度か繰り返す必要がある場合があります。グリッチを表示できたら、信号グリッチが次の図とまったく同じ場所にないことを確認できます。