Sunday, February 20, 2011

(Black+White = Grey) The Grey-Box Verification Flow

Ada tiga metode verifikasi: black-box, white-box, dan grey-box. Black-box adalah metode verifikasi dengan memberikan stimulus input kemudian melihat output dan membandingkannya dengan expected output dari golden reference model. White-box adalah metode verifikasi dengan memperhatikan detail dalam internal desain, seperti hierarki, data flow, state machine, counter, dan lainnya. Cara verifikasinya adalah memberikan stimulus input berupa random data, lalu memeriksa perilaku internal desain apakah sudah sesuai dengan perilaku yang diinginkan dalam desain, tanpa memperhatikan nilai output sama sekali. Kedua metode tersebut memiliki kelebihan dan kelemahan. Grey-box, berusaha menggabungkan kedua metode diatas, mengambil kelebihan keduanya, mengurangi kekurangan keduanya. Teknik verifikasi modern menerapkan combine-method ini.



Kunci suksesnya adalah ketersediaan tools yang mendukung HVL (high-level verification language) semacam SystemC dan SystemVerilog. Untungnya, hampir semua tools standard industri sudah menduking keduanya. Kesimpulan dari percobaan yang saya lakukan, grey-box verification memberikan solusi komprehensif dalam verifikasi dengan mampunya "attacking from both-sides", dan menemukan bug secepat mungkin dengan coverage seluas mugkin. Selain komprehensif, grey-box verification memungkinkan proses verifikasi lebih otomatis. Selain itu, grey-box verification memaksa golden reference model dibuat dalam C/C++ atau SystemC, dan bukan Matlab/Octave lagi, sehingga flow desain lainnnya terakomodiasi, seperti misalnya: early prototyping menggunakan DSP processor, GPU, dan early architectural exploration dengan menggunakan SystemC TLM.

Paper selengkapnya bisa didownload di halaman Download dengan judul: Grey Box Verification Flow, A Practical Guide. Selamat mencoba! (Ya2n)