Verification Engineerの戯言
Verification Engineerのお仕事の最後のカテゴリになりました。現実的には最初にやるべきことでしたが、ここでは最後になってしまいました。
基本的には、検証エンジニアが行うべきです。「System-Level」や「Board-Level」においては、
ソフトウェアなども必要になってきますので、検証エンジニアはソフトウェアの知識と経験が必要です。
カテゴリー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」については、カバレッジドリブン・ランダムテストを中心に行うべきだと思います。そのため、検証項目や検証シナリオを決めることは、カバレッジモデルを定義しなければいけないと思います。この点がダイレクトテストとの違いだと思います。
カバレッジを定義しないでランダムテスト(制約付きランダムでも)は無意味ですので。
検証のレベルのうち、「Unit-level」や「Block and Core」については、カバレッジドリブン・ランダムテストを中心に行うべきだと思います。そのため、検証項目や検証シナリオを決めることは、カバレッジモデルを定義しなければいけないと思います。この点がダイレクトテストとの違いだと思います。
カバレッジを定義しないでランダムテスト(制約付きランダムでも)は無意味ですので。
標準的なプロトコルのブロック(PCI Express、USBなどの標準インターフェースやAXI、OCPなどの内部バス)は、検証用のIP(VIP)を使って、徹底的にシミュレーションによって検証するだけでなく、FPGAなどを使って実機テストも必要です。最終的にはTEGチップを作って、テストする必要もあります。ここまでの内容は、Writing Testbenches using SystemVerilogを読めば大体わかります。ぜひ、読んでください。
とりあえず、'''Verification Engineerのお仕事'''については、今回で終わりです。 しかしながら、'''Verification Engineerのお仕事'''は進化していきますので、いずれ、またこの項目の内容を書くことが必ずあると思いますので、そのときまで、ちょっとお待ちください。