21世紀のローテク・デバッグ「Health Check Core」
21世紀のローテク・デバッグ「Health Check Core」サービスのご紹介
--デバッグにソフトウェア処理を使いたいときありませんか。--
近年、高度な検証ツールが次々と発表され、数学的で科学的な方法で問題抽出がなされる様になりました。 特にASIC開発は失敗が許されませんので、必要とされている進化でもあると容易に想像ができます。 そして、そのリスク回避にFPGAを使った検証環境の構築も急増しています。 また、廉価なFPGAの性能向上もめざましく、そのFPGAを使った量産品もよく見かけます。(秋葉原の部品街でFPGAを実装した基板に出会える機会も増えました。)
FPGAの低価格化は、開発費の低減に大きく貢献をし、低予算案件でも目標達成を可能にする領域が広がりました。 しかし、FPGAを使った完成品を目標としているエンジニア諸氏は基板を含めた全体を同時にデバッグをします。 なぜなら、電源の問題や基板の配線トラブルや高速シリアルの登場、DDR2メモリの採用など、全体を見通さないと完成に辿り着けないからです。 また、PCI-Expressに接続したり、CPUを実装する場合はソフトウェアエンジニアと協調して開発を進めます。(ソフトウェアとの協調はASIC開発でも大きな問題です。)
ハードウェアの問題解析をする為の3大兵器は「オシロスコープ」と「ロジックアナライザー」そして「指」です。 オシロは説明無用ですが、近年のロジックアナライザーは据置き型から、FPGA内部に居場所を移しFPGA内部のRAMに波形を保存するタイプが一般的になりました。 FPGA実装型のロジックアナライザーに何度も救われた事を思い出します。 最後の「指」ですが、タイミングマージンが足りない基板配線に指を近づけるとストレー容量が発生し、正常に動作したり、その逆に不具合の現象がハッキリします。 動作周波数の向上で「指」の有効性は再認識されるでしょう。ただし、自身のアースと放電を忘れてはいけませんし設計者のみが許される行為です。 この現象はオシロスコープのプローブ容量でも同様ですが、指の容量の方がソフトです。
この様な事をツラツラと書きますと、シミュレーションが足りないとお叱りを受けるかもしれません。しかし、論理シミュレーションのZやXは、実世界では基板配線の断線などはZ、メタステーブルや温度上昇の影響などはXになります。 ロジック回路はこのような問題が発生しても1か0の状態になり、シミュレーションとは違う動作になります。 基板上では論理シミュレーションで再現困難な沢山の物理現象がリアルタイムで発生しています。
現実世界で戦う為の3大兵器を補助する機能として、CPUからの制御が大変有効です。オシロスコープやロジックアナライザー、そして指もその問題が発生し続けないと問題の解決が出来ません。 CPUが最初から実装されている、もしくはPCIに接続されていれば、CPUの恩恵を受ける事ができ、テストプログラムを作る事で問題が発生しやすい条件の絞り込み、問題の切り分けが短時間で終了します。 しかしながら、開発の度にCPUを実装できるとは限りませんので、FPGAに実装できるCPUがとてもリーズナブルです。 PCI-Expressとメモリコントローラを実装するFPGAを例に取り上げます。 このPCI-Expressとメモリコントローラの設計を別々の担当者が設計し、問題が発生すると必ず、どちらに問題があるか切り分け作業が始まります。 もし、CPUがPCI-Expressとは別にメモリコントローラと接続されていると判定が簡単に終わります。 CPUにテストプログラムを走らせメモリの内容を読み書きすれば良いだけです。 しかし、これは理想論で大抵のエンジニア諸氏はロジックアナライザーを埋め込み、問題探求の旅に出ます。 理由は簡単です。 デバッグ用にCPUを実装し、テストプログラムを作る作業時間を獲得するのは難しいからです。 しかし、問題箇所を探す為に、ロジックアナライザーを埋めなおし、毎回再合成をするのです。 また、トリガー条件が判明した時は原因がわかった時です。(判明した瞬間の達成感は否定しません。) ロジックアナライザーの再埋め込みやトリガー条件を探す為の作業時間は大きな損失です。 ロジックアナライザーを埋め込む前に、大雑把な問題箇所の予測が立てられればロジックアナライザーの再埋め込みや、トリガー条件の探求が短時間になります。
この問題を解決する為に、この度、ベクトロジーではデバッグ向けCPUのFPGA組み込みサービスである「Health Check Core」を開始しました。 この「Health Check Core」は次の様な特徴を備えております。
1)省メモリ・省ロジック型のCPUが用意済みです。
2)UART、キャラクタ表示型CRTC(LCDC)とフォントデータを標準で実装済みです。
3)回路内部のレジスタやステートマシンの状態を容易にメモリ空間に配置できます。
4)CPUコアは自製ですので、カスタマイズの要求を実現しやすいです。
5)基本的なソフトウェアの開発は済んでおり、実装が短期間で終了します。
6)実装とソフトウェア開発はベクトロジーが行い、最後までお付き合いします。
最近は、シリアルからUSBへ変換できる低価格なチップがWindowsドライバー付きで、
入手可能です。 この制御やソフトウェアも既に用意されていますので、FPGA内部に実装をすれば、メモリ空間にマップされているレジスタや内部メモリが直ぐにダンプ可能です。 このメモリダンプ機能でFPGAの内部情報を大域的に観察する事により、大雑把な問題箇所の予測が立てる事が容易になります。 また、CRTCを用意していますので、LCDへ文字情報を出力する事でエラーコードの表示ができます。 PCとの接続が叶わない環境や出荷試験、フィールドメンテナンスにもお役に立ちます。 さらに、NE2000互換のLANコントローラチップも低価格で入手可能です。 もし、LANコントローラの実装が許される場合は、正常を知らせる「ハートビート」を定期的に送信したり、異常発生を知らせる「ダイイングメッセージ」を開発者に知らせる事ができます。 これは恒温槽での試験時にも有効ですし、LAN経由でFPGA内部の状態を知る事も可能です。
以上の様な手法は理解がしやすく、一般的なFPGA埋め込み型CPUを用意すれば、同様の事が可能なローテク・デバッグです。 しかし、FPGAベンダー等が提供しているCPUコアをデバッグ用に使うには以下の問題が付きまといます。
1)32bitCPUの場合はメモリ消費が多いです。
2)UART等の用意は別途必要です。
3)メモリ空間の配置には制限が多いです。
4)コンフィグは可能だがカスタマイズには制限があります。
5)メモリダンプの結果をUART経由で送信するだけでも開発が必要です。
6)サポートは資料と代理店が頼り。
製品開発期間の短縮は不況脱出の一助になると考えております。 どうぞ、「Health Check Core」をご検討下さい。
Vectology LLP しのだ よしかず
info@vectology.jp
※Vectology社のサービスは株式会社エッチ・ディー・ラボが代理店として提供中
7月15日に「Health Check Core」セミナーを開催致します。