Cara Validasi SoC dan Lingkungan Pengujian Berbasis Python

 

Validasi System on Chip (SoC) sinyal campuran yg kompleks saat ini membangun tantangan pengembangan testbench baru. Pembuatan Perangkat Keras Sederhana tidak memiliki fitur abstraksi yang dibutuhkan buat mencapai cakupan yg baik dengan mudah. untuk mengatasi kesulitan ini, indera komersial tersedia, tetapi mahal buat diterapkan, dan  mempunyai kurva pembelajaran yg signifikan. Selain itu, mereka kekurangan dukungan buat pengujian chip yg sebenarnya. dalam makalah ini, kami menyajikan lingkungan simulasi efisien yg kami kembangkan, mengatasi tantangan memvalidasi serta menguji transceiver RF CMOS sinyal adonan yang menargetkan pasar WLAN.

Lingkungan ini berdasarkan pada bahasa Python open-source gratis, dan  bergantung di SystemC buat berinteraksi dengan simulator HDL standar. Secara holistik, metodologi ini memungkinkan jadwal yg lebih pendek untuk fase validasi serta pembuktian, dan  buat mengirimkan chip yang berfungsi pada rekaman pertama.

Pertama, buat menaikkan cakupan fungsional, kami perlu menulis skenario yang dapat dieksekusi, yg bisa berjalan secara interaktif beserta dengan simulasi RTL chip. buat SoC yang mengintegrasikan setidaknya satu CPU, ini bisa dicapai menggunakan mengubah deskripsi RTL menggunakan simulator CPU (ISS) dan  contoh fungsional bus terkait (BFM). Itu bisa mengeksekusi C atau kode perakitan, serta dengan demikian bereaksi secara real time terhadap respons perangkat keras. namun, dalam chip RF frekuwensi campuran ini, kami tidak mempunyai CPU. Jadi sikap interaktif ini wajib  sepenuhnya ditangani oleh lingkungan simulasi.

lalu, kami ingin bisa menjalankan seluruh rangkaian pengujian pada berbagai platform tanpa perlu menulis ulang. Ini berarti kami ingin bisa mendukung beberapa simulator HDL (supaya mudah menyesuaikan pengiriman IP kami ke setiap pelanggan), tetapi pula buat dapat memakai tes yg sama baik buat simulasi chip, dan  kemudian untuk pembuktian chip yg sebenarnya di laboratorium RF kami . sang karena itu, kami mengadopsi pendekatan berlapis: skrip testcases ditulis menggunakan antarmuka (api), yang tidak bergantung di platform daerah skrip tadi dijalankan. Terjemahan menjadi rangsangan perangkat keras yang sebenarnya dilakukan oleh lapisan Python yg lebih rendah, yang bisa diubah untuk antarmuka baik menggunakan simulator RTL, atau dengan perangkat keras yang sebenarnya.

Selain itu, kami ingin mendukung taraf abstraksi data yang lebih tinggi daripada yg diizinkan sang simulator HDL klasik. Ini mengarahkan kami untuk menggunakan bahasa skrip Berorientasi Objek (OO). contohnya, kita perlu merepresentasikan paket data menjadi objek tunggal, serta tidak hanya menjadi urutan byte acak sederhana. Ini memungkinkan kami buat membuat paket pada bawah pengacakan terbatas: testbench dapat membuat secara otomatis satu set paket rambang semu, yg bagaimanapun masih sesuai dengan spesifikasi 802.11 (yaitu dengan panjang yg valid serta CRC). Fitur ini memungkinkan kami buat secara otomatis membuat pola pengujian yg jatuh pada kasus sudut, dan  menggunakan demikian mempertinggi cakupan validasi fungsional kami.

dengan menggunakan metodologi ini, kami berhasil memvalidasi chip sinyal adonan yang kompleks serta kami mengirimkannya tanpa dilema besar  di tape-out pertama. Selain itu, kami mencapai fase pembuktian yg sangat dipercepat menggunakan menggunakan kembali kasus uji yg sama, dan  menghadirkan fitur debug baru. beserta menggunakan deskripsi register berbasis XML, kami percaya ini artinya 2 penemuan utama asal pendekatan kami. Kami berencana buat memperluas konsep ini buat mendukung validasi Sistem di Chip yg lebih kompleks, dengan menyematkan beberapa CPU.