Wolfson Microelectronics 社、オーディオハブ設計の検証を高速化
課題
スマートフォン向けのマルチパス、マルチチャネル オーディオ ハブを開発すること
ソリューション
Simulink を利用して DSP 設計のモデリングとシミュレーションを行い、Simulink HDL Coder でデジタル実装の検証のためのビットトゥルーな Verilog モデルを生成
結果
- 何か月もかかる手作業によるコード作成を排除
- データパス検証のカバレッジが 100% に向上
- デバッグ プロセスを 20% 高速化
従来、モバイル デバイスのオーディオ IC は、ADC パスと DAC パスを装備したステレオ コーデックが主流でした。 しかし現在スマートフォンでは、複数のパス構成と、ヘッドセット、音声チャネル、MP3、オーディオ、ラジオ チューナーといった多くのオーディオ ソースをサポートするオーディオ アーキテクチャが必要とされています。
このような需要に対応して、Wolfson Microelectronics (現在はCirrus Logic, Inc.傘下) は、世界初の携帯電話向けデジタル オーディオ ハブ ソリューション、WM8995 を開発しました。同製品によってシステム設計者は、複数オーディオの同時使用を最適に管理することができます。たとえばユーザーがブルートゥース ヘッドセットを使用してハンズフリー通話を行いながら、音楽を聴いたり、カーナビの音声指示を受けたりするなどの行為を、同時に同じハンドセットで行うことが可能になります。
Wolfson のエンジニアは MATLAB® と Simulink® を活用して、この高度なマルチパス オーディオ ハブの設計とシミュレーションを行い、さらに HDL Coder™ を使用してビットトゥルーな Verilog® コードを生成して、デジタル信号プロセッサ (DSP) の実装を検証しました。
Wolfson のチーフ DSP エンジニアである Brian Paisley 氏は次のように述べています。「解析とデータパス設計において、MATLAB とSimulink は、C 言語でコードを手作業で作成するよりもずっとパワフルな環境を提供してくれます。また、HDL Coder では検証モデルの生成のほとんどを自動化できるので、開発期間の短縮および品質の向上を実現でき、設計に対する信頼性の向上につながりました」
課題
単一データパス設計の検証では、一般的にファイルから一連の入力ベクターを提供して高抽象度のアルゴリズムを実行し、対応する出力ベクターをファイルにキャプチャして理想的なリファレンスを作成します。次にチップの検証環境で同じ入力ベクターが適用され、その出力が理想的なリファレンスと比較されます。
この方法は小規模の設計であれば適用できますが、設計が複雑になると適用できなくなります。Wolfson のオーディオ ハブは複数のパスを装備し、より複雑な使用方法をサポートするため、制約付きのランダムな入力パターンや動的モデルに対応できる、従来よりもパワフルな検証プロセスが必要とされました。
Wolfson のシニア設計エンジニアである Gavin Wilson 氏は次のように述べています。「オーディオ ハブではさまざまなセットアップ、チャネル構成、パスをテストする必要があるため、リファレンス ファイルの数が多くなり、データは合計で数ギガバイトになります。これらのファイルを生成して作業することは不可能でした」
ソリューション
Wolfson では MathWorks のモデルベースデザイン ツールを使用して、新しいオーディオ ハブのモデリング、シミュレーション、および検証を行いました。
まず最初に DSP エンジニアが MATLAB と Simulink を利用して可能性のあるアルゴリズムを調べ、設計の浮動小数点モデルを開発しました。同社では以前に多くの設計で Simulink を使用した経験があったため、有限インパルス応答 (FIR) や無限インパルス応答 (IIR) のフィルターやイコライザーといった、高度に最適化された DSP 関数のライブラリが蓄積されており、これを簡単に再利用することができました。Simulink でパワフルな入力パターンや解析のライブラリを使用して、モデルに対して何回もシミュレーションが実行され、浮動小数点による実装の特性や性能がチップの要求仕様を満たしていることが確認されました。
次に、Fixed-Point Designer™ を利用して、浮動小数点モデルが固定小数点のビットアキュレートなモデルに変換され、実行可能な仕様としてデジタル エンジニアに渡されました。
さらに、超低消費電力を確実に実現するために、カスタム算術論理演算ユニット (ALU) でアルゴリズムがアセンブリ言語に実装されました。
Wolfson のエンジニアは HDL Coder を使用し、既存の Simulink モデルから Verilog コードを生成してこの実装を検証しました。Verilog 環境の中で、このビットアキュレートな Verilog コードは DSP 実装の動的モデルとして使用されました。デバイス全体を対象として制約付きのランダムなシミュレーションが実行され、Simulink から生成された Verilog モデルに対し、何百ものシナリオが検証されました。また、検証をさらに確実なものとするために、得られたデータに対して高速フーリエ変換が自動的に実行されました。
Wolfson では、ワールドクラスのオーディオおよび広範なデジタルコンシューマー製品に対応する性能を提供するために設計された、オーディオハブソリューションファミリーを開発しています。
結果
- 何か月もかかる手作業によるコード作成を排除. Paisley 氏は次のように述べています。「オーディオ ハブ プロジェクトでモデルのコードを手書きで作成すると、通常 8 ~ 9 週間かかります。今回は HDL Coder を利用することで、1 日で Verilog を生成できました」
- データパス検証のカバレッジが 100% に向上. Wilson 氏は次のように述べています。「Simulink と HDL Coder を利用することで、理想的なリファレンス ファイルでは不可能だった、制約付きのランダムな検証方法を適用できました。この結果、データパス検証では、指定したポイントの 100% をカバーすることができました」
- デバッグ プロセスを 20% 高速化. Wilson 氏は次のように述べています。「以前は、異なるツールによるシミュレーション結果を比較してデバッグを行っていました。しかし今回採用した方法では、データパス シミュレーションで不一致が生じた場合、デバッグに必要な情報をすべて単一の環境で入手できました。これによって、デバッグのプロセスを 20% も高速化できました」