電子回路が一日で検証可能に?
電子回路が1日で検証可能!?
「初期デバッグ」の効率化の秘密とは?
最先端の組み込み機器を開発される貴社にとって、組み込み機器の開発初期におけるデバッグは、非常に悩ましい問題ではないでしょうか。
MITOUJTAGが、最も威力を発揮するのは、組み込み機器開発の初期のデバッグの時です。以下、さまざまなケースで、MITOUJTAGが組み込み機器の初期デバッグに非常に有益であることを紹介します。MITOUJTAGを使えば、従来は1週間以上かかっていたデバッグを、わずか1日で行うこともできます。
CPUを利用した組み込み機器は、なぜつらいか
組み込みCPUを搭載した基板を設計した時のことを思い出してみてください。
もし、その基板がうまく動作しなかった場合、回路の間違いか、基板の実装不良か、ソフトウェアの問題か、コンパイラなどのツールの使い方に問題があったのかを切り分けるのは容易ではありません。
そのため、回路を設計したハードウェア・エンジニアは、「回路に間違いはないか」「基板に間違いはないか」「そもそもの考え方に間違いはなかったか」と、動作の確認ができるまで非常に不安になります。
基板の実装が仕上がり、いざ電源を入れたとしても、組み込みCPUを利用した機器では動作確認のためにLEDを光らせようとしても、CPUに何らかのテストプログラムを走らせる必要があります。
ところが、昨今の組み込みCPUはRISC型であるため、非常に難しいアセンブラをマスターし、膨大なCPUの内蔵レジスタに精通しなければ、テストプログラムを組むことはできません。また、コンパイラやリンカなどのツールの使用方法をおぼえるのも容易ではありません。
テストプログラムの作成を、社内の組み込みソフトウェア部門に任せようとしても、最低限のハードウェア・デバッグが完了していない段階では、ソフトウェア・エンジニアは引き受けないでしょう。なぜならば、メモリのアクセスに致命的なミスがあったりすると、ソフトウェアでは全くデバッグが不能であるからです。
ハードウェアエンジニアに仕事が偏りがち
このような理由から、ハードウェアのデバッグを含めて、LEDの点滅やメモリ・テストプログラムの作成は、ハードウェア・エンジニアの仕事となってしまいます。
ハードウェア・エンジニアは、本業ではないにも関わらず、CPUのアーキテクチャやアセンブラについて1000ページを超えるマニュアルを熟読し、ツールの使い方も独学で身に付けなければなりません。動くか動かないか未だわからない機器を目の前にして・・・
たとえ、ICE(In-Circuit Emulator)を使ったとしても、ハードウェア・エンジニアはCPUのアーキテクチャとアセンブラから逃れることはできません。ハードウェアに間違いがあればICEは全く役に立ちません。初期の初期のデバッグでICEを使おうとしても、読むべきマニュアルの量が増えるだけです。
そのような状況で、強いストレスと不安にさらされながら1~2週間ほどデバッグを行えば、ようやくLEDを点滅させるテストプログラムは完成するでしょう。しかし、LEDを点滅させることが目的ではなかったはずです。
組み込み開発の初期におけるデバッグの本来の目的は、ソフトウェア・エンジニアが引き受けてくれるレベルまでハードウェアの動作確認を行うことです。
以上のことを纏めると、ハードウェア技術者にとっては
- CPUのピン(I/O端子)を操作して、望みの信号 (H or L)を出したい。
- アセンブラや内蔵レジスタについて勉強する時間は無駄である。
- 常に不安・ストレスとの戦い
なのです。
CPUをノー・コードでデバッグする
そこで、MITOUJTAGによるバウンダリスキャンを応用したデバッグ方法が注目されています。
この方法では、CPUが正しく配線されているかどうかを確認するために、LEDを点灯させるような場合、回路図からLEDの接続されている端子を調べて、MITOUJTAGでその端子のグラフィックをクリックするだけで、CPUとLEDの接続が確認できてしまいます。
アセンブラなどを覚える必要は一切ありません。マウスクリックのみで、基板上の信号を自由自在に操作することができるのです。
×ソフトがなければハードのデバッグもできない。
×ハードウェア技術者にもアセンブラの知識が必要。
不具合究明に多大な時間の浪費
○ ソフトウェアの完成前にハードの動作確認
○ アセンブラやCPUの仕様を勉強しなくてよい
無駄を省いて時間の大幅な節約
こうして、MITOUJTAGは組み込み機器開発の初期における、ハードウェア・エンジニアの不安とストレスを大幅に減らします。そして、従来の開発方法よりもはるかに短い期間でハードウェアのデバッグを完了させ、基板完成後にすぐにソフトウェアの開発に入ることができます。
テキトーにCPUを走らせてロジアナでキャプチャ!
組み込みCPUの動作を確認するには、何らかのテストプログラムを実行させる必要があります。ところが、CPUが動作するかどうかだけを判断したいような場合に、丁寧なブートコードを作ると、ツールの使い方をマスターするために非常に時間を浪費します。
そんなとき、適当なファイルや乱数またはNOP命令を、MITOUJTAGのフラッシュプログラミング機能で書き込んでください。
CPUはメモリからフェッチして実行し、何らかの動作を行います。それはたとえ意味のあるプログラムではなくても、CPUは何らかの動作をしようとするでしょう。
MITOUJTAGのロジアナ機能でCPUのバスを確認すれば、CPUが動いているか否かという最低限のことが即座に確認できます。CPUが生きているということが確認できれば、ハードウェアの開発者の不安はほとんど解消されることでしょう。
CPUが何となく動いていることがわかれば、後のデバッグはソフトウェア・エンジニアに引き継ぐことができるのです。ここでハードウェアエンジニアの手を離れます。丁寧なコードを作る必要はありません。
FPGA起動不良の原因を探る
FPGAを使った基板を設計したとき、FPGAが起動するかどうか、ハードウェア・エンジニアは非常に不安になります。
いくつかのFPGAベンダーやサードパーティが、FPGAの内部にIPコアを埋め込むタイプのデバッグ・ツールを販売していますが、それらはFPGAが起動に失敗した際には使用することができませんし、クロックの配線が間違って他のピンに接続されていたというような場合も全く使用することができません。
さらに、BGAパッケージのFPGAでは信号をオシロスコープで見ることはできません。
もし、設計した基板でFPGAが起動しなかった、あるいは起動したかどうか不明な場合はどうすればよいでしょうか?
MITOUJTAGは、そのような場合にも最適なソリューションを提供します。
コンフィギュレーション前の(あるいはコンフィギュレーションに失敗した)FPGA
コンフィギュレーションに成功したFPGA
上の図は、コンフィギュレーションに失敗したFPGAと、成功したFPGAをバウンダリスキャンで可視化したものです。コンフィギュレーションに失敗したFPGAでは、ほとんどすべての端子がLレベルであると認識されます。一方、成功したFPGAではそれぞれの端子は、設定された機能にコンフィギュレーションされるので、コンフィギュレーションの成否は一目瞭然です。
クロックの接続間違いも一目でわかります。(クロックが入っている端子は青と赤の点滅で表示される)
M2,M1,M0などのコンフィグモード設定端子や、DONE,INITピンなどのコンフィギュレーション信号のミスも、発見することができます。
もし、MITOUJTAGがなかったら、FPGAの起動不具合の原因究明には多大な時間と労力が必要になり、ハードウェア・エンジニアには大きな不安の中で作業することになるでしょう。
まとめ
ハードウェア技術者は、今まで、実装が上がったばかりの電子回路を、不安と孤独の中で、一人でデバッグを行っていたのではないでしょうか。
これからはもう、「回路が動かないかもしれない・・・」という不安と戦う必要はありません。MITOUJTAGを使えば、テスト用ソフトウェアを作らなくても、FPGAの中身をつくらなくても、すぐに回路の動作を確認することができ、不安の霧は一日で晴れてしまうことでしょう。
ぜひとも、この新しいデバッグスタイルで快適なハードウェア開発をご堪能ください。