事例紹介

アレイプロセッサ

CPU 本検証対象であるプロセッサは、1ユニットに32個の実行ユニットを持つコンフィギュラブルなアレイプロセッサです。 さらにそのコンフィギュラビリティを制御するRISCマイコンが存在しており、それらの命令の組合せだけでも天文学的な数字となります。 そこでベリフォアではそれらの膨大な数の組合せを効率的に網羅するために検証環境は制約付ランダム検証を中心とし、 具体的なメソドロジとしてVerification Methodology Manual for SystemVerilog(VMM)を全面的に採用しました。 さらに検証スピードを加速する為にグリッド環境を構築して、より効率化を図りました。

TV・モニタ

TV 昨今のタイミングコントローラは、所謂タイミング調整のブロック、スケーラビリティに加えてパネルの特徴を引き出す為の 画像処理ブロックなどが多数含まれており、複雑さが増してきています。4Kなどの高精細パネルが対象となる場合にはデータ量が膨大となるために シミュレーションとその他の手法(エミュレーション、FPGAプロトタイピング)をどの検証工程でどのような目的・内容で 実施するかが一つのキーになります。ベリフォアは最適な検証プラン策定をはじめとして、画像入出力検証IPや各種モデルを提案・開発し、 画像処理ブロックの最適設計・検証も実施します。

プリンタ

プリンタ 数十のマスター(マルチCPU含む)及びスレーブがシステム内に存在し、複数のバスプロトコルがシステムバスに よってメモリーコントローラに接続されている構成です。このような構成の場合に検証でキーとなるのは”バス調停”と 各マスター<->スレーブ間のコミュニケーションの網羅ということになります。 そこで検証効率を考え、制約付きランダムと機能カバレッジをフルに活用し、さらに性能検証をより厳密に実施する為に 自社製のバスVIPを駆使することにより、比較的短期間で検証を完了することを可能にします。

DSC・Movie

DSC TVと同様に扱う画素数が膨大になるとともに、センサーからの入力画像に対してのノイズ除去、拡大縮小などをはじめとする画像処理が複雑になり さらに複数フォーマット対応CODEC、複数MPU、各種ペリフェラル(高速IO含む)、より重たいトラフィックを司るシステムバス・メモリコントローラー などが主要ブロックとしてあります。ベリフォアでは各種画像処理の設計から最適な検証環境の開発を含め御提案・実施します。

アレイプロセッサ検証環境

検証環境の特徴としては、制約付ランダム検証によりセグメント生成(1ユニット単位の命令-最大7168万命令を自動生成)、 内部トラフィックの生成及び例外発生の実現、スコアボードによる自動データチェック、機能カバレッジ集計、同じ検証環境で 制約付ランダム検証ダイレクト検証の両方をサポート、階層的検証環境による容易な ダイレクトテストケース記述、自己開発による豊富なメッセージによる容易なデバッグ環境の構築などが挙げられます。
アレイプロセッサ

インターコネクト

検証対象は、SoC内のCPUを含む数十の各種IPコアが接続されているインターコネクト部全体であり、実動作環境に近いトラフィックを与えて、各種ブリッジ・アービタ(プロトコル検証を含む)、DRAMコントローラを含んだ動作の検証例です。検証手法は、VMMに基づくSystemVerilogによる制約付ランダム検証ダイレクト検証を採用しました。特徴としては、制約付ランダムによるトラフィック生成、スコアボードによる自動データチェック、バスモニタ・アサーションによるバスプロトコルチェック、機能カバレッジ集計、統計的性能集計、階層的検証環境による容易なダイレクトテストケース記述などが挙げられます。

検証作業の期間:4ヶ月

インターコネクト

グリッドエンジンによるシミュレーション時間の大幅な短縮

ダイナミック検証(シミュレーション)の場合に常に問題となるシミュレーション時間の改善を図る為に、3台のワークステーションをギガビット・イーサネットで接続するとともに、Sun N1 Grid Engineを用いてグリッド化して連携させました。ランダムなテストケースがSun N1 Grid Engineによって3台のワークステーション上の12個のCPU上で独立して動作する論理シミュレータに自動的に振り分けることで、1CPUの環境で17時間かかっていたシミュレーション時間を30分強へ短縮することができました。

■グリッド検証環境
グリッド検証環境

社内ネットワークへの負荷を最小限にするため、グリッド環境のトラフィックはローカルで閉じるように社内ネットワークとハブで分離し、ギガビット・イーサネットでネットワークのトラフィックのボトルネックを解消する構成を取りました。各CPUに一つの論理シミュレータをアサインし、ランダムなテストケースのシードを自動的に各CPUに振り分けて実行しています。

■グリッド環境を用いたシミュレーションの効果
グリッド検証環境

テストケース100シードのリグレッション(シミュレーション)時間は一般的なPCが16.75時間であったのに対して、ワークステーション(SunFire V40z)1CPUでの実行時間が5.76時間、12CPUを用いたグリッド環境で0.56時間となり、ほぼCPUの数に応じてスケーラブルな結果を得ることが出来ました。