Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial Internet of Things >> Tertanam

Mengotomatiskan kasus uji C untuk verifikasi sistem tertanam

Ketika desain sistem-on-chip (SoC) melanjutkan perjalanan mereka ke kompleksitas yang lebih besar, rangkaian pengujian yang berisi ribuan baris kode untuk verifikasi tingkat sistem terus ditulis dengan tangan, sekolah kuno yang kuno dan praktik yang tidak efektif menentang pepatah “otomatisasi bila memungkinkan.” Hal ini terutama berlaku untuk pengujian C yang berjalan pada prosesor tertanam SoC untuk memverifikasi seluruh perangkat sebelum fabrikasi.

Mengotomatiskan komposisi uji verifikasi jika memungkinkan telah terbukti meningkatkan produktivitas untuk banyak fase pengembangan SoC. Teknik Acak Terkendala, misalnya, di bangku tes Universal Verification Methodology (UVM), memanfaatkan vektor uji acak yang diarahkan pada skenario tertentu untuk meningkatkan cakupan. Meskipun ini telah meningkatkan efisiensi verifikasi di tingkat blok perangkat keras, desainnya masih dianggap sebagai kotak hitam dengan stimulus, pemeriksaan, dan kode cakupan yang ditulis secara terpisah, masih merupakan tugas yang berat dan rawan kesalahan untuk blok besar.

Sulit untuk memperluas metodologi ini ke tingkat sistem, mengingat kebutuhan untuk menggabungkan kode pengujian prosesor dengan transaksi I/O, sering kali dijalankan pada sistem emulator atau prototipe. Untuk memverifikasi SoC dengan benar, prosesor itu sendiri harus dijalankan. UVM dan pendekatan acak terbatas lainnya tidak memperhitungkan kode yang berjalan pada prosesor. Faktanya, untuk menggunakan UVM pada SoC, prosesor sering dihapus dan diganti dengan input dan output virtual ke bus SoC yang memungkinkan sub-sistem dikurangi prosesor untuk diverifikasi.

Insinyur verifikasi SoC mengenali keterbatasan bangku tes acak-terkendala, mendorong mereka ke tes C tulis tangan untuk dijalankan pada prosesor untuk simulasi dan emulasi perangkat keras, meskipun mereka terbatas dalam menjalankan desain SoC sepenuhnya. Performa platform verifikasi ini tidak cukup baik untuk menjalankan sistem operasi (OS) penuh, sehingga pengujian ini menjalankan "bare-metal", yang menambahkan overhead yang signifikan pada upaya komposisi. Ini tidak biasa untuk tes tulisan tangan, terutama tanpa bantuan layanan OS, untuk berjalan secara terkoordinasi di seluruh prosesor multi-core yang memanfaatkan banyak utas. Hasilnya adalah aspek perilaku SoC, seperti operasi bersamaan dan koherensi, diverifikasi secara minimal.

Menghasilkan pengujian C secara otomatis

Tentu saja, pengujian C yang dibuat secara otomatis akan membuat penggunaan sumber daya teknik menjadi lebih efisien. Mereka juga meningkatkan cakupan. Kasus uji C yang dihasilkan dapat menjalankan lebih banyak fungsi SoC daripada pengujian tulisan tangan dan akan mencari kasus sudut kompleks yang sulit dibayangkan. Kasus uji multi-utas, multi-prosesor dapat menggunakan semua jalur paralel dalam desain untuk memverifikasi konkurensi. Mereka dapat memindahkan data di antara segmen memori untuk menekankan algoritma koherensi, dan berkoordinasi dengan transaksi I/O ketika data harus dikirim ke input chip atau dibaca dari outputnya. Efek keseluruhan dari ini adalah untuk meningkatkan cakupan fungsional sistem, biasanya lebih besar dari 90% dari angka yang secara karakteristik jauh lebih rendah.

