« EDSF2005 | Main | Functional Coverage »

2004.12.10

FPGAのデバッグ機能

一年ほど前の某MLへの投稿を転載。
結構バージョンアップ激しいので、いろいろ変わっている点もあるでしょう。

ChipScopeの追加情報として
・ROM化は可能(結構便利)
・ISEだけで開発する場合は、統合環境として非常に便利。使い心地も合格レベル。

アイデンティファイの追加情報として
・シンプリファイプロ、アイデンティファイ、ISEがそれぞれ別製品の為、
使い方が統合されていない。(バージョンアップで、シンプリファイプロと
アイデンティファイは統合される予定)
・測定の条件を加えることができる。例えば、ある回路が通信中の状態のみ
サンプリングするなど。また、ステート記述するような、複雑なトリガー
も可能。

どちらも、最初にデバッグ用の回路を埋め込んでおけば、FPGAエディタで
配置配線後のデータを直接いじることで、見る信号を再配置配線無しに
変更可能。
やっぱりROM化後でも、信号見れるのは大きいですよ。
上手く信号を見れるようにしておけば、納品後のトラブル対応もかなり
楽になると思います。

PALMiCE-FPGAの追加情報として
・動作中の各レジスタや、メモリの内容を読み書きできる。
(XilinxのJTAGデバッグ機能を使用している)

以下転載
--------------------------------------------------------------------
MLの皆さん、はじめまして、なつたんです。

FPGAのデバッグ機能ですが、お仕事でいくつか見たり、さわったりしたので
まとめと感想を。
あくまで私の知っている範囲の事ですので、より詳しい方がいらっしゃれば
フォローお願いします。

(1)シグナルタップ
アルテラの標準のデバッグ機能。当然アルテラしか使えません。
クオータス2.0の頃に使ったのですが、非常に使いにくかったです。シグナル
タップに限らず、ちょっとした事でアプリケーションエラーがでてしまい、
結局FPGAの空きピンに信号を出してロジアナで見た方が効率的でした。
測定する信号を変えるだけで論理合成からなので、効率も悪かったです。
クオータスのバージョンアップと共に、使いやすくなったらしいのですが、
その後使う機会が無く、未評価です。
また、sofファイルにしか使えない、JTAGチェーンの先頭のデバイスのみ
という制限がありました。

(2)チップスコープ
ザイリンクス標準のデバッグ機能。ザイリンクスしか使えません。
使い方は複数あるのですが、私は論理合成後コアインサータを使用する方法で
使っています。微妙に使いにくい所がありますが、デバッグ機能としては
十分かなと思っています。

XST→チップスコープの場合はいいのですが、間にシンプリファイ等を入れると
ノード名が変わってしまったり、ステートの割付が全然変わったりして苦労します。
あとは、出力レジスタの出力を見ることが出来なかったり、タイミングの厳しい
入力信号をサンプリングすると動きが変わったり、最適化の影響をもろに受けたり、
ある程度FPGAの知識が必要です。

ROM化が出来たかどうかは覚えていません。

(3)アイデンティファイ
機能としては、4つの中で一番です。アルテラもザイリンクスも両方対応。
ソースレベルでのウォッチポイントの追加は、非常に使い心地が良いです。
ROM化して使えるので、使い方によっては、納品後のデバッグなどで力を
発揮するかと思います。
使い込んではいないのですが、スクリプトでウォッチポイントなどを設定できる
ので繰り返しのデバッグの時には非常に役に立つと思います。
ソースレベルのデバッグということでシンプリファイの最適化の影響も受けません

欠点としては、論理合成ツールがシンプリシティの製品(シンプリファイ、プロ等)
に限られてしまいます。(例えばXSTはダメ)
結果的にコスト面では厳しいのではないでしょうか。

ここまでの3つは、全て測定する信号をFPGAの内部メモリに書き込み、トリガー後
読み出す方式です。どれも、使用ロジックは同じような物だと思います。

(4)PALMiCE-FPGA
コンピューテックスの製品です。上記3つとちがい、基本的にはロジアナです。
信号を空きピンに出し、ロジアナとして観測します。ザイリンクスのみ対応。
欠点としては、見られる信号が16本しかないこと、専用のコネクタ(ミクター)
をつける必要がること、が大きいですね。特に既存の基板では空きピンの信号を
何らかの形で変換するなり、プローブで一本一本つまむ必要があります。
(上記3つはJTAGポートさえ出ていればOK)
測定する信号はソースレベルで「自分で」空きピンに出さないといけません。
階層の奥の方の信号だと出してくるだけで大変じゃないのかなと思いました。
(信号見るだけでソースが変わるのを嫌がる人もいると思います。)

どちらかというと安価なロジアナという位置づけでしょう。
個人的な意見を言えば、かなり小さくて軽いので一個あっても良いかなと思います。

まとめると、どれもこれも一長一短かなぁとは感じます。
より詳しい方がいらっしゃれば、フォローお願いします。
---------------------------------------------------------------------

|

« EDSF2005 | Main | Functional Coverage »

Comments

覚えていてくれてうれしいです。
改めてお久しぶりです。

ブログやHPにもちょろちょろと書いていますが
社長に掛け合って、FPGAとかCPLDの開発を請け
負うサービスをはじめたんです。

まだ、それ自身では軌道に乗っているとは
言えないのですが、私の本分に戻ってこれて
うれしい、という所です。

公私共に協力できたらいいですね。

Posted by: 魔皇子(♂) | 2004.12.16 at 10:04 AM

Post a comment



(Not displayed with comment.)




TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/18154/2220547

Listed below are links to weblogs that reference FPGAのデバッグ機能:

» FPGAno [硬く柔い技師]
[Read More]

Tracked on 2004.12.14 at 12:40 PM

« EDSF2005 | Main | Functional Coverage »