東芝は、NANDフラッシュ・メモリー・コントローラーICの機能検証に検証手法/言語「UVM」を適用した。その経緯や効果などについて、「CDNLive Japan 2016」(日本ケイデンス・デザイン・システムズ社とイノテックが2016年7月15日に横浜で開催)で講演した。

図1●ソフトウエアのスキルが必要に 右端は池上裕之氏。日経エレクトロニクスが撮影。スクリーンは東芝のスライド。
図1●ソフトウエアのスキルが必要に 右端は池上裕之氏。日経エレクトロニクスが撮影。スクリーンは東芝のスライド。
[画像のクリックで拡大表示]
図2●UVMテストベンチはハードウエアエンジニアにはとっつきにくい スクリーンは東芝のスライド。
図2●UVMテストベンチはハードウエアエンジニアにはとっつきにくい スクリーンは東芝のスライド。
[画像のクリックで拡大表示]
図3●UVMテストベンチをソフトウエアとしてデバッグできる手段が必要 スクリーンは東芝のスライド。
図3●UVMテストベンチをソフトウエアとしてデバッグできる手段が必要 スクリーンは東芝のスライド。
[画像のクリックで拡大表示]

 登壇したのは、東芝の池上裕之氏(ストレージ&デバイスソリューション社メモリ事業部 第二メモリ設計技術部 参事)である。3次元化、多値化(16値化が見えているという)、高速化などによって、NANDフラッシュメモリーの制御は難しくなる一方だ。それに伴い、制御回路が大規模化・複雑化する。一方で「メモリーチップの検証IPを開発提供するベンダーは現れない」(同氏)ため、設計者が自ら検証用のテストベンチを作らざるを得ない。

 そこで同氏らは、大規模ロジックICの機能検証向けに開発された検証手法/言語「UVM:Universal Verification Methodology」(日経テクノロジーオンライン関連記事1)を、NANDフラッシュメモリーの制御回路の機能検証向けテストベンチ作成に適用した。ただし、「検証の専門家でない」と同氏が自ら言うように、適用にあたってはいくつかの困難に遭遇した。例えば、かつてのNANDフラッシュメモリーの制御回路はそれほど複雑でなかったため、ハードウエア(回路)が分かれば、テストベンチは作成できた。ところが、UVMを使いこなすには、ソフトウエアの技量が必要になる(図1)。UVMテストベンチは、ソフトウエア(UVMコード)と決まり事のかたまりで、ハードウエア設計者はとっつきにくい(図2)。

 しかし、UVMテストベンチが理解できなくてそれがブラックボックスのままでは、効率的なデバッグは望めない。そこで今回、UVMテストベンチをソフトウエアとみなしてデバッグするためのツールとして、Cadenceの「Indago Debug Analyzer(IDA)」(日経テクノロジーオンライン関連記事2)を採用することにした(図3)。IDAはハードウエア(RTL)とテストベンチの同時デバッグに向けた製品で、検証言語として、e(IEEE1647)とSystemVerilog(IEEE1800)、SystemCが扱える。UVMはSystemVerilogベースである。