Vengineerの妄想(準備期間)

人生は短いけど、長いです。人生を楽しみましょう!

Verification Engineerのお仕事(その8)

Verification Engineerの戯言

Verification Engineerのお仕事の最後のカテゴリになりました。現実的には最初にやるべきことでしたが、ここでは最後になってしまいました。
    カテゴリー1
    ・検証プラン(Verification Plan)を作成する
    ・検証戦略を決める(何をどこに使うか?)
    ・検証項目を決める。
    ・検証シナリオを決める
検証プランついては、Writing Testbenches using SystemVerilogの3章に次のように詳しく書いてあります(目次から)。検証戦略はここでは、検証プランの一部としています。
CHAPTER 3: The Verification Plan
      The Role of the Verification Plan
            Specifying the Verification
            Defining First-Time Success
      Levels of Verification
            Unit-Level Verification
            Block and Core Verification
            ASIC and FPGA Verification
            System-Level Verification
            Board-Level Verification
      Verification Strategies
            Verifying the Response
      From Specification to Features
            Block-Level Features
            System-Level Features
            Error Types to Look For
            Prioritize
            Design for Verification
      Directed Testbenches Approach
            Group into Testcases
            From Testcases to Testbenches
            Verifying Testbenches
            Measuring Progress
      Coverage-Driven Random-Based Approach
            Measuring Progress
            From Features to Functional Coverage
            From Features to Testbench
            From Features to Generators
            Directed Testcases
      Summary
検証のレベルによっては、検証エンジニアではなく、設計者が検証を行うこともありますが、
基本的には、検証エンジニアが行うべきです。「System-Level」や「Board-Level」においては、
ソフトウェアなども必要になってきますので、検証エンジニアはソフトウェアの知識と経験が必要です。

アプローチとして、ダイレクトテストとカバレッジドリブン・ランダムテストの2つがあります。
検証のレベルのうち、「Unit-level」や「Block and Core」については、カバレッジドリブン・ランダムテストを中心に行うべきだと思います。そのため、検証項目や検証シナリオを決めることは、カバレッジモデルを定義しなければいけないと思います。この点がダイレクトテストとの違いだと思います。
カバレッジを定義しないでランダムテスト(制約付きランダムでも)は無意味ですので。

標準的なプロトコルのブロック(PCI Express、USBなどの標準インターフェースやAXI、OCPなどの内部バス)は、検証用のIP(VIP)を使って、徹底的にシミュレーションによって検証するだけでなく、FPGAなどを使って実機テストも必要です。最終的にはTEGチップを作って、テストする必要もあります。ここまでの内容は、Writing Testbenches using SystemVerilogを読めば大体わかります。ぜひ、読んでください。

とりあえず、'''Verification Engineerのお仕事'''については、今回で終わりです。
しかしながら、'''Verification Engineerのお仕事'''は進化していきますので、いずれ、またこの項目の内容を書くことが必ずあると思いますので、そのときまで、ちょっとお待ちください。