Perangkat lunak pembuatan pengujian, yang dikenal sebagai Test Suite Synthesis, menggunakan model skenario berbasis grafik yang mudah dipahami yang menangkap perilaku desain yang diinginkan. Model-model ini dapat ditulis menggunakan Accellera Portable Stimulus Standard menggunakan C++ asli atau dijelaskan secara visual. Model skenario dibuat oleh insinyur desain atau verifikasi sebagai bagian alami dari pengembangan SoC karena menyerupai diagram aliran data chip tradisional yang mungkin digambar di papan tulis untuk menjelaskan bagian dari spesifikasi desain.

Model-model ini secara inheren mencakup stimulus, pemeriksaan, detail cakupan, dan informasi debug, menyediakan generator dengan segala yang dibutuhkan untuk menghasilkan kasus uji C yang memeriksa sendiri dan berkualitas tinggi yang menekankan setiap aspek desain. Karena bersifat hierarkis dan modular, pengujian apa pun yang dikembangkan di tingkat blok dapat digunakan kembali sepenuhnya sebagai bagian dari model SoC lengkap, dan mudah dibagikan dengan tim yang berbeda dan di seluruh proyek. Terakhir, model maksud tunggal dapat diuraikan oleh alat sintesis untuk menyediakan pengujian serentak di seluruh utas dan port I/O, semuanya disinkronkan bersama.

Sintesis rangkaian pengujian keunggulan

Satu keuntungan signifikan dari sintesis suite pengujian adalah kemampuan untuk menentukan sasaran cakupan di awal pada model maksud. Setelah maksud ditentukan, alat dapat menganalisisnya untuk memahami jumlah pengujian yang dapat dihasilkan dan cakupan maksud fungsional yang akan dicapai.

Untuk SoC, ini bisa berjumlah ribuan tes. Sasaran cakupan kemudian dapat ditetapkan dengan membatasi maksud yang akan diuji dan memfokuskan alat pada area utama. Kemampuan ini menyimpan pengulangan berulang yang menyakitkan yang terjadi pada pendekatan tradisional, yaitu menyiapkan pengujian, menjalankan alat verifikasi, memahami cakupan yang dicapai, lalu menyetel ulang pengujian berulang kali.

Dalam satu proyek tipikal pada SoC besar yang dikembangkan oleh perusahaan semikonduktor terkenal, para insinyur verifikasi mengurangi waktu komposisi pengujian hingga 20% dari yang sebelumnya memerlukan tes tulisan tangan. Teknologi otomatisasi menghasilkan uji kasus yang lebih ketat, meningkatkan cakupan dari 84% menjadi 97%. Selain itu, modelnya portabel.

Sebuah model tunggal dapat menghasilkan kasus uji untuk platform virtual, simulasi register transfer level (RTL), emulasi, prototipe field programmable gate array (FPGA) atau chip aktual di lab yang menjalani validasi pasca silikon.

Debug adalah waktu lain bagi para insinyur, terutama di tingkat SoC. Jika kasus uji mengungkap bug desain yang mengintai, teknisi verifikasi harus memahami pengujian mana yang memicu bug untuk melacak sumbernya. Kegagalan kasus uji mungkin disebabkan oleh kesalahan dalam model skenario, jadi kasus uji harus dapat dikorelasikan kembali ke grafik tempat maksud desain ditangkap. Proses ini menciptakan pengujian yang sangat modular dan mandiri yang mudah diurai, sehingga pengujian yang dijalankan terhadap bug yang ditemukan mudah dilihat.

Skenario aplikasi

Kasus uji yang disintesis dapat menggunakan kasus penggunaan yang realistis, yang disebut skenario aplikasi, untuk desain. Misalnya, perhatikan SoC kamera digital yang ditunjukkan pada gambar 1.

klik untuk gambar lebih besar

Gambar 1:Contoh SoC Pemrosesan Gambar. (Sumber:Sistem Verifikasi Breker)

