ChipScope Pro ILA
コ ア
と
Project Navigator
を
使用 し た
FPGA
ア プ リ
ケーシ ョ ンのデバ ッ グ
Xilinx is disclosing this user guide, manual, release note, and/or specification (the “Documentation”) to you solely for use in the development of designs to operate with Xilinx® hardware devices. You may not reproduce, distribute, republish, download, display, post, or transmit the Documentation in any form or by any means including, but not limited to, electronic, mechanical, photocopying, recording, or otherwise, without the prior written consent of Xilinx. Xilinx expressly disclaims any liability arising out of your use of the Documentation. Xilinx reserves the right, at its sole discretion, to change the Documentation without notice at any time. Xilinx assumes no obligation to correct any errors contained in the Documentation, or to advise you of any corrections or updates. Xilinx expressly disclaims any liability in connection with technical support or assistance that may be provided to you in connection with the Information.
THE DOCUMENTATION IS DISCLOSED TO YOU “AS-IS” WITH NO WARRANTY OF ANY KIND. XILINX MAKES NO OTHER WARRANTIES, WHETHER EXPRESS, IMPLIED, OR STATUTORY, REGARDING THE DOCUMENTATION, INCLUDING ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NONINFRINGEMENT OF THIRD-PARTY RIGHTS. IN NO EVENT WILL XILINX BE LIABLE FOR ANY CONSEQUENTIAL, INDIRECT, EXEMPLARY, SPECIAL, OR INCIDENTAL DAMAGES, INCLUDING ANY LOSS OF DATA OR LOST PROFITS, ARISING FROM YOUR USE OF THE DOCUMENTATION.
IN NO EVENT WILL XILINX BE LIABLE FOR ANY CONSEQUENTIAL, INDIRECT, EXEMPLARY, SPECIAL, OR INCIDENTAL DAMAGES, INCLUDING ANY LOST DATA AND LOST PROFITS, ARISING FROM OR RELATING TO YOUR USE OF THE DESIGN, EVEN IF YOU HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. THE TOTAL CUMULATIVE LIABILITY OF XILINX IN CONNECTION WITH YOUR USE OF THE DESIGN, WHETHER IN CONTRACT OR TORT OR OTHERWISE, WILL IN NO EVENT EXCEED THE AMOUNT OF FEES PAID BY YOU TO XILINX HEREUNDER FOR USE OF THE DESIGN. YOU ACKNOWLEDGE THAT THE FEES, IF ANY, REFLECT THE ALLOCATION OF RISK SET FORTH IN THIS AGREEMENT AND THAT XILINX WOULD NOT MAKE AVAILABLE THE DESIGN TO YOU WITHOUT THESE LIMITATIONS OF LIABILITY.
The Design is not designed or intended for use in the development of on-line control equipment in hazardous environments requiring fail-safe controls, such as in the operation of nuclear facilities, aircraft navigation or communications systems, air traffic control, life support, or weapons systems (“High-Risk Applications” Xilinx specifically disclaims any express or implied warranties of fitness for such High-Risk Applications. You represent that use of the Design in such High-Risk Applications is fully at your risk.
© 2010 Xilinx, Inc. All rights reserved. XILINX, the Xilinx logo, and other designated brands included herein are trademarks of Xilinx, Inc. All other trademarks are the property of their respective owners.
Demo Design License © 2010 Xilinx, Inc.
This Design is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Library General Public License along with this design file; if not, see:
http://www.gnu.org/licenses/
本資料は英語版 (v 12.3) を翻訳 し た も ので、 内容に相違が生 じ る 場合には原文を優先 し ます。 資料に よ っ ては英語版の更新に対応 し ていない も のがあ り ます。
第
1
章
:
は じ めに
目標 . . . 5 チ ュ ー ト リ アルに必要な要件 . . . 6 デザ イ ンの説明 . . . 7 プ ッ シ ュ ボ タ ン ス イ ッ チ . . . .7 デバ ウ ン ス回路. . . .8 制御ス テー ト マシ ン . . . .8 LED デ ィ ス プ レ イ . . . .8 チ ュ ー ト リ アルに含まれ る フ ァ イ ル. . . 9 手順 . . . 9第
2
章
: Project Navigator
でのプ ロ ジ ェ ク ト の作成 と イ ン プ リ メ ン ト
RTL デザ イ ンの作成お よ び イ ンプ リ メ ン ト. . . 11 質問 . . . 15第
3
章
:
デザイ ンへの
ChipScope ILA
コ アの追加
ChipScope ILA コ アの追加. . . 17 質問 . . . 22第
4
章
: ChipScope Pro Analyzer
を使用 し たデザイ ンのデバ ッ グ
デザ イ ンのデバ ッ グ . . . 23 質問 . . . 32第
5
章
:
チ ュ ー ト リ アルのま と め
ま と め . . . 33 質問の解答. . . 33目次
第
1
章
は じ めに
こ のチ ュ ー ト リ アルでは、Integrated Logic Analyzer (ILA) コ ア を Project Navigator デザ イ ン環境 内に挿入 し て FPGA デザ イ ン をデバ ッ グす る 方法について説明 し ます。ChipScope™ Pro Analyzer
の機能を利用 し 、 デザ イ ンの問題をデバ ッ グ し 、 潜在的な原因を見つけ る こ と がで き る ので、 素早 く 問題を識別す る こ と がで き ます。
ChipScope お よ び Xilinx® ISE® Project Navigator 間の統合フ ロ ーについては、RTL デザ イ ン例を
使用 し て説明 し ます。 こ のチ ュ ー ト リ アルを実行す る には、ISE ツールフ ロ ーの基本的な知識が必 要 と な り ます。
目標
こ のチ ュ ー ト リ アルを終了す る と 、 次がで き る よ う にな り ます。
• Project Navigator と ILA コ ア を使用 し た ChipScope、 お よ び ChipScope Analyzer を使用 し て
デザ イ ン をデバ ッ グ し ます。
• ISE プ ロ ジ ェ ク ト を作成 し 、ILA コ ア を使用 し てデザ イ ン をプ ロ ーブ し 、Project Navigator で デザ イ ン を イ ンプ リ メ ン ト す る 方法について理解 し ます。
• ChipScope Analyzer を使用 し てデザ イ ン をデバ ッ グ し 、Project Navigator デザ イ ン環境 と
第 1 章 : は じ めに
チ ュ ー ト リ アルに必要な要件
こ のチ ュ ー ト リ アルを実行す る には、 次の ソ フ ト ウ ェ アお よ びハー ド ウ ェ アが必要です。
• ザ イ リ ン ク ス ISE Design Suite 12.3 (Logic、DSP、Embedded、 ま たは System Edition)
• SP601 プ ラ ッ ト フ ォーム
• SP601 プ ラ ッ ト フ ォームに含まれ る JTAG ケーブル
X-Ref Target - Figure 1-1
デザイ ンの説明
デザイ ンの説明
RTL デザ イ ン例の最上位 レ ベルのブ ロ ッ ク 図を次に示 し ま す。 デザ イ ン には、 シ ン プルな制御 ス テー ト マシ ン、 複数のサ イ ン波ジ ェ ネ レー タ ー、 共通のプ ッ シ ュ ボ タ ン (GPIO_BUTTON)、DIP
ス イ ッ チ (GPIO_SWITCH)、LED デ ィ ス プ レ イ (GPIO_LED) が含まれます。
プ ッ シ ュ
ボ タ ン
ス イ ッ チ
プ ッ シ ュ ボ タ ン ス イ ッ チは、 デバ ウ ン ス回路や制御ス テー ト マシ ン回路への入力 と し て使用 さ れ ます。 ス イ ッ チを押す と 、High か ら Low への遷移パルス が生成 さ れます。 生成 さ れた出力パルス
は、 それぞれス テー ト マシ ンへの入力 と し て使用 さ れます。
X-Ref Target - Figure 1-2
図 1-2 : DIP ス イ ッ チ - デバウン ス回路を イ ネーブルまたはデ ィ スエーブルにする ス イ ッ チ
第 1 章 : は じ めに
デバウ ン ス
回路
イ ネーブルにな る と 、 こ のデザ イ ン例の場合、デバ ウ ン ス回路に よ り ク リ ーン なパルス ま たは High か ら Low への遷移が提供 さ れ、 ボ タ ン を押 し てか ら 放す と 、 一連の ス パ イ ク やグ リ ッ チが削除 さ れます。制御ス テー ト
マ シ ン
制御ス テー と マシ ンは、2 つのプ ッ シ ュ ボ タ ン ス イ ッ チか ら の入力パル ス を キ ャ プチ ャ ー し てデ コ ー ド す る ために使用 さ れ、00、01、10、11 (0 ~ 3) 間のサ イ ン波選択回路お よ び イ ン ジ ケー タ ー 回路を提供 し ます。LED
デ ィ ス プ レ イ
GPIO_LED_0 お よ び GPIO_LED_0 は ス テー ト マシ ン の出力か ら の選択ス テー タ ス を表示 し 、 そ れぞれ高、 中、 低周波の異な る サ イ ン波周波数を表 し ます。X-Ref Target - Figure 1-4
チ ュ ー ト リ アルに含まれる フ ァ イル
チ ュ ー ト リ アルに含まれる フ ァ イル
こ のチ ュ ー ト リ アルには、 次の フ ァ イ ルお よ びフ ォ ルダが含まれてい ます。 • debounce.vhdl - デバ ウ ン ス回路 • fsm.vhdl - 制御ス テー ト マシ ン • sinegen_demo - サ イ ン波ジ ェ ネ レー タ ーの ラ ッ パー • sinewave_demo - 最上位レベルの ラ ッ パーデザ イ ン• sine_high.xco、sine_mid.xco、sine_low.xco - ザ イ リ ン ク ス CORE Generator フ ァ イ ル
• sinegen_demo_sp601.ucf - UCF 制約フ ァ イ ル メ モ : こ のチ ュ ー ト リ アルでは、SP605 と ML605 の 2 つのザ イ リ ン ク ス プ ラ ッ ト フ ォーム も サ ポー ト さ れてい ます。 こ のチ ュ ー ト リ アルの対象を SP605 か ML605 に変更す る 場合は、 次の表の ピ ン配置情報を参照 し て く だ さ い。
手順
こ のチ ュ ー ト リ アルでは、 次の 3 つの タ ス ク を実行 し ます。 1. 「Project Navigator でのプ ロ ジ ェ ク ト の作成 と イ ンプ リ メ ン ト 」 2. 「デザ イ ンへの ChipScope ILA コ アの追加」3. 「ChipScope Pro Analyzer を使用 し たデザ イ ンのデバ ッ グ」
表 1-1 : ザイ リ ン ク ス プ ラ ッ ト フ ォ ームのピ ン配置情報 ピ ン配置の位置 フ ァ ン ク シ ョ ン SP601 SP605 ML605 CLK_N K16 K22 H9 ク ロ ッ ク CLK_P K15 K21 J9 ク ロ ッ ク GPIO_BUTTONS0 P4 F3 A19 リ セ ッ ト GOIP_BUTTONS1 F6 G6 G26 シーケ ンサー GPIO_SWITCH D14 C18 D22 デバ ウ ン ス回路 セ レ ク タ ー
GPIO_LED_0 E13 D17 AC22 Selector[0]
第
2
章
Project Navigator
でのプ ロ ジ ェ ク ト の作
成 と イ ン プ リ メ ン ト
RTL
デザイ ンの作成および イ ン プ リ メ ン ト
こ の 手順 で は、Project Navigator で RTL デ ザ イ ン を 素早 く イ ン プ リ メ ン ト す る 方法 とProject
Navigator で SP601 プ ラ ッ ト フ ォ ーム を タ ーゲ ッ ト に し た ISE® プ ロ ジ ェ ク ト を作成す る 方法に
ついて学びます。
1. 提供 さ れてい る ソ ース フ ァ イ ルをC:\ChipScope_ProjNav\で解凍 し ます。
2. Project Navigator を起動 し 、[File] → [New Project] を ク リ ッ ク し て新 し いプ ロ ジ ェ ク ト を作成
し ます。 名前、 デ ィ レ ク ト リ 、 プ ロ ジ ェ ク ト タ イ プ を指定 し 、[Next] を ク リ ッ ク し ます。
X-Ref Target - Figure 2-1
第 2 章 : Project Navigator でのプ ロ ジ ェ ク ト の作成 と イ ン プ リ メ ン ト
3. デバ イ ス と プ ロ ジ ェ ク ト プ ロ パテ ィ を図の よ う に指定 し 、[Next] を ク リ ッ ク し ます。
4. サマ リ を確認 し た ら 、[Finish] を ク リ ッ ク し ます。
5. pn_step1 プ ロ ジ ェ ク ト を右 ク リ ッ ク し て [Add Source] を ク リ ッ ク し 、VHDL ソ ース フ ァ イ
ルを新規プ ロ ジ ェ ク ト に追加 し ます。
X-Ref Target - Figure 2-2
RTL デザイ ンの作成および イ ン プ リ メ ン ト
6. ソ ースフ ァ イ ルのあ るsrcデ ィ レ ク ト リ を指定 し 、 すべての VHDL フ ァ イ ルを選択 し て開 き ます。
7. [Adding Source Files] ウ ィ ン ド ウ に リ ス ト さ れ る フ ァ イ ルを確認 し 、[OK] を ク リ ッ ク し ます。
X-Ref Target - Figure 2-3
図 2-3 : ソ ースフ ァ イル
第 2 章 : Project Navigator でのプ ロ ジ ェ ク ト の作成 と イ ン プ リ メ ン ト
8. sinegen_demo を右 ク リ ッ ク し 、[New Source] を ク リ ッ ク し て新 し い定義 と 接続 (.cdc) フ ァ
イ ルをプ ロ ジ ェ ク ト に追加 し ます。
9. [Select Source Type] ウ ィ ン ド ウ で [ChipScope Defination and Connection File] を選択 し 、フ ァ
イ ル名に pn_step1.cdc と 入力 し て [Finish] を ク リ ッ ク し ます。
10.サマ リ 情報を確認 し て、[Finish] を ク リ ッ ク し ます。
次に、3 つのサ イ ン波ジ ェ ネ レー タ ーの コ アすべて を生成 し ます。
X-Ref Target - Figure 2-5
質問
11. [Design] ウ ィ ン ド ウ で U_SINEGEN の下の 3 つすべての .xco フ ァ イ ルを選択 し 、
[Regenerate All Cores] プ ロ セ ス を ダブル ク リ ッ ク し ます。
12.デザ イ ン を合成す る 前に、[Keep Hierarchy] オプシ ョ ン を [Soft] に設定 し 、 デザ イ ン階層が保 持 さ れ、XST で階層最適化が実行 さ れない よ う に し てお き ます。こ れを設定す る には、
[Synthesize] プ ロ セ ス を右 ク リ ッ ク し 、[-Keep_hierarchy] オプシ ョ ン を [Soft] に し ます。
13. [Apply] を ク リ ッ ク し ます。
こ れで、 合成準備が完了です。
14. [Synthesize] プ ロ セ ス を ダブル ク リ ッ ク し ます。
15. [File] → [Copy Project] を ク リ ッ ク し 、 プ ロ ジ ェ ク ト 名を pn_step2 に し て保存 し ます
16.プ ロ ジ ェ ク ト 名 と デ ィ レ ク ト リ を入力 し た ら 、[OK] を ク リ ッ ク し ます。
こ の段階ま でで、Project Navigator を使用 し て ISE プ ロ ジ ェ ク ト を作成 し 、 デザ イ ン を合成 し ま し た。
質問
1. 手順 1 で実行 し た こ と を簡単に説明 し て く だ さ い。
_____________________________________
X-Ref Target - Figure 2-6
第
3
章
デザイ ンへの
ChipScope ILA
コ アの追加
ChipScope ILA
コ アの追加
こ の手順では、Project Navigator と ChipScope Pro Core Inserter ツール間の統合 フ ロ ー を使用 し て、デザ イ ンに ChipScope™ ILA コ ア を追加 し ます。以前はユーザーが ILA コ ア を手動で RTL デ ザ イ ンに挿入す る 必要があ り ま し た。 こ の場合、 デザ イ ンの ソ ース フ ァ イ ルを変更す る 必要があ っ たため、 手間がかか る 上に ミ ス をす る 可能性があ り ま し た。
今回か ら は、 元の RTL ソ ース フ ァ イ ルを変更せずに、 コ ア を追加 し 、 信号を接続詞、 デザ イ ン を プ ロ ーブで き ます。
1. [Hierarchy] ウ ィ ン ド ウ でpn_step1.cdcフ ァ イ ルを ダブル ク リ ッ ク し 、ChipScope Pro Core
Inserter ツールを起動 し ます。
最初の ウ ィ ン ド ウ には、 デバ イ ス オプシ ョ ンが表示 さ れます。 タ ーゲ ッ ト デバ イ ス は既に
Project Navigator で設定 し たので、 デバ イ ス オプシ ョ ンが自動的に設定 さ れてい ます。 こ れに
よ り 、ChipScope Pro Core Inserter と Project Navigator 間で異な る デバ イ ス を選ぶ ミ ス を避け る こ と がで き ます。
X-Ref Target - Figure 3-1
第 3 章 : デザイ ンへの ChipScope ILA コ アの追加
2. [Next] を ク リ ッ ク し ます。 ウ ィ ン ド ウ に ICON オプシ ョ ンが表示 さ れます。
3. [Next] を ク リ ッ ク し て ILA コ ア を追加 し ます。
4. [ILA Options] ウ ィ ン ド ウ の [Trigger Parameters] タ ブで ト リ ガーパ ラ メ ー タ を設定 し ます。
X-Ref Target - Figure 3-2
図 3-2 : ICON オプ シ ョ ン
ChipScope ILA コ アの追加
こ の例では、 次の よ う に ト リ ガーパ ラ メ ー タ を設定 し ます。
5. [Capture Parameters] タ ブ を ク リ ッ ク し 、 設定 し た ト リ ガーパ ラ メ ー タ を確認 し ます。
6. 各ポー ト をデバ ッ グネ ッ ト に接続 し ます。 次の手順に従い ます。
a. [Net Connections] タ ブ を ク リ ッ ク し ます。
b. [Modify Connections] を ク リ ッ ク し ます。[Select Net] ウ ィ ン ド ウ が表示 さ れます。
c. [Select Net] ウ ィ ン ド ウ で sinegen_demo 階層か ら CLK_BUFG ネ ッ ト を検索 し ます。
CLK_BUFG ネ ッ ト を検索す る には、[Pattern] フ ィ ール ド に clk_bufg と 入力 し 、[Filter] を
ク リ ッ ク し ます。
表 3-1 : ト リ ガーパ ラ メ ー タ ー
ト リ ガー名 ト リ ガー幅 マ ッ チ タ イ プ
TRIG0 2 Basic w/ edge
TRIG1 2 Basic w/ edge
TRIG2 2 Basic w/ edge
TRIG3 20 Basic
TRIG4 2 Basic w/ edge
TRIG5 3 Basic w/ edge
X-Ref Target - Figure 3-4
第 3 章 : デザイ ンへの ChipScope ILA コ アの追加
d. 検索結果か ら clk_BUFGを選択 し 、[Make Connections] を ク リ ッ ク し ます。
7. 手順6を繰 り 返 し 、 残 り の ト リ ガーポー ト も 接続 し ます。
• TRIG0 : U_SINEGEN 階層で *sel* を検索
• TRIG1 : sinegen_demo 階層で *GPIO_BUTTONS_re* を検索
• TRIG2 : sinegen_demo 階層で *GPIO_BUTTONS_dly* を検索
• TRIG3 : sinegen_demo 階層で *SINE* を検索
• TRIG4 : sinegen_demo 階層で *GPIO_BUTTONS_db<0>* を検索
• TRIG4 : sinegen_demo 階層で *GPIO_BUTTONS_db<1>* * を検索
• TRIG5 : sinegen_demo 階層で *GPIO_BUTTONS_0_IBUF* を検索
• TRIG3 : sinegen_demo 階層で *GPIO_BUTTONS_1_IBUF* を検索
• TRIG3 : sinegen_demo 階層で *GPIO_SWITCH_IBUF* を検索
X-Ref Target - Figure 3-5
ChipScope ILA コ アの追加
8. 終了 し た ら 、 すべてのポー ト が赤色か ら 黒色に変わ り 、 すべての ク ロ ッ ク お よ び ト リ ガーポー ト をデバ ッ グネ ッ ト に接続 し た こ と を示 し ます。
X-Ref Target - Figure 3-6
図 3-6 : ト リ ガー/デー タ 信号
第 3 章 : デザイ ンへの ChipScope ILA コ アの追加
9. pn_step1.cdcフ ァ イ ルを保存 し て閉 じ ます。
ChipScope Pro Analyzer ツールを使用 し て ビ ッ ト ス ト リ ーム をデバ イ ス にダ ウ ン ロ ー ド す る
前に、 ビ ッ ト ス ト リ ーム生成オプシ ョ ンが正 し く 設定 さ れてい る か ど う か確認 し ます。
10. [Generate Programming File] プ ロ セ ス を右 ク リ ッ ク し 、[Properties] を ク リ ッ ク し ます。
11. [Startup Options] カ テ ゴ リ で-g StartUpClkオプシ ョ ン を [JTAG Clock] に設定 し ます。
こ れで、 プ ロ グ ラ ムフ ァ イ ルの生成を開始で き ます。
12. [Analyze Design Using ChipScope] プ ロ セ ス を ダブル ク リ ッ ク し ます。
プ ロ セ ス が終了す る と 、ChipScope Pro Analyzer ツールが起動 さ れます。
質問
4. デバ ッ グプ ロ ーブ を HDL デザ イ ン フ ァ イ ルに追加す る のではな く 、合成後のネ ッ ト リ ス ト に 挿入す る 主な利点は何ですか。
________________________________
こ こ ま でで ChipScope ILA コ ア を挿入 し 終わっ たので、ChipScope Pro Analyzer を使用 し てデ ザ イ ン をデバ ッ グで き る よ う にな り ま し た。
X-Ref Target - Figure 3-8
第
4
章
ChipScope Pro Analyzer
を使用 し たデザ
イ ンのデバ ッ グ
デザイ ンのデバ ッ グ
こ こ では、Xilinx® ChipScope™ Pro Analyzer を使用 し てデザ イ ン をデバ ッ グ し 、 エ ラ ーを検出 し て修正 し てか ら 繰 り 返 し 実行す る 方法について説明 し ます。 ま た、 デザ イ ンか ら 一部のデー タ を ト
リ ガーお よ びキ ャ プチ ャ ーす る 方法について も 説明 し ます。
ChipScope Pro Analyzer を使用 し て、 サ イ ン波ジ ェ ネ レー タ ーが正 し く 動作 し てい る か ど う か を確
認 し ます。 こ こ での主な目的は、 次の 2 つです。 すべてのサ イ ン波選択が正 し いか ど う か確認 選択 ロ ジ ッ ク が正 し く 動作 し てい る か ど う か確認 次の手順に従い ます。
1. JTAG チ ェ ーン を USB ケーブルに し 、 通信パ ラ メ ー タ を設定 し ます。
a. [JTAG Chain] → [Xilinx Platform USB Cable] を ク リ ッ ク し ます。
b. [ChipScope Pro Analyzer] ダ イ ア ロ グボ ッ ク ス が開 く ので、 速度 と ポー ト のパ ラ メ ー タ を
設定 し ます。
こ のチ ュ ー ト リ アルでは、[Speed] を 3 MHz に [Port] を USB21 に し ます。
c. [OK] を ク リ ッ ク し ます。
d. [ChipScope Pro Analyzer] ダ イ ア ロ グ ボ ッ ク ス で、 デバ イ ス の詳細を確認 し 、[OK] を ク
第 4 章 : ChipScope Pro Analyzer を使用 し たデザイ ンのデバ ッ グ
2. JTAG チ ェ ーンへの接続を確認 し ます。
3. [Project] リ ス ト でデバ イ ス名を右 ク リ ッ ク し 、[Configure] を ク リ ッ ク し てデバ イ ス を コ ン フ ィ
ギ ュ レーシ ョ ン し ます。
4. [Configuration] ウ ィ ン ド ウ で、Project Navigator か ら のデフ ォ ル ト の BIT と CDC フ ァ イ ルを
選択 し ます。
X-Ref Target - Figure 4-1
デザイ ンのデバ ッ グ
5. デバ イ ス コ ン フ ィ ギ ュ レーシ ョ ン と ILA コ ア を確認 し ます。
X-Ref Target - Figure 4-2
第 4 章 : ChipScope Pro Analyzer を使用 し たデザイ ンのデバ ッ グ
6. [Trigger Setup] お よ び [Waveform] を それぞれダブル ク リ ッ ク し 、[Trigger Setup] お よ び
[Waveform] ウ ィ ン ド ウ を開 き ます。
7. [Trigger Setup] → [Trigger Immediate] を ク リ ッ ク し ます。
8. サ イ ン波で動 き があ る こ と を確認 し ます。
X-Ref Target - Figure 4-3
図 4-3 : [Trigger Setup] および [Waveform] の位置
デザイ ンのデバ ッ グ
10. [Bus Plot] ウ ィ ン ド ウ で [/sine] チ ェ ッ ク ボ ッ ク ス をオンに し てサ イ ン波を表示 し ます。
こ の波形はサ イ ン波の よ う には見え ません。 こ れは、 基数設定を 16 進数か ら 符号付 き 10 進数 へ変更す る と 正 し く 表示 さ れます。
11. [/sine] を右 ク リ ッ ク し 、[Bus Radix] を ク リ ッ ク し ます。[Signed Decimal] チ ェ ッ ク ボ ッ ク ス
をオンに し ます。
12. [Trigger Immediately] ボ タ ン を ク リ ッ ク し 、 高周波数のサ イ ン波のバスプ ロ ッ ト を表示
し ます。
X-Ref Target - Figure 4-5
図 4-5 : サイ ン波の表示
第 4 章 : ChipScope Pro Analyzer を使用 し たデザイ ンのデバ ッ グ
13.ボー ド のサ イ ン波選択 イ ン ジ ケー タ ーの LED が 「off,on, 01」 と 表示 さ れ る ま で、 ボー ド で
[Sine Wave Sequencer] ボ タ ン (図1-1) を押 し 続け ます。
メ モ : シーケ ンサーは正 し く 動作 し てい ません。 予測 さ れ る 動作では、 ボ タ ン を押すご と にカ ウ ン ト す る シ ンプルな 2 ビ ッ ト カ ウ ン タ ー (00, 01, 10, 11...) にな る はずです。こ の問題の原因 については、 チ ュ ー ト リ アルの後半でデバ ッ グ し ます。
14. [Trigger Immediately] ボ タ ン を も う 1 度 ク リ ッ ク し 、中周波数のサ イ ン波のバスプ ロ ッ ト を表
示 し ます。
15.ボー ド のサ イ ン波選択 イ ン ジ ケー タ ーの LED が 「on, off, 10」 と 表示 さ れ る ま で、 ボー ド で
[Sine Wave Sequencer] ボ タ ン を押 し 続け ます。
16. [Trigger Immediately] ボ タ ン を も う 1 度 ク リ ッ ク し 、低周波数のサ イ ン波のバスプ ロ ッ ト を表
示 し ます。
X-Ref Target - Figure 4-7
図 4-7 : 中周波数のサイ ン波のバス プ ロ ッ ト
デザイ ンのデバ ッ グ 18. [Trigger Immediately] ボ タ ン を ク リ ッ ク し 、 混合サ イ ン波のバスプ ロ ッ ト を表示 し ます。 すべてのサ イ ン波選択が正 し いか ど う か確認 し ま し たが、 選択 ロ ジ ッ ク 回路はま だ正 し く 動作 し てい ません。 すべてのサ イ ン波選択が正 し いか ど う か確認 し ます。 選択 ロ ジ ッ ク が正 し く 動作 し てい る か ど う かは、 次の手順で確認で き ます。 ス テー ト マシ ンが正 し く 遷移 し 、 出力が正 し いか ど う か を確認 し ます。 ス テー ト マシ ンの入力が正 し いか ど う か を確認 し ます。 次に選択 ロ ジ ッ ク 回路のデバ ッ グ を開始 し ます。 19.次のパ ラ メ ー タ を設定 し て く だ さ い。
[Match] : [TriggerPort1] を [RX] に設定 -- GPIO_BUTTONS_re[1] の立ち上が り エ ッ ジが
FSM が遷移す る 原因 と な っ てい る ので検索
[Trigger Conditions] : M1 -- ト リ ガー式を M1 に設定
[Capture Settings] : Windows = 10、Depth = 2
X-Ref Target - Figure 4-9
第 4 章 : ChipScope Pro Analyzer を使用 し たデザイ ンのデバ ッ グ
メ モ : GPIO_BUTTONS_re[1]ネ ッ ト の実際の TriggerPort 番号は こ のチ ュ ー ト リ アル と は異 な る こ と も あ り ます。
20. [Run Trigger] ボ タ ン を ク リ ッ ク し て ト リ ガーを開始 し 、 待ち ます。
進捗状況は、 ウ ィ ン ド ウ の一番 し たに表示 さ れます。
21.ボー ド の [Sine Wave Sequencer] ボ タ ン を押 し ます。
22.キ ャ プチ ャ ー さ れた ウ ィ ン ド ウ数を確認 し ます。
• キ ャ プチ ャ ー さ れた ウ ィ ン ド ウ が 1 つだけの場合は、21 と22を繰 り 返 し ます。
• 複数の ウ ィ ン ド ウ がキ ャ プチ ャ ー さ れた場合は、 次の手順へ進みます。
X-Ref Target - Figure 4-10
図 4-10 : ト リ ガの設定ウ ィ ン ド ウ
デザイ ンのデバ ッ グ こ こ ま でで、 サ イ ン波ジ ェ ネ レー タ ーが正 し く 動作 し てい る か ど う か を確認 し ま し た。 すべてのサ イ ン波選択が正 し いか ど う か確認 し ます。 選択 ロ ジ ッ ク が正 し く 動作 し てい る か ど う かは、 次の手順で確認で き ます。 ス テー ト マシ ンが正 し く 遷移 し 、 出力が正 し いか ど う か を確認 し ます。 ス テー ト マシ ンの入力が正 し いか ど う か を確認 し ます。 24. ト リ ガーモー ド お よ び状況を指定す る 次のパ ラ メ ー タ を設定 し ます。
• [Trigger Run Mode] :Repetitive
• [Match ] : [TriggerPort5] を[XRX] に設定 -- ボー ド の [Sine Wave Sequencer] ボ タ ンの入
力バ ッ フ ァ であ る GPIO_BUTTONS_1_IBUF の立ち上が り エ ッ ジ を検索. • [Trigger Conditions] :M5 • [Capture Settings] : - Windows = 1 - Depth = 1024 - Position = 512
25. [Run Trigger] ボ タ ン を ク リ ッ ク し 、GPIO_BUTTONS_1_IBUF 信号で複数の遷移があ る
ま で、 ボー ド の [Sine Wave Sequencer] ボ タ ン を押 し 続け ます。
メ モ : 波形には、 信号グ リ ッ チが図 と 同 じ 位置に表示 さ れない こ と も あ り ます。 こ れは、 ト リ ガー実行モー ド を [Repetitive] に し た場合の利点です。 こ こ ま でで、 サ イ ン波ジ ェ ネ レー タ ーが正 し く 動作 し てい る か ど う か を確認 し ま し た。 ただ し 、 ス テー ト マシ ンの入力は正 し く あ り ません。 こ れ ら の入力はプ ッ シ ュ ボ タ ン ス イ ッ チか ら 直 接接続 さ れてい ます。 すべてのサ イ ン波選択が正 し いか ど う か確認 し ます。 選択 ロ ジ ッ ク が正 し く 動作 し てい る か ど う かは、 次の手順で確認で き ます。
X-Ref Target - Figure 4-12
第 4 章 : ChipScope Pro Analyzer を使用 し たデザイ ンのデバ ッ グ 図4-12に示す よ う に、 プ ッ シ ュボ タ ン ス イ ッ チが押 さ れて離 さ れ る ご と にグ リ ッ チが生成 さ れ る ので、問題の原因はプ ッ シ ュ ボ タ ン ス イ ッ チにあ る よ う です。複数の遷移を引 き 起 こ す こ れ ら のグ リ ッ チを削除す る ため、プ ッ シ ュ ボ タ ンス イ ッ チにはそれぞれデバ ウ ン ス回路が必要 です。 デバ ウ ン ス回路は、 既にデザ イ ン例に含まれてい ます。 デバ ウ ン ス回路を イ ネーブルにす る に は、DIP ス イ ッ チ 1 を オンに し 、24と25を繰 り 返 し 、 ボ タ ン を 1 度押すご と に遷移が 1 つだ けにな る こ と を確認 し ます。
質問
5. 手順18の問題を解決 し て追加ポ イ ン ト を取得す る 時間はあ り ま し たか。 ______________ 6. こ のチ ュ ー ト リ アルでデバ ウ ン ス回路が必要な理由は何ですか。 _________________________________第
5
章
チ ュ ー ト リ アルのま と め
ま と め
こ のチ ュ ー ト リ アルでは ChipScope Pro ILA Core Inserter と Project Navigator の統合フ ロ ーを紹 介 し 、Project Navigator で IP コ アのネ ッ ト リ ス ト を生成 し てデザ イ ン を合成 し 、ILA Core Inserter
を使用 し て ChipScope ILA コ ア をデザ イ ンに追加す る 方法について説明 し ま し た。 ま た、デバ ッ グ プ ロ セ ス について も 詳 し く 説明 し 、ChipScope Pro Analyzer を使用 し 、 さ ま ざ ま な ト リ ガー設定で デザ イ ン をデバ ッ グす る 方法を紹介 し ま し た。
こ れに よ り 、 基本的なデザ イ ンフ ロ ーの一部 と Project Navigator と ChipScope Pro 間の統合につ いて理解いただけたはずです。
質問の解答
1. 手順 1 で実行 し た こ と を簡単に説明 し て く だ さ い。 PlanAhead の RTL プ ロ ジ ェ ク ト を作成 し 、VHDL の ChipScope™ デザ イ ンに読み込んで、 デ ザ イ ン を イ ンプ リ メ ン ト し ま し た。 2. こ のチ ュ ー ト リ アルで使用 し た主な回路は何ですか。 • debounce.vhdl - デバ ウ ン ス回路 • fsm.vhdl - 制御ス テー ト マシ ン • sinegen_demo - サ イ ン波ジ ェ ネ レー タ ーの ラ ッ パー 3. ほかのザ イ リ ン ク スボー ド を タ ーゲ ッ ト にす る 場合、ど の ソ ース フ ァ イ ルを修正す る 必要があ り ますか。 UCF 制約フ ァ イ ル 4. デバ ッ グプ ロ ーブ を HDL デザ イ ン フ ァ イ ルに追加す る のではな く 、合成後のネ ッ ト リ ス ト に 挿入す る 主な利点は何ですか。 元の HDL フ ァ イ ルを直接変更す る 必要がないので、 間違っ て ミ ス を引 き 起 こ す可能性はな く な り ま し た。 5. 手順18の問題を解決 し て追加ポ イ ン ト を取得す る 時間はあ り ま し たか。ヒ ン ト : Analyzer の波形か ら 判断す る と 、sinegen_demo.vhd お よ び sinegen.vhd モジ ュ ールで 指定 さ れた ビ ッ ト ベ ク タ ーが足 り ないために、出力サ イ ン波が切 り 捨て ら れてい る 可能性があ
第 5 章 : チ ュ ー ト リ アルのま と め
6. こ のチ ュ ー ト リ アルでデバ ウ ン ス回路が必要な理由は何ですか。
こ のデザ イ ン例の場合、デバ ウ ン ス回路に よ り ク リ ーン なパルス ま たは High か ら Lpw への遷 移が提供 さ れ、 ボ タ ン を押 し てか ら 放す と 、 一連の スパ イ ク やグ リ ッ チが削除 さ れます。