Komponen tingkat blok SoC mencakup dua prosesor, perangkat periferal dan memori. Grafik sederhana untuk SoC ditunjukkan di bawah diagram blok. Grafik mencakup kemungkinan jalur tingkat tinggi yang dapat dilakukan dalam proses verifikasi SoC. Misalnya, satu skenario yang mungkin, dinyatakan dalam jalur atas grafik, membaca gambar JPEG dari kartu SD dan meneruskannya ke prosesor foto melalui wilayah yang dialokasikan dalam memori. Gambar diproses menjadi bentuk yang dapat ditampilkan dan dimuat ke dalam blok kedua di memori. Dari sana, itu diteruskan ke pengontrol tampilan. Tentu saja, masing-masing blok tingkat tinggi ini bersifat hierarkis dengan banyak tindakan dan keputusan yang dieksekusi sebagai bagian dari proses.

Alat sintesis akan mengambil tes secara acak dan menjadwalkannya dengan tepat. Dalam bentuk paling sederhana, seperti yang ditunjukkan pada gambar, pengujian mungkin dijadwalkan menjadi satu utas, diikuti oleh pengujian berikutnya dan seterusnya. Namun, kemampuan kasus uji untuk menekankan SoC berasal dari aplikasi interleaving di beberapa utas dan beberapa prosesor. Alat ini akan menjalankan sebanyak mungkin aplikasi secara paralel yang didukung oleh konkurensi yang melekat pada desain, mengalokasikan memori saat berjalan dengan cara yang berliku-liku mungkin. Ini juga ditampilkan sebagai alternatif pada gambar di mana pengujian tersebar di tiga thread, memanfaatkan berbagai wilayah yang dialokasikan di seluruh memori SoC.

Tentu saja, contoh ini disajikan pada tingkat tinggi untuk memperjelas prosesnya. Pada kenyataannya, grafik hierarkis akan diratakan oleh alat sintesis, menciptakan sejumlah besar tindakan dan koneksi. Ini juga akan mencakup keputusan acak, yang perlu dijalankan melalui algoritma pemecah. Saat grafik berjalan, algoritme perencanaan AI digunakan yang memeriksa output yang diinginkan dan mengoptimalkan pengujian input agar sesuai dengan ini. Alat sintesis mencakup layanan mirip OS yang mengalokasikan memori, menyediakan akses peta alamat, interupsi proses, dan tugas lain yang diperlukan untuk menyelesaikan struktur pengujian. Pengujian kemudian dijadwalkan secara acak dengan penyimpanan dan sumber daya lainnya dialokasikan dengan tepat.

Kesimpulan

Sama seperti bangku tes acak terbatas yang menghilangkan pekerjaan manual untuk verifikasi blok, konten pengujian yang disintesis untuk SoC berbasis prosesor yang disematkan telah terbukti mengurangi upaya verifikasi tingkat sistem. Selanjutnya, solusi ini sekarang diterapkan pada tingkat blok dan untuk validasi pasca silikon. Dalam contoh ini, kasus pengujian C otomatis menerapkan pepatah "otomatiskan bila memungkinkan", secara dramatis meningkatkan cakupan sekaligus mempersingkat jadwal verifikasi.


Tertanam

  1. Sampling ST tertanam Memori Perubahan Fase untuk mikrokontroler otomotif
  2. ADI menunjukkan teknologi untuk setiap area desain sistem tertanam
  3. solusi IoT GIGAIPC di dunia tertanam 2019
  4. Cervoz:penyimpanan NVMe ultra-tipis untuk aplikasi tertanam industri
  5. Keysight meluncurkan sistem uji kebisingan fase baru
  6. ST:SoC yang aman dan efisien untuk terminal pembayaran seluler yang terjangkau
  7. IP Keamanan memantau transaksi bus SoC
  8. IBASE:sistem Mini-ITX ramping dengan SoC AMD Ryzen Embedded V1000 onboard
  9. Axiomtek:sistem tertanam ultra ringkas tanpa kipas untuk komputasi tepi
  10. Sistem Tertanam dan Integrasi Sistem